Dev tdvt

Hi, @lriggs! Thanks for opening this PR!

In the file tdvt/tdvt/config_gen/datasource_list.py:

Line 388:121: E501 line too long (122 > 120 characters)
Line 44:9: F841 local variable 'e' is assigned to but never used

In the file tdvt/tdvt/config_gen/tdvtconfig.py:

Line 88:24: E203 whitespace before ':'
Line 88:9: E122 continuation line missing indentation or outdented
Line 87:19: E203 whitespace before ':'
Line 87:9: E122 continuation line missing indentation or outdented
Line 3:1: F401 'sys' imported but unused

In the file tdvt/tdvt/config_gen/test_config.py:

Line 251:1: E302 expected 2 blank lines, found 1

In the file tdvt/tdvt/tdvt.py:

Line 705:1: W293 blank line contains whitespace
Line 613:43: W291 trailing whitespace
Line 609:1: E302 expected 2 blank lines, found 1
Line 500:1: E302 expected 2 blank lines, found 1
Line 471:121: E501 line too long (147 > 120 characters)
Line 470:5: E265 block comment should start with '# '
Line 468:121: E501 line too long (329 > 120 characters)
Line 467:121: E501 line too long (212 > 120 characters)
Line 465:121: E501 line too long (356 > 120 characters)
Line 464:121: E501 line too long (289 > 120 characters)
Line 463:1: W293 blank line contains whitespace
Line 461:121: E501 line too long (151 > 120 characters)
Line 460:121: E501 line too long (176 > 120 characters)
Line 459:5: E265 block comment should start with '# '
Line 457:1: W293 blank line contains whitespace
Line 456:121: E501 line too long (232 > 120 characters)
Line 455:121: E501 line too long (224 > 120 characters)
Line 453:121: E501 line too long (143 > 120 characters)
Line 452:121: E501 line too long (125 > 120 characters)
Line 451:5: E265 block comment should start with '# '
Line 449:121: E501 line too long (240 > 120 characters)
Line 447:121: E501 line too long (133 > 120 characters)
Line 445:5: E265 block comment should start with '# '
Line 443:121: E501 line too long (167 > 120 characters)
Line 442:121: E501 line too long (134 > 120 characters)
Line 440:121: E501 line too long (127 > 120 characters)
Line 439:5: E265 block comment should start with '# '
Line 435:121: E501 line too long (154 > 120 characters)
Line 434:121: E501 line too long (134 > 120 characters)
Line 433:121: E501 line too long (145 > 120 characters)
Line 432:121: E501 line too long (131 > 120 characters)
Line 431:121: E501 line too long (143 > 120 characters)
Line 428:5: E265 block comment should start with '# '
Line 415:121: E501 line too long (121 > 120 characters)
Line 387:121: E501 line too long (137 > 120 characters)
Line 370:1: W293 blank line contains whitespace
Line 359:1: E305 expected 2 blank lines after class or function definition, found 1
Line 28:121: E501 line too long (134 > 120 characters)
Line 28:1: E402 module level import not at top of file
Line 24:1: E402 module level import not at top of file

In the file tdvt/tdvt/tdvt_core.py:

Line 615:52: F405 'TdvtInvocation' may be undefined, or defined from star imports: .resources, .test_results
Line 378:35: F405 'TestErrorResults' may be undefined, or defined from star imports: .resources, .test_results
Line 352:35: F405 'TestErrorOther' may be undefined, or defined from star imports: .resources, .test_results
Line 339:31: F405 'TestErrorMissingActual' may be undefined, or defined from star imports: .resources, .test_results
Line 331:31: F405 'TestErrorMissingActual' may be undefined, or defined from star imports: .resources, .test_results
Line 173:121: E501 line too long (127 > 120 characters)

In the file tdvt/tdvt/test_results.py:

Line 206:17: E117 over-indented
Line 183:9: E265 block comment should start with '# '
Line 182:9: E265 block comment should start with '# '
Line 162:121: E501 line too long (157 > 120 characters)
Line 162:108: E251 unexpected spaces around keyword / parameter equals
Line 162:106: E251 unexpected spaces around keyword / parameter equals
Line 162:83: E251 unexpected spaces around keyword / parameter equals
Line 162:81: E251 unexpected spaces around keyword / parameter equals
Line 162:53: E251 unexpected spaces around keyword / parameter equals
Line 162:51: E251 unexpected spaces around keyword / parameter equals
Line 162:35: E251 unexpected spaces around keyword / parameter equals
Line 162:33: E251 unexpected spaces around keyword / parameter equals

In the file tdvt/test/tdvt_test.py:

Line 884:9: F841 local variable 'a' is assigned to but never used
Line 881:1: E302 expected 2 blank lines, found 1
Line 878:121: E501 line too long (132 > 120 characters)
Line 871:87: E251 unexpected spaces around keyword / parameter equals
Line 871:85: E251 unexpected spaces around keyword / parameter equals
Line 867:23: F405 'TestErrorTimeout' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 863:121: E501 line too long (158 > 120 characters)
Line 855:89: E712 comparison to True should be 'if cond is True:' or 'if cond:'
Line 853:13: F841 local variable 'actual_message' is assigned to but never used
Line 849:121: E501 line too long (164 > 120 characters)
Line 846:121: E501 line too long (169 > 120 characters)
Line 844:23: F405 'TestErrorExpected' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 840:121: E501 line too long (160 > 120 characters)
Line 838:23: F405 'TestErrorOther' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 833:121: E501 line too long (160 > 120 characters)
Line 831:23: F405 'TestErrorAbort' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 825:121: E501 line too long (127 > 120 characters)
Line 824:23: F405 'TestErrorTimeout' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 817:23: F405 'TestErrorOther' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 810:121: E501 line too long (165 > 120 characters)
Line 809:28: F405 'TdvtInvocation' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 806:1: E302 expected 2 blank lines, found 1
Line 803:84: F405 'TestErrorResults' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 802:72: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
Line 789:121: E501 line too long (158 > 120 characters)
Line 788:23: F405 'TdvtInvocation' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 783:84: F405 'TestErrorResults' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 782:72: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
Line 773:89: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
Line 772:121: E501 line too long (122 > 120 characters)
Line 772:99: F405 'TestErrorMissingActual' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 771:84: F405 'TestErrorMissingActual' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 770:72: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
Line 747:1: E302 expected 2 blank lines, found 1
Line 745:37: E225 missing whitespace around operator
Line 739:121: E501 line too long (148 > 120 characters)
Line 738:22: E127 continuation line over-indented for visual indent
Line 737:121: E501 line too long (161 > 120 characters)
Line 736:19: F405 'TestSet' may be undefined, or defined from star imports: tdvt.tabquery, tdvt.test_results
Line 736:1: E302 expected 2 blank lines, found 1
Line 722:78: E251 unexpected spaces around keyword / parameter equals
Line 722:76: E251 unexpected spaces around keyword / parameter equals
Line 721:1: E302 expected 2 blank lines, found 1
Line 630:85: E221 multiple spaces before operator
Line 629:85: E221 multiple spaces before operator
Line 628:86: E221 multiple spaces before operator
Line 272:1: W293 blank line contains whitespace
Line 253:9: E265 block comment should start with '# '
Line 235:1: E302 expected 2 blank lines, found 1

For reference: Error Code Reference, PEP8, Python code style


WIP: feat: "beta 2" implementation extracted from nim-status

Make it possible for nim-task-runner to be used as a library in any Nim project using the nimbus-build-system:
$ git submodule add https://github.com/status-im/nim-task-runner.git vendor/nim-task-runner

import task_runner

TODO

[ ] Implement a basic test suite that can be expanded over time.
[ ] Update the README with an explanation of the concepts involved and basic usage.
[ ] Solicit feedback from the wider Status Nim community.
[ ] Based on feedback (and light shed by a proper test suite), implement critical fixes and changes before merging to master.

Thanks for the continued work on this; this looks great and happy that the AsyncChannel implementation has been iterated over here.
Are the changes to chronos mostly additive minus the small change to the PDispatcher?

Are the changes to chronos mostly additive minus the small change to the PDispatcher?

Yes.
Nearly all of the code related to AsyncChannel (code in task_runner/achannels.nim and under task_runner/chronos_plus/) was adapted from PR https://github.com/status-im/nim-chronos/pull/45.
That PR contains expert-level code and whatever changes @emizzle and I made were simply supporting changes to get it working outside of the nim-chronos repo.
Re: "the small change to the PDispatcher":
This library relies on a fork of nim-chronos that I made with my personal GitHub account. I've been tracking the upstream pretty closely, but it does look like it's time for another bump.
Here's a diff: https://github.com/michaelsbradleyjr/nim-chronos/compare/michaelsbradleyjr:ef2430d08d252d501a773a1004494e7a3f9486d3...michaelsbradleyjr:02015b45082dce2c365b54754c85d0d3299015a6.
I think the change in chronos/ioselects/ioselectors_epoll.nim may no longer be necessary. I'll check that next time I bump my fork and drop the change if it's no longer needed.


feat(store): use gokv pkg to abstract persistant store

see https://github.com/philippgille/gokv
Signed-off-by: Boris Glimcher<EMAIL_ADDRESS>

@glimchb I think that the chosen library gokv have some disadvantages: It is not updated since 2020. It contains only 11 commits, 0 forks and 0 stars. So there is no active community maintaining it. This entails the risks: What if we have a bug there, or we need some additional feature? Who would do that work? Add/fix the functionality on our own? But I suppose we need a library to offload that job
I found gofiber/storage project. It is maintained. It has 211 stars. Furthermore, it has a discord channel, so we can reach out for help if needed. In addition, it supports a broader set of storage backends. Would it be better to depend on that library instead of gokv?

@glimchb I think that the chosen library gokv have some disadvantages: It is not updated since 2020. It contains only 11 commits, 0 forks and 0 stars. So there is no active community maintaining it. This entails the risks: What if we have a bug there, or we need some additional feature? Who would do that work? Add/fix the functionality on our own? But I suppose we need a library to offload that job I found gofiber/storage project. It is maintained. It has 211 stars. Furthermore, it has a discord channel, so we can reach out for help if needed. In addition, it supports a broader set of storage backends. Would it be better to depend on that library instead of gokv?

ok, my oversight. messed up with repository and referred to https://github.com/yifeng01/gokv
https://github.com/philippgille/gokv repo looks ok


migrate to create-react-app

needs testing and solution for jest which assumes everything in node_modules is already transpiled
https://stackoverflow.com/questions/49616199/create-react-app-jest-syntaxerror-unexpected-token-import
that way we can finally write jest tests


When we Call ConnectAPIHelper class through Batch Job throwing an exception as it is taking more than 150 DML Statements

When we try to call the postFeedItemWithMentions method from Batch, everytime it is considering as one DML Statement, When the loop reach to 150th time, it is throwing an Exception "First error: Too many DML statements: 151". Is there any possiblity to avoid this issue like instead o calling everytime, can we add it in a list and call only once. Thanks in Advance...!!

