edtlib: Match any parent bus when binding lacks an explicit on-bus

There are some drivers in the tree that support devices on multiple
different buses, although so far this has not been represented in
device tree using the bus concept. In order to convert these drivers &
bindings to refer to a formal bus in device tree we need to be able to
match bindings which lack an explicit "on-bus: ..." value against any
parent bus.
The two drivers I'm particularly targeting is the ns16550 UART driver
(drivers/serial/uart_ns16550.c) and the DW I2C driver
(drivers/i2c/i2c_dw.c). They both support devices with a fixed MMIO
address as well as devices connected and discovered over PCIe. The
only issue is that instead of encoding the bus information the proper
DT way these bindings use a special "pcie" property in the DT node
entries to indicate whether the node is on the PCIe bus or not.
Being able to convert the above two drivers to use the DT bus concept
allow the removal of "hacks" like this:
 #if DT_INST_PROP(0, pcie) || \
       DT_INST_PROP(1, pcie) || \
       DT_INST_PROP(2, pcie) || \
       DT_INST_PROP(3, pcie)

to the more intuitive:
 #if DT_ANY_INST_ON_BUS_STATUS_OKAY(pcie)

This also has the benefit that the driver doesn't need to make any
arbitrary assumptions of how many matching devices there may be but
works for any number of matches. This is already a problem now since
e.g. the ns16550 driver assumes a maximum of 4 nodes, whereas
dts/x86/elkhart_lake.dtsi defines up to 9 different ns16550 nodes.
Signed-off-by: Johan Hedberg<EMAIL_ADDRESS>

I'd rather see us add proper PCI/PCIe support and represent the DTS nodes accordingly:
https://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf
https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/tree/Bindings/pci/pci.txt
(not sure if this binding applies to any of the intel SoCs we support in Zephyr:)
https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/tree/Bindings/pci/intel-gw-pcie.yaml

I'd rather see us add proper PCI/PCIe support and represent the DTS nodes accordingly

@galak that's pretty much my plan, i.e. the next step is to define a binding for a PCIe bus and then reorganise all PCIe-based ns16550 nodes in device tree under parent PCIe bus nodes. Anyway, I guess that's kind of independent of this particular PR which just gives a way to define bindings that can match multiple different busses, which in turn allows accurately describing the status quo of our i2c_dw and ns16500 drivers in proper device tree terms.
The Linux specifications for PCI look quite big and complex, so at least initially I wasn't planning to try to implement all of them, but I will try to follow the structure and naming of the specs as much as possible.

@mbolivar updated now, please take another look. Two main changes:

Moved the second check to a new for-loop so that we test for explicit bus values on all compats before attempting the "any bus" check
Added a if on_bus is not None: test before the second for-loop, since otherwise the first loop would already have gotten a match if one exists

Thanks for the update.

Moved the second check to a new for-loop so that we test for explicit bus values on all compats before attempting the "any bus" check

So the question is basically whether a node with compatible = "a", "b"; on an I2C bus should prefer:

a binding for "b" on an I2C bus, or
a binding for "a" on no bus at all

Assuming those are the only two bindings available, right?
I would have naively guessed that the tooling would match the most specific compatible first if possible, even after this change, but I really don't know what the 'right' thing is. Curious what motivated this change and what other people think.

I would have naively guessed that the tooling would match the most specific compatible first if possible

I think the thought was that a binding with an explicit on-bus: ... carries with it a stronger specificity than its position within the compatible = ... array. This would also maintain backwards compatible behaviour, i.e. if we take your example: if binding "b" was selected before this PR it will also be selected after this PR. However, I'm fairly new to these subtleties of device tree and haven't really done much deep thinking about it. I'm fine either way (mainly because I think this is unlikely to be anything but a theoretical concern) and can update the patch if we so decide.

The compatibility argument is convincing to me.  @pabigot , @galak ?

The compatibility argument is convincing to me. @pabigot , @galak ?

What case are you guys concerned about w/regards to compatible and on-bus?

@galak I'm not sure I can explain it any better than what @mbolivar-nordic did in his earlier comment, but I'll try. Basically it's about the order in which entries in compatible are matched against bindings.
Given compatible = "a", "b"; we had two options for how to do the matching order, either:

"a" exact bus match
"b" exact bus match
"a" any bus match
"b" any bus match

or:

"a" exact bus match
"a" any bus match
"b" exact bus match
"b" any bus match

