Fix FreeBSD .current spec fail

This PR fixes the
  1) Dir .current
     Failure/Error: Dir.current.should eq(`#{{{ flag?(:win32) ? "cmd /c cd" : "pwd" }}}`.chomp)

       Expected: "/home/infrandomness/src/crystal"
            got: "/usr/home/infrandomness/src/crystal"

     # spec/std/dir_spec.cr:496

spec fail, on freebsd

To add some context; we explored this on Discord and the cause of the failure is in FreeBSD the /home directory is linked to /usr/home, which Dir.current expands but pwd does not by default. Based on the man pages the -P option means two different things depending on the platform, so we scoped it to only freebsd for now.

Certain checks seem to have failed due to github actions being partially down, would someone mind restarting them ?

At this point I don't think this'll get another review; closing.


Level 2 Error

If you move a mirror to the bottom right hand corner, game freezes.

I can't reproduce this bug

@Deravadom this can be reproduced like this.


refactor(theme): themes flexibility

[x] Covered with 100% tests
[x] Renamed to use Tailwind CSS selectors (1 update is needed on Figma)
[x] Added storage (selecting will persist)
[x] Added detectTheme - will resolve from 'system' if empty and 'sytem' now is also a valid option
[x] Refactored tokens (not liking the current definition) specially lineHeight
[x] Renamed from - to _ so it can be accessed
[x] Added tiny README.md
[x] useTheme is designed to manage theme selection not to be consumed by the UI
[x] useThemeColor is designed to consume colors
[x] Moved from calculated to static
[x] Split Palette into Base (dark/light) and Theme (exposed officially used)

It is using as const therefore making the properties read-only I'm guessing react-native will complain, it can leverage Writable or Draft from 'immer'

@SorinC6 can you take it from here? It will require a update on wallet-mobile, big one.

@SorinC6 please check with Design, if they approve the Base->Theme palette naming convention we can go on with the implementation


Third party reporting tools in compressed format

Hi I have a third party reporting tool that compresses the EML into a zip file and then forwards the mail. Is there any way to have this show up in the User Submission page for our admins to review? Or will this format not be parsed properly? We aren't looking for MS defender to parse it or do any post processing - just want it to show up under user submission.
The only requirement is that the original message is included as a .EML or .MSG attachment (not compressed) in the message that's sent to the custom mailbox (don't just forward the original message to the custom mailbox).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e53205b5-8850-42b6-0b0c-8a61b7ef7776
Version Independent ID: 0a9e7903-ce3c-e877-e6b3-b45d09642308
Content: User reported message settings - Office 365
Content Source: microsoft-365/security/office-365-security/user-submission.md
Product: m365-security
Technology: mdo
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@tanjoht Thank you for your feedback. Ideally, this should show up on the user submission page for review. However, this falls under our support request category and we request you to get in touch with Microsoft Support via the need help section on the admin center.
Post contacting Support, If there are any changes needed in the document do let us know.
Hope this helps!
Thanks
Sri


Bug: "Link FAQ Section" to the Footer Section

Hey @Priyaaa1,
Minor changes: Currently the link is empty for FAQ section in footer, I would like to navigate the link for FAQ section In footer
https://github.com/Priyaaa1/StartConnect-Hub/assets/101971980/f39ad820-6444-45ed-8586-a58123234cff
Could you please assign this issue to me under GSSOC 24?

I would like to work on this issue. Can you assign it to me?


Improve user documentation

Types of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Refactoring (improves code quality but has no user-facing effect)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Documentation

Readiness Checklist

[x] My code follows the code style of this project
[x] My change requires a change to the documentation
[x] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[x] All new and existing tests passed

@infraredgirl can you please update also the README.md file?


feat: add poh-humans group

Add poh-humans group generator.
Addresses are retrieved from PoH registry with a subgraph.
A modified version (only kept the year and month) of the PoH submission date is used as value.
This aims to ensure the anonymity of the source address.

We have created a DecentralizedSubgraphService in this PR https://github.com/sismo-core/sismo-hub/pull/94
Closing this one


Add demixing percentage

We can use Event Channels to be able to send via a Stream the progress of the demixing from Android to Flutter.
Some examples:

https://medium.com/@igaurab/event-channels-in-flutter-2b4d0db0ee4f
https://www.raywenderlich.com/20518849-an-in-depth-dive-into-streaming-data-across-platform-channels-on-flutter


Add of Metadata property to the template anatomy?

This might be a some what recent addition to templates.  I was hoping to add metadata as a section as detailed in the doc in this link.
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
We are hoping to use that section for helping to track versions once they are deployed.
It would look something like this:
"Metadata": {
"Version": "V1.0",
"LastUpdated": "Jan 1st 2015",
"UpdatedBy": "First Last",
"Comments": "Initial Draft"
},

Please give the patch above a try to see if it meets your needs.

That update seems to be working great!
Thank you for tackling this so quickly.
Much appreciated! =)

No problem, thanks for reporting the issue. This just got pushed out in v1.1.2.


Exclude support for delete copy

Implementation of the ticket: Add exclude support to other commands #98

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

160 of 201 (79.6%)  changed or added relevant lines in 5 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 85.043%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/executor/executor.go
9
10
90.0%

pkg/executor/local.go
50
64
78.13%

pkg/executor/remote.go
75
101
74.26%

Files with Coverage Reduction
New Missed Lines
%

pkg/executor/remote.go
2
78.57%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
2388

Relevant Lines:
2808

💛  - Coveralls

thx, looking good. Can you pls rebase/squash your commits?


fix: add zh_TW translation

I found Locked Main level didn't have the zh_TW version, so I translated it.
Thank you for the amazing App.

Thanks a bunch! yeah this level is a bit more recent so it missed the wave of translations earlier


X10A already used

Hi,
First, thank you for your work, it's impressive...
I'm facing some interesting issue with my installation.
Indeed, the X10A is already used by some other component (I guess it's the bi-zone component)
PFA the pictures of this installation, and the ref of the heat pump : EHVZ04S18CB.
I guess, I'm f****d, but if it's possible to used some sort of Y cable or another port than X10A, please tell me.

Woah, that's super interesting @Freeman656. We really need to know what is going on this port: If your equipment changes some values on your main unit, that could allow us to understand how it is done and turn ESPAltherma into a controller...!
Here is how you could tap into the serial port and record values so we can see what is going on the port: Get one of these USB - TTL module and plug in only the RX port to the TX port of the X10A on your board. Get a serial monitor (eg  RealTerm), set the port to 9600, 8E1 and you should see some bytes going. Let us know if you need help with this.
You could be able to add ESPAltherma on the same port but it has not been made to share the port and might cause issues with what is using it already. Can you follow these 2 wires from the module to see what is connected to it?

I'm glad to here that this could be useful for further enhancements and would be glad to participate.
I have very little knowledge on the electronic part but this seems quite easy to do.
I'll let you know if I managed to dump some data from the X10A port...
Also, you can find in the schematics page 23 of this document https://www.daikin.ch/content/dam/document-library/installation-manuals/heat/air-to-water-heat-pump-low-temperature/ehvz-cb3v/EHVZ-S18CB3V_4PFR401672-1B_IM_Installation Manuals_French.pdf
some information about the card which is connected to the X10A.
X10A seems connected to the A6P module (black ISCL-1V3 on the picture).
The A6P is then connected to the bigger board A5P on its X10A port (which has only 2 wires...)
As per documentation, the A5P is the bizone controller, and the A6P is a current loop board (just translated from french, I'm not entirely sure...).
This may be a bit specific to have two zones in the house, one is low temp (ground floor), and one is higher temp (1st floor), so I guess this second control board (A5P) is used for additional components linked to the high temp circuit (sensors, water circuit control, etc).
I'm still a big anxious about the idea of pluging the ESPAltherma at the same time in the same port.... :)

Let us know if we can be of any help....!

I'm still a big anxious about the idea of pluging the ESPAltherma at the same time in the same port.... :)

Once we know what there is in parallel we will know how to "share the port" :)

Ah, reading what I wrote ; I'll try to explain more... You should put your RX port of your USB TTL to the RX pin of the X10A port (pin 3), so we can see what the daughter board is sending to the mother board.
Note: once you have done this you can also listen to the TX pin of the X10A port to see how it reacts.

Ok I'll try this.

So, I captured around 3-4 minutes of working time.
I completly shutdown the heat pump, and the beginning of this capture is the restart of the heat pump.
Then around 2 mn, I increased the temperature and the heat pump started its stuff...
I hope you can get something with this file. I forgot to save it as HEX but I guess the data are the same anyways.
If you want me to do other recording, just ask, everything is still in place :)
capture-RX.txt

Hi @Freeman656, Thanks a lot for this! :)
Unfortunately, there is nothing much in your file. Only 0xE0 or 0xF0 and a lot of 0x00.
Could you please make sure that the settings are 9600 bps 8 bits and Even parity?
I believe recording in HEX might be needed as the Text/ASCII version might strip out some precious data.

Hi,
Second attempt, still the same values...
Maybe my FTD1232 is not installed correctly, I'll have to check with an arduino or something...
Do you know a program which can be loaded in the M5StickC to record the RX/TX ports and maybe send it via wifi ?
capture-rx-hex.txt
capture-tx-hex.txt

Hmm there might just be no communication when you're listening....? Did you chenge your zone temperature setting while capturing?
Also an easy way to test your capture is to connect your RX to the TX of ESPAltherma ;)

Ok, rookie mistake, I forgot to hit the 'Change' button in RealTerm for 8E1 ;)
So here are the file.
One on the TX pin and the other on the RX.
For both, I changed the zone temperature to trigger heating.
captureTX.txt
captureRX.txt

Bonjour @Freeman656!
I started to look at the files. This is pretty interesting, but doesn't look like anything I've seen before...
I'm struggling a bit with the files as there are no timing information: all bytes are in one long stream. So I'm just guessing here what forms a "command" and its response.
I believe you've seen it live. So could you tell me if this assumption of sequence is correct?
Also, can you confirm that the RX and TX are the one of the X10A main board? (not the one of the dual zone)
RX
03224199
03224298
0D2261008E0056FF00000000008C
03224199
03224298
0D2261008E0056FF00000000008C
03224199
03224298
0D2261008E0056FF00000000008C

TX
224110000001C7000000FA005E0164000007
22420D4B4B2A0114000000000000B922617C
224110000001C7000000FA005E0164000007
22420D4B4B2A0114000000000000B922617C
224110000001C6000000FA005E0164000008
22420D4B4B2A0114000000000000B922617C
224110000001C6000000FA005E0164000008
22420D4B4B2A0114000000000000B922617C
224110000001C6000000FA005E0164000008
22420D4B4B2A0114000000000000B922617C
224110000001C5000000FA005E0164000009

