Capture logs (stdout and stderr) from a Spark job

Feature description
When running this flow:
id: spark-submit
namespace: dev

tasks:
  - id: spark
    type: io.kestra.plugin.spark.PythonSubmit
    runner: DOCKER
    docker:
      image: tabulario/spark-iceberg
      networkMode: host
      user: root
      entryPoint:
      - /bin/sh
      - -c
    master: spark://localhost:8082 # 7077
    mainScript: |
      import sys
      from random import random
      from operator import add
      from pyspark.sql import SparkSession

      if __name__ == "__main__":
          spark = SparkSession \
              .builder \
              .appName("PythonPi") \
              .getOrCreate()

          partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
          n = 100000 * partitions

          def f(_: int) -> float:
              x = random() * 2 - 1
              y = random() * 2 - 1
              return 1 if x ** 2 + y ** 2 <= 1 else 0

          count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
          print("Pi is roughly %f" % (4.0 * count / n))

          spark.stop()

I would expect that the printed output would be captured in the logs, but it isn't. It would be great to see the logs directly in Kestra UI.

extra info: even when setting verbose: true, logs are not captured

In fact I also had this strange behaviour when trying the Tabular spark images. It seems to be linked to these images (or maybe the example) as logs are correctly displayed with other images.

when I exec into that container though, the logs are captured, so must be some Docker issue:

ok, spent almost 1h trying to set it up, giving up for now :)
id: spark-submit
namespace: dev

tasks:
  - id: wdir
    type: io.kestra.core.tasks.flows.WorkingDirectory
    tasks:
      - id: local
        type: io.kestra.core.tasks.storages.LocalFiles
        inputs:
          log4j2.properties: |
            log4j.rootCategory=DEBUG, console
        outputs:
          - "*.properties"
      - id: spark
        type: io.kestra.plugin.spark.PythonSubmit
        configurations:
          spark.logConf: "true"
          spark.eventLog.enabled: "true"
          # log4j.logger.org.apache.spark.api.python.PythonGatewayServer: DEBUG
        verbose: true
        appFiles:
          log4j2.properties: "{{outputs.local.uris['log4j2.properties']}}"
        runner: DOCKER
        docker:
          image: tabulario/spark-iceberg
          networkMode: host
          user: root
          entryPoint:
          - /bin/sh
          - -c
        master: spark://localhost:8082 # 7077
        mainScript: |
          import sys
          from random import random
          from operator import add
          from pyspark.sql import SparkSession

          if __name__ == "__main__":
              spark = SparkSession \
                  .builder \
                  .appName("PythonPi") \
                  .getOrCreate()
              spark.sparkContext.setLogLevel("DEBUG")
              partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
              n = 100000 * partitions

              def f(_: int) -> float:
                  x = random() * 2 - 1
                  y = random() * 2 - 1
                  return 1 if x ** 2 + y ** 2 <= 1 else 0

              count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
              print("Pi is roughly %f" % (4.0 * count / n))

              spark.stop()

I also tried mounting log4j.properties:
log4j.rootCategory=DEBUG, console
log4j.logger.org.apache.spark.api.python.PythonGatewayServer=DEBUG
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[spark][%d{yyyy-MM-dd HH:mm:ss}][%p][%c][%m]%n
log4j.appender.publicFile.layout.ConversionPattern=[spark][%p][%d{yy/MM/dd HH:mm:ss}][%c][%m]%n
```

to the spark-tabular container:

```yaml
services:
  spark-iceberg:
    image: tabulario/spark-iceberg
    container_name: spark-iceberg
    networks:
      iceberg_net:
    depends_on:
      - rest
      - minio
    volumes:
      - ./warehouse:/home/iceberg/warehouse
      - ./notebooks:/home/iceberg/notebooks/notebooks
      - /Users/anna/gh/KESTRA_REPOS/dev/spark/log4j2.properties:/home/iceberg/conf/log4j2.properties
    environment:
      - AWS_ACCESS_KEY_ID=admin
      - AWS_SECRET_ACCESS_KEY=password
      - AWS_REGION=us-east-1
    ports:
      - 8888:8888
      - 8082:8080
      - 10000:10000
      - 10001:10001