And what we agreed upon (or at least what I've now implemented) is the first option.

Starting from first principles: As far as I can tell the whole "on-bus" thing is specific to Zephyr's binding description format.  There's nothing about buses anywhere in DT Schema that I can see, nor in Linux.
From that perspective I think "on-bus" should not be a primary consideration from the perspective of checking whether compatibles are supported.
(Then I have questions related to #29904 and #20669, which come down to: if a devicetree node has multiple compatibles, and the bindings search path has descriptions for more than one, the current rule is the binding for the earliest compatible in the list is picked, right?  What happens if the driver for that compatible is not enabled?  Or are symbols generated for all compatibles, so if the driver for the next compatible is enabled it would work?  Enquiring minds want to know, but perhaps not specifically relevant here.)
In any case my interpretation from the devicetree perspective is the first compatible that can be supported should be picked.  So that'd be the option not currently taken in https://github.com/zephyrproject-rtos/zephyr/pull/30928#issuecomment-749560237: a with bus; a without bus, bwith bus,b` without bus.
This fits with my feeling that if some device is normally on a SPI or I2C bus, and I have a driver for a more specific compatible that is not on a bus, I want that driver to be used, whether or not the node is topographically a child of a bus.  A real-world example would be a binding for a SPI NOR flash device with:
compatible = "vendor,qspi-flash", "jedec,spi-nor";

where the first doesn't have on-bus and the node is a child of a SPI bus.  Here if the QSPI flash driver is enabled that's what I want used in preference to the generic SPI NOR driver.

@pabigot that argument about the ordering sounds quite reasonable to me, i.e. while I was attempting keep the behaviour compatible with the current Zephyr implementation, it might be even better to try to be compatible with generic (non-Zephyr specific) DT where bus definitions don't play any role in selecting the compatible.
At this point I'm happy to implement this either way, as long as you guys can agree on one way or the other :)

I agree with @pabigot on this. No matter what we decide to go with, please incorporate a comment stating why this was chosen (either in code or documentation) so the reason isn't forgotten.

Ok, so I also find @pabigot 's argument more convincing than my original one, so I've pushed an update which changes to the other order of matching. I also added justifications as requested by @henrikbrixandersen .

@galak @mbolivar-nordic any further comments on this or is it ready to be merged?

@galak @mbolivar-nordic any further comments on this or is it ready to be merged?


Adding/removing hyphen from tag in front matter isn't detected by hugo server

Start with:
tags: ["sliding-window"]

It's displayed on the page as Sliding-Window.
Change it to:
tags: ["sliding window"]

It's still displayed on the page as Sliding-Window.
Restart hugo server. Refresh the page.
Now it's displayed on the page as Sliding Window.
What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.126.3+extended darwin/arm64 BuildDate=2024-06-02T13:02:43Z VendorInfo=brew

Does this issue reproduce with the latest release?
Yes

Related to https://github.com/gohugoio/hugo/issues/12202.
The terms "foo bar" and "foo-bar" are published to the same path:  public/tags/foo-bar/index.html. Testing as far back as v0.54.0 you get the same behavior... this isn't anything new.


[Feature Request] Change Default Zoom In

As a user when I zoom in I would like the centre of the zoomed in window to be where the mouse pointer is rather than the centre of the canvas.
This is a common feature in many other zoomable displays. Not a huge issue to work around with the navigation window or middle mouse button but it would be nice if what I was focussing on filled the screen when I zoom rather than the zoom going to a completely different part of the diagram.

Unless you can supply a pull request implementing this it won't change as it's part of the Eclipse Graphical Eclipse Framework.

Re-opened this.


Bump minimum Node to 14.17, ES to 2020 for TS 5.1

The minimum of TS 5.0 is Node 12.20, which has been EOL for about a year.
Per #53198, our "policy" is to try and support the previous EOL version, which will shortly become Node 14, before TS 5.1 is out.
This PR bumps our minimum Node version to Node 14.17, the first Node 14 release with stable ESM, as well as bumps our lib target to ES2020.
The esbuild config cannot be just ES2020, as it turns out that Node 14 only partially supports some ES2020 features. Notably, optional chaining has some broken edge cases which were not fixed until Node 16.1. See: https://github.com/evanw/esbuild/issues/2940

I could also back this down to Node 14.13, which is to Node 12.20 as Node 14.17 is to Node 12.20.
Or, Node 14.18, for node: requires.
https://nodejs.org/api/esm.html

14.17 seems like the best bet; if we were to use glob v9 (which, I may send a PR for), that's its minimum.

Silly question: does this PR change performance, since our emitted code could change to be closer to the source?

No, unfortunately the only new syntax we gain is optional catch bindings.
We could just as easily just leave es2018 and be fine.

Yes, though I'd like to bikeshed es2019/es2020.

ugh, i just realized that the perf runner is using 14.15.1 which is older. Maybe 14.13 is the right thing

@typescript-bot perf test this faster

I have bumped the perf runner to 14.21.3 for its copy of Node 14. I may bump the others later but I don't want to break continuity too badly.
I'm going to try and do this PR for 5.1; if people complain, we can easily roll it back.

FWIW, AFAICT this PR broke compatibility with Visual Studio 2019, as the Microsoft.TypeScript.MSBuild 5.1+ NuGet package's MSBuild .targets and .props files always use VS's node.exe which in VS2019 is (always?) version 12 - so building a solution from within VS fails.
I've documented that in this issue: https://github.com/microsoft/TypeScript/issues/54686


BoxShadow: Accept values for vertical and horizontal spread_radius

Previously only one value was accepted and used for horizontal and vertical spread_radius, now two values are accepted, for horizontal spread radius and vertical spread radius.
Maintainer merge checklist

[x] Title is descriptive/clear for inclusion in release notes.
[x] Applied a Component: xxx label.
[ ] Applied the api-deprecation or api-break label.
[ ] Applied the release-highlight label to be highlighted in release notes.
[x] Added to the milestone version it was merged into.
[x] Unittests are included in PR.
[ ] Properly documented, including versionadded, versionchanged as needed.

I am getting this error after compiling my app and opening it on my Android phone:
<RoundedButton@Button>:
    background_color: 0,0,0,0
    canvas.before:
        Color:
            rgba: black
        BoxShadow:
            pos: self.pos
            size: self.size
            border_radius: root.radius * 4
            blur_radius: dp(root.elevation)
        Color:
            rgba: root.bg_color
        RoundedRectangle:
            pos: self.pos
            size: self.size
            radius: root.radius


Push notification reaches APNS, not delivered to an iOS device

I assume that notifications are successfully delivered to APNS, feedback is always empty and library emits "transmitted" event. Notification looks like:
var pushMessage = new apn.Notification({
        contentAvailable: 1,
        alert: {
            title: chatName,
            body: text
        },
        payload: {
            chatID: chatID,
            username: username
        }
});

Cert.pem and key.pem are correct, it was checked with the openssl command.
App is an Ionic project. Phonegap-push-plugin is used to integrate native SDK, which works for Android, but not for the iOS.
I am using AdobePhoneGap build to build my app. I have followed countless tutorials and checked every step many times, if someone has any idea what could be wrong please let me know. If any more information is needed let me know.
I am aware that this might not be an node-apn issue, but maybe it is, or someone has an idea. Close it if you think it is not the case.
Thanks

Which version of the module are you using?

var pushMessage = new apn.Notification({
    aps: {
        contentAvailable: 1,
        alert: {
            title: chatName,
            body: text
        },
    },
    chatID: chatID,
    username: username
});

Try that ☝

Worked! Thanks! Can be closed.


accissing var.instans issue

Godot version:

3.1
OS/device including version:

ubuntu 18.04.2/intel
Issue description:

i did :
var derictions = -1
var hit=preload("res://Area2D.tscn")
var hit2=hit.instance()
hit2.direction = derictions
and hit2.direction did not change
Steps to reproduce:
Minimal reproduction project:

platformer 2.zip

I just tested your project and it does change. Again, it's not an engine issue, if you need support with your game this is not the place to ask for it.

you are laying

I'm sitting actually.
	if Input.is_action_pressed("ui_right"):
		if sign($Position2D.position.x)==-1:
			$Position2D.position.x*=-1
		$Sprite.flip_h = false
		$Sprite.play("run")
		motion.x = SPEED
		derictions=1
		hit2.direction = derictions
		print("Pressed: right")
		print("hit2.direction = %d" % hit2.direction)
	elif Input.is_action_just_pressed("ui_attack"):

		get_parent().add_child(hit2)
		get_parent().add_child(hit3)
		hit2.position=$Position2D.global_position
		hit3.position=$Position2D2.global_position

		$Sprite.play("atack")
		emit_signal("hit",derictions)
	elif Input.is_action_pressed("ui_left"):
		if sign($Position2D.position.x)==1:
			$Position2D.position.x*=-1
		$Sprite.flip_h = true
		$Sprite.play("run")
		motion.x = -SPEED
		derictions=-1
		hit2.direction = derictions
		print("Pressed: left")
		print("hit2.direction = %d" % hit2.direction)

Pressed: right
hit2.direction = 1
Pressed: right
hit2.direction = 1
Pressed: left
hit2.direction = -1
Pressed: left

Now stop wasting our time.

sorry

i am so sorry


Added maximum-product-subarray.cpp

Also corrected the folder name from "Search & Short" to "Search & Sort".

They are not considering dsa,cp,algorithm repository :(
all the pr will not be considered in hacktoberfest but your contribution will be for lifetime, this will help many students to practice dsa .
Thank you for your contribution :)
you can contribute to other repo


I do not agree with the terms of use

Version
1.93
Details
I was reading terms of use, i expected to read terms of use, but russophobia happened
Steps to reproduce

Go to this page https://github.com/Tyrrrz/YoutubeDownloader
read terms of use
profit!

Dude, he is from Ukraine. What should he prove? He live there?!


x954 As ARA (ilaria) I would like to link the operations to one work number when using the section registration page

The single work number selected applies to all operations created in one request

Work number is mandatory.


freebsd-arm64 support

Cannot download "https://github.com/sass/node-sass/releases/download/v4.13.1/freebsd-arm64-79_binding.node"
https://github.com/sass/node-sass/releases/   shows
freebsd-ia32-64_binding.node
freebsd-ia32-72_binding.node
freebsd-ia32-79_binding.node
freebsd-x64-64_binding.node
freebsd-x64-72_binding.node
freebsd-x64-79_binding.node
no arm

Yes, ARM isn't currently supported on any distribution

@raedah sorry, I don't have an ARM setup to build binaries. I am using poudriere, so maybe emulation could be used.

If you can use an aws instance, they have freebsd arm64 there.


Example project.ruleset.xml: add exclusion of minified JS files.

P.S.: it would be nice if WP-core would actually comply with the .min.js naming conventions for minified JS ...
Some examples of files which are minified without the .min.js extensions:

html5.js as shipped with most default themes
wp-includes/js/jquery/jquery.js
wp-includes/js/jquery/jquery.query.js
wp-includes/js/jquery/jquery.ui.touch-punch.js
wp-includes/js/swfobject.js

The reason why those files do not ship with .min.js extension is because they are 3rd party libraries and that is the format that they were added with a long long time ago, as plugins and themes have come to depend on these files being included changing the extension of the files has been avoided so as to not cause any breakage.
With that out of the way, why only exclude minified JavaScript files, why not exclude all JavaScript files?
And further, shouldn't only .php files be included in the first place?

With that out of the way, why only exclude minified JavaScript files, why not exclude all JavaScript files?
And further, shouldn't only .php files be included in the first place?

PHPCS is capable of sniffing PHP, JS and CSS files and has natively 70 sniffs available which can detect & fix issues in more than just PHP files.
WPCS uses a quite a few of these sniffs.
WPCS also contains a few sniffs which have specific features targetting JS and/or CSS ( VIP.AdminBarRemoval and the upcoming Classes.ClassInstantiation).
So, for the example ruleset to suggest to people to only target PHP files, would cause them to miss out on some of the features and benefits WPCS can bring.

PHPCS is capable of sniffing PHP, JS and CSS files and has natively 70 sniffs available which can detect & fix issues in more than just PHP files.

Oh, I did not know this 👍

So, for the example ruleset to suggest to people to only target PHP files, would cause them to miss out on some of the features and benefits WPCS can bring.

Neat 👌

Should this list of files then be added to the exclusion in this PR also then?

html5.js as shipped with most default themes
wp-includes/js/jquery/jquery.js
wp-includes/js/jquery/jquery.query.js
wp-includes/js/jquery/jquery.ui.touch-punch.js
wp-includes/js/swfobject.js

Should this list of files then be added to the exclusion in this PR also then?

The example ruleset already contains a group of patterns to exclude WP Core completely from a run.
See: https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/blob/develop/project.ruleset.xml.example#L5-L12

Should this file get renamed to phpcs.xml.sample? Cf. https://github.com/wp-cli/scaffold-command/pull/19

Should this file get renamed to phpcs.xml.sample?

In that case I would suggest to name it phpcs.xml.dist.sample instead.

A separate PR can be opened to rename the file.


Problem in combination IBM CE and Lithops

Since last Saturday, we have been observing a strange situation in the combination of IBM Code Engine and Lithops. Approximately every 10-20 starts, I see that the IBM executor has completed its work
% ibmcloud ce jr list -s age
Listing job runs...
OK

Name                   Requested  Pending  Running  Failed  Succeeded  Unknown  Age    Mode
lithops-cb59bf-4-m006  0          0        0        0       4          0        8m36s  task

However, lithops logs are still waiting for a result from one of the executors:
2024-01-22 10:20:33,771 - DEBUG - lithops.monitor[Thread-31] - monitor.py:127 - ExecutorID cb59bf-4 - Pending: 1 - Running: 0 - Done: 3
2024-01-22 10:21:07,346 - DEBUG - lithops.monitor[Thread-31] - monitor.py:127 - ExecutorID cb59bf-4 - Pending: 1 - Running: 0 - Done: 3

@JosepSampe maybe you have an idea why this happened? How can I help debug this situation?
Additional info:
% ibmcloud ce jobrun events -n lithops-cb59bf-4-m006
Getting jobrun 'lithops-cb59bf-4-m006'...
Getting instances of jobrun 'lithops-cb59bf-4-m006'...
Getting events for all instances of job run 'lithops-cb59bf-4-m006'...

Getting instances of jobrun 'lithops-cb59bf-4-m006'...
Getting events of jobrun 'lithops-cb59bf-4-m006'...
For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-job.
Run 'ibmcloud ce jobrun events -n lithops-cb59bf-4-m006' to get the system events of the job run instances.
Run 'ibmcloud ce jobrun logs -f -n lithops-cb59bf-4-m006' to follow the logs of the job run instances.
OK

Name:          lithops-cb59bf-4-m006
ID:            e01bc972-149b-461b-8a7e-36318ab07100
Project Name:  metaspace-prod-ce
Project ID:    d8d40498-98b7-4105-bd8d-edb51f40225d
Age:           23m
Created:       2024-01-22T09:59:08+01:00

Job Ref:                lithops-worker-301-69a73a4932
Commands:
  /usr/local/bin/python
Arguments:
  /lithops/lithopsentry.py
  $(ACTION)
  $(PAYLOAD)
Environment Variables:
  Type                     Name     Value
  Literal                  ACTION   run
  ConfigMap key reference  PAYLOAD  lithops-cb59bf-4-m006.lithops.payload
Image:                  docker.io/metaspace2020/metaspace-lithops-ce:3.0.1
Resource Allocation:
  CPU:                1
  Ephemeral Storage:  400M
  Memory:             2G

Runtime:
  Mode:                  task
  Array Indices:         0-3
  Array Size:            4
  JOB_ARRAY_SIZE Value:  4
  Max Execution Time:    1800
  Retry Limit:           2

Status:
  Completed:          22m
  Instance Statuses:
    Succeeded:  4
  Conditions:
    Type      Status  Last Probe  Last Transition  Reason
    Pending   True    23m         23m
              True    23m         23m
    Running   True    23m         23m
    Complete  True    22m         22m

Events:
  Type    Reason     Age                 Source                Messages
  Normal  Updated    23m (x10 over 23m)  batch-job-controller  Updated JobRun "lithops-cb59bf-4-m006"
  Normal  Completed  23m                 batch-job-controller  JobRun completed successfully

Instances:
  Name                       Running  Status     Restarts  Age
  lithops-cb59bf-4-m006-0-0  0/1      Succeeded  0         23m
  lithops-cb59bf-4-m006-1-0  0/1      Succeeded  0         23m
  lithops-cb59bf-4-m006-2-0  0/1      Succeeded  0         23m
  lithops-cb59bf-4-m006-3-0  0/1      Succeeded  0         23m

Hi @sergii-mamedov, from the Code Engine perspective everything looks good. Is it still possible for you to access the Lithops logs inside the containers? Just want to see if some of them produced an error while storing the final status or result file in the object store, or the issue comes from a different part

Yes, that's weird, it seems you can see the container lithops-cb59bf-4-m006-0-0/lithops-worker-301-69a73a4932 and describe it, but there are no logs at all. I think It won't be easy to see if it is a Lithops issue without the worker logs. Might this be something related to an Out Of Memory issue?

Yes, that's weird, it seems you can see the container lithops-cb59bf-4-m006-0-0/lithops-worker-301-69a73a4932 and describe it, but there are no logs at all.

I do not know how to do it. Please provide instruction if you know how.

Might this be something related to an Out Of Memory issue?

I think no, because we can handle with OOM. And now it is happens with a different datasets and different step.

What I can see is that in your client logs, the function is in pending status:
2024-01-22 10:20:33,771 - DEBUG - lithops.monitor[Thread-31] - monitor.py:127 - ExecutorID cb59bf-4 - Pending: 1 - Running: 0 - Done: 3

All the functions write a 0 byte file in COS when they start, so that we know from the client at what moment they started and we can change the state from pending to running.
2024-01-22 08:59:11,887 [DEBUG] ibm_cos.py:148 -- PUT Object lithops.jobs/cb59bf-4-M006/00003/3ef4991b2d4e.init - Size: 0.0B - OK

In your case the function is always in pending status, so yes, it is not an OOM error, because this means your code didn't start executing.
I have the feeling that most probably the lithops code didn't even start executing, because at least you should see a few log lines if it fails because of a Lithops issue somewhere. What I don't understand is why you see the instance as Succeeded:
Instances:
  Name                       Running  Status     Restarts  Age
  lithops-cb59bf-4-m006-0-0  0/1      Succeeded  0         23m

Will continue investigating. Do you experience this issue all the time? or from time to time? Do you experience it in the same function execution? or with different functions?

It started on Friday. We haven't changed our code in a few weeks. We have this behavior for different steps (functions), with different number of executors and different amount of allocated resources.

@JosepSampe
Yesterday, we made an emergency switch to AWS. Because of this, the combination of IBM CE and Lihtops is no longer relevant for us. But for AWS, I saw a similar problem for one dataset (when one of the executors does not return a result). I ran this dataset three times - the problem is reproduced. I will try to reproduce it on staging and enable additional logs. I hope this helps us understand the root of the problem.


idf.py monitor custom baudrate is not applied and will always fall back to 115200 internally (IDFGH-10738)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.1
Operating System used.
Windows
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
PowerShell
What is the expected behavior?
After changing the monitor UART port to a custom one (UART0, 1, 3) with a custom baudrate, the IDF Monitor should also use this baudrate accordingly.
What is the actual behavior?
After changing the monitor UART port to a custom one with a custom baudrate, the monitor only shows one line from bootloader, after that nothing or funny characters, depending on the baudrate.
Steps to reproduce.

Flash project with standard UART
Works
Flash same project but with custom UART
Works
Flash same project but with custom UART and custom Baudrate
No monitor anymore

Build or installation Logs.
idf.py monitor with custom Baudrate:

--- WARNING: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM6 instead...
--- idf_monitor on \\.\COM6 230400 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
f~f~xxxx~`���怘���怘~ff~f0x400810ac: call_start_cpu1 at C:/Users/timo.meyer/esp/esp-idf/components/esp_system/port/cpu_start.c:154

idf.py monitor without custom baudrate

--- WARNING: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM6 instead...
--- idf_monitor on \\.\COM6 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0038,len:6068
load:0x40078000,len:17276
load:0x40080400,len:4
0x40080400: _init at ??:?

load:0x40080404,len:3512
entry 0x400805d0
I (85) cpu_start: Multicore app
I (85) cpu_start: Pro cpu up.
I (85) cpu_start: Starting app cpu, entry point is 0x400810ac
0x400810ac: call_start_cpu1 at C:/Users/timo.meyer/esp/esp-idf/components/esp_system/port/cpu_start.c:154

I (0) cpu_start: App cpu up.
I (103) cpu_start: Pro cpu start user code
I (103) cpu_start: cpu freq: 160000000 Hz
I (103) cpu_start: Application information:
I (107) cpu_start: Project name:     esp-uart-empty
I (113) cpu_start: App version:      1
I (117) cpu_start: Compile time:     Jul 26 2023 13:29:55
I (124) cpu_start: ELF file SHA256:  049621c42c279423...
I (130) cpu_start: ESP-IDF:          v5.1-5-g6212e8b0d6-dirty
I (136) cpu_start: Min chip rev:     v0.0
I (141) cpu_start: Max chip rev:     v3.99
I (146) cpu_start: Chip rev:         v3.0
I (150) heap_init: Initializing. RAM available for dynamic allocation:
I (157) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (164) heap_init: At 3FFB27C8 len 0002D838 (182 KiB): DRAM
I (170) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (176) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (183) heap_init: At 4008BB84 len 0001447C (81 KiB): IRAM
I (189) spi_flash: detected chip: generic
I (193) spi_flash: flash io: qio
W (197) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)
I (205) app_start: Starting scheduler on CPU0
32mI ()10) npt_ska t:arted ing sch
r on CPU1
I (210) main_task: Calling app_main()
W (210) ---: BOOTING! Build at:
W (220) ---: Jul 26 2023
W (220) ---: 13:30:14

More Information.
I made an empty example repository: timoxd7/esp-monitor-bug
I was using the ESP32-WROVER-E.
Other tools were able to show the output of the UART port correctly, even after changing the baudrate to other values then 115200. With this in mind, the problem must be inside the "idf.py monitor" command.

I'm sorry but I don't see in the linked example project that you would change the UART or the baudrate. Did you upload the correct version?
The following shows that monitor is connected with 230400  baud rate:
--- idf_monitor on \\.\COM6 230400 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
f�~���f~�x��x��x�x��~`�����怘���怘��~��f��f~f�0x400810ac: call_start_cpu1 at C:/Users/timo.meyer/esp/esp-idf/components/esp_system/port/cpu_start.c:154

In this state, are you able to connect with another terminal program with baud 230400?

@dobairoland Yes, exactly. The example was started with "idf.py -p COM6 build encrypted-flash monitor", which has automatically set the baud from menuconfig, which was 230400 (but it could be anything above 115200, same result). However, for example with putty, i was able to get a valid UART output, with the same code without flashing again, just exiting the idf.py script and opening the port with putty.

Thanks @timoxd7. Could you please update the example so we could try to reproduce this?

@dobairoland Sorry for the inconvenience, i updated the example. It is just changing the baudrate for IDF monitor in menuconfig. Now the example is in the not-working state. An explicit call to idf.py -p COM6 -b 230400 monitor does also not work and produces the same issue.

Hi @timoxd7 ,
I have tried the example provided by you and I was not able to reproduce the issue.
If you are using a custom baud rate you will always see the first characters (boot log) with decoding issues. Those are printed before the baud rate is changed. From your log, it looks like it is your case as well, as after first starting characters there is already a correctly decoded line: 0x400810ac: call_start_cpu1 at C:/Users/timo.meyer/esp/esp-idf/components/esp_system/port/cpu_start.c:154
Does the output continue from this point?
What is weird is that it does work for you if you set the baud rate to 115200. For me the output looks like this:
--- idf_monitor on /dev/cu.usbserial-142140 230400 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
f~�f~��x�x������x�x~`怘�怘���~�f�f�~f������f�f`ff�������`�~f�x�ff�f`��f�f`�����f�����`f�������xf�~��f��~���~�f���f�ff~fxff�������fx�~���fx�~��`�fx�~�����fx�~����`�fx�~��~�fx�~��������`fx�`�������������x��x�~�������x��xx�xx�x���f�����xfx怘�����x������f�������怘�����~f�����x�����怘�����x����f�����������x�����f����x`怘�f��`��f��xf���I (98) cpu_start: Multicore app
I (98) cpu_start: Pro cpu up.
I (98) cpu_start: Starting app cpu, entry point is 0x400810ac
0x400810ac: call_start_cpu1 at /Users/peterdragun/Documents/esp-idf/components/esp_system/port/cpu_start.c:154

I (0) cpu_start: App cpu up.
I (107) cpu_start: Pro cpu start user code
I (107) cpu_start: cpu freq: 160000000 Hz
I (108) cpu_start: Application information:
I (109) cpu_start: Project name:     esp-uart-empty
I (112) cpu_start: App version:      6d8d65d-dirty
I (115) cpu_start: Compile time:     Jul 28 2023 16:06:57
I (118) cpu_start: ELF file SHA256:  9cc8dd8e16e2e86d...
I (121) cpu_start: ESP-IDF:          v5.1-458-g82fde1e823
I (124) cpu_start: Min chip rev:     v0.0
I (126) cpu_start: Max chip rev:     v3.99
I (128) cpu_start: Chip rev:         v3.0
I (131) heap_init: Initializing. RAM available for dynamic allocation:
I (135) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (137) heap_init: At 3FFB2790 len 0002D870 (182 KiB): DRAM
I (141) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (144) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (147) heap_init: At 4008BB80 len 00014480 (81 KiB): IRAM
I (151) spi_flash: detected chip: generic
I (152) spi_flash: flash io: dio
W (154) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (161) app_start: Starting scheduler on CPU0
I (163) app_start:  rtimI (che) marn_t CPU St0mted on CPU0
I (173) main_task: Calling app_main()
W (173) ---: BOOTING! Build at:
W (173) ---: Jul 28 2023
W (173) ---: 16:07:11

Done
peterdragun@Peters-MacBook-Pro esp-monitor-bug % idf.py monitor -b 115200
/Users/peterdragun/Documents/esp-idf/tools/check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
Executing action: monitor
Serial port /dev/cu.usbserial-142140
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting.....
Detecting chip type... ESP32
Running idf_monitor in directory /Users/peterdragun/Documents/esp-monitor-bug
Executing "/Users/peterdragun/.espressif/python_env/idf5.1_py3.11_env/bin/python /Users/peterdragun/Documents/esp-idf/tools/idf_monitor.py -p /dev/cu.usbserial-142140 -b 115200 --toolchain-prefix xtensa-esp32-elf- --target esp32 --revision 0 /Users/peterdragun/Documents/esp-monitor-bug/build/esp-uart-empty.elf -m '/Users/peterdragun/.espressif/python_env/idf5.1_py3.11_env/bin/python' '/Users/peterdragun/Documents/esp-idf/tools/idf.py'"...
--- idf_monitor on /dev/cu.usbserial-142140 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:5352
load:0x40078000,len:15084
ho 0 tail 12 room 4
load:0x40080400,len:4
0x40080400: _init at ??:?

load:0x40080404,len:3404
entry 0x400805dc

k�`iF�������Bc�bc�F����d���处��
                               �b�*v�cC�F����BH
                                              ��Cv���(hh��b
                                                           k�!#3��R90���!j�1
                                                                            k�`� 3�

Which is consistent with starting with the default baud rate and then changing to a custom one.
Note: This is output from my macOS machine, but I have tried using Windows as well with the same results.
Just to be sure, can you please check the version of esp-idf-monitor package by running pip show esp-idf-monitor? But there shouldn't be a difference.

Hi @peterdragun,
the output of pip show esp-idf-monitor is
Name: esp-idf-monitor
Version: 1.1.1
Summary: Serial monitor for esp-idf
Home-page: https://github.com/espressif/esp-idf-monitor
Author: Espressif Systems
Author-email:
License:
Location: C:\Users\timo.meyer\.espressif\python_env\idf5.1_py3.11_env\Lib\site-packages
Requires: esp-coredump, pyelftools, pyserial
Required-by:

I attached the full output after boot in my post, so there was no other ouput with different baudrates. I noticed the issue after i upgraded from v4.3.4 during migration of our code, as we use a custom baudrate and i suddenly saw nothing anymore printed inside the console. In my example, i only saw application output on the UART with the default baudrate 115200. I tested all common baudrates above, none working.
The line you mentioned that is 0x400810ac: call_start_cpu1 at C:/Users/timo.meyer/esp/esp-idf/components/esp_system/port/cpu_start.c:154 is only the address to function translation as i am guessing. It somehow receives the Pointer and decodes it correctly (the 0x400810ac) and prints the according function using the hex to line tool, but it doesn't even show the according line I (98) cpu_start: Starting app cpu, entry point is 0x400810ac. As the decode is successfull, the monitor somehow receives it but does not correctly give the characters from the received data to the monitor's console.

Thanks for your reply. That is strange. Can you try running the monitor with --no-hints argument -> idf.py --no-hints monitor?

Looks better now, with the --no-hints option it prints everything as expected:
PS C:\work\esp-uart-custom-broken> idf.py -p COM7 --no-hints monitor
C:\Users\timo\esp\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
Executing action: monitor
Running idf_monitor in directory C:\work\esp-uart-custom-broken
Executing "C:\Users\timo\.espressif\python_env\idf5.1_py3.11_env\Scripts\python.exe C:\Users\timo\esp\esp-idf\tools/idf_monitor.py -p COM7 -b 230400 --toolchain-prefix xtensa-esp32-elf- --target esp32 --revision 0 C:\work\esp-uart-custom-broken\build\esp-uart-empty.elf --force-color -m 'C:\Users\timo\.espressif\python_env\idf5.1_py3.11_env\Scripts\python.exe' 'C:\Users\timo\esp\esp-idf\tools\idf.py' '-p' 'COM7' '--no-hints'"...
--- WARNING: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM7 instead...
--- idf_monitor on \\.\COM7 230400 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
f~�f~�x�x�����x�x~`怘�怘���~�f�f�~f������f�f`ff������`�~f��ff�f`�f�f`����f����`f�������xf�~��f��~���f�ff~fxff�������fx�~���fx�~��`�fx�~�����fx�~����`�fx�~��~�fx�~�������`fx�`������������x��x�~������x��xx�xx�x���f����������x�����f������x������x���f���怘����x���f����xf��x怘�f��`��f��x���I (85) cpu_start: Multicore app
I (85) cpu_start: Pro cpu up.
I (85) cpu_start: Starting app cpu, entry point is 0x400810ac
0x400810ac: call_start_cpu1 at C:/Users/timo/esp/esp-idf/components/esp_system/port/cpu_start.c:154

I (0) cpu_start: App cpu up.
I (94) cpu_start: Pro cpu start user code
I (94) cpu_start: cpu freq: 160000000 Hz
I (94) cpu_start: Application information:
I (96) cpu_start: Project name:     esp-uart-empty
I (99) cpu_start: App version:      6d8d65d
I (101) cpu_start: Compile time:     Aug  1 2023 16:16:00
I (104) cpu_start: ELF file SHA256:  6ed58398b0b24eaf...
I (107) cpu_start: ESP-IDF:          v5.1-7-g4426b3e3e4-dirty
I (110) cpu_start: Min chip rev:     v0.0
I (113) cpu_start: Max chip rev:     v3.99
I (115) cpu_start: Chip rev:         v3.0
I (118) heap_init: Initializing. RAM available for dynamic allocation:
I (121) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (124) heap_init: At 3FFB27C8 len 0002D838 (182 KiB): DRAM
I (127) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (130) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (134) heap_init: At 4008BB84 len 0001447C (81 KiB): IRAM
I (137) spi_flash: detected chip: generic
I (139) spi_flash: flash io: qio
W (141) flash_encrypt: Flash encryption mode is DEVELOPMENT (not secure)
I (145) app_start: Starting scheduler on CPU0
I (;32m ma14_tasp: starte Sta CPUg s0m
duler on CPU1
I (147) main_task: Calling app_main()
W (147) ---: BOOTING! Build at:
W (147) ---: Aug  1 2023
W (147) ---: 16:16:16

PS C:\work\esp-uart-custom-broken> idf.py -p COM7 monitor
C:\Users\timo\esp\esp-idf\tools\check_python_dependencies.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
Executing action: monitor
Running idf_monitor in directory C:\work\esp-uart-custom-broken
Executing "C:\Users\timo\.espressif\python_env\idf5.1_py3.11_env\Scripts\python.exe C:\Users\timo\esp\esp-idf\tools/idf_monitor.py -p COM7 -b 230400 --toolchain-prefix xtensa-esp32-elf- --target esp32 --revision 0 C:\work\esp-uart-custom-broken\build\esp-uart-empty.elf --force-color -m 'C:\Users\timo\.espressif\python_env\idf5.1_py3.11_env\Scripts\python.exe' 'C:\Users\timo\esp\esp-idf\tools\idf.py' '-p' 'COM7'"...
--- WARNING: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM7 instead...
--- idf_monitor on \\.\COM7 230400 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
f~f~xxxx~`���怘���怘~ff~f0x400810ac: call_start_cpu1 at C:/Users/timo/esp/esp-idf/components/esp_system/port/cpu_start.c:154

Thanks, that helps! I will investigate more and fix this. For now please use --no-hints as a workaround.

Hi, @timoxd7 can you please try again on the latest bug release - 5.1.1? As far as I can tell this should be fixed now, there was an issue with decoding the first characters (still using baud rate 115200) and then the console somehow stopped reading.

I'm closing this for inactivity and under the assumption that the latest bugfix versions of ESP-IDF already addressed it.


Add FS mapper

Hello,
I implemented a FS mapper. Implantation does not support all functionalities (See: TODO notes) and it's not idempotent.  This is the limitation of pig commands.
It's not tested on Oozie.
Reference:
https://oozie.apache.org/docs/5.1.0/WorkflowFunctionalSpec.html#a3.2.4_Fs_HDFS_action
Visualisation of converted DAG:

Code of converted DAG:
https://gist.github.com/mik-laj/3e1f6137153825d7a4477c70ed1ee3c8
Code of workflow XML:
https://github.com/GoogleCloudPlatform/cloud-composer/blob/fs-mapper/oozie-to-airflow/examples/fs/workflow.xml
Greets

@sprzedwojski I considered all the comments. I am waiting for the second round of reviews


Is is possible to add a Transcribe function? I have developed a CNN-based word recognition. It will be very helpful to integrate the word recognition model into this labeling tool. When drawing a bbox around an interesting field, it could recognize the text or allow manual correction if the recognition wasn't accurate. Then it will be saved into the XML. Please send me a message if you can do that. We can have  a deep discussion. Thanks.

OS:
PyQt version:

I have developed a CNN-based word recognition. It will be very helpful to integrate the word recognition model into this labeling tool. When drawing a bbox around an interesting field, it could recognize the text or allow manual correction if the recognition wasn't accurate. Then it will be saved into the XML. Please send me a message if you can do that. We can have a deep discussion. Thanks.


Exclude proxy subresource from API responsiveness

Exclude proxy subresource from API responsiveness.
Remove also outdated WATCHILIST, PROXY and CONNECT verbs as they don't seem to used sine 1.11.
Fix: https://github.com/kubernetes/kubernetes/issues/94368
/cc @wojtek-t
I will run some manual tests first
/hold

5k density test passed:
W0902 14:50:06.768] I0902 14:50:06.767684   20334 clusterloader.go:226] --------------------------------------------------------------------------------
W0902 14:50:06.768] I0902 14:50:06.767688   20334 clusterloader.go:227] Test Finished
W0902 14:50:06.768] I0902 14:50:06.767691   20334 clusterloader.go:228]   Test: testing/density/config.yaml
W0902 14:50:06.768] I0902 14:50:06.767694   20334 clusterloader.go:229]   Status: Success
W0902 14:50:06.768] I0902 14:50:06.767697   20334 clusterloader.go:233] --------------------------------------------------------------------------------