You should use ConnectApi.BatchInput (https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_examples_post_feed_element_batch.htm) to make posts in batches as every write operation in ConnectApi costs one DML statement.
You can still use ConnectApiHelper by calling getMessageSegmentInputs method and assigning your chatter post string to body.messageSegments list. See example below:
List<ConnectApi.BatchInput> batchInputs = new List<ConnectApi.BatchInput>();
for (Account thisAccount : targetAccountList) {
  ConnectApi.FeedItemInput input = new ConnectApi.FeedItemInput();
  input.subjectId = thisAccount.Id;
  ConnectApi.MessageBodyInput body = new ConnectApi.MessageBodyInput();
  body.messageSegments = new List<ConnectApi.MessageSegmentInput>(ConnectApiHelper.getMessageSegmentInputs(**'Hey there {005D00000015tjz}, how are you?'**));
  input.body = body;
  ConnectApi.BatchInput batchInput = new ConnectApi.BatchInput(input);
  batchInputs.add(batchInput);
}
ConnectApi.ChatterFeeds.postFeedElementBatch(Network.getNetworkId(), batchInputs);

That's an excellent answer, thanks. I'm gong to close this issue.


Gazebo8

Gazebo 8 is the current stable version of gazebo. Other than that, they released a install script for Ubuntu that handles all the dependencies (and work better than installing from apt). For that reason, Gazebo 8 should be our target platform for simulation.
This patch set fixes the source so it can be successfully compiled with gazebo 8 API and removes the legacy GazeboQuadCopter that is not compatible with current gazebo API (and it wasn't being used for anything anyway...).

LGTM, but plz update the recommended version of gazebo on Readme.md as well.

merged


Grafana Explore gets stuck when adding a second query

I will add a video to show what I mean. The 1st query works just fine. But after that, I cannot add another query at all. Whatever I click on the grafana explore pane does nothing.
https://user-images.githubusercontent.com/33192449/103198981-b9793e80-490f-11eb-8ebf-2dfc6ea46ad5.mp4

Thanks for reporting this. I can reproduce this. Like you say, this seems to only be an issue in Explore. The editor seems to work for dashboards and for query variables.

One more issue I see in the dashboard section, when I add a new query, it copies the existing data, and if I modify one, it is modifying both, so cannot add two separate queries at all.  A typical bug with shallow vs deep copy? : )
https://user-images.githubusercontent.com/33192449/103358859-a36ca900-4adc-11eb-8172-f712a7c4a5c1.mp4

Good find! Huge thanks for reporting all these issues. I'll do my best to get this sorted out as soon as possible 🙏

Sure, my pleasure!

One more issue I see in the dashboard section, when I add a new query, it copies the existing data

I can't seem to reproduce this on Safari or Chrome. What version of the plugin are you running?

One more issue I see in the dashboard section, when I add a new query, it copies the existing data

I can't seem to reproduce this on Safari or Chrome. What version of the plugin are you running?

I am running it in a docker container with the below env var:
environment:
- GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,marcusolsson-json-datasource
Which is pulling Version 0.7.1, and I am running Edge (Chromium based) v87 and Chrome v87

I am running it in a docker container with the below env var:
environment:
- GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,marcusolsson-json-datasource
Which is pulling Version 0.7.1, and I am running Edge (Chromium based) v87 and Chrome v87


version 2.0.0

I adapted it to work with the rocket 0.5.0 release candidate, and updated the example code accordingly.
In addition, it now can also accept passwords which contain a colon, as it should.
I also changed the behavior so that if the header is missing, it forwards instead of fails.
Finally, I changed the "name" field to "username".

Looks good mate, thanks!

I just fixed the test, and actually ran them this time.


Question: Notifications of changes to current mappings

@jbaird123, @richard0000 & @jeannekitchens, I know that Joe is working with the Joshua with regards to using any messaging system the Chamber has deployed as the means of sending notifications of changes to other standard development organizations (SDOs) in a "mapping set".  While a Phase 3 matter, we need to think about organizations other than SDOs subscribing to the notification service. For example, an organization like Eduworks will want to enable its metamodel interchanger functionality to "listen" for such change notifications in order to keep its interchanger services current.
Thoughts?

PR #75 under review

Covered with PR #75


Added OverIT

chore(companies): added overit

Hi @edoardocostantinidev , here you can find all the current open positions. They all mention "Smart Working" and there is no limit on how many days per week you can work from home. I am currently working from home since I started in October.

@AlessandroBagnoli thanks for clarifying, Approved 👍🏻


Types/keywords are highlighted in $ operator node path

This never really bothered me, but I thought that it's not unreasonable issue, so well, reporting it.

Perfectly, anything that is after $ operator should be considered a constant string and highlighted with appropriate color, preferably the same as $ operator or standard text color. Right now the node paths are needlessly colorful and it might be confusing for some people.
Here's a mockup for above code fix, with both color variants:

I had an issue for this before #11554 and it was supposed to be fixed with #18183
I thought it was fixed for a bit, but now testing on 8068d02 it seems to be broken.

CC @Paulb23

I'm not quite too sure what you are asking here, as it currently looks like your last screenshot.
What syntax highlighter do you have selected? As it will only work with the GDScript syntax highlighter, not the Standard one. You can change it under edit --> Syntax Highlighter
What Godot version / commit are you running?

Just checked, the syntax highlighter was set to Standard even though I was editing a GDScript file. And everything else was being highlighted exactly the same as a GDScript file is so I didn't realize it wasn't on the GDScript syntax.
So I guess the issue is that Standard syntax highlighting is being selected by default for GDScript files. And that Standard highlighting has the same highlighting as GDScript except for the $NodePath, in which case what is the reason for Standard highlighting?

At the moment the GDScript highlighter also has function declaration and types when using typed GDScript.
There's now a separation between highlighter and script, so when more highlighters are added you can change the highlighting to match the file you are editing. As the script editor no longer restricts what can be opened (So long as its utf_8).
On a new instance of Godot the Standard highlighter is currently used by TextFiles and the GDScript highlighter is selected for GDScript, however see #22268.


Does this support binary frameworks?

I am trying the following dependency
https://github.com/PSPDFKit/PSPDFKit-SP
And getting the below error
scipio prepare -v
evaluating manifest for 'dependencies' v. unknown
evaluating manifest for 'pspdfkit-sp' v. 11.5.2
evaluating manifest for 'dependencies' v. unknown
🔁 Resolving Dependencies...
/usr/bin/xcrun swift package resolve
Error: InternalError(description: "Internal error. Please file a bug at https://bugs.swift.org with this info. binary not supported")

The Package.swift of PSPDFKit here
Running swift package resolve on its own does not return any errors (or any output)
Is that something that can be worked around?
My dependency Package.swift here

Thanks. I somehow thought it was more complex but that makes sense.
Would be really good to have that as an option though for the more complicated packages where you only want specific items


DPS5015 setting in dps-model.h does not work 100% with the latest hardware

Hi, I bought a dps5015 fairly recently from a distributor called "KKmoon" from Amazon EU, and I quickly put in opendps after I did some testing on the stock firmware.
Two problems as I can tell right now. First off the settings in dps-model.h does not work correctly on the hardware I have (on the PCB it says version V2.3):

ADC on the voltage reading seems to be OK
DAC on the voltage is off by about 5%, i.e when setting 12V, it outputs about 11.4V
ADC on the current fluctuates quite a lot (when the mean is about 200mA, it displays between 100 and 300mA), and the mean number is not accurate either (it's hard to say what exactly the mean is since it jumps up and down, but if I guess it'll be off by 50%
DAC on the current is hard to measure since I yet to find a way to turn it into CC mode on the UI, and I have not tried serial or wifi yet

The second issue is the fan, somehow the fan is slowing ramping up speed regardless of what kind of load is on the output, it feels there's some DAC/PWM output drifted upwards and causing the power supply to the fan to go up. It does turn off if I press the power button to disable output.
Saying that, for the first one, at least on the voltage DAC, I can give it a try and measure the numbers then refine the dps-model.h, as long as I know where to measure, any guidance on that?
Thanks for all your answers in advance!
/Tao

Thanks for getting back to me so quickly Johan! Yeah...well, I missed that step to dump registers, what a mistake :(
I didn't have the same issue as some people have with the on/off button, so I guess the hardware change isn't that substantial, however I only have this dps so it's pretty hard for me to compare. Regarding the CC mode, I don't know if I missed any steps but I don't see it the way you described, I'd guess the UI will show "CC" if it's in CC mode? I did this:

Boot up and wait till "wifi" stops flashing, by default it boots to CV mode
Press "SET", and the cursor defaults to voltage
Press "M2", run the knob and set the current
Press "SET" again to confirm, the cursor disappears and the parameters are set (I guess)
Press "ON/OFF"
UI is still showing "CV" and the power is still cut off when current is over the set limit

BTW, will it help if I buy a new one from the same source I bought earlier on, and ship over to you? So you have a hopefully identical dps as I or other people have, with stock firmware to measure on. I'd guess a lot of people will go for 5015 simply because it's quite comparable price as 5005, and given it's active heat sink it should do a better job on heavy load. At least that what I thought when buying it, I can see the sales of 5015 is going to be up.

Did kanflo accept your generous offer to provide a 5015 for development?
I ask because I also have a 5015 and would love for this model to be officially supported!

If you generously send me a '5015 @wangxiatao I would be happy to look at it. I have two other pressing matters on my todo list though, one just got covered on Hackaday, so I would guess "November" on '5015 support.

BTW, will it help if I buy a new one from the same source I bought earlier on, and ship over to you? So you have a hopefully identical dps as I or other people have, with stock firmware to measure on. I'd guess a lot of people will go for 5015 simply because it's quite comparable price as 5005, and given it's active heat sink it should do a better job on heavy load. At least that what I thought when buying it, I can see the sales of 5015 is going to be up.

Did kanflo accept your generous offer to provide a 5015 for development?
I ask because I also have a 5015 and would love for this model to be officially supported!

Yes he did :) According to @kanflo good things might happen in November, stay tuned

Hi,
I have DPS5015 PCB revision V2.3 (bought from TomTop an year ago).
I did register dump before reflashing it to OpenDPS.
DPS5015_debug_data.tar.gz
After reflashing it does not working properly, but I guess I can make mistake somewhere.
Before reflashing I desoldered STM32F100 and soldered new one instead of it,
so I have backup chip with stock firmware.

Hi,
Today I found the reason why my OpenDPS setup was not worked.
I wasted a lot of time trying to found where I made a mistake
when I edited source code files/compiled a project/flashed it to mc/something else.
Finally I decided to check microcontroller ID and bingo :)
As I said before, I desoldered original STM32F100C8T6B for have a backup and soldered
other MC which I bought on Aliexpress 3 month ago from this seller:
https://ru.aliexpress.com/item/5PCS-STM32F100C8T6B-QPF32-MCU-new-and-original-IC-free-shipping/32461309300.html
Unfortunately I have got STM32F100C8T6 (without "B" at the end) but this is not so important
more important that this is supposed to be remarked STM32F103.
What said openocd about this remarked chip:
root<EMAIL_ADDRESS>openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init" -c "$target_name mdw 0xE0042000 1" -c "exit"
0xe0042000: 20036410
information from reference manual for STM32F103xx

What said openocd about original chip from DPS5015:
root<EMAIL_ADDRESS>openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init" -c "$target_name mdw 0xE0042000 1" -c "exit"
0xe0042000: 10016420
information from reference manual for STM32F100xx