What could help, if you have a second USB TTL is to have the logs in parallel and timed...
I do now remember the serial monitoring tool I used it's YAT https://sourceforge.net/projects/y-a-terminal/
It does break lines after a short timeout and can add timestamp.
If you dont, then I could test a bit or even prepare a project for a serial monitor on ESP32...

Ok I found another USB-to-TTL module in my mess...
And I used YAT, I don't know which file in RX and TX, but I guess you will found out quite easily !
The X10A I use is the one on the main module of the heat pump.
YAT-Log-20210402-081601.log
YAT-Log-20210402-081609.log

Merci @Freeman656
Can you redo it with this option without this option:

This would make the line cut better.

... and maybe set the timeout to 200ms instead of 500. Thanks!

Ok, I updated the serial settings to SERIAL_8E1 and now I think the output makes more sense. I tried to raise main zone temp at 31-36 sec and lower it at 62-67 sec mark. I didn't write down the temps but I think it was 33 -> 38 -> 33.
If the output makes sense now, what would be the next step towards using this project on my pump?

Thanks @kaskii, good job for using the 2 serials on esp32 :). I'll have a look at it over the weekend.
Understanding this new protocol opens the possibility for ESPAltherma to control in details the Heat Pump instead of just reading values.
Now your problem remains that the port is used by another board. And that I don't know what would it make if ESPAltherma talks at the same time. So you need a proper solution for this.
That solution can be as explained earlier: you make a switch (relay) that will "unplug" your board and connect it to espAltherma so it can query and read the registries and once done, it would reconnect your board.
You can test this manually:

Disconnect the connector
Plug in ESPAltherma let it read values
Unplug ESPAltherma
Re-plug your board.

It will take you some time to do it but it could tell if this is a valid solution. Then, the esp32 and 2 relays (one for RX one for TX) would do it much faster.
I hope this clarifies it :)

I tried to disconnect X10A and in 5-10 seconds I got an error UA-16: Extension/hydro communication problem. Reconnecting got rid of the error message and everything seems to be working just fine so I guess it is ok if ESPAltherma wouldn't be fast enough to read data in that timeframe. I'll learn how to design PCBs and order one with needed parts (relays and such) so I don't have to touch original wires and plugs (in case of warranty issues).
I'll try to hook ESPAltherma into my unit this weekend. Any recommendations which definition file I should be using for testing against Altherma 3 R F (EHVZ08S23DA9W7)?

That sounds good. ESPAltherma is very conservative in term of timing. You can definitely speedup the query process by reducing the waiting time here. Seeing your timing, I believe 30ms would be good enough.
As for the relays, I don't get why you want to deign a PCB for this. You would just need some PH 2mm connectors (eg this) to connect the PCB to the dual relay module, and then to go from the relay module to the small connector PCB. You leave the existing cable in place, unpluged.
As for the definition file, have a look here https://github.com/raomin/ESPAltherma/wiki/Choosing-the-right-definition-file, but this one looks good: ALTHERMA(LT_DA_04-08KW).h
If you want to limit the interruption duration, try to limit the number of different registers that you select (the first hex value in the definition lines).
You can also limit the frequency of polling here: https://github.com/raomin/ESPAltherma/blob/4b38f592dad00e94216b029930ad1f523c2c7ac5/src/setup.h#L11
Have fun!

Any solution for this yet ? I have same problem with X10A occupied,,,,,

Hi @haz-69,
So if I were facing this issue, I would keep the connection to the BIZONE module, and ESPAltherma would switch the connection to itself, do the query, get the result and connect back the X10A to the BIZONE module.
This could either be done directly by chaining ESPAltherma with BIZONE (harder but software only)
Or add a bilateral switch (eg CD4066) and ESPAltherma would switch X10A from BIZONE to itself.
Nothing very straightforward, but nothing impossible...

@haz-69 another option is P1P2Serial.

Hi @raomin ,
Since our last conversation, have you heard about someone using the TS3A5018 ?
I might try this solution, but not really sure about the consequences on the BIZONE components, will the bizone be shutdown during the commutation ? Is there any recovery mode ? what will happend if the heatpump sends a message during espaltherma connection ?
Is there any code already implemented in ESPAltherma project which could connect/disconnect the bizone as needed during the espaltherma does it's thing...
Now, a final word about another way to handle this issue.
Would it be possible for ESPAltherma to act like a sort of proxy which would send and receive all the messages from the heatpump by default, and sometimes use some down time to send it's own messages ?

Hi @raomin ,
Since our last conversation, have you heard about someone using the TS3A5018 ?
I might try this solution, but not really sure about the consequences on the BIZONE components, will the bizone be shutdown during the commutation ? Is there any recovery mode ? what will happend if the heatpump sends a message during espaltherma connection ?
Is there any code already implemented in ESPAltherma project which could connect/disconnect the bizone as needed during the espaltherma does it's thing...
Now, a final word about another way to handle this issue.
Would it be possible for ESPAltherma to act like a sort of proxy which would send and receive all the messages from the heatpump by default, and sometimes use some down time to send it's own messages ?

HI @Freeman656
I don't know anyone having implemented the bilateral switch method. And as I don't have this setup, I cannot test and reply to your questions. But I don't think you can break anything.
I expect the bizone protocol to be resistant to interruption, as there is CRC in all protocol I have seen.
What I would do to handle this at time where ESPAltherma would need to pool data:

switch the TS3A5018
wait a bit for a timeout in case we are in the middle of a message (eg 500ms)
ESPAltherma query and response
reflip the TS3A5018

I really think it's the best way to do it. Be conservative at first, only pull data once every 5 min.
The proxy way could work but:

it would require an additional serial port we don't have (SoftwareSerial could work though) and
with our limited knowledge of this bizone protocol, it might be difficult to know exactly when the message is complete on one end and when to send it to the other side, lastly
if the esp32 is down, your bizone is isolated.

Good points !
How long does ESPAltherma takes to pull all the needed data from the main board ?
And how often do we need to pull data ? ( every 10mn ? 1h ?)

How long does ESPAltherma takes to pull all the needed data from the main board ?
It depends on how many registries you are querying. I haven't measured it, but I would say something like 100ms per registry.
(one registry holds several values).
And how often do we need to pull data ? ( every 10mn ? 1h ?)
That's really up to you, data do not change very often. Default is 30s, but you can got for 5m or more...
https://github.com/raomin/ESPAltherma/blob/8feeb7218414fc21edce614726f34c2e9880e340/src/setup.h#L11

I also do have a BiZone. Did someone already manage a solution?
Is the data already known to manage a nice solution with the ESP32 only. Is the X10A a kind of bus protocol? Then you know which data belongs to the readings and which not which you then can pass?

Just had a system installed, can X12A on AP4 be used instead of X10A on AP1?

Wha @glosair, that's a nice finding.
Where did you find this?
Looks like yes, the X10a is propageted to this other one...
Definitely worth trying!

Found it in the "Installer reference guide"
https://www.daikin.pt/content/dam/document-library/Installer-reference-guide/as/EWAQ006-008BAVP, EWYQ006-008BAVP, EKCB07CAV3, EK2CB07CAV3, EKMBUHCA3V3, EKMBUHCA9W1_4PEN492901-1_2017_06_Installer reference guide_English.pdf

Great news !
Is the wiring/layout the same ?
This seems like some kind of daisy chaining of the X10A over multiple modules...

I tried the same, and I confirm this is working fine !
@raomin Finally !! It's working !

Does the x12 exist on Altherma EHVZ08S18DA9W
?

Does the x12 connectit exists on Altherma EHVZ08S18DA9W ?

Having a look at the installation manual I would say it's the blue connection on A5P but don't hold me to it ;)

https://www.manualslib.com/download/1360382/Daikin-Ehvz04s18da6v.html

Great news ! Is the wiring/layout the same ? This seems like some kind of daisy chaining of the X10A over multiple modules...

If you look at the green connector above the blue and white ones it appears to be a current loop interface connected to the serial interface (X10A) on the heat pump controller.

Spafrost who was your installer?

On the board next to the board with X10a there is indeed another board with X12A

Yup

I can confirm as well it works via X12A. Equipment  EHVZ08S23E6V bizone using ALTHERMA(BIZONE_CB_04-08KW).h.

That's great news everyone!
Thanks for reporting success, I'll update the readme page!

I can confirm as well it works via X12A. Equipment EHVZ08S23E6V bizone using ALTHERMA(BIZONE_CB_04-08KW).h.

Can some show a picture of the X12A pin configuration ?

It's th same pinout as in the main instructions

The connector is keyd but top should be pin1 as marked on the PCB

You mean this is pin1?

Yes, that's the badger, will match up with this
[image: image.png]
On Wed, 19 Oct 2022 at 13:24, haz-69 @.***> wrote:

[image: image]
https://user-images.githubusercontent.com/74374387/196689734-bb5df2cd-66e7-4ba7-89f3-3a11bbe16667.png
You mean this is pin1?
[image: IMG_3717 - kopia]
https://user-images.githubusercontent.com/74374387/196689850-648fffa6-8a94-4ed2-a3c0-dd51c46cab8e.JPG
—
Reply to this email directly, view it on GitHub
https://github.com/raomin/ESPAltherma/issues/40#issuecomment-1283927593,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN5H5JRI4EB6OSZDDB6RZODWD7R6DANCNFSM4ZXHHGCQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Ability to distinguish between has-error and required

Hello,
I was wondering if there was a way (using your module) to distinguish between when something is "error" or "required"??
If not, but you'd welcome this functionality, I'd be happy to implement it and send a PR.
As a future advancement (if the above is approved) I think it would be good if you could specify a "genericValidator" and then explicitly give it a class to put on the form-group element. E.g. min = "has-min" which would allow users to style the form-group element differently depending on the "type" of validation failure
Thanks, Ryan

Hmmm..quite a nice feature for this module. This will help styling the input fields differently. I'll try to implement in a few days.

thanks for your quick response, I don't mind helping out if you need?

Yeah, sure. It would be great if you can submit a PR. It will be appreciated. I could have done it right away but I'm quite busy in my sister's wedding.

created PR #22 - to begin tracking this and looking at the best way to implement with the current library
when you're free, let me know what your initial thoughts are
...enjoy the wedding

Amazing. I'll look at it asap
On Fri, 25 Nov 2016 at 4:11 PM, Ryan Southgate<EMAIL_ADDRESS>wrote:

created PR #22
https://github.com/sagrawal14/bootstrap-angular-validation/pull/22 - to
begin tracking this and looking at the best way to implement with the
current library
when you're free, let me know what your initial thoughts are
...enjoy the wedding
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/sagrawal14/bootstrap-angular-validation/issues/21#issuecomment-262929159,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABuI4rPCQDFIRBHwxB7sd6r1w4s6co86ks5rBrtOgaJpZM4K7pAt
.