/unhold

/lgtm
/approve


Migrate to Swift 4.2 and build for XCode 10

@mikewilburn the app is migrated to Swift 4.2. Can you confirm it works as intended?

@mikewilburn closing the issue. Feel free to reopen the issue in your testing.


Updates for writing Data values to disk

This is prep work for getting files that can be uploaded to another location and replaced with links.

Three minor comments:

The find_messages logic is reminiscent of the validate_message logic, so I wonder if there is an opportunity to avoid duplicate code with a shared recursive generator. I don't think it's worth worrying about this though.
For testing file writing, perhaps it's worth using tempfile. I've used it for temporary files in the past, but it can also create temporary directories. One of their examples shows how to use it in combination with with -- it's very tidy.
How do you envision using the write_data function? Something like...

filename = write_data(message, dirname)
if filename:
    del message.value
    del message.bytes_value
    url = upload_file(filename)
    message.url = url

? I'm just wondering about whether the steps of (a) checking sizes, (b) creating a BytesIO, and (c) all belong in one function.

Three minor comments:

The find_messages logic is reminiscent of the validate_message logic, so I wonder if there is an opportunity to avoid duplicate code with a shared recursive generator. I don't think it's worth worrying about this though.

Agreed that there might be an opportunity here, but I'm not too worried about trying to merge them right now.