photo of remarked chip

Aha so this is how a register dump looks like! How does one make use of this dump?
I just checked my stock MCU and it has the same response as your original MCU, just to confirm that. Now knowing this, have you been able to get your dps to work @u22br ?

Today I ordered STM32F100C8T6B from local distributor, hope that I will get it in 2-3 days.
I guess that my DPS will work OK with right stm32 because of with fake STM32F100 everything was fine except of reaction on ON/OFF button. That is due to STM32F103 does not have DAC.

Hi,
Some updates.
With genuine STM32F100C8T6B my dps has appropriate reaction on ON/OFF button, output voltage appeared but there is some issue as wangxiatao described in first message. Output voltage a bit less than I set up, for example if I set 5V real output voltage is about 4.68V.
Also recently I have got new toy - DPS5020. It also has PCB revision V2.3 and I took a photos of all active components on both DPS5015 and DPS5020. I am not sure that this issue thread is right place for posting these photos but if @kanflo confirm that it is OK, I will post it here.
In my opinion the difference between 5015 and 5020 very little - output choke, one electrolytic capacitor, input mosfets.

Please feel free to post the photos @u22br.

Aha so this is how a register dump looks like! How does one make use of this dump?

@wangxiatao The register dump can be used to check what state of the STM32 peripherals (DAC, timers, GPIOs, ...) when the original firmware is running. With this information it is possible to check if the original firmware uses a peripheral that OpenDPS currently not supports.

later I will edit this post and add to it some additional info and photos
.
.
5015

all four output mosfets same as this one:

.
.
.
.
5020

Very nice pictures! Can you see which component is the current shunt? I'm interested to know which ADC pins are used by the ST micro to measure current.
I'm not able to use "try an error" to fix the current, I know it's silly and I should've started with measuring the right components, but I actually did that on the voltage DAC and the value below gives me good setting on the voltage, which is confirmed by another multimeter:
#define V_DAC_K (double)0.076700

@wangxiatao sorry, I am not sure that I correctly understand what you mean when say "which component is the current shunt". There are three current shunts on the board near output terminals. Near it (in fact right under current shunts) there are four active components (all sot-23):
SOT-23-5 | marking on the board: U6 | marking code: A63A  | LM321M
SOT-23-5 | marking on the board: U3 | marking code: S0BFA  | SGM8581 regarding to this information https://www.elektroda.pl/rtvforum/topic3442107.html
SOT-23 | marking on the board: Q02 | marking code: Y1  | SS8050
SOT-23 | marking on the board: Q6 | marking code: 702 | 2N7002
(I can not sure that marking codes corresponds to the specified components, please double check it)

Hi,
Today I decided to do a big job, I desoldered almost all components from pcb which cover pcb traces.
So with these photos everyone can find out connections between components.
And may be someone will be brave enough to do schematics using these photos :)
Please note that I will solder pcb back nearest days, so I can do more photos if something hard to examine on provided photos.

@u22br sorry I should've described my question better, I was looking for the amplification output of the voltage drop over the current shunts. The components you mentioned are probably for amplification, so it's interesting to know which pin is the output of the final signal before it goes into the ADC.
The current shunts have extremely low resistance as I measured in room temperature, I don't know if it changes with the current which brings up the temperature. I'm also using quite poor equipment so the measurement is probably below the multimeter's resolution, I only read 0.1ohm to 0ohm. Again I know very little about electronics, maybe this revised description is again incomprehensible :)