@ry8806 wait! I actually had a glimpse in my mind when you raised this issue that Angular do this on its own but somehow I skipped that and worked on your PR #22 for an hour. But I went back and checked that and I was correct. Angular adds the classes based on the validation keys.
For example, if a field has two validations min & max and when any of them fails, it will add a ng-invalid-min or ng-invalid-max class and removes them when validation passes. Is that what you want?

Oh! I read your description again. You want the classes on the form-group class. Never mind

@ry8806 Now on any error, the library will add classes on the .form-group element. The prefix of the class is bs-has-error- to keep it simple and avoid collision. It will append the name/key of the validation. For example, .bs-has-error-required, .bs-has-error-min or .bs-has-error-email etc.


Issue sharing Game object with server

I have been following through the tutorial and guides in order to get an idea of how the engine works. However, I ran into an issue when converting the example Tic Tac Toe game to multiplayer with a remote server. I modified the Game file to be node friendly:
module.exports = { TicTacToe };

However I now get an error when running the game in the browser:
TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

As far as I can tell this is a known restriction with Webpack (I'm using create-react-app). Whatever I do I can't seem to create a Game object that I can use both for the server and for the React Client, and I obviously want to avoid having to duplicate it.
Any ideas for a way around this, or will I have to look at ditching Webpack and going a pure node route perhaps?
Thanks!

Hey @nicolodavis thanks for the quick reply. I tried the CodeSandbox link which does indeed work perfectly for me.
I noticed it's using react-scripts 1.1.4 and my brand new create-react-app is using 2.1.1. If I update your example to 2.1.1 then the problems start to appear. Initially it won't compile as it doesn't like importing TicTacToe in index.js:
Attempted import error: 'TicTacToe' is not exported from './game'.

If you swap this for a require instead:
const TicTacToe = require('./game').TicTacToe

then you get the original error I reported.
Seems like newer Webpack versions don't like you mixing and matching the two styles of module import/export? For now I can downgrade in my project, any thoughts on a solution going forwards though?

My recommendation then would be to convert game.js to an ES module (only use import / export) and then use something like esm to make it work on Node.
The following should work (without needing to change anything in server.js):
$ npm i esm
$ node -r esm src/server
The alternative is to use a transpiler for the server code as well.

I'll update the docs and CodeSandbox to reflect this if it works well.

Thanks for the tip, I wasn't aware of esm - that worked nicely!

I've updated the docs.  Let me know (for the benefit of others) if it's clear or if any steps could be explained better.
Thanks for reporting this!

Yep - that looks clear to me. Thanks!


Breaks compressed CSS in less.js variant

When using lessc width compress: true option,
/* {
  magic: dont;
}
/* touch */

turns into:
/*{magic:dont}

So, all following CSS code becomes commented out.

Possible workaround is replacing the final lines in the file to magic fix from lessphp variant
Find:
    // Closing the final bracket (do not touch the comment magic!)
    @globalEndString: ~'@{bracketClose}/*';
    @{globalEndString} { magic: dont; } /* touch */
}

Replace with:
    // Closing the final bracket (do not touch the magic!)
    @globalEndString: ~'@{bracketClose}x:not(x)';
    @{globalEndString} { content: ''; }
}


Add text type for testing

I've also lessened the timed test from 120 seconds to 10 seconds for easier testing.

Ok yes thank you. That will help


No such file or directory

I'm getting two errors while I tried to run main.py . Below I have shared the error that I have got
Traceback (most recent call last):
File "main.py", line 139, in
main()
File "main.py", line 133, in main
print(open(FilePaths.fnAccuracy).read())
IOError: [Errno 2] No such file or directory: 'Documents/GitHub/SimpleHTR/model/accuracy.txt'
PS: I have given the Path correctly only but somehow its shows error message. and I don't know why it shows a Traceback error for main.py.
Please help me to resolve it. I'm completely new to this and on a learning stage.

please fill out the issue template.

Closing because of inactivity.


Remove legacy key filename ID_role.key

All private keys should be specifying roles in the PEM header, as opposed to on the filename itself.

No priority to remove the reading code.


fix(wash-cli): remove help about deprecated wash reg #2404

Feature or Problem
#2404
Related Issues
Release Information
next
Consumer Impact
Just changed help output text
Testing
Unit Test(s)
no changes
Acceptance or Integration
Manual Verification
run wash help and see no info about reg command is present.