For testing file writing, perhaps it's worth using tempfile. I've used it for temporary files in the past, but it can also create temporary directories. One of their examples shows how to use it in combination with with -- it's very tidy.

Thanks; I'm using tempfile to create a subdirectory in the tests now. Since write_data requires a directory and not a file I think this makes sense. Agreed that in another setting where you just need a temporary file the context manager seems nice. The self.test_subdirectory pattern is the recommended approach at Google---and hence the one I'm used to---since it uses the test_srcdir flag (which I think is mostly important for executing tests on remote servers where you don't necessarily have general filesystem access).

How do you envision using the write_data function? Something like...

filename = write_data(message, dirname)
if filename:
    del message.value
    del message.bytes_value
    url = upload_file(filename)
    message.url = url

? I'm just wondering about whether the steps of (a) checking sizes, (b) creating a BytesIO, and (c) all belong in one function.

One nice thing about oneof is that if you assign to one of its members, the others are automatically cleared. The pattern I'm working on now looks like:
data_filename = message_helpers.write_data(
    data_message,
    dirname,
    min_size=FLAGS.min_size,
    max_size=FLAGS.max_size)
if data_filename:
    # client.upload() uploads the file and returns its URL.
    data_message.url = client.upload(data_filename)

I wanted to separate the URL generation from the writing since that will give us more flexibility in choosing how we do the upload/URL generation.


chore: Add Makefile for browser runtime

I accidentally published without building. this should help make sure releases are valid

Thanks! Is the idea that these will eventually be run in the CI and Release workflows?

Thanks! Is the idea that these will eventually be run in the CI and Release workflows?

For now i'm doing most of the released locally. I just want to use a makefile to it ensures things are properly built when publishing


Add SovietsCloset extractor

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[x] New extractor
[ ] New feature

Description of your pull request and other information
SovietsCloset is the official stream VOD archive of the streamer SovietWomble, see https://www.twitch.tv/SovietWomble/about.
I added all fields that might make sense, please let me know if there are any mistakes. uploader, creator, channel all seem to be the same for this extractor, is that correct?
I'm also not sure about leading underscores, please advise.

Are there any guidelines for underscore prefixes?

Someone more familiar with js than me will need to look into the changes to js_to_json

https://github.com/yt-dlp/yt-dlp/pull/884/commits/2d53e1f79f1f0567e2d6d287e795175b61d09ae1 adds support for $ in identifiers. See https://developer.mozilla.org/en-US/docs/Glossary/Identifier. jQuery famously uses $ as a shorthand.
https://github.com/yt-dlp/yt-dlp/pull/884/commits/ce42382a3c0ecb6598694d50d7f1afbde8141910 adds support for undefined values by translating undefined to null in JSON. It also recognizes void 0 as undefined (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void#description), this is used in JS minification.

I think the changes to js_to_json is considered valid, though void operator accepts any value. (e.g. void $ in JS is valid and evaluated to undefined as well)

This only took a day, very impressive! Thanks all!


Liquibase not checking for already deployed changesets

Search first

[X] I searched and no similar issues were found

Description
I’m using Liquibase 4.21.0 to deploy changes on AWS RDS MySQL Community/Aurora MySQL clusters (MySQL 8.0).
Liquibase is deploying already executed changesets which are the same as previously executed but it's working as expected with MySQL 5.7.
The same thing is working as expected while working with Liquibase 4.8.0 in another environment with both MySQL versions.
Liquibase Command -
PATH_LIQUIBASE_CLASSPATH = /home/ubuntu/workspace/Liquibase/mysql-connector-java-8.0.27.jar
liquibase --driver=com.mysql.cj.jdbc.Driver --classpath={PATH_LIQUIBASE_CLASSPATH} --url=“jdbc:mysql://{host}:3306/{database}?autoReconnect=true&useSSL=false” --username={MYSQL_USERNAME} --password={MYSQL_PASSWORD} --changelog-file={sql_file} --sql-log-level=info --logLevel=info update
First Execution -

Second Execution -

It also creates duplicate entries in DATABASECHANGELOG table -

Steps To Reproduce
Liquibase command -
PATH_LIQUIBASE_CLASSPATH = /home/ubuntu/workspace/Liquibase/mysql-connector-java-8.0.27.jar
liquibase --driver=com.mysql.cj.jdbc.Driver --classpath={PATH_LIQUIBASE_CLASSPATH} --url=“jdbc:mysql://{host}:3306/{database}?autoReconnect=true&useSSL=false” --username={MYSQL_USERNAME} --password={MYSQL_PASSWORD} --changelog-file={sql_file} --sql-log-level=info --logLevel=info update
MySQL Server and Version -
AWS RDS MySQL Community/Aurora MySQL 8.0
Liquibase Script -
--liquibase formatted sql
--changeset kkumawat:createTable-employee_table failOnError:false_1 context:"Creating new table employee_table"
CREATE TABLE employee_table(
id int NOT NULL AUTO_INCREMENT,
name varchar(45) NOT NULL,
occupation varchar(35) NOT NULL,
age int NOT NULL,
PRIMARY KEY (id)
);
--changeset kkumawat:alterTable-tutorials_tbl_1 failOnError:false context:"altering table tutorials_tbl, adding new column tutorial_sub_title"
alter table tutorials_tbl add column tutorial_sub_title varchar(20);
--changeset kkumawat:alterTable-employee_table_last_name_1 failOnError:false context:"altering table employee_table, adding new column last_name"
alter table employee_table add column last_name varchar(20);
--changeset kkumawat:insertIntoTable-employee_table_1 failOnError:false context:"inserting in to table employee_table"
insert into employee_table (name, occupation, age) values ("Kailash", "Software Engineer", 25);
--changeset kkumawat:selectFromTable-employee_table_1 failOnError:false context:"select and store data form table employee_table"
select age into @value1 from employee_table where name="Kailash";
--changeset kkumawat:selectFromTable-employee_table_value1_1 failOnError:false context:"select and store data form table employee_table"
select @value1;
--changeset kkumawat:insertIntoTable-employee_table_value1_1 failOnError:false context:"inserting in to table employee_table"
insert into employee_table (name, occupation, age) values ("Kailash K", "Software Engineer", @value1);
Expected/Desired Behavior
Liquibase should not deploy already executed changesets unless runAlways is set to True.
Liquibase Version
4.21.0
Database Vendor & Version
AWS RDS MySQL Community/Aurora MySQL 8.0
Liquibase Integration
No response
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
EC2
Additional Context
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR (Thank you!)

Hello @kailash558. I've tested this issue with AWS Aurora and with MySQL in a docker container, but I haven't been able to reproduce the bug. In my computer, running update for a second time doesn't run any changesets.
Would you be able to re-test it, and check that there isn't another thing that's causing the problem? Perhaps something in your AWS instance? Let me know the results and we can go from there.
Thank you
Tatiana

Hello @kailash558, I've tested this issue with the code you've provided, Liquibase v4.21.0 and MySQL v8.0, and I haven't been able to replicate the bug.
Looking into the logs, I can see that the deployment id is different for both instances. According to Liquibase documentation, the deployment id in the databasechangelog table signifies changesets deployed together will have the same unique identifier.
As they are different, it may be something relating to the path where the files are. Is there any chance that the path could be changing in between runs? Is any part of it dynamic?
Please re-test the issue and let me know what you find.
Thank you
Tatiana

Hi @tati-qalified,
There is no dynamic file creation. All changeset files are prepared manually and placed in Gitlab. Then program automatically picks them to deploy.
I'm also not sure how can it be reproduced in some other system.

Alright. I'll need some more info from you, and I'll explain the steps I took to test this so you can let me know if you're doing anything differently.
Questions:

Is GitLab running liquibase update, or do you have a root changelog that links to GitLab?
Could you be missing any permissions for the database that would make Liquibase get the databasechangelog table as empty?

Steps taken to test

Create a changelog with your sample code
Create a liquibase.properties file: here I referenced the changelog file directly in the same folder
Run liquibase update
Output:

UPDATE SUMMARY
Run:                          7
Previously run:               0
Filtered out:                 0
-------------------------------
Total change sets:            7

Run liquibase update again
Output:

UPDATE SUMMARY
Run:                          0
Previously run:               7
Filtered out:                 0
-------------------------------
Total change sets:            7

You can see that the changesets aren't being executed twice.
Please re-test this issue and let me know if there's anything that you're doing differently.
Thanks,
Tatiana

Hi Tatiana,
Answers to Questions -

Is GitLab running liquibase update, or do you have a root changelog that links to GitLab?
GitLab is not running Liquibase update. We add manually prepared .sql files (Liquibase formatted SQL files) in GitLab. Our python program picks those SQL files and then deploys them. Liquibase update command is run by python script using subprocess module.

Could you be missing any permissions for the database that would make Liquibase get the databasechangelog table as empty?
There is no issue with permissions. It has all required permissions. Liquibase is able to insert changelog data, read information about change log lock.

Steps taken to test -

Add manually prepared Liquibase formatted SQL files in Gitlab
Run Python program from Jenkins job. (We have added Liquibase path in $PATH variable)
Python program pull SQL files from Gitlab
Script runs liquibase update command through subprocess module and get result.

We just run same Jenkins Job without any change in SQL file or script or Jenkins configuration.
Thanks,
Kailash

@tati-qalified - I moved this ticket back to you for review. This looks similar to the problem related to the DATABASECHANGELOG uppercase to lowercase change you see with BigQuery in ticket #5034

@tati-qalified  @kailash558 I saw similar issues in the past and they were related to PATH not matching when they start/contains "." or ".." . This should be fixed on 4.25.0

With Filipe's comment I was finally able to reproduce the issue. It seems like this only happens when:

Using MySQL 8.0
The main changelog is pointing to this executed changelog, which is one directory above the main one

The changesets have the attribute failOnError set to false

If any of these things aren't happening, everything works as expected.
As Filipe said, this is a problem related to the path that contains "./../", which was a known issue. As failOnError was set to false, the execution continued even after the changes failed, and that's why there were duplicate entries in the databasechangelog table.
This issue has been fixed as of Liquibase 4.25.0.
In summary, @kailash558 I'd recommend you to update to the latest Liquibase version, re-test this and let us know if it works for you.
Thank you for reporting this issue!
Tatiana


polysharp dont generate source

in my netframework4.8 console project, after added reference to polysharp, and set language version to C#11.0, there is no source file generated, and when i use required and init in my code, there is build error occured

I have the same issue with a .net framework 4.6.2 class library (and console app).
I have tried with a NET Core 3.1 project without any problems.
It seems that the source generators assembly doesn't get registered in the analyzers section of the project.
It's probably not recommended, but I was able to make it work by adding the reference manually to PolySharp.SourceGenerators.dll
1- Add Analyzer

2- Navigate to the package of the project and add a reference to PolySharp.SourceGenerators.dll

After that it worked flawlessly for me.
Only problem with this is that the version doesn't get updated when there is a package update and I need to re-add the reference the newest dll.
Hope this could help to pinpoint the problem.

Seems like a duplicate of #39. You'll need to switch to using an SDK-style .csproj project 🙂
Source generators are not supported with legacy style NETFX projects and will not be loaded correctly.


[WIP] Add Comm

Adds the comm manager interface, using the API defined in #24.
This builds on #20.

I'll rebase this once #20 is merged.

Rebase failed, closing in favor of #26.


How to use only DoH servers (outgoing tcp connection)?

Config:
doh_servers = true
force_tcp = true
On some servers I observe that they use outgoing udp connection, for example:
server_names = ['rubyfish-uw']
I'm blocking udp:
iptables -I OUTPUT -o eth0 -p udp -j REJECT
And log:
Aug 03 10:17:41 jo dnscrypt-proxy[22890]: [2019-08-03 10:17:41] [NOTICE] dnscrypt-proxy 2.0.19
Aug 03 10:17:41 jo dnscrypt-proxy[22890]: [2019-08-03 10:17:41] [NOTICE] Now listening to <IP_ADDRESS>:5789 [UDP]
Aug 03 10:17:41 jo dnscrypt-proxy[22890]: [2019-08-03 10:17:41] [NOTICE] Now listening to <IP_ADDRESS>:5789 [TCP]
Aug 03 10:17:41 jo dnscrypt-proxy[22890]: [2019-08-03 10:17:41] [ERROR] write udp <IP_ADDRESS>:35701-><IP_ADDRESS>:53: write: operation not permitted
Aug 03 10:17:41 jo dnscrypt-proxy[22890]: [2019-08-03 10:17:41] [NOTICE] dnscrypt-proxy is waiting for at least one server to be reachable

As you can see, he wants to send the  udp package to <IP_ADDRESS>
Whether it is possible to force not to use these servers? And use only DOH servers. (tcp)

And another question:
proxy = "socks5://<IP_ADDRESS>:9050"
If authorization?

I run DEBUG=1 and understand why a request is sent to <IP_ADDRESS>:
this fallback_resolver
Is it possible to send it by tcp?

Hi,
Version 2.0.19 is old, can you try a more recent one?
Just curious: why are you blocking outgoing UDP?
UDP is generally faster than TCP, and even HTTP is abandoning TCP for UDP (HTTP3/QUIC).
Also, if you use DNSCrypt, or if you use DoH servers that include an IP address, the fallback resolver will not be used.

Version 2.0.19 is old, can you try a more recent one?
Yes. This from repos. debian.
Just curious: why are you blocking outgoing UDP?
I use unbound + dnscrypt-proxy + redsocks (can only tcp).
DoH servers that include an IP address, the fallback resolver will not be used.
How do you know it's that server (where fallback resolver will not be used)? And another way: fallback_resolver = <IP_ADDRESS>:222 . He won't be able to send the package.

dnscrypt-proxy already supports SOCKS, and also does caching, so you may not need unbound nor redsocks.

Ok .thanks.

supports SOCKS

authorization support?

yes.


java.lang.IndexOutOfBoundsException when trying to get object from mapdb

Hello there,
We at Yahoo, are using mapdb to store events and read them when the thread is idle. But we are getting following exception. We are unable to find out the real cause.
Any pointer would be useful.
Thanks,
Suyog
Nov 17, 2015 11:54:24 PM com.google.common.util.concurrent.ServiceManager$ServiceListener failed
SEVERE: Service AdsEventService [FAILED] has failed in the RUNNING state.
java.lang.IndexOutOfBoundsException
at java.nio.Buffer.checkIndex(Buffer.java:540)
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
at org.mapdb.DataInput2.readUnsignedByte(DataInput2.java:74)
at org.mapdb.DataInput2.read(DataInput2.java:136)
at java.io.InputStream.read(InputStream.java:179)
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2320)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2333)
at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(ObjectInputStream.java:3074)
at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2874)
at java.io.ObjectInputStream.readString(ObjectInputStream.java:1639)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at com.yahoo.ads.targeting.dot.action.SerializerActionState.deserialize(SerializerActionState.java:27)
at com.yahoo.ads.targeting.dot.action.SerializerActionState.deserialize(SerializerActionState.java:14)
at org.mapdb.Queues$SimpleQueue$NodeSerializer.deserialize(Queues.java:69)
at org.mapdb.Queues$SimpleQueue$NodeSerializer.deserialize(Queues.java:52)
at org.mapdb.Store.deserialize(Store.java:297)
at org.mapdb.StoreDirect.get2(StoreDirect.java:486)
at org.mapdb.StoreWAL.get2(StoreWAL.java:336)
at org.mapdb.StoreWAL.get(StoreWAL.java:320)
at org.mapdb.Caches$HashTable.get(Caches.java:246)
at org.mapdb.Queues$SimpleQueue.poll(Queues.java:130)
at com.yahoo.ads.targeting.dot.AdsEventService.processIntervalTasks(AdsEventService.java:243)
at com.yahoo.ads.targeting.dot.AdsEventService.runOneIteration(AdsEventService.java:231)
at com.yahoo.ads.targeting.dot.AdsEventService.run(AdsEventService.java:215)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
at com.google.common.util.concurrent.Callables$3.run(Callables.java:95)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "AdsEventService" java.lang.IndexOutOfBoundsException
at java.nio.Buffer.checkIndex(Buffer.java:540)
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
at org.mapdb.DataInput2.readUnsignedByte(DataInput2.java:74)
at org.mapdb.DataInput2.read(DataInput2.java:136)
at java.io.InputStream.read(InputStream.java:179)
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2320)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2333)
at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(ObjectInputStream.java:3074)
at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2874)
at java.io.ObjectInputStream.readString(ObjectInputStream.java:1639)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at com.yahoo.ads.targeting.dot.action.SerializerActionState.deserialize(SerializerActionState.java:27)
at com.yahoo.ads.targeting.dot.action.SerializerActionState.deserialize(SerializerActionState.java:14)
at org.mapdb.Queues$SimpleQueue$NodeSerializer.deserialize(Queues.java:69)
at org.mapdb.Queues$SimpleQueue$NodeSerializer.deserialize(Queues.java:52)
at org.mapdb.Store.deserialize(Store.java:297)
at org.mapdb.StoreDirect.get2(StoreDirect.java:486)
at org.mapdb.StoreWAL.get2(StoreWAL.java:336)
at org.mapdb.StoreWAL.get(StoreWAL.java:320)
at org.mapdb.Caches$HashTable.get(Caches.java:246)
at org.mapdb.Queues$SimpleQueue.poll(Queues.java:130)
at com.yahoo.ads.targeting.dot.AdsEventService.processIntervalTasks(AdsEventService.java:243)
at com.yahoo.ads.targeting.dot.AdsEventService.runOneIteration(AdsEventService.java:231)
at com.yahoo.ads.targeting.dot.AdsEventService.run(AdsEventService.java:215)
at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
at com.google.common.util.concurrent.Callables$3.run(Callables.java:95)
at java.lang.Thread.run(Thread.java:745)

