Add support for 32-bit ARC (legacy ARC)

This PR adds support for the legacy, pre-ARCompact ARC ISA with 32-bit instructions. While similar to ARCompact in its programming model and instruction semantics, the instruction encoding is completely different from that of the ARCompact ISA and its 16/32-bit instructions. Since this legacy instruction set tends to be referred to as just the "ARC" ISA in documentation and binutils/GCC, to avoid confusion with the modern ARC ISAs I've named this one "ARC32" in the language definitions.
The ISA manual for this instruction set can be found here. Synopsis seems to have removed any references to this ISA from their website, so unfortunately it doesn't seem to be possible to get this manual from them directly.
As far as I can tell, this ISA was last used in the ARCtangent-A4 processor, which was used for the Intel Management Engine in chipsets prior to the release of the Intel 5 Series (Ibex Peak) chipsets. This ISA is also used in all versions of the Broadcom Crystal HD video decoder chip (whose firmware can be found here). Hopefully this demonstrates that the core popular enough to justify inclusion in Ghidra.
Unfortunately, when it comes to C toolchains, support for this ISA was removed from GCC nearly a decade ago, and I have been unable to build the last version that supported it (4.5.4). Fortunately, there is a pre-built ARC toolchain (available here) that includes both binutils and GCC and can compile for both big-endian and little-endian ARC. In addition to the pre-built toolchain, binutils 2.25.1 (the last version to support this ISA) can still easily be built from source (without modification), and can be used to assemble and disassemble code for this architecture.
I've tested this processor module's disassembly of some of the libraries included in the pre-built toolchain, and compared the output to that of objdump -d from binutils 2.25.1 for the same libraries, and they seem to match, but it'd be nice to have some more automated testing of this, both to confirm that the disassembly listing is correct and to validate the p-code implementation of the instruction semantics. Unfortunately, I don't really understand how to enable these tests, so I'd appreciate some assistance with that.
This module is still missing support for some instructions (MAX, MIN, and NORM--see TODOs) as well as semantics for some instructions (I have no idea how to implement LP or the "only execute the delay slot when jumping" for branch/jump instructions--see FIXMEs), so I'd appreciate some assistance here as well.
I had originally intended the directory for this processor module to contain all the variants of the ARC ISA, including ARC32, ARCompact, and later ARC ISAs. This is why I just named the directory "ARC" and not "ARC32", but that was before I discovered that someone else had already started adding support for ARCompact in PR #3006. At this point, I'm not sure if you'd rather I rename this module to ARC32, have #3006 rebase off of this PR and move their code under "ARC", or keep everything separate like it is now. I expect that fully implementing ARC32 will take some more time, so maybe it'd be best to keep ARC32 and ARCompact separate for now and only combine them later once they've both been merged into Ghidra. Or maybe we should just keep them separate indefinitely since their instruction encodings are so different.
I'm eager for any advice, suggestions, and comments that anyone might offer.

Hello,
Thanks for sharing this work! I am the author of PR #3006 (support for ARCompact) and I am glad other people are sharing the work their do on similar ISA.
I do not have any strong opinion on whether to keep Ghidra/Processors/ARCompact/ separate or to merge it in Ghidra/Processors/ARC/. For information, there also exists ARCv2 and ARCv3 ISA. I know that ARCv2 is similar as ARCompact but different enough to be quite complex to integrate cleanly with the ARCompact definition (some parts of the opcode instruction space set were completely modified with other instructions, for example). So there are two possibilities and both make sense (in my humble opinion): either having ARC32, ARCompact, ARCv2 and ARCv3 in a single directory named ARC, or having separate directories for each ISA.
About your missing instructions, you might be interesting in my commits https://github.com/NationalSecurityAgency/ghidra/pull/3006/commits/685727c8d57e744f550fc763849e49b8d4075012 (which implements min and max in ARCompact) and https://github.com/NationalSecurityAgency/ghidra/pull/3006/commits/bf71b0ced1393e877ee94078ad155bc999f97ae3 (which implements norm in Java, to be able to run Ghidra pcodetests in a way that I documented in the description of https://github.com/NationalSecurityAgency/ghidra/pull/3006/commits/f4262bc2b5b4efb32d455406f9d25ec5f3a0e7f7).
To implement LP, it is actually a case which is documented in Ghidra's official documentation on https://ghidra.re/courses/languages/html/sleigh_context.html and more precisely this note:

The processor supports instructions that temporarily affect the execution of the immediately following instruction(s). For example, many processors support hardware loop instructions that automatically cause the following instructions to repeat without an explicit instruction causing the branching and loop counting.

In ARCompact support, I implemented lp using context variables, and this was actually complex enough that I was able to give a talk about it in a conference some weeks ago, https://www.sstic.org/2021/presentation/analyzing_arcompact_firmware_with_ghidra/ . You may be interested to read the section 4 Loop instruction of the article (the article is in English and the talk and slides are in French) to better understand what I did.
Thanks again for your work!

Thank you, @niooss-ledger, that actually helps a lot. And thank you for contributing the ARCompact support--you've probably saved me days (or more) worth of effort that I would have otherwise had to spend working on that myself.

I do not have any strong opinion on whether to keep Ghidra/Processors/ARCompact/ separate or to merge it in Ghidra/Processors/ARC/. For information, there also exists ARCv2 and ARCv3 ISA. I know that ARCv2 is similar as ARCompact but different enough to be quite complex to integrate cleanly with the ARCompact definition (some parts of the opcode instruction space set were completely modified with other instructions, for example). So there are two possibilities and both make sense (in my humble opinion): either having ARC32, ARCompact, ARCv2 and ARCv3 in a single directory named ARC, or having separate directories for each ISA.

Yeah, I feel like this is a similar situation to the "ARM" module since the ARM ISA variants (e.g., Thumb-2, ARMv7, ARMv8) in there all have a lot in common, but also differ from each other in big ways, so I thought it would make the most sense to do the same thing with all the ARC ISA variants. But ultimately, it's up to the project maintainers how they want to keep the processor modules organized, and I don't really mind one way or the other how that's done so long as our PRs get merged.

About your missing instructions, you might be interesting in my commits 685727c (which implements min and max in ARCompact) and bf71b0c (which implements norm in Java, to be able to run Ghidra pcodetests in a way that I documented in the description of f4262bc).

Thanks, I'll take a look.

To implement LP, it is actually a case which is documented in Ghidra's official documentation on https://ghidra.re/courses/languages/html/sleigh_context.html and more precisely this note:

The processor supports instructions that temporarily affect the execution of the immediately following instruction(s). For example, many processors support hardware loop instructions that automatically cause the following instructions to repeat without an explicit instruction causing the branching and loop counting.

I noticed that line in the documentation while I was writing this module, but unfortunately there weren't any examples on how to use context variables to do that, and I wasn't able to figure it out on my own.

In ARCompact support, I implemented lp using context variables, and this was actually complex enough that I was able to give a talk about it in a conference some weeks ago, https://www.sstic.org/2021/presentation/analyzing_arcompact_firmware_with_ghidra/ . You may be interested to read the section 4 Loop instruction of the article (the article is in English and the talk and slides are in French) to better understand what I did.

Thank you, that really helps a lot. I'll try implementing that, too.

Thanks again for your work!

Thanks again to you as well!

Hi @cyrozap , you've clearly put some work into this. Let me respond to a couple of your comments so you can keep moving forward with the development.

This PR adds support for the legacy, pre-ARCompact ARC ISA with 32-bit instructions. While similar to ARCompact in its programming model and instruction semantics, the instruction encoding is completely different from that of the ARCompact ISA and its 16/32-bit instructions. Since this legacy instruction set tends to be referred to as just the "ARC" ISA in documentation and binutils/GCC, to avoid confusion with the modern ARC ISAs I've named this one "ARC32" in the language definitions.

This seems reasonable. They should probably go in one project, similar to the PIC processors (and not similar to the SuperH processor).

The ISA manual for this instruction set can be found here. Synopsis seems to have removed any references to this ISA from their website, so unfortunately it doesn't seem to be possible to get this manual from them directly.

We can use whatever the latest version of the manual is. We don't include the actual pdfs due to copyright issues, but we can reference it however we need to in the index file.

As far as I can tell, this ISA was last used in the ARCtangent-A4 processor, which was used for the Intel Management Engine in chipsets prior to the release of the Intel 5 Series (Ibex Peak) chipsets. This ISA is also used in all versions of the Broadcom Crystal HD video decoder chip (whose firmware can be found here). Hopefully this demonstrates that the core popular enough to justify inclusion in Ghidra.
Unfortunately, when it comes to C toolchains, support for this ISA was removed from GCC nearly a decade ago, and I have been unable to build the last version that supported it (4.5.4). Fortunately, there is a pre-built ARC toolchain (available here) that includes both binutils and GCC and can compile for both big-endian and little-endian ARC. In addition to the pre-built toolchain, binutils 2.25.1 (the last version to support this ISA) can still easily be built from source (without modification), and can be used to assemble and disassemble code for this architecture.

We can probably cobble something together with the toolchains to make something we can build the binaries with (I hope). Usually, the biggest issue is support for some of the standard libraries. But with GCC and binutils I'm pretty confident we will get something that works well.

I've tested this processor module's disassembly of some of the libraries included in the pre-built toolchain, and compared the output to that of objdump -d from binutils 2.25.1 for the same libraries, and they seem to match, but it'd be nice to have some more automated testing of this, both to confirm that the disassembly listing is correct and to validate the p-code implementation of the instruction semantics. Unfortunately, I don't really understand how to enable these tests, so I'd appreciate some assistance with that.