Tests see to be failing/flaky (I think it's the wash call set of tests) which are unrelated to this ticket... going to look into it


Homekit integration with go2rtc

Hi,
It seems the integration of homekit using the embedded go2rtc doesn't work.
If we use the go2rtc direct add-on, there is no issue.
Could it be because the configuration doesn't set the host_network to true ?

yes, this is expected and the reason is due to no host network which is on purpose because frigate uses a number of ports internally

Thanks for the information so there are only 2 solutions, one is to use an external go2rtc and forward to frigate or use internal go2rtc and use homekit bridge or something similar but it will re encode the stream


Passing multiple features in a request does not produce desired functionality

Environment details

OS: Mac
Node.js version: 14.0.0
npm version: 6.14.4
@google-cloud/video-intelligence version: 3.0.1

I am currently building a custom library to implement google video intelligence and I am running into a bottleneck. I want to access multiple features of google video intelligence without having to make multiple requests with the same video.
i.e. I am trying to build my requests and pass multiple feature names in an array like so:
{     inputContent: inputContent,     locationId: locationId,     features: ['OBJECT_TRACKING', 'SPEECH_TRANSCRIPTION'],     videoContext: {       speechTranscriptionConfig: {         languageCode: 'en-US',         enableAutomaticPunctuation: true       }     }
When I do this, I do not get either object tracking annotations or speech transcription, but rather a response with empty arrays. However, when I pass only one of the features at a time the api works as expected and I get either object tracking or speech transcription. This is slightly problematic because I want to utilize both features without having to add the computational cost of sending the same video multiple times. Is this a feature that is currently supported?
Steps to reproduce

Pass multiple features in feature array when making a request

@telpirion Do you know if this feature is feasible or not?

Closing this issue as the thread has been inactive for over a year. Please re-open if this is still an active issue.


Dimension of Zt

We generate segment-wise embeddings zt∈Z that can represent a unit segment of audio from the acoustic features S at time step t.
In this line do each zt is of dimension d or dimension 1.

@kasireddygariDineshKumarReddy z(t) is of dimension d. In config file, EMB_SZ defines d. https://github.com/mimbres/neural-audio-fp/blob/058d812df3787a7e000c6f595e200fd2e15ee348/config/default.yaml#L47

Do you mean each unit segment(lets say 1second of audio) is of dimension 128 or d

Yes d=128.

In NFP algorithm ,it was given that
Zk^(org) = g ◦ f (Sk)
Zk^( rep) = g ◦ f (M(Sk ))
and after loop completion
Z= {Z1^(org) , Z1^(rep) , ..., Z N/2^(org), Z N/2^(rep)}
Is Zk^(org) ,Zk^(rep) of 128 dimension or else Z which is combination of all these originals and replicas is of dimension 128?

Z^k(*) is kth single element in training batch, and it has a shape (128,).
Z will have a shape (B, 128) where B is training batch size.

Is Agumentation performed before feature extraction or after log mel spectrogram feature extraction?


WIP Add ResourceList component. Refs #354

I created a basic implementation that is named as ResourceList
It accepts:

title - the page title
resourceType
searchParams - default searchParams
searchBarColumns - where id of the column is used as search param key
tableColumns - andt Table columns
getRecordActions - function that accepts table records and returns actions for record

QuestionnaireAction
NavigationAction
CustomAction

getHeaderColumns - function that accepts nothing and returns actions for Header

QuestionnaireAction

getBatchColumns - function that accepts nothing and returns actions for selected items

QuestionnaireAction

The table record is presented as {resource: R, bundle: Bundle}.
The QuestionnaireAction is generic action that accepts title of the button/link and questionnaire id. The launch context is:

for Header - no
for Batch - List
for Record - ResourceType (for Patient it will be Patient)

Example of the PatientList rewritten using ResourceTable - src/containers/PatientResourceListExample/index.tsx.

@ir4y @vesnushka, it turns out that the List does not contain the resources themselves; it is just a reference. But it makes sense to pass whole resources, so I've replaced it with a bundle.
It's similar to the record questionnaires where we have a whole Resource.


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-24-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1938

Questions ?
Please refer to the Backport tool documentation


Registered_time timestamp

Is there a way, when you register a ticket, instead of true or false, to show the Timechain (year-date-time(in the end seconds).

Yes, it will work.
Appreciate your assistance! Thank you!


deb rpm: remove manual feature of zero-downtime-restart from uninstall phase

We were going to support two methods of downgrading with zero downtime.

Running v6.x => Install v5.x package by overwriting
Running v6.x => Replace FLUENT_PACKAGE_SERVICE_RESTART value to manual => uninstall v6.x =>  Install v5.x

The second method is to keep the Fluentd process running after uninstalling it.
We decided to remove 2. method because it may cause confusion for users.

Thanks! Looks good!
Let's wait CI results.

Thanks!


Docs/Floating components clipping in hero section

📝 Description
Fixed the the FLoatingComponent (Input & Pagination Clipping) clipping in Hero Section
⛳ Current behavior (updates)

🚀 New behavior

💣 Is this a breaking change (Yes/No): No

📝 Additional Information

Summary by CodeRabbit

Improvements

Refined positioning, animation durations, and sizes of floating UI elements (e.g., switches, inputs, cards, tabs) in the hero section for better visual presentation and behavior.

@wingkwong  kindly review the PR


set user agent

i use Go driver, it is possible to set User-Agent

Related to issue #442

I have got this working on MacOS. PR incoming I just need to implement it in Windows and Linux.

@oscartbeaumont — any updates on that PR?


encoding/xml: accepts invalid XML with multiple colons

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.8.1 darwin/amd64
What operating system and processor architecture are you using (go env)?
darwin/amd64
What did you do?
<a:te:st xmlns:a="abcd"/>

parsing above xml with golang standard lib, does not report any error
go program used to test: (https://play.golang.org/p/j_VigKalfk)
package main

import (
	"encoding/xml"
	"fmt"
	"io"
	"strings"
)

func main() {
	decoder := xml.NewDecoder(strings.NewReader(`<a:te:st xmlns:a="abcd"/>`))
	for {
		t, err := decoder.Token()
		if err != io.EOF && err != nil {
			fmt.Println("invalid xml", err)
			break
		}
		if t == nil {
			break
		}
	}
}

with xmllint linux program, it reports invalid xml
$xmllint test.xml
test.xml:1: namespace error : Failed to parse QName 'a:te:'
<a:te:st xmlns:a="abcd"/>
     ^
<?xml version="1.0"?>
<a:te:st xmlns:a="abcd"/>

What did you expect to see?
should report error in parsing xml
What did you see instead?
parses without any error

So looking at this, it seems as though the rune-validation table for NameChar (second in (https://golang.org/src/encoding/xml/xml.go#L1431) was perhaps generated from an older spec. Or at least, a different one than matches other xml validators.
Where, as the name indicates, a NameChar is a character which may be included in a Name.
Our table was generated from http://www.xml.com/axml/testaxml.htm, which states that a NameChar may be:
[4] 	NameChar	::=	Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender

(under 2.3, Common Syntactic Constructs)
However, there is nothing in this document about qualified names (names with a namespace). Note this quote (below), which states that the use of colons is experimental and not defined by this document.
[Definition:] A Name is a token beginning with a letter or one of a few punctuation characters, and continuing with letters, digits, hyphens, underscores, colons, or full stops, together known as name characters. [...]

Note: The colon character within XML names is reserved for experimentation with name spaces. Its meaning is expected to be standardized at some future point, at which point those documents using the colon for experimental purposes may need to be updated. (There is no guarantee that any name-space mechanism adopted for XML will in fact use the colon as a name-space delimiter.) In practice, this means that authors should not use the colon in XML names except as part of name-space experiments, but that XML processors should accept the colon as a name character.

However, if you look at the w3 docs https://www.w3.org/TR/1998/NOTE-xml-names-0119#dt-qname , qualified names are better defined. This document specifies that there must be at most one colon per name, and that QualifiedName s use a colon as delimiter.
(https://www.w3.org/TR/1998/NOTE-xml-names-0119#wfc-NSDeclared)
To enable the proper use of qualified names, it is necessary to banish colons from all Names which are not qualified

Where a qualified name (in the w3 doc) is composed as:
[4] 	QName	::=	(NSPart ':')? LocalPart
[5] 	NSPart	::=	Name
[6] 	LocalPart	::=	Name

Another note from w3 docs:
There is at most one colon per name. This working draft does not support the use of multiple colons to designate hierarchical namespaces, multiple inheritance or other semantics. It is anticipated that multi-part names will be discussed as mechanics to support implementing these features in a future version of the XML specification.

QNames use a single colon as a separator. The use of a double colon was discussed as a way to improve compatibility with the CSS specification even though most people preferred the single colon from a subjective and aesthetic perspective. After further investigation it was not shown that double colons would actually simplify the development of CSS compatible XML namespace aware applications. The single colon QName syntax used in this working draft is intended to support the use of CSS stylesheets in namespace aware XML applications.

So I would vote that we re-generate the tables based on the w3 docs (or another, more complete set) such that colons are not permitted as NameChars (in our second table). There is no need for a code change.

A qualified name (https://www.w3.org/TR/xml-names/#NT-PrefixedName) is treated separately to return prefix and local part. The allowed : is left by char scanning and the occurence of another one was not verified. I submitted a related fix including a specific test.


Documentation Error: INSTALLATION FAILED: must either provide a name or specify --generate-name

I am working on a remote test cluster where I want to follow the "production" documentation to test a (test) production environment.
The helm setup at https://armadaproject.io/production-install

export ARMADA_VERSION=v0.3.84
helm install ./deployment/armada --set image.tag=$ARMADA_VERSION -f ./server-values.yaml

Results in a

Error: INSTALLATION FAILED: must either provide a name or specify --generate-name

I also have difficulties with installing the recommended prerequisites such as https://github.com/helm/charts/tree/master/stable/redis-ha which has been deprecated for more than a year now...
┆Issue is synchronized with this Jira Task by Unito

@jjkoehorst I'm sorry you are dealing with this.  I noticed that that file needs some love.  I created https://github.com/armadaproject/armada/issues/2736 to reflect that we want to shift our deployments to use armada-operator rather than the individual helm charts.
Please feel free to open up a PR to fix the issues you see right now.  I think you could use bitnami redis chart rather than the one you linked above.

Closing, Operator is preferred installation tooling.


Add LSF Support

Make a production-ready version of https://github.com/dattalab/luigi/blob/lsf/luigi/lsf.py based on the existing SGE implementation. I will make a pull request

@boombard Status update on PR?

Any progress on this. Would be great to have support for LSF clusters in Luigi.

Hi @Tarrasch,
I have been in contact with @alexbw about the Luigi LSF update. We now have a working update on the LSF branch of a fork.
Would you like the changes merged to the master branch of the fork and then for a pull request to be made to Luigi or would you like it to remain on the branch?
Cheers,
Mark

@markmcdowall Feature branch PR will be fine!


Fix cancel states

closes #2875
closes #833
closes #2062
closes #2911
closes #2197
closes #3848
Changes

[x] use specific states for workflow and step updates
[x] var renamings and comment improvements for improved readability
[x] remove exit-code handling from workflow as workflow have no exit-code
[x] wait for traces client.Update() which updates the step states before client.Done() is called so the workflows steps states are saved before we determine the workflows state from them

@anbraten beside the lint issue it looks ready

Yes, the general refactoring should be done. The runner_test could be enhanced. And it would be nice if someone reviewing would have a closer look on the switch of Exited to the Finished property, just to make sure I haven't missed anything.


[awesome-azd] UI Updates for Ignite

Priority order of awesome-azd items to be delivered by Ignite on November 14 (adding to November milestone for tracking purposes)

[ ] 1. [P0] Filter top bar Filter Bar · Issue #152
[ ] 2. [P0] Empty search page Empty Search Result · Issue #191
[ ] 3. [P0] Card panel updates Card Panel · Issue #150
[ ] 4. [P0] Update background, accent colors, icon colors on Update About & Contribute pages
[ ] 5. [P0] FOUC (png is fixed but there are other improvements to be made) Optimize assets · Issue #213
[ ] 6. [P1] Dark mode Dark mode · Issue #216
[ ] 7. [P1] Add AI view Add AI top-level filter · Issue #222

We ideally want these updates finished by Universe (November 8-9th).


Failed to up mssql

Info:

Docker version : Docker version 18.09.2, build 6247962
System info : PC
System info disto/version: windows10 x64

Issue:
I tried to up the mssql service.The following error message appears.
$ docker-compose up mssql
Starting cps_mssql_1 ... done
Attaching to cps_mssql_1
mssql_1                | tail: cannot open '/dev/null'$'\r' for reading: No such file or directory
mssql_1                | tail: no files remaining
cps_mssql_1 exited with code 1

How to solve this problem？

It has been settled.

where is the solution, downloaded laradock and today i'm facing same issue

We're having a similar issue.
Please post solution OP.


Partial DOIs

This PR adds a number of methods to the Article and Corpus class to allow for Article() creation from a partial DOI, including from Corpus, transformations between partial and full DOIs, as well as regex to validate partial DOIs. I added a new pytest file as well to cover these changes.

I was thinking about this for a bit… why do you ever need to validate a partial doi?
Why not validate only on dois since dois are the only things that actually have canonical representations?
That way the canonical way to do everything is always to transform the partial doi into the doi first and then validate the doi?


Search by Lastname Irrespective of Case Styles

Note that I am doing this by storing lastname in title case when creating or updating a customer, and, as such, searching for an input lastname by setting it in title case and then searching.

IBM Cloud toolchain: Delivery Pipeline deployed customers to nyu-devops, including commit e9c8745e006afc601f348640b3330d930bd16461


Added another Slack bot to the README

Thanks a lot for this great and easy-to-use library!

awesome :)


无法加载这个节点

Traceback (most recent call last):
File "D:\ComfyUI\ComfyUI_windows_portable\ComfyUI\nodes.py", line 1889, in load_custom_node
module_spec.loader.exec_module(module)
File "", line 940, in exec_module
File "", line 241, in call_with_frames_removed
File "D:\ComfyUI\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_LayerStyle.main_init.py", line 60, in
imported_module = importlib.import_module(".py.{}".format(name), name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "importlib_init_.py", line 126, in import_module
File "", line 1204, in _gcd_import
File "", line 1176, in _find_and_load
File "", line 1147, in _find_and_load_unlocked
File "", line 690, in _load_unlocked
File "", line 940, in exec_module
File "", line 241, in _call_with_frames_removed
File "D:\ComfyUI\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_LayerStyle.main\py\birefnet_ultra.py", line 2, in
from .imagefunc import *
File "D:\ComfyUI\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_LayerStyle.main\py\imagefunc.py", line 23, in
from skimage import img_as_float, img_as_ubyte
ModuleNotFoundError: No module named 'skimage'
Cannot import D:\ComfyUI\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_LayerStyle.main module for custom nodes: No module named 'skimage'
[tinyterraNodes] Loaded

请按readme说明安装依赖包


A small mistake in evaluation results

Hello, thanks for your nice work, but there is a mistake in the evaluation results in readme, where the IOU75 is larger than 50 and 25. Maybe it is a writing mistake.

Thank you so much for pointing that out. Yes, the IoU75 and the IoU25 were flipped. I have updated the README.md file, and they should look right now.


"Ignored Names" in Preferences has no effect in TreeView

The list of ignored names in the preferences don't have any effect in the TreeView. Letting it to the defaults still shows files/directories like .git, Thumbs.db and the such. Even explicitly defining these has no effect.
Starting atom in safe-mode did not help.
The error is there since I installed it in the first place and I didn't bother to report it until now.
OS: OSX 10.10.5
Atom build: 1.4.3 (official build from website)
Installed additional community packages:

git-plus
plantuml-viewer
vim-mode

I've attached a screenshot. Anything else I need to provide?

Thanks, Alex.

Tree View has a separate options "Hide VCS Ignored Files" or something like that which you need to enable in order to hide those files (alternatively, try pressing i while the Tree View is focused).  Hope that helps!

You probably mean "Exclude VCS Ignored Paths"? That is also enabled. Pressing "i" didn't help either. I'm kinda lost. It's not like my life depends on it, I'm just wondering if I'm doing something wrong.

He meant "Hide VCS Ignored Files" in the Tree View Settings:

Launch Atom
Open Settings View with Cmd+, on OS X or Ctrl+, on other platforms
Click the Packages tab
Search for "tree-view"
Click the Settings button in the tree-view package box
Check "Hide VCS Ignored Files"

Pressing I probably didn't help because you have to have the Tree View focused before it will work.

@lee-dohm Thanks, that helped, although I also had to check "Hide Ignored Names". "i" didn't work because I don't have a .gitignore file (I guess) in some project directories. I find it a little confusing that the Ignored Names from the Core Settings don't have any effect unless you check the "Hide Ignored Names" in tree-viewer's settings. Thanks for your support!

I'm glad that I was able to help. We agree that this is confusing. We just haven't thought of a better system yet :laughing:
Thanks for using Atom!


ExampleTest not working

When running phpunit in the project root, I get
1) ExampleTest::test_i_am_redirect_to_login_if_i_try_to_view_task_lists_without_logging_in
PDOException: SQLSTATE[HY000] [2002] No such file or directory

Obviously the test database connection is not set up.  I've been Googling for instructions and found a few but just wanted to check here to see if there are some official docs on this that I missed or a best practice way to do this before I dive it and try some of the things I found.

Ok, found the problem.  For OS X 10.11.6 running MAMP, I had to set the unix_socket config on config/database.php per one the answers here:
https://stackoverflow.com/questions/20723803/pdoexception-sqlstatehy000-2002-no-such-file-or-directory


Gchart.pie: How to set chart colors?

Gchart.line has the line_colors option. What is about Gchart.pie? Thanks!

bar_colors: 'FF0000,00FF00,0000FF'
This worked for me though.

Ancient question, ancient API, but :+1:


Bug in joinWith() and orderBy() in subquery

According to the manual: http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#joining-with-relations  ActiveQuery::joinWith() is equivalent for ActiveQuery::join() and ActiveQuery::with(). Unfortunately, for a particular case, it is not so:
$sourceQuery1 = \common\models\CompaniesCases::find()
		->joinWith([
			'entries' => function($q) {
				$q->orderBy('companies_cases_entries.contact_term DESC');
			}
		])
		->orderBy('companies_cases.created_at');

$sourceQuery2 = \common\models\CompaniesCases::find()
		->join('LEFT JOIN', 'companies_cases_entries', '"companies_cases"."id_case" = "companies_cases_entries"."id_case"')
		->with([
			'entries' => function($q) {
				$q->orderBy('contact_term DESC');
			}
		])
		->orderBy('companies_cases.created_at');

$query1 = clone $sourceQuery1;
$query1->limit(-1)->offset(-1)->orderBy([]);
var_dump('First execute: '.$query1->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);
$query1->limit(-1)->offset(-1)->orderBy([]);
var_dump('Second execute: '.$query1->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);

$query2 = clone $sourceQuery2;
$query2->limit(-1)->offset(-1)->orderBy([]);
var_dump('First execute: '.$query2->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);
$query1->limit(-1)->offset(-1)->orderBy([]);
var_dump('Second execute: '.$query2->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);

OUTPUT:
'First execute: SELECT "companies_cases".* FROM "companies_cases" LEFT JOIN "companies_cases_entries" ON "companies_cases"."id_case" = "companies_cases_entries"."id_case" ORDER BY "companies_cases_entries"."contact_term" DESC'
'Second execute: SELECT "companies_cases".* FROM "companies_cases" LEFT JOIN "companies_cases_entries" ON "companies_cases"."id_case" = "companies_cases_entries"."id_case"'
'=================================='
'First execute: SELECT "companies_cases".* FROM "companies_cases" LEFT JOIN "companies_cases_entries" ON "companies_cases"."id_case" = "companies_cases_entries"."id_case"'
'Second execute: SELECT "companies_cases".* FROM "companies_cases" LEFT JOIN "companies_cases_entries" ON "companies_cases"."id_case" = "companies_cases_entries"."id_case"'

This bug causes error in ActiveDataProvider::prepareTotalCount() method (only on Postgresql database), beacuase:
$query->limit(-1)->offset(-1)->orderBy([])->count('*', $this->db);
generate query with COUNT(*) and ORDER BY.

Thats documented behavior. What you need is
 \common\models\CompaniesCases::find()
        ->joinWith(['entries'])
        ->with([
            'entries' => function($q) {
                $q->orderBy('companies_cases_entries.contact_term DESC');
            }
        ])
        ->orderBy('companies_cases.created_at');

Will work the way you expect it.

->joinWith(['entries'])
is equivalent for:
->join('LEFT JOIN', 'companies_cases_entries', '"companies_cases"."id_case" = "companies_cases_entries"."id_case"')
and still it does not change anything. Unnatural is when another preparation of a query generates another raw SQL.

@darks86 what do you mean? the joinWith() method applies the changes in cascade to the joined queries while the with() method doesn't. Did you try the code snippet I gave you?

I read both guide how documentation. It is these have put me in the wrong conviction. The documentation indicates that joinWith acts as a combination with() and join(). I showed for example that it is not. I use Yii few years, I can work around these problems. I just reported the problem. Even assuming that the mistake is unclear documentation, a construction:
$sourceQuery1 = \common\models\CompaniesCases::find()         ->joinWith([             'entries' => function($q) {                 $q->orderBy('companies_cases_entries.contact_term DESC');             }         ])         ->orderBy('companies_cases.created_at');
forwarded to ActiveDataProvider causes error in prepareTotalCount().
$query->orderBy([]); not enough.

ok which part of the docs is wrong and how you would reword it?


MySQL only?

Hiya. Just installed your package into Laravel 5.3 w/ Postgres and received the following error:
$ ./artisan schema:show
[Illuminate\Database\QueryException]
SQLSTATE[42704]: Undefined object: 7 ERROR:  unrecognized configuration parameter "tables" (SQL: SHOW TABLES)
[PDOException]
SQLSTATE[42704]: Undefined object: 7 ERROR:  unrecognized configuration parameter "tables"

Is this because the package is MySQL only? I notice that at the bottom it says "Multiple database facility coming soon", but it doesn't say what database is currently supported.
Cheers!

@vaughany please use 1.1.0 for Postgres sql.


Crandall - Add arguments to biosample_complete.sh to pass bco_id and schema_version

Enhancement to #151 ; currently bco_id and schema_version must be filled in manually

@steph-sing This enhancement to the code has not yet been completed.

My mistake. I will reopen the ticket and move it back to In Progress.


Move JSON schemas into primer-schemes repo

The more obvious location for them, need to figure out how this will work

Done


MudTextField with InputType="InputType.Email" incorrectly converts extended ASCII characters in Google Chrome

Bug type
Component
Component name
MudTextField
What happened?
Given the following Razor markup:
<MudTextField T="string" InputType="InputType.Email" />

In Google Chrome, when you enter certain strings which include extended ASCII characters AFTER the @ sign in the email address, the value in the MudTextField gets incorrectly converted.
For example, when you enter a@£, when the field loses focus the value is converted to a@xn--9a.
The same thing does NOT happen in Firefox.
Windows 11 Enterprise 23H2, Google Chrome 124.0.6367.91.
Expected behavior
The value should remain exactly as it's been typed - so if the user types a@£ then the value should remain as a@£.
Reproduction link
https://try.mudblazor.com/snippet/QamouSmiyksuoPrA
Reproduction steps

Using Google Chrome, go to https://try.mudblazor.com/snippet/QamouSmiyksuoPrA and run the code.
Enter the value a@£ in to the text field and tab or click out of the field.
Note that the value incorrectly changes to a@xn--9a when it should remain as a@£.

Relevant log output
No response
Version (bug)
6.19.1
Version (working)
No response
What browsers are you seeing the problem on?
Chrome
On which operating systems are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

After further investigation I've discovered that this seems to be a bug with Blazor rather than MudBlazor.
I added this code to an empty Blazor application:
<input @bind-value="TextValue" type="email" />
<br />
@TextValue

@code {
    public string TextValue { get; set; }
}

And this is what I see when I run it in Chrome and enter a@£ in the input field:

So I'm not really sure where to go from here!

I've raised an issue here: https://github.com/dotnet/aspnetcore/issues/55632

Evidently this is a browser 'feature' for converting which aren't valid for hostnames, so nothing to do with Blazor at all - https://github.com/dotnet/aspnetcore/issues/55632#issuecomment-2110674765
I guess the only solution is either to avoid using InputType="InputType.Email", or try to do something clever around not accepting non-ascii characters after the @ symbol, but whatever the solution it's certainly not a MudBlazor issue.


Test Suite Failed To Run - Unknown option: .preset

Error Description:
When running jest for a simple unit test of javascript code I get the error Test suite failed to run Unknown option: .preset
Below are the files to reproduce the error:
package.json
{   "name": "RelocationTrackerApp",   "version": "1.0.0",   "description": "",   "main": "index.js",   "scripts": {     "test": "jest",     "start-debug": "webpack-dev-server --open --config webpack.dev.js",     "build-release": "webpack --config webpack.prod.js"   },   "keywords": [],   "author": "",   "license": "ISC",   "devDependencies": {     "@babel/core": "^7.9.0",     "@babel/preset-env": "^7.9.5",     "@babel/preset-react": "^7.9.4",     "@testing-library/react": "^10.0.3",     "babel-jest": "^25.5.1",     "babel-loader": "^8.1.0",     "jest": "^25.5.0",     "react-test-renderer": "^16.13.1",     "webpack": "^4.42.1",     "webpack-cli": "^3.3.11",     "webpack-dev-server": "^3.10.3",     "webpack-merge": "^4.2.2"   },   "dependencies": {     "react": "^16.13.1",     "react-bootstrap": "^1.0.1",     "react-dom": "^16.13.1",     "react-router-dom": "^5.1.2"   } }
.babelrc
{     "preset": ["@babel/preset-env", "@babel/preset-react"] }
sum.test.js
`
const sum = require('./sum');
test('properly ads two numbers', () => {
expect(sum(1, 2)).toBe(3)
})
`
Below is the actual error:
tests/sum.test.js
● Test suite failed to run
Unknown option: .preset. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.

  at throwUnknownError (node_modules/@babel/core/lib/config/validation/options.js:123:27)
  at node_modules/@babel/core/lib/config/validation/options.js:108:5
      at Array.forEach (<anonymous>)
  at validateNested (node_modules/@babel/core/lib/config/validation/options.js:84:21)
  at validate (node_modules/@babel/core/lib/config/validation/options.js:75:10)
  at node_modules/@babel/core/lib/config/config-chain.js:174:34
  at cachedFunction (node_modules/@babel/core/lib/config/caching.js:62:27)
      at cachedFunction.next (<anonymous>)
  at evaluateSync (node_modules/gensync/index.js:244:28)
  at sync (node_modules/gensync/index.js:84:14)

# @ @

[ ]

[ ]

is you question  well ,im has same question

plaese speak solve method


refactor: schematic and lint optimization for default module overrides

PR Type
[x] Refactoring (no functional changes, no API changes)
What Is the New Behavior?

sort module fields in file overrides
add components to module all overrides if they exist

Does this PR Introduce a Breaking Change?
[ ] Yes
[x] No
Other Information
AB#72274

I suppose this a useful change for PWA Projects linted with tslint?
Our next planed release is PWA 2.0 that will include the switch from tslint to eslint. Is this a change that should be ported to the eslint Branch as well?
Is this fix something you would wish for in a potential PWA 1.4.1 Release even though it is not a bugfix? We are not certain that there will be anything like a PWA 1.5.0.

I suppose this a useful change for PWA Projects linted with tslint? Our next planed release is PWA 2.0 that will include the switch from tslint to eslint. Is this a change that should be ported to the eslint Branch as well?

The change in the schematics is actually more important for us. But yes, #836 should also include the sorting for module fields in eslint.

Is this fix something you would wish for in a potential PWA 1.4.1 Release even though it is not a bugfix? We are not certain that there will be anything like a PWA 1.5.0.

Well, it would be a good to clearly communicate a release and maintenance schedule for the Intershop PWA. If it is already there, please link it. I didn't stumble upon it, yet. 😜
For our project we are based on the current 1.4 version and will continue cherry-picking things we need, so we don't need a release. Another regular 1.x release as a stepping stone towards 2.0 would be nice, though.

@dhhyi The current release planning is focused only on 2.0. This release will bring eslint instead of tslint and should also include the changed behavior with a standard rule. But for a short time the develop branch will feature the changed behavior also with tslint now. 😉


Stopping command while having an endless loop

Hey guys,
I have a simple program and wanted to try it with picocli. My question is, what´s the "best" design for a stopping command while having an endless loop. E.g. my application is printing all 5 seconds the current date. So it´s an endless loop and there is never an exit command. Addionally I have seen that the Thread is still running if I´m closing the cmd.
Source:
import java.util.Date;

import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Model.CommandSpec;
import picocli.CommandLine.Option;
import picocli.CommandLine.Spec;

@Command(name = "java -jar example.jar")
public class PicocliExample implements Runnable {

	@Option(names = { "-d", "--delay" }, required = false)
	private int delay = 5000;

	@Option(names = { "-h", "--help" }, usageHelp = true, description = "Hilfe")
	private boolean helpRequested = false;

	@Override
	public void run() {
                // Maybe some condition here when e.g. ctrl + c is pressed?
		while (true) {
			System.out.println(new Date());
			try {
				Thread.sleep(delay);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	public static void main(final String... args) throws Exception {
		int exitCode = new CommandLine(new PicocliExample()).execute(args);
		System.exit(exitCode);
	}
}

Do you have any ideas?
Thank you in advance, I really appreciate this project. :)

For a long-running program, the user would need to send some signal to the process to tell it to stop running.
Ctrl-C is a commonly used signal, that will cause the Java runtime to exit. Before exiting, all shutdown hooks are executed. If you have any logic that needs to run before exiting, that would be the place to do it.
Does this answer your question?
About exit codes:
The main method currently calls System.exit; this is only called when the user made a syntax mistake (entered a non-numeric value for --delay, for example) or when the run block throws a RuntimeException. (Exit code will be 2 for invalid user input and 1 for runtime exceptions.)
I don't think there is a way to control the exit code from a shutdown hook.

An alternative design (a bit more complex) is to have the command start a server socket, and wait for some command text to be received via the network. Users could then use the nc utility to send this text, something like this:
echo -n 'Line of text' | nc <ip> <port>

All right. Thank you!


Refine password entry flow

Fixes #843

Codecov Report

Merging #844 (cacb92c) into master (e8f94f7) will decrease coverage by 0.07%.
The diff coverage is 85.00%.

@@            Coverage Diff             @@
##           master     #844      +/-   ##
==========================================
- Coverage   48.74%   48.66%   -0.08%
==========================================
  Files         142      142
  Lines        7004     7009       +5
==========================================
- Hits         3414     3411       -3
- Misses       2984     2990       +6
- Partials      606      608       +2

Impacted Files
Coverage Δ

pkg/config/consts.go
0.00% <ø> (ø)

pkg/core/loop/consensus.go
76.47% <0.00%> (-2.95%)
:arrow_down:

pkg/core/consensus/agreement/step.go
56.00% <81.81%> (+4.52%)
:arrow_up:

pkg/core/mempool/mempool.go
43.02% <100.00%> (ø)

pkg/p2p/peer/factory.go
100.00% <100.00%> (ø)

pkg/p2p/peer/peer.go
36.45% <100.00%> (-0.62%)
:arrow_down:

pkg/gql/notifications/broker.go
72.58% <0.00%> (-3.23%)
:arrow_down:

pkg/p2p/kadcast/testing.go
69.79% <0.00%> (-3.13%)
:arrow_down:

pkg/core/data/base58/base58.go
70.83% <0.00%> (-1.39%)
:arrow_down:

... and 1 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 ca9a2b1...ada6155. Read the comment docs.

Codecov Report

Merging #844 (cacb92c) into master (e8f94f7) will decrease coverage by 0.07%.
The diff coverage is 85.00%.

@@            Coverage Diff             @@
##           master     #844      +/-   ##
==========================================
- Coverage   48.74%   48.66%   -0.08%
==========================================
  Files         142      142
  Lines        7004     7009       +5
==========================================
- Hits         3414     3411       -3
- Misses       2984     2990       +6
- Partials      606      608       +2

Impacted Files
Coverage Δ

pkg/config/consts.go
0.00% <ø> (ø)

pkg/core/loop/consensus.go
76.47% <0.00%> (-2.95%)
:arrow_down:

pkg/core/consensus/agreement/step.go
56.00% <81.81%> (+4.52%)
:arrow_up:

pkg/core/mempool/mempool.go
43.02% <100.00%> (ø)

pkg/p2p/peer/factory.go
100.00% <100.00%> (ø)

pkg/p2p/peer/peer.go
36.45% <100.00%> (-0.62%)
:arrow_down:

pkg/gql/notifications/broker.go
72.58% <0.00%> (-3.23%)
:arrow_down:

pkg/p2p/kadcast/testing.go
69.79% <0.00%> (-3.13%)
:arrow_down:

pkg/core/data/base58/base58.go
70.83% <0.00%> (-1.39%)
:arrow_down:

... and 1 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 ca9a2b1...ada6155. Read the comment docs.


Report return code upon process failure

In local execution mode, it is unclear when a step fails because of a process failure. I would expect a segmentation fault, killed process, etc to be clearly marked as such in the logs, but the logs only note that the "Task Failed.".
For example:
from metaflow import FlowSpec, step

class SegFaultFlow(FlowSpec):
    @step
    def start(self):
        self.next(self.segfault)

    @step
    def segfault(self):
        import ctypes;ctypes.string_at(0)
        self.next(self.end)

    @step
    def end(self):
        pass

if __name__ == '__main__':
    SegFaultFlow()

Results in the following output:
$ python segfault_flow.py run
Metaflow 2.2.2 executing SegFaultFlow for user:nspies
Validating your flow...
    The graph looks good!
Running pylint...
    Pylint is happy!
2020-08-24 06:17:37.633 Workflow starting (run-id<PHONE_NUMBER>255545):
2020-08-24 06:17:37.718 [1598264257255545/start/1 (pid 19041)] Task is starting.
2020-08-24 06:17:39.665 [1598264257255545/start/1 (pid 19041)] Task finished successfully.
2020-08-24 06:17:39.802 [1598264257255545/segfault/2 (pid 19077)] Task is starting.
2020-08-24 06:17:41.069 [1598264257255545/segfault/2 (pid 19077)] Task failed.
2020-08-24 06:17:41.069 Workflow failed.
2020-08-24 06:17:41.069 Terminating 0 active tasks...
2020-08-24 06:17:41.069 Flushing logs...
    Step failure:
    Step segfault (task-id 2) failed.

Ideally we would see something more informative, eg:
2020-08-24 06:17:41.069 [1598264257255545/segfault/2 (pid 19077)] Task failed due to terminated process: <Signals.SIGSEGV: 11>.

Thanks for the issue! We are in the process of upgrading our logging mechanism that will detect and emit segfault messages in the user-visible logs.

Metaflow has been returning the exit code in the logs for some time now. Closing this issue.


✨ Add new script for collecting results

JIRA: https://issues.jboss.org/browse/RAINCATCH-583

@wojta @paolobueno @david-martin @aidenkeating
This adds the script as I currently have it. Some of us have discussed some other future improvements:

Don't commit results to the repo, but rather store them in S3 (if it's up amirite) or somewhere else.
Extend load-runner to take an 'after' script, similar to the 'before' script.

Thanks for the review @aidenkeating I'm going to merge this now, as it will make testing the device flow a little easier.


Tweak readme

Hi. Thanks for publishing a neat package! It has helped me do my chores and I appreciate it 🙂
Let me propose some enhancements in terms of docs. What do you think?

Encourage using go get for installation
Fix repo name for installation command
Use ascii comma for punctuation

Thanks for fixing. It sounds good!! @sato11


[BUG] Function App consumes only 8 messages per minute from Service Bus with Sessions Enabled topic

Library name and version
Azure.Messaging.ServiceBus
Describe the bug
After consuming 8 messages from service bus, our function app sits idle for the remainder of the minute and does nothing. It consistently consumes 8 messages per minute and no more, despite there being hundreds of messages on the subscription  containing hundreds of different SessionIds.
This appears related to the 'MaxConcurrentSessions' configuration which defaults to 8. This configuration seems to be ignored in the host.json, but when setting it in the functions app settings we saw a brief improvement (64 messages per minute when the configuration was set to 64), and then a reduction back to 8 after half an hour. There is something at play which is pulling this back to 8 per minute every time.
Attached logs show a delay of 60 seconds between 2 messages (there was thousands of messages on this subscription at this point in time):
2022-12-14T15:20:40Z   [Information]   Executing 'MyEventHandler' (Reason='(null)', Id=799aa6c4-5ebe-4bad-9084-80869a8591c3)
2022-12-14T15:21:40Z   [Information]   Executing 'MyEventHandler' (Reason='(null)', Id=03415959-0d4a-46fd-8acd-6411bded1150)

delay_between_consumed_messages.txt
Expected behavior
We've made an additional simple test ServiceBusTrigger function app which simply waits for a second and exits. We would expect to see around 60 messages consumed a minute, but instead we see 8 consistently.
Actual behavior
Function Apps only consume 8 messages per minute from session enabled Service Bus topics.
Reproduction Steps
Create a Linux consumption plan function app, and have it consume messages from a session enabled subscription with a high number of messages.
This is the function and startup we have in the simple test app (which is also limited to 8 messages per minute):

public class EventHandler
{
    [FunctionName("EventHandler")]
    public async Task Run([ServiceBusTrigger(TopicName,
            SubscriptionName,
            Connection = "ServiceBusConnectionString",
            IsSessionsEnabled = true)]
        ServiceBusReceivedMessage serviceBusReceivedMessage,
        ILogger logger)
    {
        logger.LogInformation("Consumed message!");

        await Task.Delay(1000);
    }
}

public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            var config = new ConfigurationBuilder()
                .SetBasePath(Environment.CurrentDirectory)
                .AddEnvironmentVariables()
                .Build();

            builder.Services.AddLogging();
            builder.Services.AddSingleton<IConfiguration>(config);
        }
    }

Environment
This is a v4 function app running on .net 6
Linux consumption plan
Using the latest stable version of all nuget packages.

Additional context:  https://stackoverflow.com/questions/74797482/function-app-consumes-only-8-messages-per-minute-from-service-bus-with-sessions

@FBryant87: Thanks for shifting over to an issue.   To start, it would be helpful to grab a +/- 10-minute slice of the Service Bus SDK logs so that we can better understand what the internals are seeing.  These logs take the form of an ETW event source named "Azure-Messaging-ServiceBus" and are automatically forwarded to Application Insights for an Azure Function.   Seeing information, warnings, and errors would be a good start.
It is also possible to capture these manually in your application code using the AzureEventSourceListener from Azure.Core.  Additional information can be found here, should you decide to do so.

@JoshLove-msft:  Would you please take point?   This initially looked like to me like it was related to the fix from #33035, but after discussion, I'm not so sure.   The differentiator appears to be that there were a good number of messages available to read in the subscription when the session lock was acquired.

Can you let us know how many messages there are per session? If each session only has a single message then you would be limited by the MaxConcurrentSessions settings. To allow the processor to switch more quickly to different sessions, you can adjust the "sessionIdleTimeout" value in host.json.

In the scenarios we're looking at, there are around 500 messages on the subscription with messages containing around 450 different SessionIds. So despite there being numerous sessions to pick from, the function app consistently pulls ~8 per minute. This appears to be directly tied to the MaxConcurrentSessions default limit of 8:
https://i.ibb.co/kDF7JZw/upload2.png
What I've thus far been unable to explain, is that when we forced the app to respect this limitation by putting the below config in the app settings:
AzureFunctionsJobHost__extensions__serviceBus__sessionHandlerOptions__maxConcurrentSessions 64
We saw the issue successfully resolve itself. Unfortunately it only lasted for around half an hour, then it dropped back to the default of 8:
https://i.ibb.co/5TpnJMY/upload1.png
There appears to be something very strange going on with that MaxConcurrentSessions configuration. Changing the sessionIdleTimeout doesn't appear to have much impact in our case.

Reproduced on an entirely separate environment with a different function app and premium service bus. Throwing hundreds of messages onto the subscription again originally results in excellent performance, but then always drops back to the standard 8 per minute (without any changes to the app).
Here the hundreds of messages all have a unique sessionId (a GUID). Is it possible the function app consumption plan is enforcing a limit after a period of time?
https://i.ibb.co/T85LgKW/upload3.png

From the results I'm currently seeing, this does seem to be caused by too many unique SessionIds across messages. I may try hashing the message SessionIds to reduce this to 10 unique sessions.

That makes sense - you can also try significantly reducing the sessionIdleTimeout setting to allow the processor to more quickly pick up new sessions.

Thank you!


[BUG] chip-tool increasing repeat-count will get timeout error

Reproduction steps
I try Matter light's toggle command with repeat-count. The toggle command is working on a small repeat-count, but increasing repeat-count will get a timeout error.
target device board: BRD4161A (silab)
small repeat count command:
$ chip-tool onoff toggle 8 1 --repeat-count 4 --repeat-delay-ms 100
large repeat count command:
$ chip-tool onoff toggle 8 1 --repeat-count 10 --repeat-delay-ms 100
large_repeat_count.log
small_repeat_count.log
Bug prevalence
everytime
GitHub hash of the SDK that was being used
6382144be8
Platform
other
Platform Version(s)
No response
Anything else?
No response

In the "small" log, what I see is that we send all the commands over the course of ~300ms, as expected.  Then we get responses to them at the 430, 430, 430, 500ms marks after the first command was sent.
In the "large" log, we send the commands over the course of ~900ms.  We get responses at the 1070ms, 1070ms, 1070ms, 1070ms, 1070ms, then nothing.
Why did the server not respond to the other command packets?  Hard to say without server logs.   Could you attach server logs, please?

Hi @bzbarsky-apple
Here is device log
The attach server logs means otbr-agent log?
small_repeat_count(device).log
large_repeat_count(device).log

"attach server logs" means "please attach logs to this issue that come from the Matter server (i.e. the thing the command is being sent to).
Here's the server log for the first command we fail to get a response for:
[00:00:51.433][info  ][EM] >>> [E:61029r S:32751 M:227153524] (S) Msg RX from 1:000000000001B669 [36AE] --- Type 0001:08 (IM:InvokeCommandRequest)
...
[00:00:51.491][error ][CSL] PacketBuffer: pool EMPTY.
[00:00:51.492][detail][DMG] Decreasing reference count for CommandHandler, remaining 0
[00:00:51.492][error ][DMG] Failed to send command response: 3

So the server tries to send the response, but is out of network buffers, so can't manage to do it.
What value of CHIP_IM_MAX_NUM_COMMAND_HANDLER was this server compiled with?  How big is the buffer pool it was compiled with?

Hi @bzbarsky-apple
The CHIP_IM_MAX_NUM_COMMAND_HANDLER used 4. (this is the default value)

OK, and how big is the buffer pool?

@bzbarsky-apple
Following is buffer pool size setting
#define PBUF_POOL_SIZE (8)
#define CHIP_SYSTEM_CONFIG_PACKETBUFFER_POOL_SIZE 8

It's definitely a device issue: the device is running out of buffers and then misbehaving. Though apparently it is managing to allocate a buffer to send an ack, just not a buffer to send a command response.

@bzbarsky-apple
I think this issue is a Matter stack issue. This issue will occur on all Matter devices, not only on silicon lab's board.
Maybe change the strategy or choose a good buffer pool and the number max command, I have no idea.
Thanks you.

The buffer pool and command are part of the device configuration.  Devices should generally select them based on their needs....  The stack has some defaults, but those are defaults.
That said, it's possible this specific platform has bad defaults too.

But just to be clear, this needs to be fixed on the device side, whether in the device config or in the Matter stack defaults.  chip-tool is not the issue.


How to create an Apache thrift transport from a beast flat_buffer efficiently?

This is not a bug or problem, but rather a kind request for help in an implementation. I don't understand boost::beast::flat_buffer well enough and hope that someone can point me in the right direction. If the question is too far off-topic, please just close it and I will ask on Stack Overflow instead.
I've used boost::beast successfully to create an Apache thrift RPC server with a binary transport over websockets. Thanks to the absolutely excellent advanced_server_flex.cpp its possible to use the javascript thrift client from the browser, together with a boost::beast http/websocket server. This all was impressively simple. But now I'm slightly stuck with a performance issue:
The class websocket_session from advanced_server_flex.cpp provides the message as a boost::beast::flat_buffer buffer_ and expects the response in the same buffer. Apache thrift can construct an input and output transport in memory from existing data: https://github.com/apache/thrift/blob/master/lib/cpp/src/thrift/transport/TBufferTransports.h#L481. This almost goes together but I do not get it to work. Is it possible to get an uint8_t pointer to the incoming message of buffer_, ensure buffer_ has sufficient storage for the outgoing message, get an uint8_t pointer to that outgoing message, and keep both pointers valid for as long as thrift will consume the input and create the output?
Version of Beast
#define BOOST_BEAST_VERSION 277

Steps necessary to reproduce the problem
    // What I currently do is to (slowly) copy the memory to and from thrift. This works
    // but incurs a huge overhead from creating multiple copies of the message.
    const std::string vMessage = boost::beast::buffers_to_string(buffer_.cdata());
    buffer_.consume(buffer_.size());
    buffer_.reserve(11 * 1024 * 1024);

    std::shared_ptr<::apache::thrift::transport::TTransport> vInputTransport = aThriftProtocol->getInputTransport();

    // write the received message from beast to thrift
    vInputTransport->write((const uint8_t*)(aMessage.c_str()), aMessage.size());
    // flush the thrift transport to be sure the message is fully received
    vInputTransport->flush();

    // have the thrift processor process the message and react to it
    aThriftProcessor->process(aThriftProtocol, NULL);

    // ask thrift for the size of the response
    std::shared_ptr<::apache::thrift::transport::TTransport> vOutputTransport = aThriftProtocol->getOutputTransport();
    uint32_t vNumBytes = 1;
    vOutputTransport->borrow(nullptr, &vNumBytes);

    // get the response from thrift as a std::string
    std::string vResult(vNumBytes, '\0');
    vOutputTransport->read((uint8_t*)(&vResult[0]), vNumBytes);

    // pass the string back to the beast buffer:
    boost::beast::flat_buffer::mutable_buffers_type vBuffer = buffer_.prepare(vReturn.size());
    uint8_t* vBufferPtr = static_cast<uint8_t*>(vBuffer.data());
    std::copy(vReturn.begin(), vReturn.end(), vBufferPtr);
    buffer_.commit(vReturn.size());

Use the buffer-oriented WebSocket interfaces instead of the flat buffer, and you can send the string directly:
https://www.boost.org/doc/libs/1_72_0/libs/beast/doc/html/beast/ref/boost__beast__websocket__stream/async_read_some/overload2.html
https://www.boost.org/doc/libs/1_72_0/libs/beast/doc/html/beast/ref/boost__beast__websocket__stream/async_write_some.html

Aaah I will take a look at that! Thanks a lot @vinniefalco !

I think you can use either a flat_buffer or a multi_buffer and take advantage of the fact that each
memory region in the buffer containt continugous bytes. This would mean no copying and no need to construct a string:
void handle_data(boost::beast::multi_buffer& buffer, ::apache::thrift::transport::TTransport& transport)
{
    auto buffers = buffer.data();
    auto ifirst = buffers.begin();
    auto ilast = buffers.end();
    while(ifirst != ilast)
    {
        auto data = *ifirst++;
        transport.write(reinterpret_cast<const uint8_t*>(data.data()), data.size());
    }
    transport.flush();
    buffer.consume(buffer.size());
    buffer.reserve(11 * 1024 * 1024);

}

void handle_data(boost::beast::flat_buffer& buffer, ::apache::thrift::transport::TTransport& transport)
{
    auto data = buffer.data();
    transport.write(reinterpret_cast<const uint8_t*>(data.data()), data.size());
    transport.flush();

    buffer.consume(buffer.size());
    buffer.reserve(11 * 1024 * 1024);
}

https://godbolt.org/z/oybcjF

Guys, you are awesome! I'll report back in a few hours but you pointed me towards a pretty decent implementation!

Ok, so I checked both your helpful pointers and could gather enough information to avoid any unnecessary memory copies (or so I hope).
To get the data from boost::beast to Apach thrift, @madmongo1 's comment with the flat_buffer  pointer to contiguous memory was very helpful. thrift can wrap a shallow copy into a memory transport. I'm under the impression that this should be save and sound, and avoids any copies:
        boost::beast::flat_buffer buffer_;
        // receive websocket message with beast here...
        [...]

        // Construct a temporary in-memory-transport as a shallow copy of the
        // input boost::beast::flat_buffer data, to avoid copying the data
        boost::beast::flat_buffer::mutable_data_type vBufferData = buffer_.data();
        std::shared_ptr<::apache::thrift::transport::TTransport> vInputTransport;
        vInputTransport = std::make_shared<::apache::thrift::transport::TMemoryBuffer>(reinterpret_cast<uint8_t*>(vBufferData.data()), vBufferData.size());
        std::shared_ptr<::apache::thrift::protocol::TProtocol> vInputProtocol = mThriftProtocolFactory->getProtocol(vInputTransport);

        mThriftProcessor->process(vInputProtocol, ...);

To get the response back to the websocket, everything was a bit more complicated. This is because only the thrift processor knows how much memory is required for the response, so we can not wrap the transport around the flat_buffer. In this case I wrap a shallow asio::const_buffer buffer around the thrift transport:
        std::shared_ptr<::apache::thrift::transport::TTransport> mOutputTransport;
        mOutputTransport = std::make_shared<::apache::thrift::transport::TMemoryBuffer>();

        std::shared_ptr<::apache::thrift::protocol::TProtocol> mOutputProtocol;
        mOutputProtocol = mThriftProtocolFactory->getProtocol(mOutputTransport);

        mThriftProcessor->process(vInputProtocol, mOutputProtocol, ...);

        uint32_t vThriftProcessorOutputSize = 1;
        const uint8_t* vThriftProcessorOutputPtr = mOutputTransport->borrow(nullptr, &vThriftProcessorOutputSize);
        std::shared_ptr<::boost::asio::const_buffer> mOutputBuffer;
        mOutputBuffer = std::make_shared<::boost::asio::const_buffer>(vThriftProcessorOutputPtr, vThriftProcessorOutputSize);

        derived().ws().async_write(*mOutputBuffer, ...);

The shared_ptr's are used to ensure the buffers stay valid until on_write() where the buffers are consumed.
If you spot any flaw's I would very much appreciate feedback, because I'm pretty new to this. But thanks again for the excellent library and the great support!

Hi @emmenlau, The receive side looks fine. The use of make_shared on the output side is concerning.
boost::asio::const_buffer does not own memoty - it merely references a bounded region of buffer memory.
Firstly, this means that you can simply copy it, with no need to 'keep it alive' witht a shared_ptr.
        uint32_t vThriftProcessorOutputSize = 1;
        const uint8_t* vThriftProcessorOutputPtr = mOutputTransport->borrow(nullptr, &vThriftProcessorOutputSize);
        ::boost::asio::const_buffer mOutputBuffer(
            vThriftProcessorOutputPtr,
            vThriftProcessorOutputSize);

        derived().ws().async_write(mOutputBuffer, ...);  // cheap copy is fine

Secondly, the memory buffer that it is referring to must remain stable for the duration of the async_send operation.
Can you guarantee that the pointer returned by borrow will point to data which will not be mutated or moved during the async_write?

I will change my code to simply copy the boost::asio::const_buffer, this will make the design cleaner!
For the pointer returned by borrow() I can ensure that it remains valid until async_write() calls the post-write-handler. Sorry that I did not show this in the code! Contrary to how its displayed in my above code snippet, I've used a class member shared_ptr for the output ::apache::thrift::transport::TTransport. This transport consumes the buffer only after async_write().
Thanks a lot @madmongo1 for the review! Its very much appreciated!


chore(package): update ws to version 6.2.0

:tada: This PR is included in version 5.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Switch to using pytest instead of nose on TravisCI

Motivation and Context

nose is deprecated and buggy; pytest is the status-quo. For example, we have noticed that nose can forget to run some of the tests, or can forget to run the setUpClass method for some tests causing them to fail.

Approach
pytest can run testsuites written for nose, so the transition was straightforward.
How Has This Been Tested?

All the tests pass with pytest

unittest.skip was honored by pytest but the tests didn't show up as skipped (with nose the tests didn't show up at all). By adding the decorator@pytest.mark.skip(reason="xyz") both testing frameworks do the right thing: test.py (aka nose) still skips these tests silently, and pytest shows that the tests exist and that they were skipped during testing.

One of the skipped tests (in database_test.py), seems to pass both with pytest and with nose, so it was re-enabled

After all these, it looks like pytest is running one test more than ./test.py, but it's not clear which one that is

Wrote a test (see code below) to check that stdout and stderr are captured correctly. pytest worked correctly:

nose didn't do as well (without the -v flag we don't see the output, and with it the output is mangled along with nose's output):

Here's the test:

    def test_sys_write(self):
        import sys
        sys.stdout.write("Printed to STDOUT")
        sys.stderr.write("Printed to STDERR")
        self.assertFalse(True)

So, you'd recommend just ditching test.py altogether?
On Tue, Aug 13, 2019 at 4:27 PM Alexandros Tzannes<EMAIL_ADDRESS>wrote:

@atzannes https://github.com/atzannes requested your review on: #213
https://github.com/APrioriInvestments/nativepython/pull/213 Switch to
using pytest instead of nose on TravisCI.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/APrioriInvestments/nativepython/pull/213?email_source=notifications&email_token=AB6OHBAQX7GTAIIWKC455FLQEMKKFA5CNFSM4ILOPCF2YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOTBCJDIA#event-2554630560,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB6OHBGC6H3WGF2ZKDTPSPTQEMKKFANCNFSM4ILOPCFQ
.

Not sure what test.py offers that pytest doesn't @braxtonmckee, you're probably more knowledgeable. For example, I see a --dump_native flag. Generally speaking, if we can use exclusively pytest that will probably be a good thing.

yes, we have some flags but we can probably control those using environment
variables, (or maybe there's something in pytest that can be used to
communicate configuration to tests during a run?)
On Tue, Aug 13, 2019 at 4:41 PM Alexandros Tzannes<EMAIL_ADDRESS>wrote:

Not sure what test.py offers that pytest doesn't @braxtonmckee
https://github.com/braxtonmckee, you're probably more knowledgeable.
For example, I see a --dump_native flag. Generally speaking, if we can
use exclusively pytest that will probably be a good thing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/APrioriInvestments/nativepython/pull/213?email_source=notifications&email_token=AB6OHBCJ6C6V3JF2X4TKJFLQEMMBHA5CNFSM4ILOPCF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4G5PIA#issuecomment-521000864,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB6OHBGG4HHGEK26GJG4ZG3QEMMBHANCNFSM4ILOPCFQ
.

I think environment variables would be a good way to do what some of our flags do, e.g., --dump_native.
Beyond that, pytest allows you to parameterize tests and fixtures, but I don't know much about that:

https://docs.pytest.org/en/latest/parametrize.html
http://doc.pytest.org/en/latest/example/parametrize.html


Issues/1631 autoscaling docs (resolves #1631)

This PR contains fixes to several preexisting build errors in the docs.
It also drastically reorganized the autoscaling docs, and the cluster utilities. The most significant updates are in commits.

bd8ce1d (Clarify install docs, remove CGCloud instructions)
5cb2bad (Clarify command line options)
6e5976f (Update autoscaling instructions)

I've read over it lots of times but there are surely typos that I have missed. If you see anything I've left out (or god forbid) explained incorrectly about using autoscaling please review!
Jenkins, skip this please

Jenkins skip this please!

Jenkins skip this please!

@cket This could probably be merged as is, but instead I'm going to add in more on static provisioning.

@ejacox I think this is ready.


Add container-inspect step after seeing "start" events

In the Docker event listener, after we see a container "start" event for our supported images, we fire a couple event emitters and update context values, but we need to also make container inspect requests to get host+port configurations to inform the sidecar what the Kafka + Schema Registry configs are.
We're getting by now because we only focus on one Kafka image and one Schema Registry image, so we largely know the configurations of each. Once we move to DIRECT connections, we'll need more information about each container to update those connections.

Requires https://github.com/confluentinc/vscode/issues/522 to be done first since we can't use custom bootstrap servers with a LOCAL connection type.


toybox: init at 0.8.0

B"H
toybox package, supporting static building via enableStatic parameter, and custom configuration via extraConfig and enableMinimal parameters
parseconfig shell function, and misc other parts, are based on the busybox package derivation.
Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@Infinisil Thanks for the reviews! Is this package good to go?

Cool, now you just need to squash the commits into one :)

Cool, now you just need to squash the commits into one :)

Done :-)

Installing binaries into usr/bin and usr/sbin isn't very Nix-y, and won't appear on PATH properly.
Consider using install_flat as I did when packaging this: https://github.com/dtzWill/nur-packages/blob/d471d48956c51f4b31f7229baf8a3896c1fbaa11/pkgs/toybox/default.nix .

Installing binaries into usr/bin and usr/sbin isn't very Nix-y, and won't appear on PATH properly.
Consider using install_flat as I did when packaging this: https://github.com/dtzWill/nur-packages/blob/d471d48956c51f4b31f7229baf8a3896c1fbaa11/pkgs/toybox/default.nix .

Thanks @dtzWill! Opened #56556 for this.


Fixing RD2 test failures on regression

On regression Rd2 tests most of them are failing as click_object_button from salesforce library is not helping with clicking the button
Also there are few other checks to handle
Critical Changes
Changes
Issues Closed
Community Ideas Delivered
New Metadata
Deleted Metadata

@rjanjanam I have pulled the branch down and tested the first RD2 test case:
zcreate_open_erd_record.robot - PASS
That automation passed.  Should I continue with all RD2 test cases that we have defined in the NPSP Regression Checklist?

@rjanjanam I have pulled the branch down and tested the first RD2 test case:
zcreate_open_erd_record.robot - PASS
That automation passed. Should I continue with all RD2 test cases that we have defined in the NPSP Regression Checklist?

@rponti-sforg yes please, please run all of rd2 either headless or regular browser. Thanks
cci task run robot --org   -o suites robot/Cumulus/tests/browser/recurring_donations/ -o include feature:RD2 -o vars BROWSER:headlesschrome

@rjanjanam These are the Enhanced Recurring Donation tests that are passing now:

zcreate_open_erd_record.robot
zedit_open_erd_record.robot
zcreate_fixed_erd_record.robot
Zcreate_open_erd_for_contact.robot

These are the Enhanced Recurring Donation tests that are still failing:

zedit_erd_installment_period.robot
zpause_closed_rd.robot
zedit_day_of_month_verify_next_opportunity.robot
zedit_erd_day_of_month_with_manual_opportunity.robot
zedit_erd_day_of_month.robot