What version in use?

We're using 1.0.8
On Wednesday, November 18, 2015, Dmitriy Shabanov<EMAIL_ADDRESS>wrote:

What version in use?
—
Reply to this email directly or view it on GitHub
https://github.com/jankotek/mapdb/issues/625#issuecomment-157641186.

--
Thanks,
Suyog Kotecha,
Alumnus, University of Southern California
Alumnus, College of Engineering, Pune

Can it be a bug at your serializer?

Hi, there could be two issues. First is possible data corruption. (are transactions enables?)
Other option is what I call 'unbounded serialization'. MapDB deserialization does not have a boundaries. Deserialization should read exactly the same number of bytes as serialization wrote. If deserialization expects something like EOF exception or -1, it will cause all sort of issues, including this.
I think easiest solution is to upgrade to 2.0 which address most of this issues.

@jankotek
We have transaction enabled. We have following serializer code. I am unable to catch issues with this.
public class SerializerActionState implements Serializer, Serializable {
@Override
public void serialize(DataOutput out, ActionState value) throws IOException {
    ObjectOutputStream objectStream = new ObjectOutputStream((OutputStream) out);
    objectStream.writeObject(value);
    objectStream.flush();
}

@Override
public ActionState deserialize(DataInput in, int available) throws IOException {
    try {
        ObjectInputStream objectStream = new ObjectInputStream((InputStream) in);
        return (ActionState) objectStream.readObject();
    } catch (ClassNotFoundException e) {
        throw new IOException(e);
    }
}

@Override
public int fixedSize() {
    return -1;
}

}