agreed.

This module is still missing support for some instructions (MAX, MIN, and NORM--see TODOs) as well as semantics for some instructions (I have no idea how to implement LP or the "only execute the delay slot when jumping" for branch/jump instructions--see FIXMEs), so I'd appreciate some assistance here as well.

Look at sparcv9.sinc starting at line 681 for the delayslot fix. Once you see it, it's easy to understand. Just use the conditional statements to determine whether to jump to the next instruction or not.
For "only execute the delayslot when jumping" you want if !(condition) goto inst_next; delayslot(1); goto [jump]
For "only execute delayslot when not jumping" you want if (condition) goto [jump]; delayslot(1);
For the looping, I would take a look at @niooss-ledger's implementation as well. It's pretty good, but I haven't fully reviewed it yet.

I had originally intended the directory for this processor module to contain all the variants of the ARC ISA, including ARC32, ARCompact, and later ARC ISAs. This is why I just named the directory "ARC" and not "ARC32", but that was before I discovered that someone else had already started adding support for ARCompact in PR #3006. At this point, I'm not sure if you'd rather I rename this module to ARC32, have #3006 rebase off of this PR and move their code under "ARC", or keep everything separate like it is now. I expect that fully implementing ARC32 will take some more time, so maybe it'd be best to keep ARC32 and ARCompact separate for now and only combine them later once they've both been merged into Ghidra. Or maybe we should just keep them separate indefinitely since their instruction encodings are so different.
I'm eager for any advice, suggestions, and comments that anyone might offer.

Good luck!