```

based on these sources, this should be working now, but logs are still not captured despite log4j settings and setting log level on the spark context:
- https://spark.apache.org/docs/latest/configuration.html#configuring-logging
- https://polarpersonal.medium.com/writing-pyspark-logs-in-apache-spark-and-databricks-8590c28d1d51

also, this seems to be a general issue not bound to the tabular image @loicmathieu
here is example flow using bitnami image:
id: spark-bitnami-pi
namespace: dev

tasks:
  - id: spark
    type: io.kestra.plugin.spark.PythonSubmit
    verbose: true
    runner: DOCKER
    docker:
      image: bitnami/spark
      networkMode: host
      user: root
      entryPoint:
      - /bin/sh
      - -c
    master: spark://localhost:7077
    mainScript: |
      import sys
      from random import random
      from operator import add
      from pyspark.sql import SparkSession

      if __name__ == "__main__":
          spark = SparkSession \
              .builder \
              .appName("PythonPi") \
              .getOrCreate()
          spark.sparkContext.setLogLevel("DEBUG")
          partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
          n = 100000 * partitions

          def f(_: int) -> float:
              x = random() * 2 - 1
              y = random() * 2 - 1
              return 1 if x ** 2 + y ** 2 <= 1 else 0

          count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
          print("Pi is roughly %f" % (4.0 * count / n))

          spark.stop()

here is a simple docker compose starting spark master on local port 7077:
version: "3"

services:
  spark-iceberg:
    image: bitnami/spark
    container_name: spark
    network_mode: host
    volumes:
      - /Users/anna/gh/KESTRA_REPOS/dev/spark/log4j2.properties:/home/iceberg/conf/log4j2.properties

same issue, no logs:

can you share more info how to set up other Spark image that captures the logs for you?


file list   with human readable file size in the default view

Archiving. This is implemented in the openlab file list command


phpdoc nit on coroutine.php

Some tools may interpret this as Sabre\Event\Sabre\Event\Promise if the @return is relative.

I love nits, thank you!


"Call to hunspell failed with a code of null."

On startup of atom error says failed with a status code of null
macOS
Hunspell 1.6.1
linter-spell 0.13.2
https://github.com/AtomLinter/linter-spell/issues/38

Had to specify full path. works now


featurize(df) throwing error: AttributeError: module hmni.syllable_tokenizer has no attribute 'tokenize'

Hi!
I was trying to implement hmni model with source code. Python 3.8.5, pandas 1.1.3, sklearn 0.23.2
I am facing the following error when running featurize(df) in model_building.ipynb:
AttributeError: module hmni.syllable_tokenizer has no attribute 'tokenize'
from the following code:
df['syll_a']= df.apply(lambda row: syllable_tokenizer.tokenize(row.name_a), axis=1)
How can we solve this?
Thanks,
Farhana

Thank you for your response Chris, I tried it out later and it worked.
Best,
Farhana
Sent from my iPhone

On 14 Oct 2021, at 11:22 AM, Christopher-Thornton @.***> wrote:

The function name in syllable_tokenizer was changed from tokenize to syllables
To fix the error replace the line with:
df['syll_a']= df.apply(lambda row: syllable_tokenizer.syllables(row.name_a), axis=1)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.


Fixing MRTK/Standard Shader Normal Maps + Proximity Light Compilation Error

Overview
When enabling Normal Maps and Proximity Light on a MRTK/Standard material the MRTK/Standard shader fails to compile. This PR moves normal calculation above proximity light calculation so that world normals are accessible.
Thank you @railboy for finding this!
Changes

Fixes: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/5573

Verification
Please review the MaterialGallery and other example scenes.

As a reviewer, it is possible to check out this change locally by using the following
commands (substituting {PR_ID} with the ID of this pull request):
git fetch origin pull/{PR_ID}/head:name_of_local_branch
git checkout name_of_local_branch

/azp run


How are timeouts handled?

I would like to use this library for a local DNS client cache, but I don't see anything for setting timeouts for the handler. It's possible to use context.Context to define a timeout with a custom net.Resolver.
    const timeout = 10 * time.Millisecond
    ctx, cancel := context.WithTimeout(context.TODO(), timeout)
    defer cancel() // important to avoid a resource leak
    var r net.Resolver
    names, err := r.LookupMX(ctx, "<IP_ADDRESS>")

https://play.golang.org/p/HTW6-2o0qeT

The deadline context passed into LookupMX is used for the read/write deadline for the net.Conn used in the DNS query, but the context is not passed through to the dns.Client.Resolver handler. However, the deadline should be applied to the connection used by the dns.Client in the event that the handler calls Recur, which happens on a cache miss in the dns.Cache handler.

Sorry, I'm not clear on your comment. Are you saying I can provide a deadline context to benburkert/dns which will work because Recur will respect it? I don't see anything in the code for this.

The net.Resolver converts the context's timeout into a deadline on the underlying connection. That deadline is applied to reads/writes over the underlying connection when Recur sends/recv's messages to an upstream server.

So how should I go about combining the DNS cache + Go's default support for dialer deadlines to correctly use this package as a DNS cache?
package main

import (
	"context"
	"fmt"
	"log"
	"net"
	"time"

	"github.com/benburkert/dns"
)

func NewResolver() *net.Resolver {
	return &net.Resolver{
		PreferGo: true,

		Dial: (&dns.Client{
			Resolver: new(dns.Cache),
		}).Dial,
	}
}

func main() {

	resolver := NewResolver()

	const timeout = 10 * time.Millisecond
	ctx, cancel := context.WithTimeout(context.TODO(), timeout)
	defer cancel() // important to avoid a resource leak

	r, err := resolver.LookupMX(ctx, "example.com")
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(r)
}

Yes, that looks right to me.


Move to 4.x API

closing - app will be moved to mature support at 6.1. Use Minimal Gallery app instead.


Cache handle.exe in AppVeyor.

@muga The Handle.zip problem is still happening on AppVeyor. I'm trying to cache the unzipped handle.exe (downloaded directly from live.sysinternals.com) in AppVeyor. Can you have a look?

Thanks. Merging.


Added diff editor color customizations (provisional).

hi @ilof2 !
I have added a few colours to make the diff editor more readable. They are provisional as they are not derived from the colours that make up the theme, I will do it soon if you think it's right.
Here is a preview:

Hi @Nachh, I can't accept all of the colors, because they are not from the theme palette, I trying not to use many colors. Also, colors should be (if possible) the same as in the Neovim theme and intuitive (classic red for removed and classic green for added). I can propose this variant:
        "diffEditor.border": "#24232A",
        "diffEditor.diagonalFill": "#716b8c4d",
        "diffEditor.insertedLineBackground": "#2d3933fc",
        "diffEditor.insertedTextBackground": "#2d3933fc",
        "diffEditor.removedLineBackground": "#633636f6",
        "diffEditor.removedTextBackground": "#633636f6",
        "diffEditorOverview.insertedForeground": "#2d3933fc",
        "diffEditorOverview.removedForeground": "#633636f6"

But of course, you can overwrite colors as you want in your's config)

Fixed by pr #5

Hi @ilof2 ! Sorry for the delay in responding.
Regarding the colors, I totally agree. My intention was to mock them temporarily until I understood how to do it correctly based on your fantastic color palette. Thanks for your time mate.


Typo Update index.md

typo change

IMO that is not a typo and it does not need a fix.

/retitle Rewrite word in Spotlight on SIG Multicluster quote
/hold
We prefer not to edit quotes from what people have said.

I'm closing this PR as this blog post is an interview with SIG Multicluster leads
/close


#1324 Made changes to display correct number of days in Full Information view

What's included?
The number of sitting days displayed in Full Information tab in Applications on Admin now matches the number of days requested in Eligibility Information section of the exercise.
Who should test?
✅ Product owner
✅ Developers
✅ UTG
How to test?

Create an exercise on Admin, input the desired number of days under Eligibility Information section for the question "Does previous judicial experience (PJE) apply?" and note this number.
Apply for a vacancy on Apply.
Check the candidate application on Admin->Applications->Applied->(Candidate)->Full information tab->under the Judicial Experience section, note the label "Sat for at least (NUMBER) days". Number displayed here should match the number entered for "Does previous judicial experience (PJE) apply?" in step 1.

Risk - how likely is this to impact other areas?
🟢 No risk - this is a self-contained piece of work
Additional context

Video of the functionality was uploaded in the testing folder.

PREVIEW:DEVELOP

I have tested its works. Out to UTG


[BUG 🐛] CMake Error in CMakeLists.txt Imported target "react-native-worklets-core::rnworklets" includes non-existent path

Issue

This error does not occur until I add the react-native-vision-camera-face-detector package.
Device:

Device: emulator
OS: android

package.json file:
{
"dependencies": {
"react-native-vision-camera": "^3.9.2",
"react-native-vision-camera-face-detector": "^1.6.3",
"react-native-worklets-core": "^1.0.0",
}
}

You’re not using same tested vision-camera neither worklets-core versions.

Please make sure you’re using the same testes versions before opening issues or you’ll be blocked.


haproxy controller is missing rbac rules (K8s 1.6.x)

I was able to reuse nginx controller RBAC rules for the haproxy controller to work with K8s 1.6.x.
Any plans for adding it under examples/rbac/haproxy ? :-)

@jcmoraisjr ping

There are several missing docs regarding HAProxy Ingress. I'm currently working on some of them.
On the other hand most of these missing docs are almost s/nginx/haproxy/g since nginx and haproxy reuse the same core.
@aledbf any activity regarding review and merge some docs?

@andrey01 you can use like this :
apiVersion: v1
kind: ServiceAccount
metadata:
  name: default
  namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: default:default
rules:
- apiGroups:
  - ""
  resources: ["configmaps","secrets","endpoints","events","services"]
  verbs: ["list","watch","create","update","delete","get"]
- apiGroups:
  - ""
  - "extensions"
  resources: ["services","nodes","ingresses","pods","ingresses/status"]
  verbs: ["list","watch","create","update","delete","get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: default:default
subjects:
  - kind: ServiceAccount
    name: default
    namespace: default

it's write by myself and  work well for me.

@jcmoraisjr can we close this?

@aledbf any activity regarding review and merge some docs?

Note that PR #1275 document this in a generic way. Perhaps we could review and maintain a single doc to the core instead duplicate docs for each controller?

can we close this?

Sure.


requests.exceptions.InvalidHeader: Invalid leading whitespace, reserved character(s), or returncharacter(s) in header value

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
Unable to use headers to grab streams due to regression.
Issue doesn't exist in 2<IP_ADDRESS>540 - the version I was using before yt-dlp -U
I am aware I can use pass cookies to grab streams as well. But the passing headers method shouldn't break.
Thanks!
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
$ yt-dlp -v --no-part --proxy http://<IP_ADDRESS>:9069 'https://example.org/test.m3u8' --add-header='User-Agent: Firefox' --add-header='Accept: */*' --add-header='Accept-Language: en-US,en;q=0.5' --add-header='Accept-Encoding: gzip, deflate, br' --add-header='Referer: https://example.org/' --add-header='Origin: https://example.org' --add-header='Connection:keep-alive' -o example.ts

[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds [0b6f829b1] (py2exe)
[debug] exe versions: ffmpeg 6.0-essentials_build-www.gyan.dev (setts), ffprobe 6.0-essentials_build-www.gyan.dev
[debug] Optional libraries: brotli-1.1.0, certifi-2023.11.17, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.1.0, websockets-12.0
[debug] Request Handlers: urllib, requests, websockets
[debug] Extractor Plugins: AGB (YoutubeIE), Youtube_AgeGateBypassIE
[debug] Loaded 1793 extractors
[generic] Extracting URL: https://example.org/test.m3u8
[generic] test: Downloading webpage
ERROR: Invalid leading whitespace, reserved character(s), or returncharacter(s) in header value: ' Firefox'
Traceback (most recent call last):
  File "yt_dlp\networking\_requests.pyc", line 304, in _send
  File "requests\sessions.pyc", line 575, in request
  File "requests\sessions.pyc", line 486, in prepare_request
  File "requests\models.pyc", line 369, in prepare
  File "requests\models.pyc", line 491, in prepare_headers
  File "requests\utils.pyc", line 1040, in check_header_validity
  File "requests\utils.pyc", line 1056, in _validate_header_part
requests.exceptions.InvalidHeader: Invalid leading whitespace, reserved character(s), or returncharacter(s) in header value: ' Firefox'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.pyc", line 1581, in wrapper
  File "yt_dlp\YoutubeDL.pyc", line 1716, in __extract_info
  File "yt_dlp\extractor\common.pyc", line 717, in extract
  File "yt_dlp\extractor\generic.pyc", line 2392, in _real_extract
  File "yt_dlp\extractor\common.pyc", line 849, in _request_webpage
  File "yt_dlp\YoutubeDL.pyc", line 4069, in urlopen
  File "yt_dlp\networking\common.pyc", line 114, in send
  File "yt_dlp\networking\_helper.pyc", line 204, in wrapper
  File "yt_dlp\networking\common.pyc", line 325, in send
  File "yt_dlp\networking\_requests.pyc", line 336, in _send
yt_dlp.networking.exceptions.RequestError: Invalid leading whitespace, reserved character(s), or returncharacter(s) in header value: ' Firefox'

We probably should trim the value
https://httpwg.org/specs/rfc9110.html#rfc.section.5.5

A field value does not include leading or trailing whitespace.

cc @coletdjnz

I think we could do this to HTTPHeaderDict
diff --git a/yt_dlp/utils/networking.py b/yt_dlp/utils/networking.py
index ed0250011..4b73252cb 100644
--- a/yt_dlp/utils/networking.py
+++ b/yt_dlp/utils/networking.py
@@ -67,7 +67,7 @@ def __init__(self, *args, **kwargs):
     def __setitem__(self, key, value):
         if isinstance(value, bytes):
             value = value.decode('latin-1')
-        super().__setitem__(key.title(), str(value))
+        super().__setitem__(key.title(), str(value).strip())

     def __getitem__(self, key):
         return super().__getitem__(key.title())

That would mean that api would not benefit from this, but is that a problem?

Having only requests error makes no sense though. Imo the other option to fixing it is this:

Fix(?) the cli input to allow the space
Have HeaderDict throw if you pass it any value with leading or trailing whitespace

I'm not sure why we would want to do this considering stripping doesn't hurt but that way at least we have the error early and consistently between request handlers.
While this solution might cause problems with things setting incorrect headers i thinl thats fine since that would mean it would have to be done properly eventually.

I think stripping CLI input only would look like this
diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py
index 57a487157..e2516d74a 100644
--- a/yt_dlp/__init__.py
+++ b/yt_dlp/__init__.py
@@ -889,7 +889,7 @@ def parse_options(argv=None):
         'nocheckcertificate': opts.no_check_certificate,
         'prefer_insecure': opts.prefer_insecure,
         'enable_file_urls': opts.enable_file_urls,
-        'http_headers': opts.headers,
+        'http_headers': {k: v.strip() for k, v in opts.headers.items()},
         'proxy': opts.proxy,
         'socket_timeout': opts.socket_timeout,
         'bidi_workaround': opts.bidi_workaround,

I'm partial to the HTTPHeaderDict solution. It provides consistency, as Grub pointed out

That reminds me, if we want to error we would have to also patch --referrer and --user-agent to throw an error on additional whitespace

nvm yes it should be fine doing it in httpheaderdict. we do other transformations in there too iirc


download_all_models.py not working

Hi, the download_all_models.py script is not working for Python3 because urllib2 is not supported. Even when I change it to the proper library the
matches = re.findall('(http[A-Za-z0-9\:\/_\-\.]*tar\.gz)', html, re.DOTALL)
line is not working.

It was designed for ROS 1 which is using Python2.7 only.
Thank you for reporting this!

Thank you for responding so quickly. Could you tell me how to set it up with ROS melodic and Python 3.6 ?

https://answers.ros.org/question/237613/how-to-define-ros-kinetic-to-use-python3-instead-of-python27/?answer=237669#post-id-237669


Remove cheerio from peer dependencies

cheerio doesn't seem to be required as a peer-dep and it causes misleading warnings on install. It's already brought in by enzyme and that seems to be enough:
npm ls
...
├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>...

Do you want me to include a version bump in this change or will you do it yourselves?

It seems the build is failing in certain configs.
Would you guys be comfortable adding cheerio as a full dependency? If this project is using it directly then surely it should be listed there.

Okay, I'll close this off then.


Camera preview slow to appear, or doesn't appear at all

I'm using React Navigator, and I found this issue: https://github.com/lwansbrough/react-native-camera/issues/518
But even using the setTimeout hack, I still find that the camera preview is slow to appear or doesn't appear at all.
Is this a known problem? Any suggestions?
Node 8.7.0
"dependencies": {
"apisauce": "^0.14.0",
"async": "^2.5.0",
"color": "^2.0.0",
"format-json": "^1.0.3",
"jwt-decode": "^2.2.0",
"lodash": "^4.17.2",
"moment": "^2.19.1",
"numeral": "^2.0.6",
"prop-types": "^15.5.10",
"querystringify": "0.0.4",
"ramda": "^0.24.1",
"react": "16.0.0-alpha.12",
"react-native": "0.47.2",
"react-native-animatable": "^1.2.4",
"react-native-auth0": "^1.2.0",
"react-native-camera": "https://github.com/lwansbrough/react-native-camera.git",
"react-native-config": "^0.6.0",
"react-native-drawer": "^2.3.0",
"react-native-elements": "^0.17.0",
"react-native-masked-text": "^1.6.2",
"react-native-onesignal": "^3.0.6",
"react-native-permissions": "^1.0.1",
"react-native-twilio-video-webrtc": "https://github.com/blackuy/react-native-twilio-video-webrtc",
"react-native-uuid": "^1.4.9",
"react-native-vector-icons": "^4.3.0",
"react-navigation": "^1.0.0-beta.7",
"react-redux": "^5.0.2",
"redux": "^3.6.0",
"redux-persist": "^4.1.0",
"redux-saga": "^0.15.6",
"reduxsauce": "0.4.1",
"seamless-immutable": "^7.0.1"
},

Any update on this ??

Running into this same issue. Seems to be random wether the camera will appear.

I believe this is related to the component not unmounting and remounting when using navigator. I've been using a reset action (in navigator) to return to the page, which forces a dismount and seems to be working.

you can use
InteractionManager.runAfterInteractions(() => {
})


Missing SignColumn and FoldColumn highlights

Many people use the signcolumn for code and prose analysis, so set signcolumn=yes is a popular .vimrc setting which always shows the signcolumn at all times. Same story for FoldColumn and code folding.
Currently both highlights are being treated and their default don't blend well into the general fogbell theme.

Thanks for opening this @rafi, I appreciate the input.
I use signcolumn=yes, particularly since I use gitgutter and ALE, and I'm not currently discontent with the colors here. I felt it made sense to keep "diff" colors for the signs and a bright red for errors in the name of practicality. However, I'm curious to hear your thoughts on this since I don't really have an eye for design - what sort of highlights here do you envision as an improvement?
Personally, I rarely use code folding so I haven't seen this until now. Since I use it rarely, I haven't developed preferences on the foldcolumn. What would help you here?

Closed in https://github.com/jaredgorski/fogbell.vim/commit/274cc13184f6a7d0589650c0763c94cef431b319

@rafi I didn't see what you meant until recently - thanks again


add random interval for sending message

I got banned for sending to more than 20 contacts. lol.
I thought it because of the interval for every message seems to fast.
so I add randomInt() function
and replace line 154 with:
await page.waitFor((6 * getRandomInt(1, 3)) * 10000);

so the msg would be sent randomly between 1-3 minutes.
I think it will be good feature if you want to add it as an option.
just my two cents 😃
the randomInt() function
function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min)) + min;
 }

@vachzar I'm so sorry about your ban, maybe a lack of luck :disappointed:, i've already sent messages to more than 1000 contacts and wasn't banned. Feel free to create a pull request with this feature if you want.
It's a very nice feature to prevent a ban. For sure it will be in a next release.
The delay in line 154 is necessary to prevent a page reload too fast(if it's fast maybe the message will not be sent).
I think the change purposed can be applied before the line 154 like this:
// ...
await page.waitFor((6 * getRandomInt(1, 3)) * 10000); // wait random interval do send the message
await page.keyboard.press("Enter"); // send the message
await page.waitFor(1000); // wait 1 sec to go to next contact page
// ...

I think an interval by default in minutes to each message is too long, maybe it can be in seconds.
In this feature we can have default interval in 2~6 seconds that be changed as an option.
// no interval options(send as fast as it can)
wbm.start({ interval: false }).then(...)

// default interval 2~6
wbm.start().then(...)

// interval between 10~60 seconds
wbm.start({ minInterval: 10, maxInterval: 60 }).then(...)

Change in the code purposed:
await page.waitFor(getRandomInt(minInterval, maxInterval) * 1000); // random interval in seconds
await page.keyboard.press("Enter"); // send the message
await page.waitFor(1000); // wait 1 sec to go to next contact page


Add zeta consumer address to the Connector contract

Right now when we deploy a CCM contract we pass three addresses: connector, zeta token, and zeta consumer.
https://github.com/zeta-chain/example-contracts/blob/2c7885cce941d9a02cb4c23324ec9c75e86dee89/messaging/message/contracts/CrossChainMessage.sol#L33-L35
The connector contract already stores the zeta token address as a value:
https://github.com/zeta-chain/protocol-contracts/blob/1b00239471377bc6febb44de7230c006f0c9f5b9/contracts/evm/ZetaConnector.base.sol#L16-L32
Let's refactor the Connector to also store the zeta consumer address.
The improvement will be that users will only have to pass the connector address when deploying a CCM contract, and the contract itself would get zeta token and zeta consumer from the connector.

Closing as it pertains to the v1 contracts that will no longer be developed. Feel free to reopen or create new issue if it's still relevant for v2 contracts


Mock PA2 Level 5 : How to get Numerator and Denominator out?

how to get the numerator and denominator out? i used the map so i get Num(Optional) but my constructor for Num takes in Optional< Integer > and not Optional < Num >

here Num takes in Optional however, when u map the frac into frac.first/second() it will return a Num so it becomes new Num(Optional) but Num takes in Optional , so maybe u can just leave the numerator in denominator as Optional instead of Num

i think its quite difficult to work with Optional<Num> since we cant use getters, maybe you can try to do all the computations for numerator and denom through one line of code containing nested pipelines to get an Optional<Frac> as ur result instead

Perhaps consider tertiary operators to store it in Frac, and return Optional in Fraction class

just assign them to Optional, your mul sub and add methods can make use of maps and flatmaps to get your answer

Since a Num is a AbstractNum and therefore has an Optional, we can use flatMap to extract this, then construct a new Num as you have done.

You're gonna have a lot of fun with flatMap and map...

The Fraction class has an Optional<Frac> inside it, so you can try using flatMap and Map to manipulate the Frac (numerator and denominator) inside the Optional.

Since a Num is a AbstractNum<Integer> and therefore has an Optional<Integer>, we can use flatMap to extract this, then construct a new Num as you have done.

I tried, but you can't as Num(Optional) has private access

Since a Num is a AbstractNum<Integer> and therefore has an Optional<Integer>, we can use flatMap to extract this, then construct a new Num as you have done.

I tried, but you can't as Num(Optional) has private access

I made the constructor non-private (like the poster did), was able to pass on CodeCrunch.

solved! used a lot of maps and flatMaps!


Add "minimal" versions of battery and Bluetooth widget

I personally like my watch to be more context-sensitive and only show me certain information when I need to know about it.
e.g. I don't care whether my battery is 70, or 75 percent charged, it's simply "charged enough".
Therefore I've created two widgets:

Minimal Battery: Only appears when the battery is running low, changes color from orange to red the lower the battery goes.
Minimal Bluetooth: My watch is usually connected to my phone, this widget only appears if it loses the connection.

Future Work: A "Minimal" lock indicator, which would only appear when the watch is unlocked.

Looks great - thanks!


Explicitly install clang-format-9 in Github Actions

Coverage remained the same at 98.991% when pulling 66ea1db94824289709e4d87b54f37600f8952939 on isaacbrodsky:gh-actions-install-clang-format-9 into 456e57d617042a5b3fbc05ae72389acce28ade62 on uber:master.


Data science

Take a look at the comments here and refactor. You should be good to go after that.
Nice work overall!


[Extensibility] HTTP protocol

What this PR does / why we need it:
Implements: #85
Special notes for your reviewer:
If applicable:

[X] this PR contains documentation
[ ] this PR contains unit tests
[X] added code adheres to standard Rust formatting (cargo fmt)
[X] code builds properly (cargo build)
[ ] code is free of common mistakes (cargo clippy)
[ ] all Akri tests succeed (cargo test)
[ ] inline documentation builds (cargo doc)
[ ] version has been updated appropriately (./version.sh)

@DazWilkin, thanks so much for this!
I love this as a replacement for Nessie ... maybe where all of the code here goes into a http-extensibility branch (similar to the current nessie branch) and the doc changes go into docs/extensibility.md (with a link to the branch).
What do you think about that?

@bfjelds Thank you!
I didn't intend it to replace -- but complement -- Nessie.
I very much value all feedback from the top (this isn't a good protocol) to the bottom (why don't you rename this variable).
I sent @kate-goldenring on Slack a link to something I wrote on the back of developing the http protocol, I'd be interested in (all of) your views on that too; I attempt to describe Akri in a slightly different way and hope it provides an outsider's perspective for your team.
Yes to the branch idea though I'll need help understanding how to undo the PR to main and moving it to http-extensibility.

For me, nessie is fun but contrived.  I'm hoping that http is closer to a real scenario and therefore more useful :)
We may need to create the branch for you to create the PR against,

I created https://github.com/deislabs/akri/tree/http-extensibility as an implementation branch for your code changes ... with the idea that you might move the code changes into a PR there and this can become a set of changes for extensibility.md.  How does that sound?

Thanks @bfjelds.
How do I move the PR? Should I delete it and recreate it?

If it were me, I think I would do something like this:
To create the new PR to http-extensibility

git checkout -b my-http-extensibility
git rebase -i upstream/http-extensibility
<sort out any merges>
git push my-fork my-http-extensibility
<use github.com to create new PR from my-http-extensibility to http-extensibility>

To change existing PR to a doc change to extensibility.md

<migrate extensibility-http.md to extensibility.md>
git add extensibility.md
git commit -m "update extensibility.md to replace nessie"
git rebase -i upstream/main
<drop all commits except the change you just made>
git push -f <your fork> <your branch name>

The first steps give me a my-http-extensibility branch in my fork (DazWilkin/akri) current with your http-extensibility but there will be no changes and thus no PR.
I understand git mv the extensibility-http.md --> extensibility.md
I'm unclear why|where I'm dropping (deleting?) commits?
Is the intent of the second section to effectively rename my forked branch? Am I pushing the commits from my existing branch to the new my-http-extensibility branch.
Would it be easier if we deleted my previous PR and I create another from my existing branch to http-extensibility (with the doc file renamed)?

my intent with the first steps was to start with DazWilkin:protocol-http and create a new branch (my-http-extensibility), then rebase it onto http-extensibility.  the end result should be moving all of these code changes into my-http-extensibility in a way that was easily mergable with http-extensibility with the PR.
the intent of the second set of steps was to modify this PR so that it only included md changes.  however that is accomplished easily for you is good for me :) ... we can update this PR or abandon it and start fresh, whatever works for you.

Got it! Thanks for helping me understand

no problem ... I'm no git expert, so I apologize if I suggest something that is harder than it needs to be.

PR https://github.com/deislabs/akri/pull/135 replaces the majority of the commits of this PR with deislabs:http-extensibility

Ah, I think I inadvertently closed the PR by reverting all its commits.
I wanted to undo everything on the DazWilkin:protocol-http branch and then apply the extensibility.md rename.
Apologies.


Migrate 3rd party image agnhost from GCR to AR

How to categorize this PR?
/area testing
/kind cleanup
What this PR does / why we need it:
Migrate 3rd party image agnhost from GCR to AR.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

/cc @ialidzhikov


feat: add prim deadline for receiver-side best-effort messages

Cf. ic0.msg_deadline in https://github.com/dfinity/portal/pull/3764
Adds prim "deadline" and access to it via func replyDeadline in mo:prim.
All mainnet subnets are providing the system interface API, so this is safe to deploy.
Feature flag for drun is Enabled.
motoko-base support will be merged in short order.

@oggy-

Might be worth testing some code in playground (uploading wasm) just to make sure its enabled on  mainnet.

Might be worth testing some code in playground (uploading wasm) just to make sure its enabled on mainnet.

https://play.motoko.org/?tag=661790008 has a deployed query2 canister. Some queries trap, but that is expected.


Create Kapsch CMCC publisher deployment

As the program, I need to receive data from the CV environment, so that I can meet my KPIs
Create the deployment that will add the Kapsch control unit data publisher to the project's K8s cluster so the data can be consumed by the data pipeline
ACs:

Create a columbus-specific deploy repo or deployment manifest (under common or similar)
Kapsch application should be deployed to its own namespace with a single-pod deployment and a service
Environment variables for the kapsch deployment should be pulled from the notes in the closed GitHub issue github.com/smartcolumbusos/migration/issues/247

arguments needed to start the container:
-e cmccdatapublisher.udpPublishPort=
-e cmccdatapublisher.udpPublishHost=
-e logging_level_net_kapsch=TRACE (for debugging only)

the marysville deployment has moved off the Kapsch "default" prod instance so now it requires additional arguments when starting the container to connect to. The following must also be supplied:

e cmccdatapublishercommServicesHost.=ohiort33.etranssystems.com
e cmccdatapublisher.commServicesRsu=m14_rsu
e cmccdatapublisher.commServicesPassowrd=

!NOTE! the "typo" in the above environment variable arg (passowrd) is a deliberate misspelling, as the Kapsch-provided image has the environment variable misspelled in its config. Please contact Kapsch if and/when this is patched in a subsequent upgrade of the publisher image to ensure we are able to connect.


Option for tester to report memory use on each test

On some O/S and Java versions our tests are now failing (as of 23-Sep-22), so report memory usage to see if we're getting OutOfMemory errors.

Probably need some indication of total memory vs. used (somehow).  Just "used" memory isn't helping much.


[BUG] Editor does not resize when focus switched from TextFeild widget to Editor

Editor fails to resize
When typing first in a TextField and moving on to HtmlEditor, the Editor does not resizes.
To Reproduce
Steps to reproduce the behavior:

Create a sample app, and paste the below snippet as Scafold's body

https://gist.github.com/devanshu89w/6e69f1b34b6be669c4cedd5c3a32c6ab

Click on 'Field 2'
We can see the editor resized it's height when Keyboard was shown.
Restart the app, and click on 'Field 1' and then click on 'Field 2'
The HTML editor did not resize.

Expected behavior
The HTML editor should resize after step 3
Additional context
I have tried adding a focus node to TextField and on onFocus callback of HTML Editor unfocused field 1 node. This caused another issue wherein to type in editor I had to click/touch twice. then the keyboard shows up.

@tneotia , I did some initial debugging and the issue seems to be that visibility has changed before the WebView window was in focus. due to this, visibility change did add the new visibleFraction value in the stream, but on window focus the
visibleDecimal = await visibleStream.stream.first;
this waits the value till another visibility change happens and a value is added in the stream again.

Ah I see, this should be easily solved by listening for visibility changes within initState rather than waiting until window focus. Thanks for your report! I'll try to have this fixed soon but I have been busy with school and other projects recently.

@tneotia, I have tried this, but it looks to get in loop, where we listen for visibility changes and then we change  the height of the document which in turn changes the visibility of the widget again.

Hmmm okay - does this happen even without the restart? Like if you load the app and then click in field 1, type some, click in field 2, does it resize then? Or does it require hot restart?

Sorry for the delay, but I fixed this issue. Basically I cached the value of the visibility widget because it gives a value even when the widget is not focused, then in the onFocused callback of the webview I check the cached value and update the height.

@tneotia, thanks for the support. I made a similar fix in local copy earlier to work past the issue. however, I would like to roll back them and use the out of the box fix in plugin. do you plan to release the fix soon. if not can you share the snippet, I will compare and adjust my changes.
Thanks again for your support.

It is released already in 2.3.0, you can update your dependency and it should work.


Add '--report-time-path=abs.path' option to record xcode projects bui…

Pull Request Description
This PR adds a new argument, --report-time-path=abs.path to provide an option to record build time of projects. This is currently works for xcode projects only. Passing this argument, runner.py creates a TimeReporter object which is passed along to the project builder, in order to keep track of xcode projects' build time and write it to the specified json file upon the exit of the script.
Acceptance Criteria
This does not add a new test project in the suite.

@swift-ci test

@swift-ci test

@swift-ci test


Are the tests working with haxe4?

I made a quick fix here for haxe 4 (in is a Binop now) and I tried to run the tests with:
haxe test.hxml but I get errors like:
test/MySpodClass.hx:30: characters 26-68 : Relation type should be a sys.db.Object
Any idea why?

Hm, OK. Apparently I got the tests to compile by changing any Null<...> type to SNull<...> in MySpodClass.hx and also adding braces to ($theId in ids) (maybe a priority problem).
Does anybody know something about this? @nadako maybe?


Xplot Downgrades All My C++ Packages, C++ Kernels Crash

Hello,
I tried installing xplot, I am using a OCI container, it seems to download all my packages, including gcc 9.4 -> 7.5, and cling. When I try to run a C++ kernel in Jupyter Lab it crashes, in the console I see
No such file or directory #include <features.h>
Trying to build from source, but getting
In file included from /home/jovyan/xplot/src/xaxes.cpp:1:
/home/jovyan/xplot/include/xplot/xaxes.hpp:42:28: error: 'xw::xholder' is not a template
   42 |         using scale_type = xw::xholder<xscale>;
      |                            ^~
make[2]: *** [CMakeFiles/xplot.dir/build.make:63: CMakeFiles/xplot.dir/src/xaxes.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/xplot.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Thank you,

Chris

^^ That's my student account above, I just spent a few hours trying to get this to build from source in a container again, I browsed the xwidgets source code, xw::holder has a templated constructor but is not templated itself, it seems its out of date wrt xwidgets


Fix some typos in the v0 docs

A few typos found by Crowdin translators.

Build start trouble: Can't open /etc/init.d/xvfb


Update postcodes for PIP checker

Needs to go live on on Wednesday 26th.
Updates to two outcomes:
https://www.gov.uk/pip-checker/y/yes/1985-01-01
https://www.gov.uk/pip-checker/y/yes/2001-01-01
Combines the 2 sets of postcodes that went live on 13 July and 17 August.
Adds a new list of postcodes to be included from 1 September.
Relates to ticket: https://govuk.zendesk.com/agent/tickets/1118011
Closes #1903 #1904

Although I have access to Zendesk, I can't see the ticket referenced in the commit note, presumably because of a permissions issue. In case this affects other developers, I think it might be worth including a summary of that ticket in the commit note if there's anything important to add.

I believe it's a regular thing that's done and unfortunately there isn't anything particularly useful on zendesk.

OK. No probs.


Fix remove dragover listner when popover hides

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/27375
PROPOSAL: https://github.com/Expensify/App/issues/27375#issuecomment-1718013361
Tests

[x] Verify that no errors appear in the JS console

Open Fab Menu
Dragover a file over LHP verify Popover closes
Dragover a file over LHP and Report Header when popover is closed, verify no errors appear in console

Offline tests

Open Fab Menu
Dragover a file over LHP verify Popover closes
Dragover a file over LHP and Report Header when popover is closed, verify no errors appear in console

QA Steps

[x] Verify that no errors appear in the JS console

Open Fab Menu
Dragover a file over LHP verify Popover closes
Dragover a file over LHP and Report Header when popover is closed, verify no errors appear in console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Mobile Web - Safari
https://github.com/Expensify/App/assets/104348397/982b6cb5-cc99-4e89-95f6-33113f63f6d4

Mobile Web - Chrome
https://github.com/Expensify/App/assets/104348397/b291c74b-5fad-4ab8-a774-0843703eb4dc

Web
https://github.com/Expensify/App/assets/104348397/abbb8d39-97db-4a1e-9525-cfdb1983a783

Desktop
https://github.com/Expensify/App/assets/104348397/1f336b7f-d958-4799-8ac5-3c8e1635e858

iOS
https://github.com/Expensify/App/assets/104348397/a93d6ea5-4bc9-43c1-ac00-524e274e51b0

Android
https://github.com/Expensify/App/assets/104348397/346fac5a-04c6-4258-82c3-70b82cda09c6

Okay, Thanks @0xmiroslav, just pushed a linter fix, completing Checklist now.

@0xmiroslav Please review when you get a chance.

👋 @0xmiroslav it's already the third day, I got assigned to issue would be great if you can review, and we can merge it by end of today.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/srikarparsi in version: 1.3.73-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.73-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/srikarparsi in version: 1.3.74-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/chiragsalian in version: 1.3.74-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


[16:12:03] [ManzanaCore] ERROR: URL is invalid!

Hi! When I enter the url, this error pops up:
[16:12:03] [ManzanaCore] ERROR: URL is invalid!
The link was this: https://music.apple.com/us/album/guts/1694386825
The full command was: python3 manzana.py --sync --no-lrc https://music.apple.com/es/album/cerdicienta-banda-sonora-de-la-película-ep/1642983033
How can I fix this? Thank you! :)

@alexdeve01 Is there the same error for song or music-video URLs?
and one more thing: --sync is useless with --no-lrc. The --sync command is used to change the .lrc file's timecodes.

Hi! Yes, it is.

El 12 sept 2023, a las 10:47, dropcodes @.***> escribió:
@alexdeve01 https://github.com/alexdeve01 Is there the same error for song or music-video URLs?
and one more thing: --sync is useless with --no-lrc. The --sync command is used to change the .lrc file's timecodes.
—
Reply to this email directly, view it on GitHub https://github.com/dropcreations/Manzana-Apple-Music-Lyrics/issues/1#issuecomment-1715279189, or unsubscribe https://github.com/notifications/unsubscribe-auth/BCP7WWI3YQJONJSVJRC4NRLX2AOTHANCNFSM6AAAAAA4TNCIWQ.
You are receiving this because you were mentioned.

@alexdeve01 Did you add more to the code? or what's the process you followed? The full command you mentioned above is also working fine.

No, I just enter the command I mentioned and this appear:
[13:46:45] [ManzanaCore] INFO: Checking access token found in cache...
[13:46:45] [ManzanaCore] INFO: Checking media-user-token...
[13:46:45] [ManzanaCore] ERROR: URL is invalid!

@alexdeve01 Mail me<EMAIL_ADDRESS>


"OSError: Failed to write string" // Bilibili // Windows 7 x64 // Python 3.6.1

[x] I've verified and I assure that I'm running youtube-dl 2<IP_ADDRESS>
[x] I have at least skimmed through the README, most notably the FAQ and BUGS sections
[x] I have Searched the bugtracker for similar issues including closed ones
[x] I have checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[x] I'm filing a bug report (encountered problems with youtube-dl)

Log
G:\[T] == TORRENTS COMPLETE ==>youtube-dl --verbose https://www.bilibili.com/video/av19673092/
[debug] System config: []
[debug] User config: ['-o', 'G:/DOWNLOADED/%(title)s.%(ext)s', '-f', 'bestvideo[height<=?1080][vcodec!=?vp9][ext=mp4]+bestaudio[ext=m4a]/best[height<=?1080][ext
=mp4]/best', '--merge-output-format', 'mkv']
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.bilibili.com/video/av19673092/']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 3.6.1 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: ffmpeg N-65476-ge18d9d9, ffprobe N-65476-ge18d9d9, phantomjs 2.1.1
[debug] Proxy map: {}
[BiliBili] 19673092: Downloading webpage
[BiliBili] 19673092: Downloading video info page
Traceback (most recent call last):
  File "e:\python3\3.6.1x64\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "e:\python3\3.6.1x64\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "E:\Python3\3.6.1x64\Scripts\youtube-dl.exe\__main__.py", line 9, in <module>
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\__init__.py", line 471, in main
    _real_main(argv)
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\__init__.py", line 461, in _real_main
    retcode = ydl.download(all_urls)
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\YoutubeDL.py", line 1989, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\YoutubeDL.py", line 796, in extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\YoutubeDL.py", line 892, in process_ie_result
    self.to_screen('[download] Downloading playlist: %s' % playlist)
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\YoutubeDL.py", line 495, in to_screen
    return self.to_stdout(message, skip_eol, check_quiet=True)
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\YoutubeDL.py", line 509, in to_stdout
    self._write_string(output, self._screen_file)
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\YoutubeDL.py", line 498, in _write_string
    write_string(s, out=out, encoding=self.params.get('encoding'))
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\utils.py", line 1408, in write_string
    if _windows_write_string(s, out):
  File "e:\python3\3.6.1x64\lib\site-packages\youtube_dl\utils.py", line 1392, in _windows_write_string
    raise OSError('Failed to write string')
OSError: Failed to write string

I feel that no further description is necessary. I can otherwise download from other sources just fine -- only Bilibili seems to have this issue. I was also unable to find "OSError" or "failed to write string" in conjunction w/ Bilibili anywhere in the issues.

Post the verbose log from the original .exe.

I did, as you can see. If you need me to post anything else, please specify what command line I should use.

No, it's a custom build. Original build does not use this python version.

It is not. I installed it via pip install -U youtube-dl.
I have this Python installed, alongside ffmpeg and such similar. Should it not use this Python version?

I'm open to helping debug this, if you need to run commands on my system.

For any work on this issue you must provide access to reproducible environment.

Hoboy... I'm not exactly sure how to do this. Can I zip some files up for you? I obviously don't want to allow you full access to my machine, however I would be open to running some test code that could help pinpoint the issue. I've since run into the issue again, on a different video - yufR7Ch2TFM.
If I drop my output naming, everything works just fine:
C:\Users\User>youtube-dl -v --id --ignore-config --merge-output-format mkv -f "bestvideo[height<=?1080][vcodec!=?vp9][ext=mp4]+bestaudio[ext=m4a]/best[height<=?1080][ext=mp4]/best" yufR7Ch2TFM
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '--id', '--ignore-config', '--merge-output-format', 'mkv', '-f', 'bestvideo[height<=?1080][vcodec!=?vp9][ext=mp4]+bestaudio[ext=m4a]/best[height<=?1080][ext=mp4]/best', 'yufR7Ch2TFM']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2018.04.25
[debug] Python version 3.6.1 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: ffmpeg N-65476-ge18d9d9, ffprobe N-65476-ge18d9d9, phantomjs 2.1.1
[debug] Proxy map: {}
[youtube] yufR7Ch2TFM: Downloading webpage
[youtube] yufR7Ch2TFM: Downloading video info webpage
[youtube] yufR7Ch2TFM: Extracting video information
[debug] Invoking downloader on 'https://r1---sn-pj2-2v1l.googlevideo.com/videoplayback?gir=yes&clen=102922858&keepalive=yes&source=youtube&mime=video%2Fmp4&itag=299&key=yt6&signature=2F08C26F546B79660D67EA2559F8AF0A6C55F42F.A634EEB7E81138EF0F45961AEBE9EBD2985D6AA2&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278%2C298%2C299%2C302%2C303&c=WEB&ei=2yrqWtGnAe3J7ASal56YDA&fvip=1&mm=31%2C29&mn=sn-pj2-2v1l%2Csn-f5f7lne6&pl=17&id=o-ADNSrxYxu0hHAPqMYmTVmpW_S_XmAn7jluhoVsU6izZh&requiressl=yes&dur=209.016&mt=1525295755&mv=m&fexp=23724337&ms=au%2Crdu&ip=<IP_ADDRESS>&initcwndbps=863750&lmt=1509241383811619&ipbits=0&expire=1525317435&sparams=aitags%2Cclen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&ratebypass=yes'
[download] Resuming download at byte 85956286
[download] Destination: yufR7Ch2TFM.f299.mp4
[download] 100% of 98.15MiB in 00:02
[debug] Invoking downloader on 'https://r1---sn-pj2-2v1l.googlevideo.com/videoplayback?gir=yes&clen=3321207&keepalive=yes&source=youtube&mime=audio%2Fmp4&signature=4EACAF8EF1051271747DAC6812EFB827E9F5A73B.6898B8CF35FC1C706E7538C340EBE6C6A12B4942&key=yt6&itag=140&c=WEB&ei=2yrqWtGnAe3J7ASal56YDA&fvip=1&mm=31%2C29&mn=sn-pj2-2v1l%2Csn-f5f7lne6&pl=17&id=o-ADNSrxYxu0hHAPqMYmTVmpW_S_XmAn7jluhoVsU6izZh&requiressl=yes&dur=209.072&mt=1525295755&mv=m&fexp=23724337&ms=au%2Crdu&ip=<IP_ADDRESS>&initcwndbps=863750&lmt=1509241419629859&ipbits=0&expire=1525317435&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&ratebypass=yes'
[download] Destination: yufR7Ch2TFM.f140.m4a
[download] 100% of 3.17MiB in 00:00
[ffmpeg] Merging formats into "yufR7Ch2TFM.mkv"
[debug] ffmpeg command line: ffmpeg -y -i "file:yufR7Ch2TFM.f299.mp4" -i "file:yufR7Ch2TFM.f140.m4a" -c copy -map "0:v:0" -map "1:a:0" "file:yufR7Ch2TFM.temp.mkv"
Deleting original file yufR7Ch2TFM.f299.mp4 (pass -k to keep)
Deleting original file yufR7Ch2TFM.f140.m4a (pass -k to keep)

For now, I can confirm that, at least for the YouTube one, the problem is in the "…" character (literally, three periods as one character) - I have uploaded some random video to my private YT account, changed its name to reflect the one in the video above and tried downloading it -- this got me a "Failed to write string" error.
The same happened if I simply renamed the video to "…" -- same error.
As soon as I replaced the "…" with "..." (separate periods), the download worked w/o a hitch. Meaning, the function doing the Windows filename writing is still having problems w/ certain characters, at least on some systems.
Since I don't know Python, can you write me a bit of code that attempts to create empty files w/ all Unicode characters? I could then report which ones don't work/raise an error on my system.

I did one more test. I created a tmp directory, and inside I created two files:

....test, and
….test.

Here are the results of dir:
G:\Downloaded\tmp>dir
 Volume in drive G is DOWNLOADS
 Volume Serial Number is ZX12-1901

 Directory of G:\Downloaded\tmp

2018:05:02  23:28    <DIR>          .
2018:05:02  23:28    <DIR>          ..
2018:05:02  23:28                 2 ....test
The system cannot write to the specified device.

Since I once-upon-a-time reinvented the wheel and wrote ls for myself (don't ask...), I also got to compare against it, and I got:

I have added a screenshot, because a copy & paste of that properly rendered as … in virtually anything that understands UTF-8.
The code tests for readability by attempting to fopen() the file for reading... it was written ages ago.

A gentle reminder that this is still an issue in 2018.8.4 and could use some love. The issue is about writing to the console, not to disk.


Some intellisense tags still shown as XML

It seems that member level intelisense is displayed as XML, where as some of the top level type information is displayed in a more human readable format.
C# extension 1.0.3-rc2
Mac OS X

Dupe of #13


Line height changes when fallback font is used

Godot version
4.1.1.stable, master[6588a4a29af1621086feac0117d5d4d37af957fd]
System information
Arch Linux
Issue description
System fallback font
Line height in Label and RichTextLabel will change if a certain fallback system font is used.
In the MRP, I put a white Label on top of a magenta Label. These two labels contains the same base text, but the magenta Label have an extra "茻" on the first line. The line height of the first line is increased.

Expected: Line height stays consistent.
Manually specified fallback font
If a fallback font is specified in the font's import settings, all line height are changed when the fallback font is actually used.
See the line height change when 茻 appears (the system Source Han Sans is set as fallback):

Expected: Line height stays consistent.
Steps to reproduce
Use the MRP. But it depends on which system font Godot decides to fallback to.
Minimal reproduction project
test-4.zip

I guess line height needs to be set to account for the tallest fallback font, even if it never appears in the label.
cc @bruvzg

guess line height needs to be set to account for the tallest fallback font,

This will cause issues with some fonts (Nastalīq Arabic for example) and blow up line height to unreasonable size. I'm not sure what's the best solution here (currently it's MAX(height_of_base_font, real_text_height)). Changing visible char. mode to something else than "Characters before shaping" probably will help.

Changing visible char. mode to something else than "Characters before shaping" probably will help.

Yeah, that helps. The second scenario is to show the different behavior when fallback font is used.
For the first scenario, the practical use case is the dialogue containing some rare characters that the game font does not support (not arbitrary user input), but it's safe to assume end users of the game have fallback font in their system. So developers don't want the fallback font to affect line height, breaking the designed layout.
When system fallback font is allowed, there could be these options:

Ignore fallback height, so that line heights are consistent.
Fallback height affect the current line (current behavior of using system fallback font)
Fallback height affect all lines (current behavior of using manually specified fallback font)

I guess line height needs to be set to account for the tallest fallback font, even if it never appears in the label. The alternative would be to pick an average value, but it may make lines seem too short if they're entirely comprised of a tall fallback font.

Was this feature actually implemented? I've been porting a project over to Godot 4 and noticed all labels have a ton of extra vertical space at the bottom. After multiple days of doing changes I think I may have finally found the root cause: adding Arabic as one of the fallback fonts causes extra vertical space. I have 9 other fallback fonts set and none of the other ones cause that issue. So I was wondering if this was actually implemented because right now I see labels taking up extra space even when a fallback font is only defined but not used at all in the text on the label.


Plugin compatibility issue with Nushell 0.100.0

Hi @FMotalleb ,
I'm encountering an issue when trying to load the nu_plugin_dpkgtable plugin in Nushell 0.100.0. The plugin was compiled for Nushell version 0.94.0 and does not seem to be compatible with the newer version of Nushell. Below is the error message I'm seeing:
Plugin `dpkgtable` read error: Plugin failed to load: Plugin is compiled for nushell version 0.94.0, which is not compatible with version 0.100.0
Error: nu::shell::io_error

  × I/O error
  help: Broken pipe (os error 32)

Steps to Reproduce:

Install Nushell 0.100.0.
Try to load the nu_plugin_dpkgtable plugin.
Observe the error message.

Expected Behavior:
The plugin should load successfully without any version mismatch errors.
Actual Behavior:
The plugin fails to load due to a version incompatibility between the plugin (compiled for Nushell 0.94.0) and the current version of Nushell (0.100.0).
Possible Solutions:
Recompile the plugin for Nushell 0.100.0.
Provide an updated release of the plugin that is compatible with Nushell 0.100.0.

Hi, sry this plugin is no longer maintained since it adds no value to nushell, its just like a cli that will break with every update of the shell.


Reserve scene at the beginning of the paint pass

This is an extension of the pass spec work (see #512).
Vello should provide a SceneMetrics type, which could be returned from a Scene, and multiple SceneMetrics could be added together. The Scene should have a new Scene::reserve(metrics) constructor taking a SceneMetrics value.
We could then keep individual metrics for each widget, sum them during the paint pass, and store the sum in the root. At the beginning of each paint pass, we'd use metrics from the previous pass to reserve a complete scene.
See https://github.com/linebender/vello/issues/667.

It seems to me that it would be much simpler to just retain the resultant scene from the previous frame. That would tend to grow over time, so we should probably have a shrink_to_fit method on Scene.

I haven't followed up on this, but what it's worth, I think re-using an old value for its allocation is an anti-pattern that Rust developers use way too much.


Custom logic for insufficient torque detection should be removed

Right now, it can't for example alert when Toyota wind down torque is too much.
We need to move to a localizer/deviation from desired path measurement. This should work without a GPS at all, but is expected to work better with one.

Torque control has a good alert now, and other torque based cars should move to torque control in time
https://github.com/commaai/openpilot/blob/c3e2d35963a95bfeaf99048decbd6066c52113d8/selfdrive/controls/controlsd.py#L631


remove imports to fix console warnings

remove unused imports to fix console warnings

IBM Cloud toolchain: Delivery Pipeline deployed LRP-web-app to test, including commit 196b262da5f13cf5fca74cc7d97e64fb8ef9ea61

IBM Cloud toolchain: Delivery Pipeline deployed LRP-web-app to prod, including commit 196b262da5f13cf5fca74cc7d97e64fb8ef9ea61

IBM Cloud toolchain: Delivery Pipeline deployed LRP-web-app to dev, including commit dd2f59c5118fb00f4005cca50441dc292e74447c

IBM Cloud toolchain: Delivery Pipeline deployed LRP-web-app to test, including commits dd2f59c5118fb00f4005cca50441dc292e74447c, b54b270aadcce30f3f7aad9618fbdf1491b477d7

IBM Cloud toolchain: Delivery Pipeline deployed LRP-web-app to prod, including commits dd2f59c5118fb00f4005cca50441dc292e74447c, b54b270aadcce30f3f7aad9618fbdf1491b477d7


Unit tests for couchbase/couchbase-lite-java-core#564

Preserve insertion order.

https://github.com/couchbase/couchbase-lite-java-core/pull/564

Hi @sergio91pt,
In short term, we will not apply this change because it addresses part of problems. For now, I will close this PR.
Thank you for your contribution!


Upgrade lerna to v4

Upgrade Lerna to v4.  Primarily to address a LONG list of audit issues.
Per https://github.com/lerna/lerna/releases/tag/v4.0.0
Nothing was newly deprecated, nothing previously deprecated was removed. Migrating to v4 should be straightforward.
The only breaking changes are removed support for Node v6.x & v8.x; however we no longer support those here.
Signed-off-by: Gareth Hancock<EMAIL_ADDRESS>

Following this change we go from ~30 audit issues to:
# npm audit report

trim-newlines  <3.0.1 || =4.0.0
Severity: high
Regular Expression Denial of Service - https://npmjs.com/advisories/1753
fix available via `npm audit fix`
node_modules/get-pkg-repo/node_modules/trim-newlines
  meow  3.4.0 - 5.0.0
  Depends on vulnerable versions of trim-newlines
  node_modules/get-pkg-repo/node_modules/meow

2 high severity vulnerabilities

Yeah I was more interested in bringing Lerna up to the next major version so we get any future bug fixes, but the large number of vulnerabilities fixes was a nice added benefit

I might try switching to Linux, I'm getting some weird issues on windows

And the funny thing is... the only reason I did a complete reinstall of windows was because I wanted to use one of my SSDs to install Linux; so I did a clean install of everything (what could possibly go wrong)...
...so it's all Linux fault (kinda; if you ignore my incompetence) ...
I haven't used Linux for a VERY long time, but for some things it just seems so much nicer/easier


fix(observeOn): release action references on teardown

Description:

Looks like we regressed https://github.com/ReactiveX/rxjs/issues/2244 while refactoring.
This PR brings up theoritically same changes to old fixes to release references once action is dispatched.
I have verified manually via devtools, but not sure if there's good way to create test case for this. Previous test case was inspecting deep internals.
BREAKING CHANGE:
Related issue (if exists):

@kwonoj I think the bug is somewhere else. The Action returned by the schedule call extends Subscription. Therefor, when the Action unsubscribe is called, it should remove itself from whatever Subscription it has been added to.
However, what I'm not seeing is where the Action should unsubscribe itself after it has successfully executed, and not rescheduled. 🤔
I'm going to take a look at this. But I think maybe this isn't the right solution.
Regardless, I'm really not a fan of our Scheduler architecture, and I'm going to be trying to think of ways to migrate us to something better soon.

However, what I'm not seeing is where the Action should unsubscribe itself after it has successfully executed, and not rescheduled

I think that's crux of this issue? afaik we don't have places action self-unsubscribes once it complets. This is essentially we did before, and refactoring removed it.

I'm going to take a look at this.

Fine for me.

Regardless, I'm really not a fan of our Scheduler architecture,

I think most of us are on the same page, for me mostly where we have schedulers & schedules actions.

@benlesh fyi, this is original fix we did around observeOn. (https://github.com/ReactiveX/rxjs/pull/2248/files#diff-3e90d4c179a0e06539c3b8d62f8b782c59630cdb4e65d44fd926ea2147145aa0R53)

@kwonoj Okay, so digging into this.... There's some clean up I can do to the code but the reason we keep around the Actions is because of the design of rescheduling. Technically, you can reschedule an action Asynchronously because of closures therefor, we can't unsubscribe the Action and have it remove itself from any parent subscription simply because it executed.
Ultimately, I now believe that this form of rescheduling is a design flaw that necessitates memory leaks or extra clean up code that requires "deep knowledge" of RxJS internals. Honestly, the requirement of "deep knowledge" of scheduler behaviors is one of the reasons I strongly believe using schedulers, in general, is inadvisable.
I think long-term we need to move away from our current Scheduler architecture, and move towards something more simplified.  In the short term, we can fix observeOn in a manner similar to what we're doing here, but any user-land implementations leveraging our Schedulers will have the same problems with no obvious solutions.

@benlesh

because of the design of rescheduling

Yup, that's pretty much what I shared in slack channel.

the requirement of "deep knowledge" of scheduler behaviors is one of the reasons I strongly believe using schedulers, in general, is inadvisable.

agreed.

I think long-term we need to move away from our current Scheduler architecture, and move towards something more simplified

agreed again.

but any user-land implementations leveraging our Schedulers will have the same problems with no obvious solutions

it is already happening anyway, isn't it? as long as someone uses scheduling, or even plain observeOn operator, they're hitting this.

In the short term

I agree with all of this including long term fix. For now, I'd like to suggest short term fix to resurrect what we did previously, or similar way - while techinically it is not desirable, it is not breaking changes for the observeOn operator itself at least, and this impacts userland like redux-observable directly. (for now, any user uses redux-observable hits this 100%).

Just clarifying, I'm not saying this PR as-is should be checked in. I'm fine with other short term solutions.

Citing @kwonoj's 🚢 here: https://github.com/ReactiveX/rxjs/pull/6559#discussion_r688160935 in lieu of an approval, I'll take it.


Loading fileupload.js as a separate asset in place of including in filemanager.js

jquery.fileupload doesn't support to be loaded two times. Unfortunately it is included in the filemanger.js. If a developer use fileupload and include it as a asset for editing a block from a package it was loaded two time (First with filemanager.js and second with the asset from the block controller) and all is buggy.
For Example if in edit mode i add :
$this->requireAsset('core/app/editable-fields');
$this->requireAsset('core/file-manager');

The fileupload script is loaded two times, once in editable fields group and secon into the filemanager.js
Unfortunately no developper can work with fileupload in this configuration.

How are you included file upload in your block? If you're included it with $this->requireAsset('javascript', 'jquery/fileupoad'); it shouldn't be included twice. If you're hard-coding it – yeah, you're going to have a problem.

no just by this
$this->requireAsset('core/app/editable-fields');

because in app.php :
        'core/app/editable-fields' => array(
            array(
                array('javascript', 'jquery'),
                array('javascript', 'bootstrap/dropdown'),
                array('javascript', 'bootstrap/tooltip'),
                array('javascript', 'bootstrap/popover'),
                array('javascript', 'jquery/ui'),
                array('javascript', 'core/events'),
                array('javascript', 'underscore'),
                array('javascript', 'core/app'),
                array('javascript', 'bootstrap-editable'),
                array('css', 'core/app/editable-fields'),
                array('javascript', 'jquery/fileupload')
            )
        ),

AND to be clear, fileupload isn't loaded as array('javascript', 'jquery/fileupload') by filemanger but INCLUDED in the FILE !

Ah, that makes sense. This should fix it: 96c0ce7e41b1f3c0b3e53c12515e72104e41a031

Great !!!! Thanks


Add custom message response options for emote commands

Pull request checklist:

[x] CHANGELOG.md was updated, if applicable
[x] Documentation in docs/ or install-docs/ was updated, if applicable

Well I couldn't figure out:

How to get the source parameter working
Why it's breaking every letter into it's own individual line: https://i.alazymeme.com/BrokenNuttyImage.png

Don't shake your head at me


Updated release template after 1.2.3.

Signed-off-by: dblock<EMAIL_ADDRESS>Description
A few changes to improve the release template.
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1402 (c3c42f2) into main (1b94c8d) will decrease coverage by 19.38%.
The diff coverage is n/a.

:exclamation: Current head c3c42f2 differs from pull request most recent head 4278f79. Consider uploading reports for the commit 4278f79 to get more accurate results

@@              Coverage Diff              @@
##               main    #1402       +/-   ##
=============================================
- Coverage     94.08%   74.69%   -19.39%
  Complexity       11       11
=============================================
  Files           139       19      -120
  Lines          3061       83     -2978
  Branches          8        8
=============================================
- Hits           2880       62     -2818
+ Misses          173       13      -160
  Partials          8        8

Impacted Files
Coverage Δ

src/paths/output_dir.py

src/manifests/build_manifest.py

src/test_workflow/integ_test/integ_test_suite.py

...orkflow/integ_test/integ_test_runner_opensearch.py

src/build_workflow/builder.py

...workflow/opensearch/build_artifact_check_plugin.py

..._workflow/input_manifests_opensearch_dashboards.py

src/test_workflow/bwc_test/bwc_test_suite.py

src/manifests/component_manifest.py

src/assemble_workflow/bundles.py

... and 110 more

Continue to review full report at Codecov.

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


migrate test_lint to GH Actions

I found that GH Actions is faster than Circle CI, and this PR will migrate test_lint job to GH Actions. test_lint runs on GH Actions equally if not fasters even without CI cache.

[x] I have followed (at least) the PR section of the contributing guide.

Here is a result from GH Actions https://github.com/dulmandakh/material-ui/runs/3066330537

We don't intend to switch our CI provider. It's better to have CI in a single place.
GitHub actions is only used for development related tasks.
Azure Pipelines for meassuring bundle size.
CircleCI has some other features that we use that need investigation first if they're supported by GitHub actions.
Appreciate the work but such things are best discussed in an issue first.

@eps1lon what if I migrate all Circle CI jobs to GH Actions?


API "DELETE /repositories/{repo_name}/tags/{tag}" is misbehaving

ENV
[#9#root@ubuntu-1604 ~]$docker version
Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:18 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:40:56 2017
 OS/Arch:      linux/amd64
 Experimental: false
[#10#root@ubuntu-1604 ~]$
[#10#root@ubuntu-1604 ~]$docker-compose version
docker-compose version 1.16.1, build 6d1ac21
docker-py version: 2.5.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016
[#11#root@ubuntu-1604 ~]$

harbor version => harbor-offline-installer-v1.2.0.tgz

EXPERIMENT

In this test, I create a project prj2 and push three tags v1/v2/v3 referring to repository prj2/photon.
then, I test DELETE /repositories/{repo_name}/tags/{tag} REST API as follow:
0x01
[#629#root@ubuntu-1604 ~]$curl -X DELETE --header 'Accept: text/plain' 'https://<IP_ADDRESS>/api/repositories/prj2%2Fphoton/tags/v4' -i -k -u admin:Harbor12345
HTTP/1.1 200 OK
Server: nginx/1.11.13
Date: Thu, 02 Nov 2017 05:38:09 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive
Set-Cookie: beegosessionID=e34a90b6fdddf5a9a7f7d6d449108d24; Path=/; secure; HttpOnly

[#630#root@ubuntu-1604 ~]$

v4 is not available, but I get 200 OK.
Should be 404 Not Found.

0x02
[#630#root@ubuntu-1604 ~]$curl -X DELETE --header 'Accept: text/plain' 'https://<IP_ADDRESS>/api/repositories/prj2%2Fphoton111/tags/v3' -i -k -u admin:Harbor12345
HTTP/1.1 200 OK
Server: nginx/1.11.13
Date: Thu, 02 Nov 2017 05:39:39 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive
Set-Cookie: beegosessionID=ea5cc0d60807679d056a2939ed7bb067; Path=/; secure; HttpOnly

[#631#root@ubuntu-1604 ~]$

prj2/photon111 is not available, but I get 200 OK.
Should be 404 Not Found.

0x03
[#638#root@ubuntu-1604 ~]$curl -X DELETE --header 'Accept: text/plain' 'https://<IP_ADDRESS>/api/repositories/prj2%2Fphoton/tags/v3' -i -k -u admin:Harbor12345
HTTP/1.1 200 OK
Server: nginx/1.11.13
Date: Thu, 02 Nov 2017 05:42:27 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive
Set-Cookie: beegosessionID=8a3d58df3719ea4cd368d9b60e068bdb; Path=/; secure; HttpOnly

[#639#root@ubuntu-1604 ~]$

Both prj2/photon and v3 are available, and I get 200 OK.

0x04
[#639#root@ubuntu-1604 ~]$curl -X DELETE --header 'Accept: text/plain' 'https://<IP_ADDRESS>/api/repositories/prj2%2Fphoton/tags/v3' -i -k -u admin:Harbor12345
HTTP/1.1 200 OK
Server: nginx/1.11.13
Date: Thu, 02 Nov 2017 05:42:56 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive
Set-Cookie: beegosessionID=e5570f06f124413c701255ac1dba8551; Path=/; secure; HttpOnly

[#640#root@ubuntu-1604 ~]$

Both prj2/photon and v3 are available before, but they have been deleted already, and I still get 200 OK.
Should be 404 Not Found.

According to Harbor API doc, I think the DELETE tests above are misbehaving.

This is an issue in documentation.
HTTP DELETE is idempotent, hence it should return 200 when a resource does not exist.

So, it is a little bit confusing between the description of HTTP Status Code and the behavior of DELETE.
but, I'm OK with that.


Convert DiscoveryThread to task based

DiscoveryThread from #105 would be better as a task. Reimplement as a task.

I think our logging is fine but if someone wants to double check and close this issue go for it


pkg/chartutil: fix nil-dereference

What this PR does / why we need it:
Adds a nil-check. req can be nil which will result in a nil-dereference. Found by OSS-Fuzz.
Special notes for your reviewer:
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=55073.
@hickeyma
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

Needs to pass CI


CAP23 support: Two-Part Payments with ClaimableBalanceEntry

CAP23 support: Two-Part Payments with ClaimableBalanceEntry
This proposal introduces new operations that separate sending a payment from receiving the payment. CAP 23 introduces a new ledger key type and a new set of operations.
This issue outline the work required to support CAP23 in the ingestion system and web API.
Ingestion

[ ] Create a new state table for claimable_balances.
[ ] Create new effects.
[ ] On State ingestion create claimable_balances from state entries.
[ ] Ingest CreateClaimableBalanceOp.

[ ] Create new claimable_balance.
[ ] Create claimable_balance_created effect.

[ ] Ingest ClaimClaimableBalanceOp.

[ ] Remove claimable balance.
[ ] Create claimable_balance_claimed effect.

[ ] Update StateVerifier.

API

[ ] Introduce the end-point /claimable_balances.
[ ] Allow filtering by:

[ ] created_by: returns all claimable balances created by the given account.
[ ] claimant: returns all claimable balances where the given account is one of the claimants.
[ ] asset: returns all the claimable balances where the asset is the given asset.

[ ] Introduce an end-point to fetch a single claimable balance: /claimable_balances/id.

[ ] This resource should have a sub-resource for effects /claimable_balances/id/effects.

[ ] After the balance has been claimed, you should get a 404 when visiting /claimable_balances/id - however, you should get the list of effects after doing /claimable_balances/id/effects (similar to how it works for accounts)

Claimable balance payload:
{
    "_links": {
      "self": {
        "href": HOST + "/claimable_balances/2"
      },
      "effects": {
        "href": HOST + "/claimable_balances/2/effects"
      }
    },
    "id": "2",
    "asset": "EUR:GDVZJHLRA3Y4UCGJYC6CG7XCLHBPSZCDBZVVN3NYAP3YBZYPIOY3PCWB",
    "balance": "10",
    "created_by": "GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7",
    "sponsor": "GUUZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7",
    "claimants": [
      {
        "destination": "GBYUYEAO52BYHZEUMLHMHM5SWENBB2RHKAGDVAKBUHZLJTSSRMR6SZYL",
        "predicate": {
          "type": 4,
          "value": "1594066025"
        }
      },
      {
        "destination": "GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7",
        "predicate": {
          "type": 1,
          "value": [
            {
              "type": 4,
              "value": "1594066025"
            },
            {
              "type": 3,
              "value": "1594066090"
            }
          ]
        }
      },
    ],
}

SDKs

[ ] Support loading and filtering multiple claimable_balances.
[ ] Support loading a single claimable_balance.
[ ] Add support for claimable balance operations.

The suggested payload format of predicates is pretty cryptic right now. Horizon usually presents more readable resources.
There's some prior work around predicate trees in a JSON format. One notable example is mongodb's query language.
I propose moving from a {"type": i, "value": x} format to a {i_str: x} format.
Example
Original
"predicate": {
  "type": 1,
  "value": [
    {
      "type": 4,
      "value": "1594066025"
    },
    {
      "type": 3,
      "value": "1594066090"
    }
  ]
}

Proposed
"predicate": {
  "and" : [
    {"after":<PHONE_NUMBER>},
    {"before":<PHONE_NUMBER>}
  ]
}

Horizon support for CAP23 has been completed.


Provide a right-click menu command to force a refresh of all apps.

Right now the only way to force a refresh is to run graviton --background-update from the command line.

Done


Application Porting?

Hello,
Great results with the PD Cloth Simulation.
We're in the lookout for alternatives to use in Unreal Engine, will this be implementable to the Engine, as a 3rd party library?
Thank you.

Hi, thank you for your interest. I personally haven't worked on making 3rd-party plugins so I cannot comment on this.

I tried stripping DiffCloth down to implement in Godot Engine.
Not sure what I was doing.
https://github.com/fire/differentiable_cloth/tree/stripped


fix(postgres): Add support for domain types description

Fix commit updates the postgres::connection::describe module to add full support for domain types. Domain types were previously confused with their category which caused invalid oid resolution.
Fixes #110 launchbadge/sqlx#1110

I am not sure why the GitHub checks fail with a communication error during compilation.

Thanks for this!

The commit message and original post erroneously linked to the issue #110. This is a typo: this commit fixes #1110.


podman build --network desn't work as the doc

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
In the document
$ podman build --help
--network path                               'container', path of network namespace to join, or 'host'

Describe the results you received:
podman build --network="container" .
Error: unsupported configuration network=container

or try container id
$ podman build --network 914 .
Error: unsupported configuration network=914

Describe the results you expected:
Additional information you deem important (e.g. issue happens only occasionally):
Output of podman version:
$ podman version
Version:            1.4.5-dev
RemoteAPI Version:  1
Go Version:         go1.12.6
OS/Arch:            linux/amd64

Output of podman info --debug:
$ podman info --debug
debug:
  compiler: gc
  git commit: ""
  go version: go1.12.6
  podman version: 1.4.5-dev
host:
  BuildahVersion: 1.9.0
  Conmon:
    package: podman-1.4.4-1.fc30.x86_64
    path: /usr/libexec/podman/conmon
    version: 'conmon version 0.2.0, commit: 41010e63c287618b1dc34ee11d10d268e2feeefe'
  Distribution:
    distribution: fedora
    version: "30"
  MemFree:<PHONE_NUMBER>
  MemTotal:<PHONE_NUMBER>6
  OCIRuntime:
    package: containerd.io-1.2.6-3.3.fc30.x86_64
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc8
      commit: 425e105d5a03fabd737a126ad93d62a9eeede87f
      spec: 1.0.1-dev
  SwapFree:<PHONE_NUMBER>
  SwapTotal:<PHONE_NUMBER>
  arch: amd64
  cpus: 4
  hostname: qiwan.usersys.redhat.com
  kernel: 5.1.16-300.fc30.x86_64
  os: linux
  rootless: true
  uptime: 30h 24m 24.17s (Approximately 1.25 days)
registries:
  blocked: null
  insecure: null
  search:
  - docker.io
  - registry.fedoraproject.org
  - quay.io
  - registry.access.redhat.com
  - registry.centos.org
store:
  ConfigFile: /home/qiwan/.config/containers/storage.conf
  ContainerStore:
    number: 1
  GraphDriverName: overlay
  GraphOptions:
  - overlay.mount_program=/usr/bin/fuse-overlayfs
  GraphRoot: /home/qiwan/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 1
  RunRoot: /tmp/1000
  VolumePath: /home/qiwan/.local/share/containers/storage/volumes

Additional environment details (AWS, VirtualBox, physical, etc.):

Well if you found it, you fix it.  :^)

I'm not sure if this is an issue with --Network. For man page this is used for RUN instructions.what is the expected result of --Network="container"?

This PR copies some code form buildah https://github.com/containers/libpod/pull/3633
Does this fix make sense?


Support environment variables for VCS URL's

Currently processing the Pipfile only supports injecting environemnt variables in the [source] section of the file.
For private Github repos it is not possible to use the environment variables because the URL is not parsed.
Would there be support for a PR to parse the URL for VCS entries?
... or would someone on the project be willing to add that?

Duplicate #3516