Does this bug happens if you enable compression? DBMaker.compressionEnableI()

We don't have it enabled.
On Sunday, November 29, 2015, Jan Kotek<EMAIL_ADDRESS>wrote:

Does this bug happens if you enable compression?
DBMaker.compressionEnableI()
—
Reply to this email directly or view it on GitHub
https://github.com/jankotek/mapdb/issues/625#issuecomment-160397274.

--
Thanks,
Suyog Kotecha,
Alumnus, University of Southern California
Alumnus, College of Engineering, Pune

Dont know how to fix this. Closing.


add *ViewModel -> *View resolution as fallback

add FreshViewModelMapper for fallback type mapping
add FindPageModelMapper() to FreshPageModelResolver to decide (once!) which of the conventions and mappers should be used
add backing field _pageModelMapper to PageModelMapper property and _isPageModelFound field to prevent overwriting the user's instance if she set a custom IFreshPageModelMapper

my take on this issue.
note: users still can NOT mix both conventions. but why should they?

I think we should discuss this on a single place #72


Can't access items in data set when using virtualize, says can't read property.

import React, {Component} from 'react';
import SwipeableViews from 'react-swipeable-views';
import { virtualize } from 'react-swipeable-views-utils';

const VirtualizeSwipeableViews = virtualize(SwipeableViews);

const mydata = [
  {"title": "Maya's Tacos"},
  {"title": "Tem's Burritos"}
]

const slideRenderer = ({key, index}) => (
  <div key={key}>
    {mydata[index].title}
  </div>
);

export default class CarouselComponent extends Component{
  render(){
    return(
      <VirtualizeSwipeableViews slideRenderer={slideRenderer} />
    )
  }
}

If you have a fixed number of slide, you need to use the following documented property.
      /**
       * When set, it's adding a limit to the number of slide: [0, slideCount].
       */
      slideCount: PropTypes.number,

In your example, we try to render > 2 items upfront.


Compiler problem in 0.16.0 with generics

This code isn't working in the 0.16.0 version
abstract class Ord(A)
  abstract def cmp(a : A, b : A)
end

class IntOrd < Ord(Int32)
  def cmp(a, b)
    a > b
  end
end

class Sorter(A)
  getter :order

  def initialize(@order : Ord(A))
  end

  def sort(list : Array(A))
    i = 0
    j = list.size - 1
    aux = nil
    while i < j
      if order.cmp(list[i], list[j])
        aux = list[i]
        list[i] = list[j]
        list[j] = aux
      end
      i += 1
      j -= 1
    end
    list
  end
end

ls = [5,5,2]
puts Sorter(Int32).new(IntOrd.new).sort(ls)
puts ls

I got this
Error in ./demo.cr:60: instantiating 'Sorter(Int32):Class#new(IntOrd)'

puts Sorter(Int32).new(IntOrd.new).sort(ls)
                   ^~~

instantiating 'Sorter(Int32)#initialize(IntOrd)'

in ./demo.cr:39: instance variable '@order' of Sorter(Int32) must be Ord(Int32), not IntOrd

  def initialize(@order : Ord(A))