@wangxiatao
I guess that interested your path goes something like that (maybe I'm wrong):

Hi everybody! I would like to report the strange behavior I see on my new DPS5015 and DPS5020 (both V2.3).
When I am in the CV-mode I can't setup the voltage. As you can see here in the pictures the voltage jumps between 0V and approximately 83V. Even if I am at the last digit. Sometimes the PSU crashes and need to be restarted, sometimes the LCD gets completely white. The setup of the current seems to work. Also in the CC-mode.

DPS5015 and DPS5020 seem to act the same to me. I have compiled the source with make -C opendps MODEL=DPS5015 MAX_CURRENT=9999

I should have read the other issues first! Isn't it #48 with have been closed for #17 ?

I have used @u22br 's scans from https://github.com/kanflo/opendps/issues/50#issuecomment-432616154 to trace the bottom layer for an overlay:

Note that there are separate bottom fills and some vias connect to these.

@u22br Could you get the values for RT1, R29, RL? I suspect these could be used for temperature sensing - not sure if U7 has a part in it. Also present on DPH5005.

Hi
@gnbl
right now I can measure it only without de-soldering
if it is not OK for you, please let me know
R29 - 9.63kOhm (slightly increased during measurement, may be actually it close to 10kOhm)
RL - 10.0kOhm
RT1 - 8.97kOhm (slightly increased during measurement, may be actually it close to 10kOhm)

@u22br Thanks, I got very similar values - posted in a comment at https://johan.kanflo.com/the-future-of-opendps/ with other findings, but it's not published yet. I suspect U7 is a voltage regulator or reference, but I have not yet found pin compatible parts (assumption: 1 = EN, 2=GND, 3=Out, 4=Vcc, 5=GND). EN then would be controlled by PD1, PA0 would be an ADC to measure the reference voltage, which also sources RL-R29+RT1-GND. PA6 then would measure across RT1. This then is a 10k NTC - pulling PA6 to GND causes the fan to start.

Although my comment since has appeared in kanflo's blog, I'll take the liberty to "dump" it here as well with minor modifications and additions:
I just got a DPS5015 and DPH5005.
There seems to be surprisingly little hardware info on these RD DPS/ DPH power supply modules out there.
So far I found
https://github.com/kanflo/opendps/tree/master/hardware/reverse-engineering/dps3003 (KiCAD schematics)
https://circuitmaker.com/Projects/Details/Damian-Thompson-2/DPH3205-Reverse-Engineer (proprietary schematics)
https://github.com/kanflo/opendps/issues/50 DPS5015 PCB photos
Hardware info in the code
https://github.com/kanflo/opendps/blob/master/opendps/hw.c#L383
https://github.com/kanflo/opendps/blob/master/opendps/hw.h
https://github.com/kanflo/opendps/blob/master/ocd-client.py#L64
which means that there seem to be a few pins unused.
Microcontroller STM32F100C8T6B (C=48 pins, 8=64 Kbytes of Flash memory, T=LQFP -> medium-
density device, LQFP48, 8 Kbytes of SRAM)
Product page: https://www.st.com/en/microcontrollers/stm32f100c8.html
Datasheet: https://www.st.com/resource/en/datasheet/stm32f100c8.pdf
Reference Manual: https://www.st.com/resource/en/reference_manual/cd00246267.pdf
Errata: https://www.st.com/resource/en/errata_sheet/cd00260217.pdf
GPIO Pin usage on MCU, according to sources above
 1 VBAT
 2 PC13 power control on '5015
 3 PC14 NOT CONNECTED (DPS5015)
 4 PC15 NOT CONNECTED (DPS5015)
 5 OSC_IN NOT CONNECTED (DPS5015)
 6 OSC_OUT / PD1 -> U7.1 (SOT23-5, "M2Y8")
 7 NRST NOT CONNECTED (DPS5015)
 8 V_SSA -> U7.5 (DPS5015)
 9 VCC
10 PA0 (RL, U7.3 on DPS5015 and DHP5005)
11 PA1 button M2
12 PA2 button SEL
13 PA3 button M1
14 PA4 DAC1 V_set
15 PA5 DAC2 I_set
16 PA6 NOT CONNECTED (temp sensing on DPS5015?)
17 PA7 ADC V_out
18 PB0 ADC V_in
19 PB1 ADC I_out
20 PB2 BOOT1-GND (NOT CONNECTED on DPS5015)
21 PB10 NOT CONNECTED
22 PB11 power control on '5005 / fan control on '5015
23 GND
24 VCC
25 PB12 TFT Reset (P4.4 on DPS5015 v2.3)
26 PB13 TFT SPI SCK (P4.5 on DPS5015 v2.3)
27 PB14 TFT CS (P4.6 on DPS5015 v2.3)
28 PB15 TFT SPI MOSI (P4.7 on DPS5015 v2.3)
29 PA8 [TFT, unused?] (P4.8 on DPS5015 v2.3)
30 PA9 TX
31 PA10 RX
32 PA11 NOT CONNECTED
33 PA12 NOT CONNECTED
34 PA13 (SWDIO)
35 GND
36 VCC
37 PA14 (SWCLK)
38 PA15 not used in opendps? connected to current sense shunt and amplifier
39 PB3 not used in opendps? connected to current sense shunt and amplifier
40 PB4 button power
41 PB5 button rotary encoder
42 PB6 NOT CONNECTED
43 PB7 TFT backlight
44 BOOT0 (pull-down R12 on DPS5015)
45 PB8 rotary encoder
46 PB9 rotary encoder
47 GND
48 VCC

So that's quite a few GPIOs that are not connected but could be soldered to (pin width=0.2 mm, pitch = 0.5 mm).
Four accessible pins: RX&TX, SWDIO/SWCLK.
And one pin to the TFT whose usage is unclear.
Serial connector  (DPS5015 V2.3, DPH5005 V1.1)
1 GND
2 TXD PA9
3 RXD PA10
4 VCC_U5

Programming connector (DPS5015 V2.3, DPH5005 V1.1)
12345
1 VCC
2 NC
3 GND
4 SWCLK / PA14
5 SWDIO / PA13

LCD connector  (see below, also warning)
12345678
KEY connector (see below, also warning)
12345678
UI PCB V2.2
FRONT

M1            ENC
SET    TFT
M2            ON/OFF

BACK

   78
   56 (LCD PCB soldered in via pin header)
   34
   12

12345678 LCD
12345678 KEY

Warning: because of the keying of the connectors, pin order is reversed on the mainboard (i.e. leftmost pins on mainboard connectors LCD and KEY are GND (=OUT-).
LDC.1 7 PA8 [TFT, unused?]
LDC.2 3 PB15 TFT SPI MOSI
LDC.3 1 PB14 TFT CS
LDC.4 5 PB13 TFT SPI SCK
LDC.5 6 PB12 TFT reset
LDC.6 2 VCC_U5
LDC.7 4 Backlight (PB7)
LDC.8 8 GND

KEY.1 M2
KEY.2 SET
KEY.3 M1
KEY.4 ON_OFF
KEY.5 ENCODER PUSH
KEY.6 ENCODER PHASE (via 1k resistor)
KEY.7 ENCODER PHASE
KEY.8 GND (rightmost pin as seen from plug)

The mysterious component U7 with marking "M2Y8" (DPH5005) / "M2PQ" (DPS5015) [also "M2Y8" and  "M21P" in u22br' photos] next to the CPU on DPS5015 and DPH5005 looks like a SOT23-5 package.
It does not appear to be a MEMS oscillator (OSC_IN not connected).
U7.1 OSC_OUT (PD1)
U7.2 GND
U7.3 PA0 (ADC)
         - RL  (10k, "01C")
U7.4 VCC
U7.5 GND

opendps initializes these as
PA0 GPIO_CNF_OUTPUT_OPENDRAIN
PA6 -
PD1 GPIO_CNF_OUTPUT_PUSHPULL
but it appears they are not actively used.
This dump (15V-on.txt from https://github.com/kanflo/opendps/issues/50#issuecomment-429578505) of a DPS5015 PCB revision V2.3 does this:
PA0 GPIO_CNF_OUTPUT_OPENDRAIN
PA6 GPIO_CNF_INPUT_ANALOG
PD1 GPIO_CNF_OUTPUT_PUSHPULL
Voltages at room temperature
U7.1 PD1  3.3
U7.2 GND
U7.3 PA0  3.3
U7.4 VCC 3.3
U7.5 GND
RL - R29  3.3
PA6 (ADC)  1.78
Forcing PA6 to 3.3 V does not start the fan - forcing it to GND does!
Suspected component values:
RT1 - 10k (room temp)
R29 - 9k6 ("01C")
It's a simple resistor divider with PA6 measuring across the NTC:
VCC - R29 + RT1 - GND
PA6 (ADC) +

Is U7 a voltage reference and might PD1 be used to enable it?
Command to clear PD1 (OSC_OUT alternate function remap PD1 via AFIO MAPR):
GPIOD_BASE = 0x40011400
GPIOx_ODR    = 0x0c
Confirmed with script output:
>>>> gpiod
GPIOD settings
...
ODR      : 0x00000002  [0x4001140c]

So we just need to write zero to 0x4001140c:
opendps$ ./ocd-client.py w 0x4001140c 0
Despite PD1 going low, the suspected output U7.3 does not change (3.3 V).
PA0 could be used for a reference measurement, as the LQFP48 package does not have VREF but probably uses VDDA as ADC reference.
Also, I have some "register dumps":
DPS5015_HW2.3_FW1.6_5V1A_off_fan_on.txt
DPS5015_HW2.3_FW1.6_10V1A_on.txt
DPS5015_HW2.3_FW1.6_5V_off.txt
DPS5015_HW2.3_FW1.6_5V1A_on.txt
And a view with the CPU pinout overlay:

Even if U7 was supposed to be used as voltage reference, the stock firmware does not use it to calibrate the ADC. If the supply voltage drops, the module input voltage reading is much higher (19 V for 12 V at 1.9V VCC).

I am now looking at the DPS5015 that @wangxiatao kindly sent me. For the DPS5015 folks out there, what output is generally needed to make the stock firmware turn the fan on? I can control it as expected via PB11 but if there are ways of setting the speed I would like to get register dumps before wiping the stock firmware.

Is it safe to work with DPS5015 now?

I am somewhat unsure to be honest. I have a '5015 but have not reflashed it yet as I am waiting for someone to tell me when the fan should be turned on so this behaviour can be mimicked by OpenDPS. I have no setup for pushing lots of power out of this thing.

@kanflo You could inject "temperature" voltages on PA6 to determine the threshold, or, if PWM is used on PB11, maybe other parameters. The register dumps I posted might show if PWM is configured (so would an oscilloscope).

@kanflo
Hello Johan,
Yesterday I've finnished assembly 1/2 DPS5015 units that I've bought last year. Flashed them with opendps firmware. Few things need to be mentioned:
PCB Rev. 2.2 (not 2.3)

LCD Freeze Issue.
After flashing from master branch this issue exist. Proposed solution in:
https://github.com/kanflo/opendps/commit/a88926ce2f2887f360f9f097da02162fa58bc4d8
Fixed this issue completely. Unit is stable (48h working). This should be merged in master branch

Calibration procedure from dpsctl - failed
Values after calibration procedure were wrong and units displays wrong values. I was forced to use Your google Excel Sheet and manual prepare the calibration values. I will upload them in the evening.

ADC is noisy.
Measurment is not stable +-20mV. I've searched for filter routine without lack... Maybe we should make simple filter AVG-ing /16 samples?

esp-proxy / esp-link
I finished the project with esp-link on esp8266. Could you clarify:

esp8266-proxy - cannot reconfigure SSID without reflashing the unit? esp-link has nice Web UI to make all configuration.
esp8266-proxy - Lack of dual Soft-AP/Client mode. This cause difficult in field use when you don't know creditionals of the network.
esp-link needs driver like Com2TCP rather UDP scanning but is more configure friendly

CC mode is implemented? when set I < than load needs, executes OCP, rather than CC mode, or maybe I miss something? This is why I haven't done I_DAC callibration fo CC.

It's great project, I will try to contribute from my site! Thanks!

Hi @sq9fk.

Thanks, I'll make sure it gets merged.

That's odd. Any idea why this would fail @Xenoamor?

Does that apply for all ADC channels?

Yes, the ESP Open RTOS based '8266 proxy lacks this functionality for now meaning it's quite cumbersome to change SSID.

CC mode is implemented but (probably) untested on the '5015.

Thanks!

@kanflo
I've just updated my previous post with calibration offsets, Maybe you can merge it into master for DPS5015 ? According to first posts in this thread I have the same problem with 4.74V after flashing with master. After cal: 5.00 (+0.03 peak because of ADC noise)

Yes. It's oscilates 2 or 3 ADC points. Simple filter will do the job in my opinnion but need to test it.
V_ADC and A_ADC.

Great I will test it in next days.

About the noise:
There is nice project on github called Cheali-Charger (alternative firmware for LiPo etc. chargers).
They implement PID and Noise filtering.
https://github.com/stawel/cheali-charger/blob/master/src/hardware/atmega32/generic/50W/AnalogInputsADC.cpp
Firmware is now stable, it's for AVR family but we could implement similar algorithm.
What do you think @kanflo
I've also add new issue about UI screen for current > 10A
https://github.com/kanflo/opendps/issues/138

Thanks for the link. We could start with a simple averaging algorithm and see how far that takes us.

My DPS5015 rev.2.3 always freeze LCD, when I touch few times multimeter probe to the ground connector. Please merge a88926c in master branch, I lost many hours to figure out, how to fix that..

I'll just tag @kanflo for visibility

@polihedron Is it the "unfreeze LCD" removal, the "TFT_CSN_PORT" addition or both that is needed? A PR is always welcome and will move faster to master ;)

@kanflo, "TFT_CSN_PORT" fixes strange DPS5015 LCD freeze when I touch positive multimeter probe to GND DPS5015 connector, LCD goes almost always white.  At first I suspected bad grounding ILI9163C issue, LCD connector loose, or LCD wires too long in noisy enviroment.
Regarding to "TEMPORARY HACK TO UNFREEZE LCD" I added those two lines, because of strange color change, after some time it changes from white to dark yellow, or red with noise around edges, like maybe screen refresh was not working properly.
Still testing, but now I see huge difference in stability, LCD is stable as in DPS5005.
I will prepare PR.

It seems they decided to use a GPIO pin on the STM32 as slave select for the SPI driven display. Previously they simply grounded the signal on the display so I can see the display going haywire when the SS pin was left floating ;)

Hello! I'm emilio, electronics engineer from San Juan, Argentina. First time as a github'er. I like and support OpenSource hardware and software, and also i'd like to contribute to this project. I will try to merge the two "big" photos from @u22br  into a single dual-layer image with different transparencies in GIMP, and then try to dump that into a kicad schem. If anyone has already done that, please tell me so I can contribute instead.
A simple non-commited google has revealed no schem for DPS5015 & DPS5020...at least I haven't found easily one.
Any comments, guides, helps or otherwise will be appretiated!

Hi @emilio-a, I'm not familiar with reverse engineering PCBs but your approach sounds like a good one. As far as I'm aware these are two layer boards
There's a rough schematic (not perfect) of the dps3003 here. I believe a large portion of the DPS5015 will be similar

Welcome to Github @emilio-a! Looking forward to see what you can come up with.

yes , @Xenoamor, thanks! They are both very alike, but there are some interesting differencies. Ok, I am about to finish the 0.1 alpha version of the schematic...does anybodie know if I would be breaking any law by doing inverse eng and posting the schem here? I wouldn't like being sued around the globe...but it would be nice to contribute and  see how far can we go!

You'll need to check with your countries laws on the matter I'm afraid. I believe it is okay in the US if you do it for the purposes of allowing it to work with something else (our software) and you aren't doing it for financial gain

Any update on the DPS5015?  For example, I can select 3.3v on the screen and then when I enable output I see it go to 0.03v and there is nothing on the multimeter off the outputs.

Noticed now also that when the output is off the internal fan turns on, when output is enabled (no voltage as per above) the fan turns off.
Suffice to say its bricked :(

Ok, this is where I have got so far. It's still incomplete, and there are many tracks I can't figure out where are connected just from photographs (i.e.: What is Q2? Where is connected R09? etc). Also there are a lot of values hard to read, or unknow (most capacitors, some resistors, etc). Perhaps someone with a multitester and a board? I've used all @u22br 's photos.
Iv'e used KiCAD, and some of the components are custom made, just because they don't exist in the library.
DPS5015.zip

I would say that unless you live in a territory where the Chinese government is in control and the DPS creators have "friends in high places" there is no chance you will have any trouble resulting form reverse engineering ;)

I also have the 2.3 board, and am having trouble. When I try to enable power, the screen will display 0V and 5.09A every time. 0V measured on the output at any time.
I've tried calibration, but when it gets to the Calibration Point 1 of 2, 10% of Max and the next 90% step, I just get 1mV and the next stp fails (ValueError: cannot convert float NaN to integer).
I have the pre flash dumps here.

hello.
Ii have a contribution
IC U7 is a 24C02 memory. The RL resistor is the pull-up of the SDA pin

Can anyone identify the output voltage sense line from the board? Would be useful for hacking in remote sense.

@kanflo, I have a problem when trying to change the font, because I'm currently using python3 so I can't build the gen_lookup.py file. I hope to get some help.

@hieuktdt Please do not reuse old threads for new issues. The main reason is that everyone in this thread now received an email that they most likely considered of little interest. Thanks for bringing it to my attention though, I have ported the font generator to Python 3. I will close this issue to prevent further derailing of the main discussion :wink:


KCORE-358: Add raft metrics

While looking at the SimpleKeyValueStore impl, I realized that we should return the last offset, not the base offset, in the append future; because the caller (replicated-state-machine) needs the last offset to determine which operations has been committed. Before this, the SimpleKeyValueStore is actually committing puts compared with the base offset.

Added raft metrics.

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@abbccdda @hachikuji Rebased, updated per comments and added unit tests.


Truncated, falsy arguments starting with --no

$ node example/parse.js --no-foo --yes-foo
{ _: [], foo: false, 'yes-foo': true }

Odd behaviour?
$ node example/parse.js --no --yes
{ _: [], no: true, yes: true }

This is an undocumented feature. A common pattern with command-line options is to have a lone option starting with --no-, or a pair of options for positive and negative with  --no- in front of the negated option. For example git clone supports:
--[no-]single-branch
--no-tags

If an option is given to Minimist as --no-example, as a convenience the option example is set to false (rather than no-example to true).
% node index.js --no-x
{ _: [], x: false }
% node index.js --x
{ _: [], x: true }

Let's keep this open to track updating the docs.

For interest, same issue in a Minimist fork: https://github.com/meszaros-lajos-gyorgy/minimist-lite/issues/10

Very surprising indeed. We added a --no-open flag, expecting {['no-open']: true}, but it actually gives {['no-open']: false, open: true}

I’m surprised that’s surprising, but either way we should update our docs to make it clear.

Ok, I can explain why it is surprising:
We have several flags, for example: --port, --no-open, --headless.
Then our logic in our code is somewhat like that:
headless = false;
open = true
if (cliFlags.headless) {
	headless = true
}
if (cliFlags['no-open']) {
	open = false
}

Leading to a minor bug, because when reading the README on NPM one didn't learn about this behavior.
But it seems already better documented now on main, so just pushing to NPM could help.

I will say that it seems reasonable to me to have no-open set to false (but be non-enumerable) AND open set to true, since that's reasonable, consistent, and would guard against that particular bug. @shadowspawn thoughts?

We added a --no-open flag, expecting {['no-open']: true}, but it actually gives {['no-open']: false, open: true}

Just checking I correctly understand what you saw @JonnyBurger . Did you mean open:false in the "actual" behaviour? I see something similar but different to your description like this:
// note: declaring `no-open` here is doomed, but trying to reproduce description
var argv = require('minimist')(process.argv.slice(2), {
    boolean: ['no-open', 'headless']
});
console.log(argv);

% node index.js
{ _: [], 'no-open': false, headless: false }
% node index.js --no-open
{ _: [], 'no-open': false, headless: false, open: false }

Basically there is currently only --no-foo support when processing the command-line and there is an implicit expectation that you use foo in the configuration. That makes me think #48 might be a bit thin.

I will say that it seems reasonable to me to have no-open set to false (but be non-enumerable) AND open set to true, since that's reasonable, consistent, and would guard against that particular bug. @shadowspawn thoughts?

I am not a fan of multiple versions of flags being stored, but it is an interesting idea to avoid surprises at runtime in this case.
What did you mean by "but be non-enumerable" @ljharb ? (That it doesn't show up when parse result logged?)

Yep, what i mean is, if you Get the property directly it'll work, otherwise it'll be pretty hard to know it's there.

@shadowspawn Yes, you got it correctly! I am using the boolean array as well and was checking for the no-open flag to be set.
The feature is fine, but not documented and therefore I was surprised.
Also, the other reason I got confused is because I used @types/minimist, and argv["no-open"] is autocompleted while argv.open does not seem to exist, and I didn't bother to test the behavior.
TypeScript users might still get trapped even if the property is non-enumerable.

Also, the other reason I got confused is because I used @types/minimist, and argv["no-open"] is autocompleted while argv.open does not seem to exist, and I didn't bother to test the behavior.
TypeScript users might still get trapped even if the property is non-enumerable.

Oh, interesting, investigating...
I was able to reproduce the autocomplete behaviour, but for me it is coming from GitHub Copilot. With GitHub Copilot active I see argv["no-open"] as a suggestion in JavaScript or TypeScript having used it [sic] with opts.boolean. With it disabled, I do not get that suggestion.
I checked @types/minimist and there is not any attempt to infer the option names for typing the parse result.
So still an interesting detail, but different source of autocomplete.

I will say that it seems reasonable to me to have no-open set to false (but be non-enumerable) AND open set to true, since that's reasonable, consistent, and would guard against that particular bug. @shadowspawn thoughts?

An intriguing idea, but too magical for my liking. It would certainly confuse me if I noticed that an option was set in an "invisible" way compared with logging.
(See also next comment.)

In this case, parsing --no-foo to store false for option foo is the limit of the feature. Using no-foo with opts.boolean or any of the other configuration does not get special behaviour.
Commander and Yargs both support for parsing --no-foo, and both have the same potential confusion that you can access no-foo on the parse results and be disappointed.
My preferred approach for now is still to add this to the documentation and not change the code. However, this has been a useful discussion and I have moved #48 to draft so I can take another look and extend what I wrote. The extra comments and discussion here make me think it deserves some text and not just buried in the big example.

For interest, I saw that Deno 1.23 switched to --no-* support being opt-in with negatable. The motivation appears to have been for improved typing, rather than a direct request for change in default behaviour. Their implementation is based on Minimist.

https://deno.com/blog/v1.23#negatable-option
https://github.com/denoland/deno_std/issues/2300

For interest, the undocumented --no-* was reported as an issue on the original Minimist repo. Comments from about 4 users.
https://web.archive.org/web/20200904202930/https://github.com/substack/minimist/issues/54

I had to read the source code to diagnose why --no-foobar was not working as I expected (it wasn't giving me a "--no-foobar": true entry in my arguments. It was instead setting "foobar": false. Interesting feature, but should be documented.

Another related issue on original Minimist repo:
Truncate --no-* for args
https://web.archive.org/web/20200904203615/https://github.com/substack/minimist/issues/123/


Error while installing OpenJDK 8 during Docker build

I’m trying to build a Docker image with OpenJDK 8 and Debian (bullseye) as base image. So I followed the steps mentioned in the below link.
Instructions from Adoptium Website
But when building the image, I get below error when this command is running. apt-get install temurin-8-jdk
E: Failed to fetch https://jfrog-prod-usw2-shared-oregon-main.s3.amazonaws.com/aol-adoptium/file store/33…………. Connection timed out [IP: x.x.x.x 9443]
E: Unable to fetch some archives, maybe run apt-get update or try with —fix-missing?
But when I try to build OpenJDK 11 or 17, it is working fine. Can someone help me regarding this error for OpenJDK 8?

@chandrakanthbala whereabouts are you building from in the world?


Radial annotator - Citations improvements

[x] editing an existing citation does not include the pages input
[x] after clicking create the citation autocomplete search input should be cleared
[x] refactor or isolate the citation topics interface; perhaps do not show the topics picker until the record has been created; when created do not add it to the list, but leave it in 'edit' mode, with the citation fixed in place, and the topic list below; when new is clicked then add the record to the list, and clear the form?  ... this is more or less making a smart Topic picker/creator sensu Keywords on tags  and embedding it in that form
[x] simplify the tag cloud to colored buttons rather then bracked list

Closing this, further refinements can come as new issues. Thanks!


Operation doesn't work when request format is not html

Here is my simple structure:
class Thing < ActiveRecord::Base
  class Create < Trailblazer::Operation
    def process(params)
      @model = Thing.new
      validate(params[:thing], @model) do |f|
        f.save
      end
    end
  end
end

class ThingsController < ApplicationController
  include Trailblazer::Operation::Controller

  def create
    run Thing::Create
  end
end

When I make post request with json format I get an error:
curl -X POST -H "Content-Type: application/json" -d '{"key": "foo", "value": "bar"}' localhost:3000/things.json

Error:
NoMethodError: undefined method `keys' for "{\"key\": \"foo\", \"value\": \"bar\"}":String
from /Users/freeman/.rvm/gems/ruby-2.2.2/gems/representable-2.1.8/lib/representable/hash/allow_symbols.rb:21:in `stringify_keys'
/Users/freeman/.rvm/gems/ruby-2.2.2/gems/representable-2.1.8/lib/representable/hash/allow_symbols.rb:10:in `update_properties_from'
/Users/freeman/.rvm/gems/ruby-2.2.2/gems/representable-2.1.8/lib/representable/hash.rb:31:in `from_hash'
/Users/freeman/.rvm/gems/ruby-2.2.2/gems/reform-1.2.6/lib/reform/form/validate.rb:94:in `deserialize!'
/Users/freeman/.rvm/gems/ruby-2.2.2/gems/reform-1.2.6/lib/reform/form/validate.rb:86:in `update!'
/Users/freeman/.rvm/gems/ruby-2.2.2/gems/reform-1.2.6/lib/reform/form/active_model.rb:29:in `update!'
/Users/freeman/.rvm/gems/ruby-2.2.2/gems/reform-1.2.6/lib/reform/form/validate.rb:75:in `validate'
/Users/freeman/.rvm/gems/ruby-2.2.2/gems/reform-1.2.6/lib/reform/form/multi_parameter_attributes.rb:49:in `validate'
/Users/freeman/.rvm/gems/ruby-2.2.2/bundler/gems/trailblazer-af16f0136fa9/lib/trailblazer/operation.rb:109:in `validate'
/Users/freeman/sources/trailblazer_test/app/concepts/thing/crud.rb:11:in `process'
/Users/freeman/.rvm/gems/ruby-2.2.2/bundler/gems/trailblazer-af16f0136fa9/lib/trailblazer/operation.rb:67:in `run'
/Users/freeman/.rvm/gems/ruby-2.2.2/bundler/gems/trailblazer-af16f0136fa9/lib/trailblazer/operation.rb:23:in `run'
/Users/freeman/.rvm/gems/ruby-2.2.2/bundler/gems/trailblazer-af16f0136fa9/lib/trailblazer/operation/controller.rb:42:in `block in run'
/Users/freeman/.rvm/gems/ruby-2.2.2/bundler/gems/trailblazer-af16f0136fa9/lib/trailblazer/operation/controller.rb:74:in `operation!'
/Users/freeman/.rvm/gems/ruby-2.2.2/bundler/gems/trailblazer-af16f0136fa9/lib/trailblazer/operation/controller.rb:42:in `run'

This seems to happen because it converts request body to string but tries to read it as a hash:
https://github.com/apotonick/trailblazer/blob/master/lib/trailblazer/operation/controller.rb#L68-L70
Is it a correct default behaviour? Do I need to add a deserializer somewhere(I guess this is what representable was made for)?

There's still a really early piece of code in Controller that changes behavior when the format is not HTML. While this conceptually is correct, I will have to change this.
Plan is to provide a representer to deserialize the incoming string correctly instead of letting Rails do this with its ParamsParser kludge. The cool thing is: the representer is inferred from your contract, you basically don't have to do anything, but you're free to add/change/remove behavior for your JSON operation.

So what I need to do to fix it now for me?

Send me $1,000,000 (USD) and I'll fix it.
Hack a workaround as follows: In https://github.com/apotonick/trailblazer/blob/master/lib/trailblazer/operation/controller.rb#L70 it happens. If you comment that line, it'll work. But be warned that I will soon change this code and make it awesome, so the JSON gets deserialized using a representer.

hey @freemanoid , do you know todomvc.com? They made to compare JS implementations and backend, so I did for trailblazer, and its working with json, check it out the controller and the operation hope it helps you :)
ps: Now that you don't need to send $1,000,000 (USD) to @apotonick you can send me half :stuck_out_tongue_winking_eye:

Thank you guys. @fernandes I used your example and now I have this:
class ThingsController < ApplicationController
  include Trailblazer::Operation::Controller

  respond_to :json

  def create
    respond Thing::Create do |op, format|
      format.json { render status: :created, json: op.to_json }
    end
  end
end

class Thing < ActiveRecord::Base
  class Create < Trailblazer::Operation
    include CRUD, Responder, Representer

    model Thing, :create

    contract do
      property :name

      validates :name, presence: true
    end

    def process(params)
      validate(params) do
        contract.save
      end
    end

    class JSON < self
      representer do
        property :name
      end
    end

    builds do |params|
      JSON if params[:format] == :json
    end
  end
end

Current issue is:
NoMethodError (undefined method `new' for nil:NilClass):

from https://github.com/apotonick/trailblazer/blob/master/lib/trailblazer/operation/responder.rb#L22
The only solution I see is to add something like
self.class.build_representer_class if self.class.representer_class.nil?

to #to_json
What did I made wrong? Could you help me?
ps. please, send me the photos of your credit cards (both sides) so I can split $$$ between two of you!  :smile:

Hahahahahahahahahahaha! :laughing:
Your fix is correct. This is really early code that I need to review. Gimme a few.

we accept paypal :smile:
good point, I'm gonna update todomvc to work with latest trailblazer, good catch :wink:

I am looking into that right now.
Wondering if we should enforce using a representer? Or offer to stick with the form and simply deserialize params which is already parsed by Rails?
But this might confuse people even more?

AAaah, and now I also remember the problem(s) and that I still need to invest some time into that. @freemanoid Are you happy to try out some stuff?

@apotonick what do you think I'll answer if I've tried trailblazer already? :wink:

Good boy, that's why I like you! :heart_eyes:
When you define a (redundant) representer on the operation (as you do), does that throw an error?
Trailblazer will soon be able to automatically build a generic representer from the contract, but until now, can you try with the manual one?

What do you mean?
I thought I already define representer "manually":
class JSON < self
  representer do
    property :name
  end
end

builds do |params|
  JSON if params[:format] == :json
end

Could you clarify your request?

Can you come join us on #trailblazer on IRC (Freenode) for a minute?

The solution is this.
builds do |params|
  JSON if params[:format] == "json"
end


[Coverity CID: 182762] Control flow issues in /subsys/storage/flash_map/flash_map.c

Static code scan issues seen in File: /subsys/storage/flash_map/flash_map.c
Category: Control flow issues
Function: get_flash_dev_from_id
Component: Other
CID: 182762
Please fix or provide comments to square it off in coverity in the link: https://scan9.coverity.com/reports.htm#v32951/p12996

@nashif Actullay both flash_map error are somehow false-positive (IMHO). I mean that it is intentionally possible to skip loop execution, and no if statement is need.

Should I cover this by if statement or additinal return an_error at the end?

/subsys/storage/flash_map/flash_map.c: 82 in get_flash_dev_from_id()
80     static struct device *get_flash_dev_from_id(u8_t id)
81     {
>>>     CID 182762:  Control flow issues  (NO_EFFECT)
>>>     This less-than-zero comparison of an unsigned value is never true. "i < 0UL".
82     	for (int i = 0; i < ARRAY_SIZE(flash_drivers_map); i++) {
83     		if (flash_drivers_map[i].id == id) {
84     			return flash_dev[i];
85     		}
86     	}
87
89    	k_panic();
90    }

Should I cover this by if statement?

*** CID 182194:  Control flow issues  (NO_EFFECT)
/subsys/storage/flash_map/flash_map.c: 271 in flash_map_init()
265     }
266
267     static int flash_map_init(struct device *dev)
268     {
269     	int i;
270
>>>     CID 182194:  Control flow issues  (NO_EFFECT)
>>>     This less-than-zero comparison of an unsigned value is never true. "i < 0UL".
271     	for (i = 0; i < ARRAY_SIZE(flash_dev); i++) {
272     		flash_dev[i] = device_get_binding(flash_drivers_map[i].name);
273     	}
274
275     	return 0;
276     }

@nvlsianpu can you fix those by adding an if() statement as appropriate?


ARROW-17237: [Release] Restore the installation of python tests dependencies in the python_wheel_unix_test.sh script

It is a bit more involved since GCS testbench is not available in the verification environments. Neither is minio, but the conftest test fixture properly skips S3 but not GCS.


fix: NameError: name 'Iterable' is not defined.

This PR fixes a breaking issue faced during the following instantiation on version 0.2.100
Minimal reproducible code
from webdataset import SimpleShardList, WebDataset

shard_list = SimpleShardList(str(shard_file))
dataset = WebDataset(shard_list)

Error log
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/dantremonti/miniconda3/envs/lock-update/lib/python3.10/site-packages/webdataset/compat.py", line 145, in __init__
    self.create_url_iterator(args)
  File "/home/dantremonti/miniconda3/envs/lock-update/lib/python3.10/site-packages/webdataset/compat.py", line 226, in create_url_iterator
    if isinstance(args.urls, str) or utils.is_iterable(args.urls):
  File "/home/dantremonti/miniconda3/envs/lock-update/lib/python3.10/site-packages/webdataset/utils.py", line 54, in is_iterable
    if isinstance(obj, Iterable):
NameError: name 'Iterable' is not defined

Also introduces a test for the fixed utility function. Fixes #389

Hi @tmbdev , can you please have a look at the changes that I made and check if they can be considered to patch the issue?

Should be fixed now.

Hi @tmbdev, thanks for the fix. Perhaps you would like to check the test I added and included it in an upcoming change?


Tableau Connector Improvement for SaaS

In order to connect to a SaaS database, you must specify an ODBC parameter which allows you to use your access token in the password field and connect to the database.
Currently, when connecting to Tableau, you don't have any options to add any ODBC parameters. In fact, it's not even possible to get the ODBC logs from tableau without a [very difficult workaround|https://community.exasol.com/t5/connect-with-exasol/how-to-create-odbc-logfiles-with-tableau/ta-p/1244].

Improvement
At the minimum, this box needs to be expanded to include an additional free text field "Additional ODBC Parameters" (or something similar) in order to support saas.
An even better improvement would be to implement something like Snowflake's connector and allow you to choose your authentication method (username/password or personal access token), and change the fields for these. It looks like this:

We don't need to implement anything special for SaaS because the ODBC driver now has the compatibility mode.


[Feature] Windows dark mode caption is not changed

Motivation
Fix the dark mode in windows OS.
Detailed design
Use Win32API to change the caption background color.
Here are some C# sample code:
// NativeMethods
using System.Runtime.InteropServices;

namespace DarkModeForWindow;

internal static class NativeMethods
{
    [DllImport("user32.dll", SetLastError = true)]
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    [DllImport("user32.dll", SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool IsWindow(IntPtr hWnd);

    [DllImport("dwmapi.dll", PreserveSig = true)]
    public static extern int DwmSetWindowAttribute(nint hwnd, DwmWindowAttribute attr, ref int attrValue, int attrSize);

    [DllImport("ntdll.dll", SetLastError = true)]
    static extern int RtlGetVersion(ref RTL_OSVERSIONINFOEX lpVersionInformation);

    public static bool IsWindows10Version1809OrAbove()
    {
        RTL_OSVERSIONINFOEX versionInfo = new()
        {
            dwOSVersionInfoSize = (uint)Marshal.SizeOf(typeof(RTL_OSVERSIONINFOEX)),
        };

        if (RtlGetVersion(ref versionInfo) == 0)
        {
            // Windows 10 1809
            return versionInfo.dwMajorVersion >= 10 && versionInfo.dwBuildNumber >= 17763;
        }

        return false;
    }

    public static bool EnableDarkModeForWindow(nint hWnd, bool enable)
    {
        if (IsWindows10Version1809OrAbove())
        {
            int darkMode = enable ? 1 : 0;
            int hr = DwmSetWindowAttribute(hWnd, DwmWindowAttribute.UseImmersiveDarkMode, ref darkMode, sizeof(int));
            return hr >= 0;
        }
        return true;
    }

    public enum DwmWindowAttribute : uint
    {
        NCRenderingEnabled = 1,
        NCRenderingPolicy,
        TransitionsForceDisabled,
        AllowNCPaint,
        CaptionButtonBounds,
        NonClientRtlLayout,
        ForceIconicRepresentation,
        Flip3DPolicy,
        ExtendedFrameBounds,
        HasIconicBitmap,
        DisallowPeek,
        ExcludedFromPeek,
        Cloak,
        Cloaked,
        FreezeRepresentation,
        PassiveUpdateMode,
        UseHostBackdropBrush,
        UseImmersiveDarkMode = 20,
        WindowCornerPreference = 33,
        BorderColor,
        CaptionColor,
        TextColor,
        VisibleFrameBorderThickness,
        SystemBackdropType,
        Last,
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct RTL_OSVERSIONINFOEX
    {
        public uint dwOSVersionInfoSize;
        public uint dwMajorVersion;
        public uint dwMinorVersion;
        public uint dwBuildNumber;
        public uint dwPlatformId;

        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
        public string szCSDVersion;
    }
}

// How to use win32api
nint hWnd = NativeMethods.FindWindow(null!, "MQTTX"); // May you can get the hWnd by Electron API

if (NativeMethods.IsWindow(hWnd))
{
    NativeMethods.EnableDarkModeForWindow(hWnd, true);
}

The full C# solution code:
Alternatives
empty
More detail (optional)
The result of the c# sample code:

Full sample code here:
DarkModeForWindow.zip
You can try it using DarkModeForWindow\bin\Release\net472\DarkModeForWindow.exe.

Thank you very much for bringing up this issue and for the solution you've provided. @emako
I want to point out that MQTTX is primarily developed using JavaScript within the Electron framework. As such, I need to become more familiar with C#. In light of this, is there another possible approach to change the dark mode caption color, especially one that could be implemented within the JavaScript or Electron framework?
Also, your participation would be most welcome if you're interested in contributing to this feature enhancement. Your expertise and experience would be a valuable asset, and we look forward to your further involvement.
Thanks again for your contribution and support!

This requires me to take some time to try electron.
Meet something error on yarn install:
D:\Github\MQTTX>yarn install
yarn install v1.22.19
[1/6] Validating package.json...
[2/6] Resolving packages...
warning Resolution field<EMAIL_ADDRESS>is incompatible with requested version<EMAIL_ADDRESS>[3/6] Fetching packages...
[4/6] Linking dependencies...
warning "@vue/cli-plugin-unit-mocha ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| 5.x".
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^5.0.0".
warning "typeorm-uml ><EMAIL_ADDRESS>has unmet peer dependency "@oclif/config@^1".
[5/6] Building fresh packages...
[10/11] ⠂ husky
[-/11] ⠂ waiting...
[3/11] ⠂ sqlite3
[11/11] ⠂ electron
error D:\Github\MQTTX\node_modules\electron: Command failed.
Exit code: 1
Command: node install.js
Arguments:
Directory: D:\Github\MQTTX\node_modules\electron
Output:
RequestError: unable to verify the first certificate
    at ClientRequest.<anonymous> (D:\Github\MQTTX\node_modules\got\source\request-as-event-emitter.js:178:14)
    at Object.onceWrapper (node:events:629:26)
    at ClientRequest.emit (node:events:526:35)
    at origin.emit (D:\Github\MQTTX\node_modules\@szmarczak\http-timer\source\index.js:37:11)
    at TLSSocket.socketErrorListener (node:_http_client:495:9)
    at TLSSocket.emit (node:events:514:28)

This issue may be due to network problems. As suggested, you can try manually installing it if you like.  This should manually initiate the installation process for Electron.

D:\Github\MQTTX>cd node_modules\electron

D:\Github\MQTTX\node_modules\electron>node install.js
RequestError: unable to verify the first certificate
    at ClientRequest.<anonymous> (D:\Github\MQTTX\node_modules\got\source\request-as-event-emitter.js:178:14)
    at Object.onceWrapper (node:events:629:26)
    at ClientRequest.emit (node:events:526:35)
    at origin.emit (D:\Github\MQTTX\node_modules\@szmarczak\http-timer\source\index.js:37:11)
    at TLSSocket.socketErrorListener (node:_http_client:495:9)
    at TLSSocket.emit (node:events:514:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

I have no idea above it.

D:\Github\MQTTX>node -v
v20.10.0

npm config set strict-ssl false not work for node v20.10.0.
Have a try with v16 ...

https://github.com/electron/electron/issues/26910

set ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/ in environment variables
execute: yarn install
npm install sqlite3 --registry=https://registry.npm.taobao.org/ --node_sqlite3_binary_host_mirror=http://npm.taobao.org/mirrors

I'm not familiar with how to call the Win32 API in an electron environment.
Some demo code record following...
in package.json
"ffi-napi": "4.0.3",
 "ref-napi": "3.0.3"

in background.ts
// ...
win = new BrowserWindow
// ...

  console.warn(process.platform)
  console.warn(os.release())
  if (process.platform === 'win32' ) {
    win?.on('ready-to-show', () => {
      const hWnd = win?.getNativeWindowHandle()
      console.log('Window handle:', hWnd)
      WindowsDarkCaption.makeUp(hWnd);
    })
  }

class WindowsDarkCaption {
  public static makeUp(hWnd : Buffer | undefined | number) : void {
    if (!hWnd) {
      return
    }

    const ffi = require('ffi-napi')
    const ref = require('ref-napi')

    if (typeof hWnd === 'object') {
      hWnd = ref.address(hWnd);
    }

    const DwmWindowAttribute = {
      UseImmersiveDarkMode: 20,
    };

    const dwmapi = new ffi.Library('dwmapi', {
      'DwmSetWindowAttribute': ['int', ['pointer', 'uint', 'pointer', 'int']],
    });

    function dwmSetWindowAttribute(hWnd: number, attr: number, attrValue: number, attrSize: number) {
      return dwmapi.DwmSetWindowAttribute(hWnd, attr, attrValue, attrSize);
    }

    function enableDarkModeForWindow(hWnd : number, enable : boolean) {
        const darkMode = enable ? 1 : 0;
        return dwmSetWindowAttribute(hWnd, DwmWindowAttribute.UseImmersiveDarkMode, darkMode, 4) >= 0;
    }

    enableDarkModeForWindow(<number>hWnd, true);
  }
}

This software support dark mode title bar https://github.com/revezone/revezone

https://www.electronjs.org/docs/latest/tutorial/dark-mode

No one wants to fix it.

Upgrading the electron version should fix this, Although the whole app will stop working as there are breaking changes in the code when upgrading from v13 to v31 😅

Here a temp plan for using dark mode titlebar
https://github.com/lemutec/MakeDark


Use stable rustc to check fmt in TravisCI

Pull Request Test Coverage Report for Build 847

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 95.048%

Totals

Change from base Build 837:
0.0%

Covered Lines:
2879

Relevant Lines:
3029

💛  - Coveralls

bors: r+

bors: r-
bors: r+


"show tag values" not returning anything

I'm having the same/similar issue as #77.  It looks like it's using the correct database, so I tried the query (ex. show tag values from "clients" with key="site_name") with the influx cli and it returns nothing.  All my data is there and I can see it if I remove the variables from the queries in the dashboard.  What was the solution for #77?

Looks like it was a version issue with influxdb.  I had version 1.6.4 which is available in the main repo for raspberry pi buster.  After upgrading to 1.7.7, I get the correct response and everything is working.
sudo apt-get remove influxdb influxdb-client -y
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update
sudo apt-get install influxdb

I'm not sure what version is needed, but you might want to include this info in the install.

I'm glad you were able to figure this out. Thank you for updating and letting us know what resolved it for you! I'm also tickled that you did the data troubleshooting first, thanks! That really helps resolve these issues quickly.
I'm going to put together a troubleshooting wiki at some point, and this information will be included there. I'm unfortunately not sure what versions of InfluxDB work, I've only ever personally used the version that installed on my mac with Homebrew (1.7.7). I also see several open bugs with InfluxDB pertaining to missing data with SHOW TAG VALUES across versions from 1.5 to 1.7. That tells me it's entirely possible 1.6.x may work for some but not for others.
I'll make a note that InfluxDB 1.7.x while 1.7.7 is well tested, and users have reported problems with 1.6.x. Please let me know if I can help with anything else!


StargazersCount is always nil when using Repositories.ListAll

When querying repos with Repositories.ListAll, StargazersCount is always nil. Is there any other way to get the number of stars for different repositories if this isn't the correct way?

Have you tried reproducing this issue by calling the GitHub v3 API endpoint via curl and inspected the value of stargazers_count ?
If curl also reports nil/null/empty/0, then GitHub tech support should be contacted.
If, however, curl shows a valid value that this client library is not picking up, then this is truly an issue that can be fixed.
Please report back your findings so that we can proceed accordingly.  Thank you, @Flawe !


Memory leak with Smart Query

Version
v4.0.0-rc.7
Reproduction link
https://codesandbox.io/s/nuxt-apollo-smart-query-bug-v585k
Steps to reproduce

Install apollo-module for Nuxt;
Use a Smart query in a page.

What is expected ?
The GarbageCollector can free up the memory after every page reload.
What is actually happening?
Visiting pages with Smart query cause the memory to continue to grow up without stopping.
After ~ 15000 urls (depends on how much HTML there is in page) the server is out of memory.
Additional comments?
Using apolloProvider.defaultClient.query in asyncData it's ok.
There's a library installed in the demo to bulk-test urls, 'npm run siege'. With that it's possible to see the memory growing up.

This bug report is available on Nuxt community (#c209)

I'll try to invest on this, but I'm not pretty sure what i can do :(
Have you try with vue-apollo and vue without using nuxt?
I don't know if it belong to vue-apollo or just only this module.
If you know how to fix this issue, feel free to make a PR.

I haven't tried because the problem occurs when i'm in a ssr-environment (Tried w/ Nuxt)..
The node-server goes out-of-memory.

I use a lot of smart query in my nuxt app. It's not in production stage but we are in pre-release and I can see memory leak in the digital ocean graphs:

There is only nuxt in this droplet.
Also, There is something strange. It's seem smart query are called two times in SSR and one more in front. If I do that:
import Post from '~/apollo/queries/Post' // Post.gql file

apollo: {
    posts: {
        query() {
           console.log('Post', Post)
           return Post
        }
    }

In the terminal and the devtools console, each one show two logs (devtools with nuxt:ssr tag) like if the query function is called twice. In devtools console, there is also one more log wihtout nuxt:ssr tag like if the query is called one more time in front. I think this last is normal, but there is no reason for two times in SSR...

It's look like a lot of things here.

and most of them seem to be nuxt plugin create new instance everytime someone make the request to the server.
I'm not sure how to solve this problem at the moment. If anyone have a idea, PR are wellcome.

I'ts funny because it's another one issue opened by me  😄
If these can help, i've removed cache from Apollo, by setting:
new InMemoryCache(
    {
        resultCaching: false,
        freezeResults: true,
    }
)

and

@Atinux Can you help me with this? I think it happen to another package as well algolia/vue-instantsearch#685

@manniL Can you help us with this? Or do you have some advice for us?

@ManUtopiK in that chart, that dips after mem fill up is app crash and restart or just gc ?

Does this happen only with Nuxt or also within a vue-cli project?

@aldarund What's do you mean by gc?
Nuxt is running under a pm2 so it's reload each time memory is full. I can see how many times it was reloaded with pm2 ls.
Also, I forgot to say that nuxt is running in dev mode (npm run dev). It's not in production now.

In dev mode, memory leaks are unavoidable due to various issues. These are not present in prod!

I have the same issue in Production. Visiting pages causes memory to continue to grow without stopping.

@LuXDAmore @seandelaney
As @pimlie already asked: Does that happen with the vue-cli project + it's apollo service too?

I'm only using the @nuxtjs/apollo module.
I've not got any projects with vue-cli + vue-apollo

Not sure if this helps, but based on my latest debugging and testing, I think the memory leak is within/related to the Apollo Provider and how the Apollo Client instances are created and not tearing down after each request.
I say this because within my Nuxt project, if I create my own Apollo Client instance in a Vue component (nothing to do with SSR) and make a call to GraphQL endpoint, the request works as expected and everything seems fine. I destroy my instance at the end:
My custom ApolloClient class:
import { ApolloClient } from 'apollo-client'
import { createHttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'

export default class {
  constructor({ token, schema }) {
    // HTTP connection to the API
    const link = createHttpLink({
      uri: `${process.env.API_URL}${schema}`,
      headers: {
        authorization: `Bearer ${token}`,
      },
    })

    // Cache implementation
    const cache = new InMemoryCache()

    // Create the apollo client
    return new ApolloClient({
      link,
      cache,
    })
  }
}

I call it like so:
let apolloClient = new ApolloClient({
    token,
    schema,
})

...

apolloClient.query({
    query: require('~/apollo/schemas/some.gql'),
    fetchPolicy: 'no-cache',
})

apolloClient = null

Thats my current workaround to prevent our production server (Heroku with 8 Dyno's) from running out of memory every few hours. Our Nuxt web app isn't that big but gets a lot of traffic so any help to get these memory leaks fixed would be grateful.

@LuXDAmore @seandelaney
As @pimlie already asked: Does that happen with the vue-cli project + it's apollo service too?

I found this problem both in 'production' and in 'development'.
I'm using the apollo-module by nuxt..
I don't know if it's related, but i've also encountered that using a query in a middle-ware, and passing it down to the asyncData by having:
// middle-ware.js
export default async ( { app: { apolloProvider: { defaultClient: apollo } } } ) => {

    const { data } = await apollo.query(...);

    context.KEY = data;

}

// page.vue
<template>
    <p v-text="KEY" />
</template>

<script>
    asyncData({ KEY }) {

        return { KEY };

    }
</script>

cause the HTML of the page to grow up.. I've opened an ISSUE here..
Example:

first try, html's size [with the server just started]: ~ 200 KB;
last try, after ~ 200 urls, html's size [same server]: ~ 60 MB.
In the second one, i can see the payload of the oldest visited pages present in the html

Using apollo.cache.data.clear(); before await apollo.query(...); solve this problem, but idk if it's the right way to handle this.

Does someone has a runnable minimal reproduction so I can take a look?

@Akryum I've posted this, a couple of month ago.. You can download the repo, start it in dev-mode (or prod) and then there is a script npm run siege to stress the server.. Try this 2 or 3 times (and take a look at the GC)..
ou can also change values in the siege/siege.js file.

Before:

After:

@Akryum Great job! Thanks.

@Akryum you are the man 👍

I've just updated to latest version of this package. Currently running tests.

@Akryum - Thanks so much! I've watched our production graphs today and can confirm this has removed the sawtooth pattern we'd been seeing before, where memory would ramp up and then we'd restart the app. Much appreciated 👍

Can you tell where we implemented the fix in this pr? 😆

This seems to still be happening in 4.0.1-rc.1 and rc5

I am also experiencing this issue with 4.0.1-rc.5 in production. The problem seems to be the use of smart queries, even without executing them.
With smart query:

Without smart query:


How can I create  application/octet-stream  to upload file

1.add header
2.post(data : file.openRead())


Micro should be a peerDependency

As the title says, it should be a peerDep to allow users to use their own flavor of micro 👍

Thanks @pedronauck ❤


Removes unused if statement #trivial

This is a follow-up from #2830. The else if statement will never be reached because an earlier if catches it (with the prefixless array, which is likely why the static analyzer didn't catch this).

Looks like there was a CI fail on the master branch build. Not sure if it's spurious but it does seem search related...
https://circleci.com/gh/artsy/eigen/6148

Looks like it was spurious – I restarted it and it worked :)


Merge Lazerson branch into develop

BEAMS3D

New accelerated wall model implemented
Various bug fixes
Improvements to distribution function quantities
T_END now saves actual end time of a marker

FIELDLINES

New accelerated wall model implemented
Analytic Error field model updated

WALL_ACCELERATE code added
STELLOPT bugfixes
VMEC2000 minor bugfix

@lazersos Please let me know when you are done with this PR. I will pull the changes and test them on PPPL clusters.

@zhucaoxiang should be ready now.


Fix: Usage examples in README.md

This PR

[x] fixes usage examples in README.md

Thank you, @OskarStark!


http pipelining not working?

Hi,
I wrote a short test to try http pipelining:
This will send 2 GET requests in a row without waiting for the response.
net = require 'net'

socket = net.connect 8000, '<IP_ADDRESS>'

socket.on 'data', (data) -> console.dir data.toString 'utf8'

socket.on 'connect', () ->
    str = ''
    for i in [0..1]
      str += "GET /_db/_system/_api/document/test/#{i} HTTP/1.1\r\n\r\n"

    console.dir str
    console.log()

    socket.write str, 'utf8'

# two GETs
'GET /_db/_system/_api/document/test/0 HTTP/1.1\r\n\r\nGET /_db/_system/_api/document/test/1 HTTP/1.1\r\n\r\n'

# only one response
'HTTP/1.1 404 Not Found\r\nServer: ArangoDB\r\nConnection: Keep-Alive\r\nContent-Type: application/json; charset=utf-8\r\nContent-Length: 103\r\n\r\n{"error":true,"errorMessage":"document \\/_api\\/document\\/test\\/0 not found","code":404,"errorNum":1202}

But I only get one response. Something wrong with my test? Issue #774 does not have an example.
Server is arango 2.5.0-beta2 on OS X
Thanks for your help.

Your test code looks good.
We found an issue on our end. The pipelining did work for some types of requests (the ones that are executed directly) but not for others (the ones that are put onto an async task queue inside ArangoDB). It should be fixed with the above commits.
I'll leave this issue open though because I still want to add further tests before closing.

Tests for both direct and indirect request handlers have been added.
Issue should be fixed in 2.4, 2.5 and devel branches and shipped with next releases.

Ich leider auch nicht.

Am 03.03.2015 um 06:02 schrieb Jan<EMAIL_ADDRESS>Closed #1258 https://github.com/arangodb/arangodb/issues/1258.
—
Reply to this email directly or view it on GitHub https://github.com/arangodb/arangodb/issues/1258#event-245204294.


Fixed typo in word networking

Not sure about the CI failures but they are unrelated to the change.


[BUG] Fix subject in check-sa policy

The check serviceaccount policy in https://github.com/kyverno/policies/commit/b4cc7b1248d8cb094622d682bbeb6a0b283a57f2 needs to have "ServiceAccount" added to the subject.

Was done.


Added yaml file for read the docs

Change Summary
Overview
Added a yaml file .readthedocs.yaml to the root directory so readthedocs.org knows to install the optional dependencies for building documentation
New Dependencies
None
New Files

.readthedocs.yaml

yaml file to tell readthedocs.org to pip install the optional doc dependencies

Deleted Files
None
Updated Files
None
Testing
I added my forked repository to readthedocs and it was able to build the documentation
https://imap-processing-fork.readthedocs.io/en/latest/

Lets get this in and see how the deploys work with merges and such.


Thought on replacing CrmSvcUtil with Power Apps CLI in spkl?

I would like to discuss replacing CrmSvcUtil with Power Apps CLI. Is there any benefits, are there any drawbacks?
Thank you

Do you mean replacing use of SolutionPackager? I've not seen support for early bound types in the PAC?
If so, the PAC uses SolutionPackager under the hood - so wouldn't see much difference other than the deployment mechanism. That said - I can see a time when PAC would replace spkl's pack/unpack commands since they are essentially doing the same.

No on-premise support in pac as I've learned! spkl wins!


Added mete data page title and description for the Blazor Server quickstart

Ticket : https://issues.newrelic.com/browse/NR-88071
Description: Added metadata title and description for Blazor Server quickstart.

I've forked the repo and raised a new PR.
This PR has to be closed.
Thank you...


Update SpongeGradle to fix the build script.

The Gradle build script no longer works since https://github.com/SpongePowered/SpongeCommon/commit/ec0ef6622d1e0a983979fc67221994baddc10512 was pushed. SpongeForge was updated for this (https://github.com/SpongePowered/SpongeForge/commit/742c1fe3059ee0b66fa1b138587fbc95c99e0d81), but SpongeVanilla was not. This updates SpongeGradle to fix it. It also updates shadow to match the SpongeForge version.

It seems like your fork is out of date. As far as I can see, these changes I have already made these changes in https://github.com/SpongePowered/SpongeVanilla/commit/236e480d92090bb0934ce88086a9b46a968dfd32.
See https://github.com/SpongePowered/SpongeVanilla/blob/bleeding/build.gradle#L21-L22


#[QUESTION] How can i write alt-menu?

Hello. I using waybar on swaywm.
But I had a question
I want a button on the top left of the top panel and 6 buttons next to it when I press these buttons. And I want to assign a function for each button separately. How can I do that?
For e.g Polybar

I'd like to see something like this too, it was a very neat feature of polybar and I can't see anything referring to do it with waybar.


Whether to consider support for specifying multiple namespace service discovery

Is your feature request related to a problem? Please describe.
no
Describe the solution you'd like
Whether to consider support for specifying multiple namespace service discovery, now it seems to support only single namespace service discovery or all namespace service discovery

see this. There is already a proposed PR for this, we have not yet reviewed it yet

ok


Tests!

Rainforest literally will not let me release until there are tests :)

rake specs works now, there's just not any tests yet

It needs to be rake spec

https://github.com/CocoaPods/cocoapods-stats/commit/0d31ee834cc4bde5c3071b2cc86a1a997d4f7a49
;)


head: missing --zero-terminated

While building python in nixpkgs I noticed that the --zero-terminated flag is missing from head.
  -z, --zero-terminated    line delimiter is NUL, not newline

Landed!


Deprecated performGesture and added performTouchInput

I've added a new node action, performTouchInput, similar to other actions, and deprecated performGesture. Also, I've added 2 tests for the both actions, just in case.
Unfortunately, I ran into issues trying to run tests and ensure that everything works, so I did some changes locally to run them. Please try running tests yourself before merging. I can fire up another PR with the fixes for the build.
Closes #35

@Vacxe can you please take a look?

@fobo66 appreciate for the contribution! I terribly sorry for this delay mate. Do u need this feature ASAP? I can do a minor release if you want.

Test logic updated #36


Docker/Maven/Java/IntelliK

Hi,
My application properties
<EMAIL_ADDRESS>server.port=8000
My pom.xml file
4.0.0
org.springframework.boot
spring-boot-starter-parent
3.1.1
com.example
Demo_Docker
0.0.1-SNAPSHOT
Demo_Docker
Demo_Docker
<java.version>17</java.version>
<spring.profiles.active>development</spring.profiles.active>
org.springframework.boot
spring-boot-starter-web

org.springframework.boot
spring-boot-devtools
runtime
true

org.springframework.boot
spring-boot-starter-test
test

src/test/resources
true

org.springframework.boot
spring-boot-maven-plugin

My Dockerfile
FROM openjdk:17-jdk-alpine
ARG JAR_FILE=out/*.jar
COPY ./out/artifacts/Demo_Docker_jar/Demo_Docker.jar app.jar
EXPOSE 8000
ENTRYPOINT ["java", "-jar", "/app.jar"]
RestController
@RestController
public class hello {
@GetMapping("/")
public String greeting() {
return "Greeting Sto";
}
INFO FRON INTELLIJ
17:38:36.217 [main] INFO com.example.demo_docker.DemoDockerApplication -- No active profile set, falling back to 1 default profile: "default"
CAN HELP PLS
APP NOT RUNNING ON DOCKER!

Can you provide a complete, minimal, verifiable sample that reproduces the problem? It should be available as a GitHub (or similar) project or attached to this issue as a zip file.

When I start the project with docker and open the localhost method greeting() it doesn't execute. When I run the app normally with Spring Boot the method works. If you have any additional questions, I'm on a date. My console says -
No active profile set, falling back to 1 default profile: "default"
And the App does work.
I tried everything I could find on the net but to no avail
Thanks for support
Demo_Docker.zip

This project doesn't using Spring Cloud from what I see so I am not sure why you have opened the issue in Spring Cloud Config...


Error: Unauthorised

I have an issue when using shelly nodes. First I get a polling message and few seconds after I get an error message stating that request is unauthorised. I am using a simple inject node, shelly motion node and debug node. Nothing gets transferred to debug node as well.

I suppose correct username and password that are entered in the properties should be the ones that were used to protect shelly web interface. If this is the case I am sure I am typing them correctly. But I am writing them exactly as they are, without any quotes or brackets.

Thanks in advance.

Hm to be honest is was a while ago I made use of username and password. I will have to test if the API changed somehow ... thanks for reporting

Thank you, I appreciate your response.
If you figure out something let me know. For now I am using workaround with HTTP request nodes, but it would be nice to be able to utilise shelly nodes as well.
Anyway, I am going to keep testing and if I find something out, I will post here.


Bridge: Comparison of evaluation results

When reviewing a test evaluation result, it should be possible to compare, for example: evaluation B4 with B1, or evaluation B4 with last milestone X. As a result, the reviewer wants to see a diff of the two builds, i.e., which metrics have changed between these builds and how.

Each indicator (objective) can be included in the chart either as bar or line. But with a large number of objectives that might not be a good idea.

I had a conversation with a member of the CPE team regarding the comparison view of evaluation results. I showed him option A and B and he provided the following feedback:
Option B: The information gain of this visualization is high and gives already a detailed look into the evaluation result. Even more than the team currently has in the tool they are using. He prefers this view when it comes to his role as performance engineering. However:
Option A: Is required too. Especially, when it comes to getting an overall picture of trends. This is important for someone how owns the responsibility for multiple test objects (in their case: clusters):
Overall feedback: There should be a way to flip between both views (A and B).

There is now an option to switch between Heatmap and Chart, when viewing the Evaluation comparison.
The Heatmap shows the overall Score in the top-most row and then all the SLIs follow. As there are problems with displaying a tooltip, for the time being you can click on any tile and see the details of that specific evaluation that you clicked.
The latest image to test this feature is available on dockerhub:
keptn/bridge2:feature.1323.20200220.1805