I just realized that I missed a bunch of instruction encodings (e.g., op, #shimm, #shimm, where instruction fields B and C are both set to either r61 or r63), auxiliary registers are still not fully implemented, and the way I've implemented setting condition flags may not be correct (and can be optimized somewhat), so I've converted this PR into a draft to avoid it being merged before all of that has been fixed.
Apologies for the false start--I'll be sure to mark this PR as ready only once I'm sure that the decoding and decompilation are working properly.
To make it easier to keep track (and so I don't forget), here's the current status of the various issues with this processor module:

[x] Properly handle delay slots for conditional branch/jump instructions. 1550881
[x] Implement LP instruction. c7890ff
[ ] Implement MAX instruction.
[ ] Implement MIN instruction.
[ ] Implement NORM instruction.
[ ] Update DWARF register mappings based on information from GCC.
[ ] Update compiler spec based on information from GCC.
[ ] Add p-code tests.
[ ] Implement op, #shimm, #shimm encoding for all the instructions that can use it.
[ ] Modify auxiliary register implementation to use a memory space instead of register space.
[ ] Fix condition flag updates for arithmetic operations.

[] @tmc1245


Installing reth as a dependency on a rust project fails

Describe the bug
Installing reth as a dependency in another rust project throws an error
Steps to reproduce
Add:
[dependencies]
reth = { git = "https://github.com/paradigmxyz/reth" }
Build error:
error[E0609]: no field precompiles on type &mut EVMData<'_, DB>
--> /home/ubuntu/.cargo/git/checkouts/reth-36d3ea1d1152b20c/6b8b478/crates/revm/revm-inspectors/src/tracing/js/mod.rs:280:33
|
280 |             PrecompileList(data.precompiles.addresses().into_iter().map(Into::into).collect());
|                                 ^^^^^^^^^^^ unknown field
|
= note: available fields are: env, journaled_state, db, error
error[E0609]: no field precompiles on type &EVMData<'_, DB>
--> /home/ubuntu/.cargo/git/checkouts/reth-36d3ea1d1152b20c/6b8b478/crates/revm/revm-inspectors/src/tracing/mod.rs:493:13
|
493 |     if data.precompiles.contains(to) {
|             ^^^^^^^^^^^ unknown field
|
= note: available fields are: env, journaled_state, db, error
For more information about this error, try rustc --explain E0609.
Let me know if you need anything else
Node logs
No response
Platform(s)
Linux (x86)
What version/commit are you on?
No response
What database version are you on?
No response
If you've built Reth from source, provide the full command you used
No response
Code of Conduct

[X] I agree to follow the Code of Conduct

You need to add this in your Cargo.toml
[patch.crates-io]
# patched for quantity U256 responses <https://github.com/recmo/uint/issues/224>
ruint = { git = "https://github.com/paradigmxyz/uint" }

revm = { git = "https://github.com/bluealloy/revm/", branch = "release/v25" }
revm-primitives = { git = "https://github.com/bluealloy/revm/", branch = "release/v25" }

Also I suggest that you add reth crates independently, I doubt you need to import the entire project.
ex: reth-primitives = { git = "https://github.com/paradigmxyz/reth", package = "reth-primitives" }

awesome yep worked
[dependencies]
reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db" }
[patch.crates-io]
patched for quantity U256 responses https://github.com/recmo/uint/issues/224
ruint = { git = "https://github.com/paradigmxyz/uint" }
revm = { git = "https://github.com/bluealloy/revm/", branch = "release/v25" }
revm-primitives = { git = "https://github.com/bluealloy/revm/", branch = "release/v25" }
thanks dude

looks like i can just remove that if i just want the db package
[dependencies]
reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db" }

Yes - exactly. We'll be improving the UX of consuming as crates in the future, for now appreciate the patience and hope it's not a huge deal.

Not at all my mistake really - keep up the amazing work guys 🙏🙏


finish this up

started this a while ago, other things came up so haven't finished it.

ok I think this looks good


BMS SOC vs. Multiplus SOC

Describe the problem
In the VRM-Portal, i see the SOC provided by dbus-serialbattery and the one provided by the internal meassurement
If i change the BMS SOC, the Mutiplus SOC will also be changed?
Is this behaviour wanted?
Driver version
1.0.0 installed with nightly built
Venus OS device type
Raspberry Pi
Venus OS version
3.00 36
BMS type
Daly Smart BMS
Cell count
16
Connection type
Serial USB adapter to TTL
Config file
*

Relevant log output
*

Any other information that may be helpful
No response

If i change the BMS SOC, the Mutiplus SOC will also be changed?

Is this a statement or a question?
From what I know, the SoC of the battery monitor selected should be displayed. Where exactly in the VRM portal do you mean? Please post a screenshot.

In VRM, i see the Values of the Daly BMS - read out by serialbattery, and, theoretically, the value calculated by the shunt in the Multiplus
But it looks like serialbattery is also overwriting the internal Multiplus value?

In the remote console/GUI go to Settings -> System setup -> Battery measurements and enable the devices you want to see in VRM.

I have them both enabled
Problem is, that internal Value is always the same as the one from serialbattery
I think there is a bug that serialbattery overwrites also the internal calculated SOC?

No, the driver is not overwriting nothing. Probably it‘s some calculation in dbus-systemcalc-py.
Please open a question in the Victron Community.

Thanks, i´ll try that
Really strange behaviour, as vor Voltage and Current, i get different Valus, but SOC is always the same

Please link your post here, so other users with the same problem can follow that


Works with PHP 5.6, but not with PHP 7.0

Discussion: https://forum.thirtybees.com/topic/1719/impossible-to-make-the-migration-download-keeps-failing
A migration works fine with PHP 5.6, but throws errors with PHP 7.0. Logs are also available:
2018/05/07 07:24:54 [error] 3581#3581: *8323 FastCGI sent in stderr:
"PHP message: PHP Notice:  Trying to get property of non-object in /var/www/clients/client1/web10/web/modules/psonesixmigrator/classes/ObjectModel.php on line 170
PHP message: PHP Notice:  Trying to get property of non-object in /var/www/clients/client1/web10/web/modules/psonesixmigrator/classes/ObjectModel.php on line 170"
while reading response header from upstream,
client: XX.XX.XX.XX,
server: XXXX.eu,
request: "POST /XXXX/autoupgrade/ajax-upgradetab.php HTTP/2.0",
upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web10.sock:",
host: "www.XXXXX.eu",
referrer: "https://www.XXXXX.eu/XXXX/index.php?controller=AdminThirtyBeesMigrate&token=3ac0cdd5c5e19b17b026dd0e14c6d69f"

And this message appears, when the module reports the failure:
2018/05/07 07:25:59 [error] 3581#3581: *8323 FastCGI sent in stderr:
"PHP message: PHP Warning:  sprintf(): Too few arguments in /var/www/clients/client1/web10/web/modules/psonesixmigrator/classes/AjaxProcessor.php on line 307"
while reading response header from upstream,
client: XX.XX.XX.XX,
server: XXXXX.eu,
request: "POST /XXXX/autoupgrade/ajax-upgradetab.php HTTP/2.0",
upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web10.sock:",
host: "www.XXXXX.eu",
referrer: "https://www.XXXXX.eu/adburma/index.php?controller=AdminThirtyBeesMigrate&token=3ac0cdd5c5e19b17b026dd0e14c6d69f"

This was solved somewhere between versions 1.0.0 and 1.0.2.


Modernize and run package creation as a test too.

In this PR:

updated the actions used
modernize it to be a bit more efficient
use a pep 517/518 compliant tool
run it also on non-release to catch packaging breakages

The long_description won't render on PyPI.
Checking xbitinfo-0.0.post1-py2.py3-none-any.whl: FAILED
ERROR    `long_description` has syntax errors in markup and would not be
         rendered on PyPI.
         line 56: Error: Unknown interpreted text role "py:func".
WARNING  `long_description_content_type` missing. defaulting to `text/x-rst`.
Checking xbitinfo-0.0.post1.tar.gz: FAILED
ERROR    `long_description` has syntax errors in markup and would not be
         rendered on PyPI.
         line [56](https://github.com/observingClouds/xbitinfo/runs/6720948454?check_suite_focus=true#step:9:57): Error: Unknown interpreted text role "py:func".
WARNING  `long_description_content_type` missing. defaulting to `text/x-rst`.
Error: Process completed with exit code 1.

It is missing a markdown README with a rst changelog. I would drop the changelog but one could also re-qwrite one or the other into the same format and declare that in the setup.py.

Thanks @ocefpaf for this PR. With a new version of numcodecs published on pypi and a few minor fixes in other branches, we are finally ready to merge this 😃


360/360 long lat for unknown lat long?

@gsautter what it the reason that we have so many 360/360 lat/long pairs in our MC?

The question in the ticket title is pretty much the answer ... yes, 360/360 is the substitute for "unknown lat/long", just as minus the radius of the earth is the indicator for "unknown elevation".
This is the kind of encoding required for numbers that can take both positive and negative values, as well as zero ... there is no just other simply way of encoding "empty" in a numeric database field, an for the expected range searches that are likely on these fields, numeric fields are so much more efficient from a database point of view than a string based encoding that at least back in 2009 it seemed like the best way to go, and still feels that way to this day.
A strictly positive number like specimen count would allow encoding "unknown" as -1 (as generally done in the JRE API), but that obviously does not work for lat/long or elevation, where -1 is a completely plausible value to occur in the data these fields are intended to hold, so other out-of-range values need to be used.


unwelcome welcome window

on windows 10 edu
I can't get rid of the 'welcome to tomboy-ng' window, not by X-ing out of it nor by minimising it. The other notes disappear if I do. It includes the text:
"Sadly, on this OS or because of a Bad Note, I cannot let you dismiss this window"
How do I find out if its caused by a bad note and how do I then fix it?

Hello Eb, I am afraid the problem is exactly what it says, "Failed to index one or more notes".  It has found an error in your notes and that screen is looking after your valuable data !
Hover the mouse over the error messages and it tells you to go to settings, Snaphots and click Recover. Read the intro screen, take a safety snapshot, click "Existing Notes" tab. If you are sure you don't need the bad note, delete it or double click it to take things further.
I would very much like to know where this bad note came from ?  Are you a new tomboy-ng user, it maybe be an old note. The origional Tomboy just ignored any note it could not read. But if you have been using tomboy-ng before this, it says to me that badnote is new and we'd both like to know how it happened !
Please report back.....
Davo

I have not heard from Ed, problem is in his hands. I will close this ticket now, he should feel free to reopen if he desires.

I did respond, by email, in reply to your email Apparently that doesn't get through to you. Here is the text I sent
"Ok, I did as directed:

Hover the mouse over the error messages and it tells you to go to settings, Snaphots and click Recover. Read the intro screen, take a safety snapshot, click "Existing Notes" tab. If you are sure you don't need the bad note, delete it or double click it to take things further.
FormRecover window said there was one bad note. I deleted it, but saw, upon fiddling, that there were a number of notes that wouldn't open. Neither would they open from the Search window. So, I made the search window bigger so I cold see the file names, for each unopenable note, opened it with notepad++, made a small change and saved. Some of them became opened, I think but not all of them. (I did it hours ago. Sorry I didn't document anything at the time.)

I did not finish doing the above for all unopenable notes.
In any case, the FormRecover Window says there are no bad notes, the splash window does not show at startup if that box isn't checked, which is different and better, but if it does start with splash, the app crashes when the splash is X-ed closed.
So that is still buggy."
Now I will add a different bug, that one can't cntrl+shift+arrow key (any) to select blocks of text, although cntrl+arrow,shift+arrow (r & L only), home+arrow and end +arrow do work as expected.

Hi Eb, yes, I have noticed that posting to here via an email client does not seem to work.  Git hub claim it does ....
Now, I was under the impression that you, as the originator of this thread could reopen the ticket yourself ? Apparently not ?
Anyway, sounds like you have more than one bad note. Not sure I quite understand whats happening here. Are you saying that you have more unopenable notes but they are not listed in the recover section ?  How do you know you have more unopenable notes please ?
Can you tell me, step by step, what you do to trigger that crash ?  I have not seen anything like that.  Its complicated by the fact that the newly released V0.25 has substantially rewritten startup code and its quite possible the combination of factors that triggers your crash don't apply any more.
As a by line Ed, I think its quite important that I 'encourage', strongly, end users to deal with bad notes.  I know several Tomboy users who, when they switched to tomboy-ng found notes they did not realise they had lost. I have a lot of very important data in my notes, scared of loosing any of them !  If you have lots of bad notes, I thing we need to find out why.

Hi Eb, not heard back from you. If you are replying from your email client, that may not work.  I know it does not work for me using Thunderbird.  Please work from the github web interface if you can.
Davo

if the splash screen is displayed, then  closing it crashes program.
settings>snapshot>Recover lost notes says no bad notes, but I don't believe it because some of them won't open.

OK Eb, thanks for that.  We have two options to deal with this, firstly, if you could start tomboy-ng in debug mode and send me the result. Alternatively, if you could send me one of these notes, I can do it here.  For the first model, because Windows does not write to console, you need to capture that output to a file.
I have tried to capture all the likely problems that might occure in a note but looks like I have missed one. Sigh ...
I will need to boot my laptop into Windows and experiment a bit to get the exact command line you need. Will get back to you later today.

Create a windows debug file

Rightclick the startbutton and select "run"
In the field, enter this command line exactly as show -
"C:\Program Files\tomboy-ng\tomboy-ng.exe" --debug-index --debug-log=%userprofile%\Desktop\tomboy-log.txt
Press enter, tomboy-ng should start up normally. Close it.
A file called tomboy-log.txt will have been created on your desktop, please look through it ensuring no privacy issues (should not be, but lets be careful), attach that file to this github issue thread.

tomboy-log.txt
I did as directed above after correcting the path to Desktop (%userprofile%\Desktop didn't find it. It's on a separate partition, as is my notes directory.) and in fact repeated it a few times (quitting the app in between), as you'll see in the log. I tried opening one of my bum notes but it didn't log anything except 'left-click'.
In finding the .exe location (funny, I didn't see it in Program Files at first, but I probably just missed it) I read some of the tutorial .NOTE files you have in the directory with the .exe. This pointed me to a possible cause of note badness... My notes are saved to a tresorit (encrypted cloud service) shared directory that is accessed by both my windows and linux Linux Mint (derived from ubuntu) partitions. So this is NOT a sync directory, it is the notes directory. Is there a possible problem with line endings formats?? Other text and word docs have no problem with them, but maybe XML docs do?? or just something else about the notes doesn't like being shared this way? I do it because I don't have to remember to sync. I hadn't even set up a sync directory before today. Now I have and it seems to be working, though I haven't rebooted into linux  yet to check that side.

This could have nothing to do with my problems at all. They could stem from farting around with my Tomboy notes, screwing up their manifest file and then importing them into tomboy-ng...
I'm going through and deleting bum notes. what happens with these iis that they just don't open when clicked on. The app doesn't crash, just nothing happens. tomboy-ng doesn't recognize that there are bad notes.

when I say accessed, I mean that both OSs have a directory in their file manager that are synced through Tresorit. I would have thought that that took care of file endings.

BTW, the way I've been rescueing my unresponsive notes is to click 'Recover Snapshot' then double click a recent Snapshot so that the notes in it appear in the right pane titled 'Notes in Snapshot 'date time'. Once I can see the name of the note and its hex filename, I can find that file in the file manager, open it with Notepad++ copy the important bits into a new note and then delete the bad note. This is a bit time consuming and somewhat frought as I must be careful not to accidentally click 'Recover'. Yet this seems to be the only way to find the filename of a note from its name. A 'find note filename' or 'view note in text editor' button under an 'advanced' tab might be a good feature to implement for occasions such as this.

also you can't resize column widths in the above screenshotted table (screenshat? screenshyte? what is the past tense of screenshot?) which would be useful in a minor way.

ok, I've deleted all notes that didn't open and still when I click the X in the right top corner of the splashscreen window it crashes the app.

Eb, the x in the right top corner is intended to close but not crash the app. Are you sure you are seeing a crash ?
Hmm, both Tomboy and tomboy-ng are (should be) indifferent to line endings.  And I guess the encryption your file service offers does not change the note.  But sharing a note between multiple installs without using the sync system is risky.  If there is any chance that the note directory can be accessed by two systems at the same time, DANGER Will Robertson Danger !  You might be OK if you can be absolutely sure only one system is powered up at at a time, such as a dual boot machine but if you also use Tomboy in the mix, I would strongly not recommend it, I do not understand Tomboy's indexing mech, it may not be OK.
If you don't mind, I would really like to see one of those dud notes. Identifying the problem might let me make -ng be able to deal with what ever has happened.
We need to work togeter on a past tense for screenshot, agree its needed ..... carefully !
Eb, you are using v0.24 of tomboy-ng, right ?  v0.25 has a quite different approach to that small screen, lots of changes that affect mainly Linux users but the changes are there in all systems. It could be that the problem you are experiencing has been unintentionally 'fixed'  with  that rewrite. Please update and test.
Else, I need to build you a special version that has a whole lot of extra debug stuff especially around the closing process.

I can't paste in the notes, even though I told windows they open with notepad++, so I'll open them with that and paste in the text:

Fowler on bloated Domain Objects vs. duplication of usage specific behaviour
Fowler on bloated Domain Objects vs. duplication of usage specific behaviour
A common concern with domain logic is bloated domain objects. As you build a screen to manipulate orders
you'll notice that some of the order behavior is only needed only for it. If you put these responsibilities on the
order, the risk is that the Order class will become too big because it's full of responsibilities that are only used
in a single use case. This concern leads people to consider whether some responsibility is general, in which
case it should sit in the order class, or specific, in which case it should sit in some usage-specific class, which
might be a Transaction Script (110) or perhaps the presentation itself.
The problem with separating usage-specific behavior is that it can lead to duplication. Behavior that is
separated from the order is harder to find, so people tend to not see it and duplicate it instead. Duplication can
quickly lead to more complexity and inconsistency, but I've found that bloating occurs much less frequently
than predicted. If it does occur, it's relatively easy to see and not difficult to fix. My advice is not to separate
usage-specific behavior. Put it all in the object that's the natural fit. Fix the bloating when, and if, it becomes a
problem.
p.113
2019-07-27T23:02:06.5878685+01:00
2019-07-27T23:02:06.5878685+01:00
2019-07-27T23:00:25.7535630+01:00
1
1
450
360
2128
551
True

Convention Over Configuration
Convention Over Configuration
most often defined as a software paradigm
where the amount of decisions that a developer must make is minimised. this is at a risk of loss of flexibility, i.e. ease of implementation of alternate design choices not accounted for by the convention... configurations defined by the developer.
I think it means the system conforming to certain conventions in order to allow certain automatic processes to proceed, thereby avoiding explicit coding of, for example, a link between a class and the DB table it should correspond to. So if the two names meet the format prescribed by the convention, the linking happens automatically.
for example, naming conventions to allow automatic linking of 'class Sale' to table 'sales'
the downside is that often implementation of this makes it harder for devs to write code that doesn't conform to the conventions prescribed.
(An Investigation of Data Flow Patterns Impact on Maintainability When Implementing Additional Functionality)
For this approach to be followed, the developer must know the frameworks conventions.
pluses are ease of development, more consistent more easily maintainable code and less need for configuration files.
2019-03-24T23:41:24.1373513+00:00
2019-03-24T23:41:24.1373513+00:00
2019-03-24T20:47:39.0819758+00:00
1
1
980
663
2734
357
True

WCF
WCF
(Windows Communication Foundation)
Microsoft proprietary tech
based on/built on? SOA: four tenets:

boundaries are explicit. this is about universal deployment of services. messages must be able to cross any boundary so service are not bound by environment or language.
attribute based programming enables definition of 'external service contracts'. If not explicitly defined, there can't be explicit exposing of functionality.

Autonomy of Services Services are manages and versioned independently of each other - inner workings are hidden from each other. Contract is interface.

shared schema and contract. Rather than classes & types. These used by clients to generate own code to call the service - Loosely Coupled system. With schemas and contracts, inner workings of code not needed to pass data.

Services interact by looking at each others' policies for compatibilities that will enable interaction.
2019-03-06T15:14:51.4802734+00:00
2019-03-12T10:38:15.8955418+00:00
2019-03-06T14:53:21.8592591+00:00
1
1
450
360
1449
1059
True

if this method of transmission isn't good for you, you'll need to give me an email address I can send them to as attachments? or you tell me a way that'll work.

okay, I pulled these notes out of the bin. Github said I couldn't  copy and padste them into its window and the markup was stripped out when I tried pasting the text I got from opening them in Notepad++, so here they are zipped:
bum notes.zip
I told windows to open them with Notepad++ in their properties, in hopes I could then drag the files into this github window. If that changes them in ways you'd rather it didn't, I can send others

OK Eb, that is really very strange. I can open all three of those note without problem. One of them apparently had had its extension changed, it was .xml rather than .note so I had to rename that one. Otherwise, -ng would totally ignore it.  I cannot imaging how that initial rename happened ...
But the real issue is the other two, your system was not picking those notes up, neither complaining they were broken nor reading them. But they were in your normal notes directory ?  I don't quite follow what you did to them with notepad++, maybe its worth sending me another one that has just been zipped ?
I also tried clicking the X, top right, while looking at each of these notes, normal, crash-less  exit.
Davo

ok. the extension change is probably down to me fiddling around trying to open that note up to copy out the text. Anyway, I looked in my recycle bin for notes to send you. They all had a notepad++ icon because I changed properties>>opens with: to notepad++. Now I've changed them all back to open with tomboy-ng so hopefully we're back where we started.

here are three more notes which I've pulled out of the recycle bin. They do not open when I click on them on the desktop. I put one of them in the notes directory and it still didn't open. here they are all zipped up.
So are you saying that clicking the top right corners X in the slash window is SUPPOSED to quit the whole program?That seems like an odd way for it to work. Surely it should only close that one window? Whether that engenders a crash or a graceful exit, it seems broken to me. I look to close the app by left clicking the icon in the system tray and choosing quit. I'd like to be able to close that little splash window without making all of the notes I have open disappear too.

Oookaaay, I've just realised that I can dismiss the splash window without closing the entire app  by  clicking the ... wait for it... Dismiss button. That is still counterintuitive IMHO. The X should close just that one window and if you want to make it easy to close the app from that window, make that button do that and label it 'close the app' or 'Quit' or something clearly descriptive.

Yep, you have it Eb, the little splash screen is actually the apps main window and while some OS's let me capture and override a click there, some do not.  So, for consistency, I allow it do do its job.  Maybe that needs some more work...
Eb, when you put that dodgy note back in the tomboy-ng note directory, did you restart ir refresh the note list ?  tomboy-ng won't notice it there otherwise.
I am afraid I cannot see the zip file you sent me ....
Davo

Here is the zip file again

more bum notes.zip

I extracted this zip, then, with tb-ng not running, in file manager clicked on one of them with no visible result. Here is that note opened with notepad++

I say no VISIBLE result because I was then unable to open an instance of tb-ng.

so I had a look at the windows task manager to see which processes were running and found that note I'd clicked on running

So I killed that process, copied that note into the notes directory and started tb-ng and got the splash window with a bad note warning

So I went to Settings>Snapshot>Recover Lost Notes>Existing Notes and got that note listed in the Form Recover window, so I double clicked on  it as instructed

so I aborted. Then tried again to open tb-ng. I repeated all steps with the same results up until I 'got that note listed in the Form Recover window, so I double clicked on  it as instructed'. This time A note was displayed

leading in to 3.  Very curious, I thought. So I again closed the program and re-opened. I repeated the steps again with the same result as last time. So I removed the note from the note directory in the file manager. But before restarting clicked on the system tray icon and saw a note that looked like it.  I opened it up, it was actually a different note that belonged in my network Applications CW1 notebook, so I filed it there using the icon at the top of the window. Then I decided to see if it showed up in the search window. So I opened the search window from the system tray, and clicked on my network Applications CW1 notebook. The newly added note was there, but three notes I had put in there before performing the above described experiment, were not there, which is bad. In fact, all of my other notebooks were empty, which is very bad. If I clear filters, they all appear in the right pane of the search window, but of the notes I've checked, none of them have notebooks assigned to them (menu bar of note>notebook icon>existing notebooks) all the checkboxes were blank.

So remembering that I had not properly closed the app after deleting the bum note, I closed and reopened the app and found that the newly added note had also disappeared from the network Applications CW1 notebook! Now all of the notebooks I created are empty and no notes have notebooks assigned to them. The notes are still there though.
Any suggestions?

I liked Tomboy because I could navigate from note to associated note by clicking on a note name within the selected note and immediately I was there. those links were easy to differentiate from surrounding text and it was I didn't need to select them then press a button at the top. Now I link names look just like the rest of the text making it a guessing game and I can't just click and I'm there. I liked the way the old Tomboy functioned better.

edit of above:

I say no VISIBLE result because I was then unable to open an instance of tb-ng.

please make that 'beacuse after quitting the app, I was then unable...

@EbStewart the notebook reference loss is new, and fixed for the next release:  https://github.com/tomboy-notes/tomboy-ng/issues/128

Eb, sorry, once again I had no problems opening those three new notes. Once again, all I did was unzip and double click on each note, one by one.
Now, that double click is what I call "single note mode", it opens a note out of the tomboy env.  It works on my machine because I have 'associated' *.note with tomboy-ng.  I don't think the Windows installer does that so its necessary to tell Windows that when you click on *.note, you should open it with tomboy-ng. Maybe a right click and "open with" can confirm that ?
As to why adding those notes to tomboy-ng's note directory not allowing you to see them, again, I am puzzled indeed. When I get home later today, I will open up a Windows session and try that exercise there.
Do be aware that the "recover lost notes" facility cannot help if there is no content left in the note, its just a fragment of XML. Then all you can do is delete the note. Click a note that you are sure is dead and the Delete Button becomes available, easier and less error prone than searching for it in your File Manager.
I see you are still using V0.24.
Davo

OK, maybe I have identified what you are seeing Eb?
Some tests on Windows with those notes of yours. It looks like Windows does not force a new windows to appear in the normal screen area like Linux/Mac do.  Those notes had very high 'Left' settings, some 2600 pixels. Probably because they were last saved on a system with a high resolution screen. That means that if they are subsequently opened  on a lower resolution screen, on Windows, they appear to the right of the right hand edge of the screen. That is, obviously, not appearing at all !
I have added a check that some part of a note is always visible at startup.
I need to do some tests and will try and get a new release out with that fix (and others) asap.
Davo

One more thing, you mention that links are not showing up in Blue ?  I suspect that because you are using it in SingleNoteMode, it does not make sense to honour links when you are probably editing a note that is not in your regular notes directory.
Its all as you expect if you work in the normal Tomboy way.
Davo

Maybe a right click and "open with" can confirm that ?

Did that, it didn't open with the tomboy-ng app.  The notes have the correct green icon though, so I think they are associated.
attempting to open that bum note started a process though, but not a normal tb-ng one as there is no tray icon. see image below

I was unable to open the app normally until I killed the process in task manager.

Do be aware that the "recover lost notes" facility cannot help if there is no content left in the note, its just a fragment of XML.
the first image in my last post shows that note opened in notepad++. There is clearly some content there.

OK, maybe I have identified what you are seeing Eb?
Some tests on Windows with those notes of yours. It looks like Windows does not force a new windows to appear in the normal screen area like Linux/Mac do. Those notes had very high 'Left' settings, some 2600 pixels. Probably because they were last saved on a system with a high resolution screen. That means that if they are subsequently opened on a lower resolution screen, on Windows, they appear to the right of the right hand edge of the screen. That is, obviously, not appearing at all !

But since I started this bug thread, I have only used the app on Windows 10 Edu. In any case, my linux and windows partitions are on the same machine with more or less the same screen resolution set, so I don't think that that's it.

Hmm, there is a difference in the way Windows and Linux scale high resolution screens.  In my case, for example, the small splash screen is about 50% wider and higher on Windows than on Linux, same hardware.  This means that windows reports to LCL a different screen width.
I have just tested the changes I made and now, a note editing window that wants to appear beyond the screen always has a corner within the screen, that corner appears lower right.  I think it could be further in but not sure, maybe someone really does want it tucked off near the side ?
Anyway, no issues opening those three notes in Windows now.
Anyway, that fixes the only problem I can replicate at this stage. I suggest it might be worthwhile you trying it Eb ?
Davo

ok, I uninstalled the version of the app I had and installed v0.25.
as far as I can see all of my issues are solved

No, sorry Eb, not all issues I am afraid.  In 0.25 notes still forget about their notebooks.  I am rushing out a newer release as fast as I can but fixing that has lead to some other issues. I think I am on top of them now, will do some aggressive testing and if all is well, replace the binaries in 0.25 with something like 0.25f - sooner rather than later !
Davo

I've been away for awhile...
I'm on version .24b on linux mint and it seems stable except for notebooks
is the latest version stable and are notebooks working?

0.26 seems stable to me (openSUSE x86_64, KDE, non-Qt version) and notebooks work there, yes.

ok thanks

Eb, that issue you noted about pasting text at the very end of a note is still there in 0.26
Sorry.
Davo

I just ran into this error because I imported some tomboy notes.
Around sixty of the older tomboy notes have the issue that they miss a closing </note> tag and a closing </text> tag.
For instance:
<?xml version="1.0"?>
<note version="0.3" xmlns:link="http://beatniksoftware.com/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size" xmlns="http://beatniksoftware.com/tomboy"><title>Foo bar</title><text xml:space="preserve"><note-content version="0.1" xmlns:link="http://beatniksoftware.com/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">Foo bar

<list><list-item dir="ltr">baz</list-item></list>
</note-content>
  <last-change-date>2020-05-15T09:32:05.8670000+02:00</last-change-date>

Somehow they are working fine in (original) tomboy, though.


Api call response value is not getting in the getText() ,test failed by showing the message   - Expected '' to be '101'.

it('should allow searching and Show the count', () => {
    const searchButton = element(by.className('list-ro-input'));
    const searchBox = element(by.className('list-RO-search'));
    searchBox.sendKeys('[PIMS]SYSTEM+GAP_FILL_TEST');
    searchButton.click().then(() => {
      browser.driver.wait(function () {
        expect(element(by.id('SequenceMasterCount')).getText()).toEqual(101);
      }, 50000);
    });
  });

Hi there!
Since it involves usage and debugging (and you haven't used the issue template to indicate otherwise), your question is better suited for StackOverflow or Gitter. Please ask a question there with the 'protractor' tag or post in the Gitter Channel to get help.
From the getting help section of the README.

Please ask usage and debugging questions on StackOverflow (use the "protractor" tag) or in the Angular discussion group. (Please do not ask support questions here on Github.)

Thanks!


Added examples for reading DHTs inside a simple function

Have you seen - https://github.com/RobTillaart/DHTNew/blob/master/examples/dhtnew_runtime/dhtnew_runtime.ino
which does the runtime creation of DHT objects in the loop() function?

N-no，I didn't...

Please consider merging this because the method of creating a function that singletimely questions the DHT is useful.


[RESOLVED] Unavailable by ICMP ping

Problem started at 21:26:33 on 2023.04.21
Problem name: Unavailable by ICMP ping
Host: S100-Santiago
Severity: High
Operational data: Down (0)
Original problem ID: 19837
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23516&eventid=19837

Problem has been resolved in 3m 0s at 21:29:33 on 2023.04.21
Problem name: Unavailable by ICMP ping
Host: S100-Santiago
Severity: High
Original problem ID: 19837


how to start pgsync work in the background?

Please,
do I need to write the -d command to systemd? right?

@Barolina Not sure if this is what you're looking for, but fwiw, here is my setup:
sudo vim /etc/systemd/system/pgsync.service

[Unit]
Description=pgsync daemon
After=network.target

[Service]
WorkingDirectory=/home/xxxx/pgsync
ExecStart=/home/xxxx/pgsync/env/bin/pgsync --daemon
User=xxxx
Restart=always
RestartSec=10
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target

Then:
sudo systemctl daemon-reload
sudo systemctl enable pgsync
sudo systemctl start pgsync
sudo systemctl status pgsync

You can follow the output of pgsync with:
sudo journalctl -u pgsync -f

Thank you


Uninitialized local variable den1 in Modelica.Blocks.Continuous.Internal.Filter.base.Butterworth used

Reported by jfrenkel on 17 Feb 2014 13:32 UTC
In the function Modelica.Blocks.Continuous.Internal.Filter.base.Butterworth is the uninitialized local variable den1 used in the last statement of the function. The local variable is only initialised if size(cr,1) == 1 is.

Migrated-From: https://trac.modelica.org/Modelica/ticket/1424

Comment by otter on 17 Feb 2014 13:49 UTC
Replying to [ticket:1424 jfrenkel]:

In the function Modelica.Blocks.Continuous.Internal.Filter.base.Butterworth is the uninitialized local variable den1 used in the last statement of the function. The local variable is only initialised if size(cr,1) == 1 is.

The relevant code fragment is:
  output Real cr[mod(order, 2)] "Coefficient of real pole";
protected
  Real den1[size(cr,1)]
algorithm
  if size(cr,1) == 1 then
    den1[1] := 1.0;
  end if;

Note, den1 is always well-defined: It is either an array with dimension 1, then the if-clause assigns a value, or it is an array with dimension 0, and then it is not possible to assign a value.

Modified by dietmarw on 17 Feb 2014 14:31 UTC

Comment by sjoelund.se on 19 Feb 2014 06:34 UTC
Martin, it's quite simple to assign to dimension 0 arrays. fill(1.0, size(den1,1)).


Subcategories Indent in Categories List

Right now, you can designate a "parent" category for categories, but there should be a visual indication of subcategories in the categories list. It's possible that the CSS for subcategories could simply add some margin or padding on the left, so they are indented from the list.

@cklester I did it two days ago #108 =)


Xamarin support?

Hi @Adam currently the build targets of the library are targeting net461, uap10.0, & netcoreapp1.0 - I'm starting to capture ideas for v5 #155 which may move to a single netstandard target

Ah, my mistake, not sure why I thought it was already .netstandard. Are you accepting PRs? I see a few that are really old.

As v5 dev will start soon I would hold off on a PR for now as I'm just exploring options for a pure netstandard implementation


Refactor to suit CTR callsigns instead of FSS and attempt to make ownership easier to operate

Have yet to work out how to approach the second part of this.
Information TBC.

Fixed, I think?


Spinel: Radio Source Match Support

Fixes #1254. Exposes the otLinkRaw source match related functions to the host via new Spinel commands. Also updates otlwf.sys to use these new properties.

Codecov Report

Merging #1371 into master will increase coverage by 0.76%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1371      +/-   ##
==========================================
+ Coverage   69.09%   69.85%   +0.76%
==========================================
  Files         171      172       +1
  Lines       26883    26419     -464
  Branches     3386     3330      -56
==========================================
- Hits        18574    18456     -118
+ Misses       6888     6573     -315
+ Partials     1421     1390      -31

Impacted Files
Coverage Δ

src/ncp/ncp_base.cpp
33.36% <ø> (-4.92%)
:x:

examples/platforms/posix/random.c
85% <ø> (-15%)
:x:

third_party/mbedtls/repo/library/ecp_curves.c
90.16% <ø> (-3.06%)
:x:

third_party/mbedtls/repo/library/ctr_drbg.c
72.05% <ø> (-0.74%)
:x:

examples/platforms/posix/radio.c
78.48% <ø> (-0.43%)
:x:

...d_party/mbedtls/repo/library/memory_buffer_alloc.c
60.25% <ø> (-0.39%)
:x:

third_party/mbedtls/repo/library/bignum.c
50.95% <ø> (-0.14%)
:x:

third_party/mbedtls/repo/library/ssl_tls.c
54.34% <ø> (-0.04%)
:x:

src/core/thread/mle.cpp
80.54% <ø> (ø)
:white_check_mark:

... and 17 more

Continue to review full report at Codecov.

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

@darconeous Is that all you want as far as documentation, or is there anything else you would like me to add?

@nibanks, would you like to improve the doc in this or a later PR?

I can update this PR. What exactly do you want me to add?

I'd like for the documentation for these properties to be more detailed about what exactly "source matching" means and under what circumstances it is intended to be used.
I didn't intend to hold back this commit for that, but if you are still up for putting it in this PR, please be my guest.


The Registration process doesn't include UseCaseServiceResolver

Currently, the UseCaseServiceResolver is not included in Register. This is due to the complexity around implementation. It's not functionally required for the Register method. Trying to push the registration of it into the Register method pretty much boils down to passing in a register action which is invoked by the Register method. But that's just registering it with extra steps.
One possibility is to change the implementation of the ServiceResolver from Delegate to Service. While this would work, it would mean that consumers would need to abstract their service container into this new Service, purely so the Register method and configuration can target that specific service. It doesn't seem better.

This can't even be handled by Validation. At this point in time, it looks like it can't be fixed.


Added empty paths to getStaticPaths

This PR is to stop the pre-rendering of all pages at build time and instead dynamically render on request.

How to pre-render pages on build
By default, none of the node pages are generated at build time to prevent long build time for sites with many pages which is why the paths key is set to empty in getStaticPaths.
export async function getStaticPaths(context): Promise<GetStaticPathsResult> {
  return {
    // Don't pre-render all pages at build time and instead dynamically
    // render the page on request.
    paths: [],
    fallback: 'blocking',
  };
}

However for smaller sites, it makes sense to pre-render pages on build. This can be done by importing and using next-drupal's getPathsFromContext() function.
This example will pre-render all node pages that are of CONTENT_TYPES.
// List of all the entity types handled by this route.
const CONTENT_TYPES = [
  'node--page',
  'node--article',
  'node--event',
  'node--person',
  'node--place',
];

export async function getStaticPaths(context): Promise<GetStaticPathsResult> {
  return {
    paths: await getPathsFromContext(CONTENT_TYPES, context),
    fallback: 'blocking',
  };
}

Made few modifications and added new wiki page to https://github.com/acquia/next-acms/wiki/Pre-rendering-node-pages-on-build. Thank you!


Switch to owner change instead of shh user change

Fixes https://github.com/deployphp/deployer/issues/3542

hi @MartijnCuppens, this assumes that we're able to log in as deployer user via ssh to deploy. if we need to log in as a different user to deploy, how should we go about doing this?


When IoContext::runImpl script fails, do not report to sentry

We're currently reporting "failed for unknown reason" errors to sentry when a script fails for various terminal reasons that we can't actually determine. Reporting these to sentry makes no sense since they are largely inactionable (they could be OOMs, could be other things). Let's still error and log but skip reporting to sentry for now

Would we want a metric for this? Rather than just logging?

If we're reaching this assert, it indicates there is a bug. The preceding call to limitEnforcer->requireLimitsNotExceeded(); is supposed to determine the reason for termination and throw an appropriate error. We need to figure out why terminations are happening that the LimitEnforcer doesn't appear to know about.
In general whenever we have an assert or log message where we don't know why it is happening, I do not think we should be hiding it with NOSENTRY. The reason the assert is there is to make us figure out what's going on and fix the issue.


Bumped package versions according to dependabot alerts

As stated in the title. Updated packages are:

mlflow
pyarrow
pillow
urllib3
scipy
imageio
gitpython

Thanks, should be resolved now. Missed the updating option for indirect dependencies.


widclose: remove widget if Bangle.CLOCK is set after loading the widget

Well, clocks using ClockFace (oops), this PR fixes that, but I figured I would try and mitigate it on the widget side as well.
But you're right: we should just fix clocks, and this only hides the problem.


[Indigo] [Testing] Finish Remaining Component-wise Testing.

Description
Should be finished before Tuesday.
Checklist
Domain Selector

[x] All entries after searching should contain the searching keyword.
[ ] When we have more than 5 entries selected, a ... x more indicator will appear with a correct count.
[x] Test the Business Domain Selector in ActivityView as well.

Severity Selector

[x] Selecting behavior (tick, untick).
[x] Check all and uncheck all behavior.
[x] Error state (when nothing is selected, there should be an error message).

The last one is not really doable due to the lack of data in database.


Dropdown A11y and Testingpalooza

Resolves #1395

Makes Dropdown accessible by label - wrap only label text
Bunch of new tests for in-DOM functionality on the Dropdown
Feature for ActionMenu - style items as "focused" without :focus event
A couple tweaks to ActionMenu - span as child of a/button
Stop supporting nested menus in Dropdown - simplify logicz
Breaking changes: markup, onClick interface, Item only takes ReactText
Followed WAI-ARIA-1.2 recommendation for combobox, including markup, roles, focus strategy, keyboard support

Added backing input field
Button still opens menu
After menu is opened, focus doesn't leave input; uses aria-activedescendant

Escape keyboard support was different than the rest. Would love it not to be.
Learned a ton about testing-library. Will doc some key findings.
Resolved bug where selected item wasn't focused on menu open

Dropdown still needs:

Wondering if useDropdown really belongs in js/ dir or should be in react/ dir because of React api use
Realized tsc strict is false; will card it

Changes to ActionMenu made here are:

Remove unused css code
Add active prop for focus styling without :focus
Adjust markup to html spec

These seem like generally-good and helpful changes that any user of ActionMenu would want.
The feature add of active here is going to be helpful to anyone who uses ActionMenu in a custom compound component where they want to follow a similar WAI recommendation on focus strategy for compound widgets.
I would recommend not rolling these back for these reasons.
Yes, I think that separating Dropdown from ActionMenu is still a possibility. I treated this as a next step in the current PR. Instead, I will look at this morning so we can uncover details and implications sooner.

Hey @EdwardIrby , I've just pushed the removal of the ActionMenu from Dropdown and commented on what I think your change request stems from.  Please have a look at my responses and new code.  Thanks!

@EdwardIrby Ok, ready for another round: the value-less items will now be selected.  They were before, it was just the styling that was unapparent. But there was an actual value setting in that case. Also found a hole in the lack of calling onChange when keyboarding. Tests ftw!  Thanks for your help!


Add Temporal dashboard

What does this PR do?
Adds a dashboard for the Temporal integration.
Motivation

Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached
[ ] If the PR doesn't need to be tested during QA, please add a qa/skip-qa label.

Current dependencies on/for this PR:

master

PR #13807

PR #13808

PR #13812

PR #13833

PR #14151   👈

PR #13809

PR #13810

PR #13811

This comment was auto-generated by Graphite.


[#131615547]Service sumbission "continue" flow

Did a little test tidying at the same time.

Ok so I've pushed some more changes, the topmost one refactors/merges edit_service_submission and update_section_submission into a single view, but only after covering the GET path with some new tests so I could make sure they still pass (I'm still not particularly happy with how much these tests actually assert, but they're better than the 0 tests there were before)

Tested locally for both DOS and G-Cloud flows and all seems well, code looks good.
:+1:


Webpack config + notification config for test/dev modes

Eliminate references to Mix.env which prevent execution in a release/prod mode.

Thanks!


Correct misstatement about finalizers making objects read-only

xref https://github.com/kubernetes/kubernetes/issues/108025#issuecomment-1126786565

/approve
/lgtm

/approve


Add --bias-tokens and --dump-prompt-tokens flags and associated backend changes.

--bias-tokens allows passing a list of token ids and float point biases. This can be used to emulate llama.cpp's --ignore-eos feature in a more flexible way. For example using --bias-tokens 2=-1 will prevent the EOD token from being generated and the model will just ramble on until it hits the context limit.
--dump-prompt-tokens will just dump the tokens for the prompt after loading, in two formats: First just as a list of token ids and then as a list with the associated string the token came from. For example, with prompt What a kerfuffle!, you'd get the output:
=== Dumping prompt tokens:
5618, 263, 13023, 21154, 600, 280, 29991
"What":5618, " a":263, " ker":13023, "fu":21154, "ff":600, "le":280, "!":29991

Some minor backend changes were necessary to make this possible but the behavior of the existing code should remain unchanged. One thing I did do was move the tokenize method to Vocabulary and changed it to return Vec<(&str, TokenId)>. The tokenize method in the session remains as a wrapper to that which just strips out the string part.

It's worth noting that the tokens specified with --bias-tokens aren't subject to the repeat penalty calculation. I figured the simplest possible behavior was just to use the absolute value specified.
There are other possible approaches like letting the repeat penalty be applied to the specified bias value. Also, I'm not sure what the correct range for those values would be, but I'd guess it's probably -1 to +1?

I'll rebase this if it seems like it's something you'd generally be interested in accepting.

I'll rebase this if it seems like it's something you'd generally be interested in accepting.

Yes please! I need to go over the changes but this feature is quite nice and I was thinking of adding something similar :smile:

@setzer22 Seems like it still works. The tokens are a little different with the new parser (which isn't too surprising):
=== Dumping prompt tokens:
5618, 263, 13023, 21154, 600, 280, 29991
"What":5618, " a":263, " ker":13023, "fu":21154, "ff":600, "le":280, "!":29991


Mass Codebase Refactor

✨ Codebase overhaul! Please take note of the following:
🆕 What's newly added:

Add a new expense into the transaction list with add_expense command.
AddExpenseCommandParser will create the AddExpenseCommand object and will automatically use the current date for the TransactionDate attribute in the following format: dd/mm/yyyy.
Transaction, TransactionList, Expense, Income, Description, Value and TransactionDate added to support the context morphing from Person to Transaction.
CurrencyUtil added to support future currency transformations.

🔄 What's changed:

Package structure changed from seed.address.* -> thrift.*.
Magic literals' context changed from Person -> Transaction.
AddCommand and AddCommandParser -> AddExpenseCommand/AddIncomeCommand and AddExpenseCommandParser/AddIncomeCommandParser (to be added in future milestones).
NameContainsKeywordsPredicate -> DescriptionContainsKeywordsPredicate as Transaction are searched for by their Description attribute.
CLISyntax no longer parses /p, /e, /a, but it now parses /c and /i.
FindCommandParser searches for matching words in a Transaction's Description attribute.
ParseUtil now parses for /n /c /t.
AddressBook, Model and ModelManager operations changed context from Person to Transaction.
UniquePersonList -> TransactionList since Thrift allows duplicate Transaction entries.
SampleDataUtil populates with sample Transaction data instead of Person data.
JsonAdaptedTransaction will flatten and inflate Transaction JSON objects properly.
(UI) PersonCard -> TransactionCard:

Name -> Description
Phone -> Value
Address -> Date
Email -> reserved (unused for now, can be removed/modified in future)

🚮 What's removed:

DuplicatePersonException is removed as THRIFT allows duplicate Transaction entries.
EditCommandParser no longer parses for Person attributes.

🔜 Todo:

EditCommandParserTest:

#parse_invalidValue_failure
#parse_someFieldsSpecified_success
#parse_multipleRepeatedFields_acceptsLast
#parse_invalidValueFollowedByValidValue_success

Is it possible to merge this? It seems okay overall. The coverage/coveralls test failure should be due to the removal of redundant features, so I believe we can merge this.


Container registry command styling

Is your feature request related to a problem? Please describe.
Update the container registry command styling to reflect the rest of the CLI/TUI list views
Describe the solution you'd like

Should look similar to

/attempt #501


cant use included software from other terminals (like a remote ssh)

Hi there!
I'm trying to use the htop included in you're android app from a remote ssh session, but I only get:
user@android:/data/data/com.spartacusrex.spartacuside/files/system/bin # ./htop
Error opening terminal: xterm.

(I've tried export TERM=linux and a few others but the error message stays the same but for the name..)
trying to use the included bash gives me:
bash: precmd: command not found

please help

I think there's some confusion, because TEA doesn't include any software like htop.

whups, sorry, you're right. that was a mixup. I thought I had found a repository of this app called "Terminal IDE" -->
https://play.google.com/store/apps/details?id=com.spartacusrex.spartacuside
which includes a few apps like htop.
sorry.


Changing the max sequence length in run_classifier.py results in list index out of range

Changing the max_sequence_length from 512 to 64 in run_classifier.py results in the error below:
     Traceback (most recent call last):
          File "run_classifier.py", line 855, in <module>
          tf.app.run()
          File "/home/garbacea/tf_bert2/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 125, in run
          _sys.exit(main(argv))
          File "run_classifier.py", line 797, in main
          for key, val in sorted(eval_results[0].items(), key=lambda x: x[0]):
          IndexError: list index out of range

I have the same problem, do you use the all data or just a small subset of the data to test ?


Thank you for your contribution

@seolhokim Thank you for providing the perfect code. It might help me a lot. Want to know whether this library will continue to be updated? If there is a corresponding tutorial, it would be even better. I look forward to your updates to this library.

@namjiwon1023
Thank you for the compliment!
I hope I can update this repository often, but you know, there are so many things we have to do.
In addition to the tutorial, I will try to update as much as I can. :)


Error: "tf.summary.FileWriter is not compatible with eager execution. Use tf.contrib.summary instead."

 Use tf.contrib.summary instead.
  File "/home/martin/FEVER2021_SharedTask/tapas/tapas/scripts/calc_metrics_utils.py", line 59, in write_to_tensorboard
    with tf.summary.FileWriter(logdir) as writer:
  File "/home/martin/FEVER2021_SharedTask/tapas/tapas/utils/experiment_utils.py", line 251, in save_metrics
    calc_metrics_utils.write_to_tensorboard(metrics, step,
  File "/home/martin/FEVER2021_SharedTask/tapas/tapas/experiments/table_retriever_experiment.py", line 169, in _predict_and_export_metrics
    experiment_utils.save_metrics(output_dir, mode, step, p_at_k)
  File "/home/martin/FEVER2021_SharedTask/tapas/tapas/experiments/table_retriever_experiment.py", line 300, in main
    _predict_and_export_metrics(
  File "/home/martin/FEVER2021_SharedTask/tapas/tapas/experiments/table_retriever_experiment.py", line 310, in <module>
    app.run(main)

Maybe I am running it in the wrong way, but what seems to fix this error is to put the line tf.disable_eager_execution() at the beginning of the calc_metrics_utils.py script (but after the import of tensorflow). However, I am not sure if this would destroy some intended functionality.

Thanks for the report, what you suggest works and won't break any functionality, on the contrary! We will update table_retriever_experiment.py to add tf.disable_v2_behavior() at the top of the file which has a similar outcome.


Gracefully handle missing xfmr modules and netlink vendor

If xfrm modules cannot be loaded:

Create netlink.Handle only for ROUTE socket
Reject local join on overlay secure network

Requires update to vishvananda/netlink 734d02c
Task start error would look like:
ERRO[0690] fatal task error                              error=cannot join secure network: required modules to install IPSEC rules are missing on host

This makes the handling more graceful when xrfm module is missing but we might need more. Perhaps its not in the scope of this PR. In the cluster if some nodes are missing the xrfm module I think it will go into a non-stop loop of scheduler trying to place the task in those nodes and the task start failing. I am not sure if there is a way to indicate to the manager certain nodes  are not capable of running some tasks.

@sanimej Agree. In my testing the manager did not re-schedule the task on the another node, it kept retrying. But as you said, it should not be the goal of this PR to fix the above bahavior.
What this change primarily fixes is the ability to boot the daemon on a host which does not have the xfrm modules. As of now it would crash.

Also consider the docker check-config.sh script o/p will include the required modules like:
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: enabled (as module)
    Optional:
    - CONFIG_XFRM_ALGO: enabled (as module)
    - CONFIG_XFRM_USER: enabled (as module)
[...]

LGTM

Reproduced on gentoo by removing  /lib/modules/3.18.7-gentoo/kernel/net/xfrm/xfrm_user.ko:
$ sudo dockerd
[...]
WARN[0001] Could not load necessary modules for IPSEC rules: Running modprobe xfrm_user failed with message: `modprobe: ERROR: could not insert 'xfrm_user': Unknown symbol in module, or unknown parameter (see dmesg)
insmod /lib/modules/3.18.7-gentoo/kernel/net/xfrm/xfrm_user.ko`, error: exit status 1
[...]
ERRO[0072] fatal task error                              error=cannot join secure network: required modules to install IPSEC rules are missing on host
github.com/docker/docker/daemon/cluster/executor/container.(*controller).Start
	/go/src/github.com/docker/docker/daemon/cluster/executor/container/controller.go:139: starting container failed module=taskmanager task.id=34j3mwa33itl2rs9d4dpmap1c
[...]


Lab 2 - Peer Review

The code is nicely structured using classes and functions, but lacks comprehensive comments, making some parts challenging to follow...
I think a better balance between exploration and exploitation, while maintaining population diversity, could boost performance. The fitness function is overall okay, but consider refining it to better assess an agent's performance against various opponents or game states since it could significantly improve strategy evolution.
Last but not least, efficiency enhancements... You dealt with a large population, consider making the algorithm more scalable.

Thank you for the review, Indeed the algorithm takes a lot of time when playing against the optimal due to  the parameter of the GA, but fewer numbers of iteration could undermine the overall process of evolution. I also should have make better use of the logs to show how the agents evolves during the process.


Add API reference for v1.31

Description

Issue

Closes: #

Linking the issue opened up to flag that API reference for v1.31 wasn't generated

preview: https://deploy-preview-47530--kubernetes-io-main-staging.netlify.app/docs/reference/generated/kubernetes-api/v1.31/

@tengqm is https://github.com/kubernetes/website/blob/main/README.md#building-the-api-reference-pages still the process you follow?
I remember trying it but that needed updates to the following files... should they be checked in too? if not can we get the README.md updated with latest steps?

api-ref-assets/config/fields.yaml
api-ref-assets/config/toc.yaml

@tengqm is https://github.com/kubernetes/website/blob/main/README.md#building-the-api-reference-pages still the process you follow?
I remember trying it but that needed updates to the following files... should they be checked in too? if not can we get the README.md updated with latest steps?
* api-ref-assets/config/fields.yaml

* api-ref-assets/config/toc.yaml

No. The api-ref-assets/* files are used by https://github.com/kubernetes-sigs/reference-docs/tree/master/gen-resourcesdocs. The generated reference is published at https://kubernetes.io/docs/reference/kubernetes-api/. This generator produces Markdown files so that the look-and-feel is closer to the rest of the website.
This PR adds the single-page reference at https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/. The single-page version is a huge HTML page.

@tengqm thanks for the detail, specific question as i am a bit confused still. if i had to generate this myself what would the steps be?

This PR adds the single-page reference

How do i do ^^^ myself?

@tengqm thanks for the detail, specific question as i am a bit confused still. if i had to generate this myself what would the steps be?

This PR adds the single-page reference

How do i do ^^^ myself locally?

In the https://github.com/kubernetes-sigs/reference-docs project, do make api, that's all.

In the https://github.com/kubernetes-sigs/reference-docs project, do make api, that's all.

Ah! i totally missed that. can we put it in the README somewhere? https://github.com/kubernetes-sigs/reference-docs/blob/master/README.md or other place?
thanks @tengqm

I recommend adding a PR description; however, I know what's intended here.
/approve


💬 Identify Approach for Extension Preferences

We need to identify an approach for extension preferences.
For context per #416 by @pkasila
@Angelk90 said:

If the newly installed "Hello world" extension had a settings window, how can I access it?

@pkasila gave 3 options:

(code approach) We can add static func settings() -> ... function to ExtensionBuilder class and this function should return (one of):
1.1. a set of settings (so CodeEdit handles settings in some unified way)
1.2. a function for window to be created
1.3. a NSViewController with extension's settings (extension handles its settings)
(bundle resource approach) We can make extension developers add their settings fields to Info.plist or any other file in the extension's bundle, so CodeEdit will parse this file and handle settings in some unified way.
Actually we can make it work with XIBs in the extension's bundle 😄

@jasonplatts pointed out how Nova handles this...

Great question @Angelk90. We will need to consider that many extensions will want to store both global and project-specific settings. @austincondiff, this is something that is really confusing for users in Nova. The first white window is where global settings are shown and the second darker project window is where project-specific settings are found.

In our concept (here and here), we planned to house our extension store and extension library (installed extensions) in the Extension Navigator (#355).
What happens when we click on an extension in this navigator? Here are some options:

A: A tab opens up with extension information and preferences
B: A sheet opens up on top of the workspace window that shows extension information and preferences
C: We have a separate extension store window similar to Nova

1: Forgo the navigator in preference of this extension window, or...
2: Use this window to supplement the navigator.

We would display a button in the navigator to show the window.
The navigator would enable quick access, while the window acts as a app store like experience.

@jasonplatts Both. Preferences will be added to ~/.codeedit/preferences.json for global preferences, and [project-path]/.codeedit/preferences.json for project specific preferences. Both global and project preferences will have a UI that controls this.


Update infisical-secrets-check.yml

Summary by CodeRabbit

Chores

Updated secrets scan workflow to improve security permissions.

:white_check_mark: Build POC-dotnet-Asterisk 1.0.353 completed (commit https://github.com/GuilhermeStracini/POC-dotnet-Asterisk/commit/618cb58b7d by @guibranco)


Strange "stuck on wall" bug involving banana peel collision

https://cdn.discordapp.com/attachments/790656972801572905/827020249324060752/unknown.png
https://cdn.discordapp.com/attachments/790656972801572905/827020149403418684/20210331202014_1.jpg
The above two are from one round.
https://cdn.discordapp.com/attachments/790656972801572905/826865004808503296/unknown.png
https://cdn.discordapp.com/attachments/790656972801572905/826865233988550726/unknown.png
https://cdn.discordapp.com/attachments/790656972801572905/826865264595173447/unknown.png
These three are from an earlier round where the same thing happened. I'm not sure how to reproduce or what the clown was doing to make the banana collision boxes stick to him (they'd move when he did). The collision boxes match the number of banana peels he was currently carrying in his backpack at the time.

Being buckled to a chair will fix the glitch and allow you to move again, but it's definitely possible to get stuck again. I don't know yet whether removing the banana peels from your backpack reduces or eliminates the trailing bounding boxes, and I don't have time to test for reproduction right now but will come back later to do so.

I did some testing, and here's what I found out. This appears to be a problem of the collision box of banana peels not being removed when they're inserted into a container.  This is what causes people to get stuck.
Fill your backpack with them.
Turn on showbb and notice there's a dozen or more banana peel collision boxes over yours.
Attempt to go through a south-facing airlock (the one in botany works)
You'll get stuck if the banana peel hitboxes touch the wall at the same time you do.

Strangely, removing the banana peels from your backpack doesn't seem to fix being stuck.

This may be fixed with named fixtures so if it happens again we'll just re-open it
https://github.com/space-wizards/space-station-14/pull/3822


Document mapbox CSS settings

@MasonGobat Can you please add comments to the CSS file that documents what your new mapbox settings do? That will help users (including us!) extend the method you figured out to other projects that rely on mapbox.

@djbpitt I have created a branch (css-fixes) that includes some changes to the CSS so that it is easier to make changes to the mapbox, as well as comments about it.


Incorrect ComicInfo.xml structure: Pages not corresponding to any schema

I want to create a CBZ with this structure:
Book_1.cbz
├── ComicInfo.xml
├── page-001.jpeg
└── page-002.jpeg

pages = [
    PageInfo.load(path='1.jpg', type=PageType.STORY),
    PageInfo.load(path='2.jpg', type=PageType.STORY),
]

comic = ComicInfo.from_pages(
    pages=pages,
    series='SERIE_1',
    number=1,
)

When I look at the result of the ComicInfo.xml this is what I get:
<?xml version="1.0" encoding="utf-8"?>
<ComicInfo>
	<Series>SERIE_1</Series>
	<Number>1</Number>
	<Pages>
		<Type>Story</Type>
		<ImageSize>2530</ImageSize>
		<ImageWidth>400</ImageWidth>
		<ImageHeight>300</ImageHeight>
	</Pages>
	<Pages>
		<Type>Story</Type>
		<ImageSize>2565</ImageSize>
		<ImageWidth>400</ImageWidth>
		<ImageHeight>300</ImageHeight>
	</Pages>
</ComicInfo>

However, this structure doesn't respect any schema for the ComicInfo.xml, we should have :
<?xml version="1.0" encoding="utf-8"?>
<ComicInfo>
    <Series>SERIE_1</Series>
    <Number>1</Number>
    <Pages>
	    <Page Image="1" Type="Story" ImageSize="2530" ImageWidth="400" ImageHeight="300"/>
	    <Page Image="2" Type="Story" ImageSize="2565" ImageWidth="400" ImageHeight="300"/>
    </Pages>
</ComicInfo>

So is this an error ? Or a deliberate choice?

Hi,
I have taken your report into account and indeed there is a BIG problem. This difference with the diagram explains why I couldn't read CBZ with ComicRack lmao. I have just published a new version of the lib (3.3.3) which corrects this problem, allowing reading on all media (integrated reader or other applications like ComicRack).


You have cancer discrim now

Not relevant

nein u

Get a life, open source is not about f*cking with files and hoping they will merge it, if you are going to open a pull request, at least have the decency to help them.

Bruh


Add Hindcast download and archive capability

Description
Description
Replicate the FMRC data handling for GOM Hindcast data
Steps To Complete

[x] Create HycomDataet entry
My current approach here is to try to reuse the "FMRC" types for hindcasts.  If that works, We'll rename the types to more general names.
[x] Refactor HycomDataset to accomodate Hindacast data, if needed
[x] Create HycomHindcast type
[x] Create HindcastArchive type
[x] Create HindcastFile type
[x] Add batch job types and methods and test
[x] Add methods...

[x] HindcastFile.download

[x] Prototyped
[x] Added as method

[x] HindcastArchive.stageFiles

[x] Prototyped
[x] Added as method
[ ]  add as afterCreate/afterUpdate

[ ] HycomDataset.upsertHindcasts

[x] Prototyped
[ ] Added as method

[ ] HycomDataset.updateHindcastData : Interface, only expose timeRange: updateHindcastData(timeRange: TimeRange)

[ ] Prototyped
[ ] Added as method

References

Contributing

The Hindacst data is a bit different...
There is no xml catalog at the level of each "run", so  I can't do the same xml inspection to create a HycomDataset record.  Therefore I think it might make sense to just seed a record for Hindcast data.

Still don't have the update working.  It works, but a manual stageFiles is needed, may just add this to end of method


Add chain ibc data

chain schema, readme, and Osmosis
closes #39

@jackzampolin does this look okay to you?

@AdityaSripal is there a canonical "string representation" for these features?

Well, we could just use the version of the go repo as well. For modules in ibc-go this would be ibc-go versions, but other modules may have their own versions

Well, we could just use the version of the go repo as well. For modules in ibc-go this would be ibc-go versions, but other modules may have their own versions

Do you have any examples of this?

This seems like a helpful addition.
Wouldn't we want to add the new fields to all the other chain.json files as well?

Yes, filling in the missing data is intended, but this PR is just meant to come to consensus on the schema and see a single example of the implementation.


Sonoff light bulb B02 B-A60 expirience

Hi, my bulbs have a "Not repsonding" status in the home APP. However, they work quite well. I am able to control them through the Home App. With great delay. I understand that I can't expect miracles with wifi connected devices. Have you had the same experience?
Thank you.

Hi @ondrejkrivan are you using your main ewelink account with the plugin? or a shared account?

Hi, shared account.

This is the reason for the no response message and probably the delays. You should use your main ewelink account with the plugin. And use the shared account for the ewelink app

Thank you. It seems to be working much more smoothly now.