Yes :-(
In general, generic classes inheritance is broken and I wouldn't recommend using it right now. This is not a limitation in the language, it's just that the current implementation for this isn't good enough (at the time I did it I overlooked some things). I have to sit down with @waj and @bcardiff and fix all issues around generic classes inheritance.
Since we now have the new "global" type inference implemented, solving this is a next priority. At least the way I see it, it's where most bugs come from.
As a workaround, until we fix this, you can include a dummy module in Ord(A) and make @order be of that type. For example:
module OrdModule
end

abstract class Ord(A)
  include OrdModule

  abstract def cmp(a : A, b : A)
end

class IntOrd < Ord(Int32)
  def cmp(a, b)
    a > b
  end
end

class Sorter(A)
  @order : OrdModule

  getter :order

  def initialize(@order : Ord(A))
  end

  def sort(list : Array(A))
    i = 0
    j = list.size - 1
    aux = nil
    while i < j
      if order.cmp(list[i], list[j])
        aux = list[i]
        list[i] = list[j]
        list[j] = aux
      end
      i += 1
      j -= 1
    end
    list
  end
end

ls = [5, 5, 2]
puts Sorter(Int32).new(IntOrd.new).sort(ls)
puts ls

How does this affect built-in generics? For example @porras'  mock library has the following class which is no longer valid Crystal code in 0.16.0:
module Mock
  class Arguments
    def initialize(arguments)
      @arguments = arguments.to_a
    end

    def_equals @arguments

    def to_s
      @arguments.inspect
    end

    def self.empty
      Empty.new
    end

    class Empty < Arguments
      def initialize
      end

      def ==(other)
        false
      end

      def ==(other : Empty)
        true
      end
    end
  end
end

It complains first that the Arguments::Empty subclass doesn't set the @arguments var, but even on resolving that, I have no idea how to specify the @arguments as an array of any possible type. In this case, I want it to be permissive or at least allow it to contain any type I give it. Any way around this for the time being?

Yes, in the future you will be able to have a variable of type Object, but not right now. I'm not sure it will be useful in that case, why not make Arguments be Arguments(T) and infer T from the arguments argument?
Also note that it doesn't make much sense to have Empty < Arguments... what happened with @arguments? You forgot to initialize it. So it will be nil too? Probably it should be a separate type, not inherit Arguments.

Okay, what about the case like
  class MethodStub
    getter :value

   # ...

    def and_return(@value)
      self
    end
  end

where @value could be anything and we aren't setting it in the initializer? Obviously this is a problem in the way the DSL is defined, but it's a fairly common pattern. Is there anyway around this for now?

Closed in favor of #2665


Table header getting almost invisble in dark mode

th{
@apply dark:text-gray-100;
}
will fix this

Thanks, pushed the fix to tailwind.config.js instead.


Add option to 0.5x fee in advanced settings for transactions

Feature request

in this screen always show 0.5x so you can easily lower the fee too?
If you always show it, you can keep halving it until you like the value.

you can keep halving it until you like the value

That's not how it's implemented currently. The multiple is based off what the fee value defaults to, not the next result of what the current form's input is.


Improve app config

Add a defaultValue method to AppConfig and set several defauts
Fixes #222  by providing defaults for a few common screen shot tools on linux

The changes look fine to me. A couple of thoughts:

Probably not the defaults i'd use, but they're reasonable enough, and obviously you need to pick something.
There's a bit of repetition in the code that could be turned into a small lambda -- that's what I'd do in a different language (I'll show below what I'm thinking)
I haven't programmed in C++ in awhile, so take everything with a grain of salt.

  if (appConfig->value(CONFIG::SHORTCUT_SCREENSHOT).isNull())
    appConfig->setValue(CONFIG::SHORTCUT_SCREENSHOT, defaultValue(CONFIG::SHORTCUT_SCREENSHOT));

  //why not:
  auto setDefaultIfNull = [appConfig](QString field){  // is it a QString? This is how lazy I am: I can't be bothered to look right now.
    if (appConfig->value(field).isNull())
      appConfig->setValue(field, defaultValue(field));
  }
  setDefaultIfNull(CONFIG::SHORTCUT_SCREENSHOT);
  setDefaultIfNull(CONFIG::I_FORGET_THE_OTHER_FIELDS);

 auto setDefaultIfNull = [appConfig](QString field){  // is it a QString? This is how lazy I am: I can't be bothered to look right now.
    if (appConfig->value(field).isNull())
      appConfig->setValue(field, defaultValue(field));
  }

Fixed it we don't even need to see the config if we try to read and it's empty we just get the default due to the change in the value method . Good call :D


warning prisma-kysely > @prisma/internals > temp-write ><EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

Hi, getting this issue while installing prisma-kysely in the nextjs project
warning prisma-kysely > @prisma/internals > temp-write ><EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
version:

"prisma-kysely": "^1.4.2",
"prisma": "^4.15.0",

I know it's not the issue with this package, but don't know where to report :(

Thank you. I'll upgrade the dependencies asap.

@valtyr would you mind releasing an updated version with the deps updated? Thanks!

@corbt @shakibhasan09 Hope you guys are having a nice Sunday (or whatever day it is where and when you're reading this). I've released an updated version with the newest release of Prisma, among other packages. Please note though that the code that prisma-kysely relies on shouldn't be bleeding into your runtime (famous last words, I know) since it's only a dev/build-time type generation tool. That aside, I of course want to make sure we're not relying on any vulnerable libraries, so thanks for reporting this. I'll try to be quicker to react next time.

Thank you so much! Yes, I don't think this was causing any actual production vulnerabilities for me, just an annoying warning message every time I run pnpm install. 🙂

@corbt Absolutely! They're super annoying 😵💫


Fixing hyperlink for "lock down LDAPS access to your managed domain over internet"

Fixing hyperlink for "lock down LDAPS access to your managed domain over the internet"

@infosatheesh2020 : Thanks for your contribution! The author, @eringreenlee, has been notified to review your proposed change.


Error 401/Authentication Error

Hello there,
Thank you for your efforts to accomplish this node.
I have configured my device (WDYK model: ZJSB9-80 J) a smart circuit breaker that is working perfectly with EWELINK app.
However when I define the device in node red I receive "authentication error" most of the time.
I tried to switch it on through PowerStateOut node and I get a result as described below but the switch still OFF.
{
"status": "ok",
"state": "on"
}
Any thoughts?
Thank you

it seems that I cannot open 2 connections at the same time to the same account in order to control 2 different devices.
any thoughts?

Yes great node but I have encountered the same issue.  I have two node-red servers - both servers running flows with this node.  As soon as I deploy flows from one server, the nodes on the other server suffer from {"error":401,"msg":"Authentication error"}

Hello @doryfakhry and @timmyjp ,
Unfortunately multiple sessions are not allowed. This is why I implemented a single global connection.
https://github.com/ottoszika/node-red-contrib-ewelink/issues/74#issuecomment-569368672
Thanks,
Otto

Hello @doryfakhry and @timmyjp ,
Unfortunately multiple sessions are not allowed. This is why I implemented a single global connection.
#74 (comment)
Thanks,
Otto

So it seems that two nodes on different node-red servers cannot share the same connection, but what about two nodes on the same node-red server - can these nodes always share same global connection? What about if they are on the same server but in different flows?
As a workaround I have created a second Ewelink account and shared the device to that account from the app - this seems to be OK.
Thanks

@ottoszika
I am only using one connection for all ewelink items at node red level.
is it consedered a multiple session issue if I sign in to ewelink mobile app and node red at the same time?
thank you again
dory


Hide icon when timer is not displayed

I know your busy figuring out how to deceive other powerful CEOs but in your downtime it would be nice if you could hide the icon until it's actually needed and starts ticking down the timer. If this can only be done in some multilayered dream thats fine by me as long as it works

I'll look into this today

Added a toggle option in the config in 89c2b8d652a7f4f63caf08eb1c18b53f92d7b7e3


Norm workflow

What is the purpose of this PR?
Closes #325. Closes #344.
How did you implement your changes
See issue template for #344.
Remaining issues
Need to document when to use which tuning curve. Still more tuning curves potentially on the way.

Nice! Looks like there was a weird timeout with the coverage check, but other than that it looks good.

@HPiyadasa @ngreenwald I got rid of the explicit documentation for selecting 400, 1300, vs 2600 curves, since these curves are specifically for our lab but other users are likely generating their own curves.

@HPiyadasa @ngreenwald I got rid of the explicit documentation for selecting 400, 1300, vs 2600 curves, since these curves are specifically for our lab but other users are likely generating their own curves.

Actually I'll add this documentation back in based on a previous discussion. Per today's discussion any of the norm curves at these settings will work (Mike suggests averaging).

I agree, let's average them, then name them avg_norm_func_450, etc.


Small typo: funtion in the handbook chapter 1.2

Also in chapter 1.4 nodw -> node
Forgot to say this: funtion -> function

Also in chapter 1.6:

we know how to hook to hook functions
‘to hook’ twice?


Cleans up some specs

Removes spec-helper from beginning. Removes the… last of the feature specs. Removes a rogue css file that was causing an error in specs (but was swallowed in rails s)
This is just a test chore -- If the build passes we're all set. I didn't touch any app code.

:( nooo the spec didn't pass. I thought it would

@edwinthinks I think it was a flaky run. I tried recreating the failure locally and couldn't.
Only one of the 2 concurrent builds failed, too. I think we're OK :+1:


Fix/docker friendly

Fixes for making these roles friendly with ISAM docker deployement
REF: IBM-Security/isam-ansible-roles#175

I see that it is not comprehensive but an incredible first shot at this. Glanced over the changes - need to examine in more detail. For example, I am not clear on the call to /lmi to determine Docker status.

Hi Ram,
I gess you're talking about the call in first_steps role.
It's basically the same way you call /lmi with password "admin" to see if first steps have to be processed, as the password in docker is injected by environment var at docker run.
For the handlers, I just read the facts and it's fine. I let you have a closer look and you might feel it as comprehensive as I felt the first_steps role at first analyse :)

https://docs.ansible.com/ansible/2.3/playbooks_intro.html
handlers:
    - name: restart memcached
      service: name=memcached state=restarted
      listen: "restart web services"
    - name: restart apache
      service: name=apache state=restarted
      listen: "restart web services"

tasks:
    - name: restart everything
      command: echo "this task will restart the web services"
      notify: "restart web services"

My idea was to use the listen option and then either run the appliance specific command or write out a message if it is not applicable and it is Docker.


opening a file associated to vscode using start-process show electron output on console

Issue Type: Bug
opening a file associated to vscode using start-process show electron output on console

even worse is that if the console is closed so is vscode

Steps to Reproduce:

use start-process PowerShell cmdlet to open a file that is associated to open in vscode (I used .ps1)

VS Code version: Code 1.48.2 (a0479759d6e9ea56afa657e454193f72aef85bd0, 2020-08-25T10:13:11.295Z)
OS version: Windows_NT x64 10.0.19042

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz (4 x 2394)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
7.92GB (1.58GB free)

Process Argv
C:\Users\luanv\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

Screen Reader
no

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

bracket-pair-colorizer-2
Coe
0.2.0

githistory
don
0.6.9

vscode-great-icons
emm
2.1.47

vscode-pull-request-github
Git
0.19.0

discord-vscode
icr
4.0.0

c-cpp-flylint
jbe
1.5.1

vscode-language-pack-pt-BR
MS-
1.48.3

remote-wsl
ms-
0.44.4

cpptools
ms-
0.29.0

hexeditor
ms-
1.2.1

powershell
ms-
2020.6.0

code-spell-checker
str
1.9.0

code-spell-checker-portuguese-brazilian
str
0.1.4

windows-terminal
Tyr
0.6.0

(2 theme extensions excluded)

It seems like the console sessions is getting attached, any ideas @deepak1556?
I'm not familiar with Start-Process but this could be by design? Why not just run $PROfile instead?

I you can use start to open any file with its default program. if I just run $profile it will just print out the path to the PowerShell profile settings.
here is the output from the help command:
DESCRIPTION
    The `Start-Process` cmdlet starts one or more processes on the local computer. By default,
    `Start-Process` creates a new process that inherits all the environment variables that are defined in
    the current process.

    To specify the program that runs in the process, enter an executable file or script file, or a file that
    can be opened by using a program on the computer. If you specify a non-executable file, `Start-Process`
    starts the program that is associated with the file, similar to the `Invoke-Item` cmdlet.

    You can use the parameters of `Start-Process` to specify options, such as loading a user profile,
    starting the process in a new window, or using alternate credentials.

If you are opening vscode without using the wrapper scripts code.cmd or code.exe, then please set the environment ELECTRON_NO_ATTACH_CONSOLE to avoid attaching to the console.


natron: 2.3.15 -> 2.5.0

And unmark as broken.
This removes the OpenFX plugins which are needed for most built-in nodes. Ideally there should be a "natron-with-plugins" function anyway, so let's create that later and have the OpenFX plugins packaged separately.
Fixes #103029
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

I've got a working natron-with-plugins and packaged the popular plugins maintained by Natron:
https://github.com/puffnfresh/nixpkgs/tree/pkgs/natron-with-plugins/pkgs/applications/video/natron/plugins
Will submit a PR for review after we're happy with Natron itself.

Out of curiosity, if you managed to include OpenFX’s plugin, is there any reason why you don’t install them by default? I guess most people would be disturbed if Natron comes without any builtin plugin, and they might not realize that there is another package for that.


Read-only file system errors running current docker image tags centos-7, latest

Read-only file system errors running current docker image tags centos-7, latest
Tested on CoreOS, OSX-boot2docker, and nkinder tested on centos-7 on fedora (#freeipa chat)
Here is the command and output: http://www.codeshare.io/34wmc
Top snippet:
core-01 ~ # docker run --name freeipa-server-container -ti    -h ipa.example.test    -v /var/lib/ipa-data:/data:Z adelton/freeipa-server:centos-7
tar: ./var/log/samba/old: Cannot utime: Read-only file system
tar: ./var/log/samba/old: Cannot change ownership to uid 0, gid 0: Read-only file system
tar: ./var/log/samba: Cannot utime: Read-only file system
....

I get NXDOMAIN about that www.codeshare.io.
I was not able to reproduce on Fedora 21.

Strange - the codeshare link still works for me.
Running without the Z: seemed to get me further this morning. (Log start below)
Thanks
core-01 ~ # docker run --name freeipa-server-container -ti    -h ipa.example.test    -v /var/lib/ipa-data:/data adelton/freeipa-server:centos-7
The log file for this installation can be found in /var/log/ipaserver-install.log
This program will set up the IPA Server.
...


NOISSUE - Fix default values for port and x509 provision

What does this do?
Make http port values across docs and code consistent.
x509 provision should be false by default.
Which issue(s) does this PR fix/relate to?
No such issue
List any changes that modify/break current functionality
None
Have you included tests for your changes?
No
Did you document any new/modified functionality?
Yes

Codecov Report

Merging #1367 (202f23b) into master (7834cc4) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1367      +/-   ##
==========================================
+ Coverage   60.64%   60.66%   +0.02%
==========================================
  Files         123      123
  Lines        9371     9377       +6
==========================================
+ Hits         5683     5689       +6
  Misses       3196     3196
  Partials      492      492

Impacted Files
Coverage Δ

users/postgres/init.go
93.75% <100.00%> (+0.64%)
:arrow_up:

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 7834cc4...dcb3707. Read the comment docs.

@mteodor Thanks for the PR. I have also seen duplicates declaration of environment variables in the README.md of provision service (MF_PROVISION_SERVER_KEY, MF_PROVISION_USER & MF_PROVISION_PASS). I also wonder about the two environment variables MF_PROVISION_CERTS_CA & MF_PROVISION_CERTS_CA_KEY which seems not used by the main.go.


[NetSuite] Toggling both projects and customers broke the connection

Part of the Add NetSuite to New Expensify project
Main issue: Issue Link
Doc section: Doc Link
Project: Project Link
Feature Description
From the Import page, when I toggled on projects and customers, it broke the connection (screenshot below). I disabled both, the connection tried to resync and it successfully synced although it re-enabled customers in the process.

Manual Test Steps

From a workspace connected to NetSuite, go to Import
Select Customers/projects
Enable both customers and projects
Wait for the connection to resync and check to see if it breaks
When it breaks, disable both and wait the sync to run successfully
Check to see if either customers or projects enables on it's own automatically

Automated Tests

I couldn't reproduce this. Needs reproduction. Asked for help.
cc - @yuwenmemon

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Discussed this here: https://expensify.slack.com/archives/C06ML6X0W9L/p1721375411860319?thread_ts=1721165288.016089&cid=C06ML6X0W9L
We have not been able to reproduce this since, so downgrading it accordingly.

@johncschuster see the above: https://github.com/Expensify/App/issues/45531#issuecomment-2239978238

Should we close this issue? Has anyone seen it again?

I haven't reproduced it myself. If it hasn't been reproduced, I agree we can probably close the issue.


Add distribtest for using grpc as a pre-installed cmake package

Based on #12411.
Add add a distribtest that installs gRPC using cmake (with gRPC_XXX_PROVIDER=package) and then tests the helloworld example can be built using cmake.
Currently make install is a better way to install gRPC on Linux, but allowing using cmake install might be useful for other platforms (Windows) and adding the distribtest also revealed some flaws in our CMakeLists.txt.
Followup work:
-- setup cmake distribtests where grpc is used as a submodule.
-- decide what cmake use cases will be officially supported (grpc=submodule, grpc=package, ...)

[trickle] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Known issues:
https://github.com/grpc/grpc/issues/12479
https://github.com/grpc/grpc/issues/10763


Segfault on HEAD when encoding H266 with fixed QP

Steps to reproduce:

Encode a video using ./xin26x_test.exe" -i "video.yuv" -a 2 -o "video.266" -w 1920 -h 1080 -f 24000/1001 -p 2:
The encoding starts normally.
Encode a video using ./xin26x_test.exe" -i "video.yuv" -a 2 -o "video.266" -w 1920 -h 1080 -f 24000/1001 -r 0 -q 20 -p 2:
Segmentation fault.

Last usable commit is around 497e50954e .
Thanks.

currently, xin26x under fixed qp is not available.


Too many Requests

I am getting the below error very frequently.
2020-08-07T10:19:35.2242195Z ##[error]The remote server returned an error: (429) Too Many Requests.
system.debug also not gives much information.
If I re-run the deployment again ( may be couple times) it succeeds.
What could be the reason?

That's a response from Databricks I'm afraid. It should happen when you overload the api. But there is no way this task is doing that, and I have seen this error before, usually it passes by itself.

The Task created is triggering too many api calls, causing throttling in databricks webapp. Databricks WebApp limits 30 calls/sec, and the task is hitting the limit causing 429 throttling issue.
As this task is owned this git , we expect little help in modifying the task to either make less api calls or introduce a delay in api calls to databricks.

Please feel free to submit a pull request to address this. But I assure you the problem is not in this code. If you review it you will see that each task creates very few calls. Maybe if you upload a very large file you can create a lot of requests, but even then I find it hard to believe it will go over 30 a second.
I believe that databricks rate limit at a higher level or you have another process running as well.


Adding accessibility standard - Keyboard navigation

Adding keyboard navigation for accessibility
#134
Description
Adding keyboard navigation via tab buttons and arrow keys to improve accessibility
Checklist for Pull Requests

[x] Supplied as many details as possible on this change
[x] Included the link to the associated issue in the Issue section above
[x] The code conforms to the general development guidelines.
[ ] The code has unit tests where applicable and is easily unit-testable
[x] This branch is appropriately named for the associated issue

I pulled the branch locally and everything works as expected. Code is looking good. Some missing tests around focus can be added later. We need a good way to mock document object.
Thanks @sanat-thukral , great work 👍

Thanks for the review Christos 😄


Cursor Doesn't Blink in Mac Front-End

Behavior as compared to TextEdit:
http://recordit.co/GLHO2V1skq

PR #133  - 'Blink Insertion Point/Use std highlight color'
addresses this

Closing as #133 is merged.


beta as a rate

Can we specify beta as a rate that is subsequently converted into a probability over one dt step?

Sorry, I'm not sure I know what you mean ... could you give an example?

TBH, I don't recall the context of my original issue report. However, I do believe there is a potential issue for consideration here. Currently, beta is a wrapped time_prob. Time prob is a discrete to discrete transformation. It converts the probability of an event occurring, say p1, over some period of time, dt1, into a different probability, p2, over dt2.
But users are unlikely to realize that they're specifying beta as a probability (rather than a rate), nor that p1 is converted to p2 though units and time conversion. In fact, I just did a check and suspect there's a bug in the implementation.
Example:
    ppl = ss.People(n_agents)
    network_pars = {
        'n_contacts': ss.poisson(4), # Contacts Poisson distributed with a mean of 4
    }
    networks = ss.RandomNet(pars=network_pars)

    sir_pars = {
        'unit': 'day',
        'dt': 30,
        'dur_inf': ss.normal(loc=10),  # Override the default distribution
    }
    sir = ss.SIR(sir_pars)

    # Change pars after creating the SIR instance
    #sir.pars.beta = {'random': ss.beta(0.1)}

    # You can also change the parameters of the default lognormal distribution directly
    sir.pars.dur_inf.set(loc=5)

    # Or use a function, here a lambda that makes the mean for each agent equal to their age divided by 10
    sir.pars.dur_inf.set(loc = lambda self, sim, uids: sim.people.age[uids] / 10)

    sim = ss.Sim(people=ppl, diseases=sir, networks=networks, unit='year', dt=1/12)
    sim.run()

Here the SIR is taking time steps of 30 days whereas the sim is taking time steps of 1/12 year. Should result in beta not chaining much from 0.1. However, the result is beta=0.9576, presumably calculated as 1-(1-0.1)**30. Which means that beta is implicitly specified with dt=1 and module-specific units? Unclear.
So back to my original question. Wouldn't beta make more sense as a rate rather than a probability? Perhaps the probability view makes more sense for event-based transmission like STI?