Drachtio crashes when doing call

We are using Drachtio server for making calls from our webapp. We use v0.8.3-rc1
When we are calling to<EMAIL_ADDRESS>Drachtio crashes after receiving 200Ok with SDP:
2019-12-13 08:07:54.396772 recv 1576 bytes from tcp/[<IP_ADDRESS>]:5060 at 08:07:54.396284:
SIP/2.0 200 OK
Via: SIP/2.0/TCP <IP_ADDRESS>;rport;branch=z9hG4bK57mD42QjgZ19e
From: <sip:.....>;tag=eKUU9SjFKXr5c
Call-ID: 7f78c0d0-9822-1238-4e87-fa163ea80ce0
CSeq: 13558443 INVITE
Accept: application/sdp,application/presentation_token_control+xml
Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,INFO
Max-Forwards: 70
User-Agent: Lifesize_Callmanager_master_callmanager-489
To: "367535" <sip:367535@lifesizecloud.com>;tag=0308007e
Content-Length: 823
Content-Type: application/sdp
Contact: "Lifesize Cloud"<sip:lifesize@eu-central-1.sipfe.lifesizecloud.com;transport=TCP>
Record-Route: <sip:Z2FsYXh5LmNhbGxtYW5hZ2VyLmE1YjVlMDk4LWJiYmItNGI4My04ZjIzLTI5MGY0MDU4NmVlMA==@eu-central-1.sipfe.lifesizecloud.com;transport=tcp;lr>

v=0
o=MCU 47430 47430 IN IP4 <IP_ADDRESS>
s=Lifesize Call
i=Lifesize Call
c=IN IP4 <IP_ADDRESS>
t=0 0
m=audio 28560 RTP/AVP 96 101
c=IN IP4 <IP_ADDRESS>
a=rtpmap:96 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=setup:actpass
a=sendrecv
a=ssrc:3301023300 cname:user2196487338@host-59dea335
a=rtcp:28561
m=video 28562 RTP/AVP 108
c=IN IP4 <IP_ADDRESS>
a=rtpmap:108 H264/90000
a=fmtp:108 level-asymmetry-allowed=1;max-mbps=100000;packetization-mode=1;profile-level-id=42E01f;
a=rtcp-fb:106 nack
a=rtcp-fb:106 nack pli
a=rtcp-fb:106 goog-remb
a=rtcp-fb:106 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=rtcp-fb:108 ccm fir
a=rtcp-fb:109 nack
a=rtcp-fb:109 nack pli
a=rtcp-fb:109 ccm fir
a=setup:actpass
a=sendrecv
a=ssrc:4183669970 cname:user2196487338@host-59dea335
a=rtcp:28563
2019-12-13 08:07:54.396934 tport.c:3051 tport_deliver() tport_deliver(0x55559970ad30): msg 0x5555997105a0 (1576 bytes) from tcp/<IP_ADDRESS>:5060 next=(nil)
2019-12-13 08:07:54.397038 nta.c:3448 agent_recv_response() nta: received 200 OK for INVITE (13558443)
2019-12-13 08:07:54.397127 nta.c:3515 agent_recv_response() nta: 200 OK is going to a transaction
2019-12-13 08:07:54.397223 tport.c:4261 tport_release() tport_release(0x55559970ad30): 0x5555997126f0 by 0x55559970ce30 with 0x5555997105a0
2019-12-13 08:07:54.397337 SipDialogController::processResponseOutsideDialog
2019-12-13 08:07:54.397464 SipDialogController::processResponse - adding dialog id: 7f78c0d0-9822-1238-4e87-fa163ea80ce0;from-tag=eKUU9SjFKXr5c
terminate called after throwing an instance of 'boost::wrapexcept<boost::bad_lexical_cast>'
  what():  bad lexical cast: source type value could not be interpreted as target

Could you show the INVITE that was sent as well?  Is this recreatable?  Is it possible to show the stack trace at the point of failure?

invite:
2019-12-13 12:57:15.416202 send 1480 bytes to tcp/[<IP_ADDRESS>]:5060 at 12:57:15.415347:
INVITE<EMAIL_ADDRESS>SIP/2.0
Via: SIP/2.0/TCP <IP_ADDRESS>;rport;branch=z9hG4bKFpDBUg2gD8vQj
Max-Forwards: 70
From: <sip:....>;tag=1y642NjrQ04rr
To<EMAIL_ADDRESS>Call-ID: ed700ba3-984a-1238-21bb-fa163ea80ce0
CSeq: 13567125 INVITE
User-Agent: T.....
Content-Type: application/sdp
Content-Length: 1063
Contact: <sip:<IP_ADDRESS>:5060;transport=udp>

v=0
o=-<PHONE_NUMBER><PHONE_NUMBER> IN IP4 5.........6
s=
c=IN IP4 5.........6
t=0 0
m=audio 56868 RTP/AVPF 96 0 8 9 97 101
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=rtpmap:96 opus/48000/2
a=rtpmap:97 AMR/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
a=ssrc:1888702340 cname:user3756859245@host-61fd6012
a=setup:actpass
m=video 50870 RTP/AVPF 106 107 108 109 110 111
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=rtpmap:106 VP8/90000
a=rtpmap:107 VP9/90000
a=rtpmap:108 H264/90000
a=rtpmap:109 H264/90000
a=rtpmap:110 H263-1998/90000
a=rtpmap:111 RAW/90000
a=fmtp:108 level-asymmetry-allowed=1;max-mbps=100000;packetization-mode=1;profile-level-id=42E01f;
a=rtcp-fb:106 nack
a=rtcp-fb:106 nack pli
a=rtcp-fb:106 goog-remb
a=rtcp-fb:106 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=rtcp-fb:108 ccm fir
a=rtcp-fb:109 nack
a=rtcp-fb:109 nack pli
a=rtcp-fb:109 ccm fir
a=sendrecv
a=ssrc:3641512967 cname:user3756859245@host-61fd6012
a=setup:actpass

100Trying:
2019-12-13 12:57:16.234856 recv 724 bytes from tcp/[<IP_ADDRESS>]:5060 at 12:57:16.234215:
SIP/2.0 100 Trying
Via: SIP/2.0/TCP <IP_ADDRESS>;rport;branch=z9hG4bKFpDBUg2gD8vQj
From: <sip:.....>;tag=1y642NjrQ04rr
Call-ID: ed700ba3-984a-1238-21bb-fa163ea80ce0
CSeq: 13567125 INVITE
Accept: application/sdp,application/presentation_token_control+xml
Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,INFO
Max-Forwards: 70
User-Agent: Lifesize_Callmanager_master_callmanager-489
To: "367535" <sip:367535@lifesizecloud.com>;tag=0271023b
Content-Length: 0
Contact: "Lifesize Cloud"<sip:lifesize@eu-central-1.sipfe.lifesizecloud.com;transport=TCP>
Record-Route: <sip:Z2FsYXh5LmNhbGxtYW5hZ2VyLjk5NGU4ZmQxLTZkOWQtNDA3MS1iNjE5LTVlOGI1ODJlOTk0OQ==@eu-central-1.sipfe.lifesizecloud.com;transport=tcp;lr>

180Ringing:
2019-12-13 12:57:18.396315 recv 725 bytes from tcp/[<IP_ADDRESS>]:5060 at 12:57:18.396145:
SIP/2.0 180 Ringing
Via: SIP/2.0/TCP <IP_ADDRESS>;rport;branch=z9hG4bKFpDBUg2gD8vQj
From: <sip:..........>;tag=1y642NjrQ04rr
Call-ID: ed700ba3-984a-1238-21bb-fa163ea80ce0
CSeq: 13567125 INVITE
Accept: application/sdp,application/presentation_token_control+xml
Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,INFO
Max-Forwards: 70
User-Agent: Lifesize_Callmanager_master_callmanager-489
To: "367535" <sip:367535@lifesizecloud.com>;tag=0271023b
Content-Length: 0
Contact: "Lifesize Cloud"<sip:lifesize@eu-central-1.sipfe.lifesizecloud.com;transport=TCP>
Record-Route: <sip:Z2FsYXh5LmNhbGxtYW5hZ2VyLjk5NGU4ZmQxLTZkOWQtNDA3MS1iNjE5LTVlOGI1ODJlOTk0OQ==@eu-central-1.sipfe.lifesizecloud.com;transport=tcp;lr>

then 200OK and crash

It reproducible each time.
Unfortunately, I can't give more trace, because we use docker image from docker's repo.
Thanks!

can you turn log level to debug and recreate, sending me that full log?  Best if its completely unedited so that I can create a script to recreate exactly, so feel to email me separately at daveh at drachtio.org if you prefer.
Also, can you show me the command in your app that is sending the INVITE?
Finally, also show me the command line arguments when you are starting the docker image

I have sent log by e-mail. It contains one or two spam SIP calls, I decided to not remove it to have full log.
Here is a command for sending invite:
return SipConnector
        .createUAC(sipOptions.uri, {
          localSdp: sdp,
          headers: {
            from,
            'User-Agent': 'Useragent'
          }
        }, {
          cbRequest: (err, reqSent) => {
            const sess = this.getSessionBySipUri(uri);
            sess.reqSent = reqSent;
          }
        })
        .then((uac) => {
          uac.on('destroy', _callDestroy(uri, this));
          uac.on('info', _callInfo(uri, this));
          uac.on('modify', _callModify(uri, this));
        })

Here is a part of *.yml file which start Docker container:
drachtio:
        command: drachtio --contact "sip:<IP_ADDRESS>;transport=udp,tcp" --external-ip ${PUBLIC_IP} --loglevel debug
        image: sipserver:daily
        networks:
           default:
            ipv4_address: <IP_ADDRESS>
        ports:
         - "5060:5060/tcp"
         - "5060:5060/udp"
         - "9021:9021"
         - "9022:9022"
         - "9090:9090"
        restart: unless-stopped
        container_name: sipserver

I believe I checked in a fix for this.  In order to determine if the remote server was behind a nat, the code was evaluating the host part of the Record-Route header in the 200 OK to see if it was an rfc 1918 ip address.  In that, it was assuming the host was a dot decimal ipv4 address, and so was throwing an exception in the case when the host was a dns name, as in your example.
Should be fixed now in v0.8.4-rc6 or the latest on the develop branch.  Please retest once the new docker image is built.

OK, I was able to recreate.  The issue had to do with sending an ACK to a dns name (from the RR header) that needed to be resolved; as a result the ACK goes out asynchronously after the dns resolution completes, and I had incorrectly cleared some transaction state by that time.
In any case, I've made a fix on a branch that I would like you to test before I merge.  The docker image is drachtio/drachtio-server:issue-110.
Can you test with that image and let me know your results?

Sure! I will test today.
Thanks!
ср, 18 дек. 2019 г. в 20:44, Dave Horton<EMAIL_ADDRESS>
OK, I was able to recreate. The issue had to do with sending an ACK to a
dns name (from the RR header) that needed to be resolved; as a result the
ACK goes out asynchronously after the dns resolution completes, and I had
incorrectly cleared some transaction state by that time.
In any case, I've made a fix on a branch that I would like you to test
before I merge. The docker image is drachtio/drachtio-server:issue-110.
Can you test with that image and let me know your results?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/davehorton/drachtio-server/issues/110?email_source=notifications&email_token=ABPWV5NAVLFXQTBCKHJUCHDQZJVRBA5CNFSM4J2JPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHHCWUA#issuecomment-567159632,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPWV5MVJWZ35R75DNEEO3DQZJVRBANCNFSM4J2JPIDQ
.

Just tested, no crashes for now.
Thanks!
чт, 19 дек. 2019 г. в 08:39, Valeriy Poddubchak<EMAIL_ADDRESS>
Sure! I will test today.
Thanks!
ср, 18 дек. 2019 г. в 20:44, Dave Horton<EMAIL_ADDRESS>
OK, I was able to recreate. The issue had to do with sending an ACK to a
dns name (from the RR header) that needed to be resolved; as a result the
ACK goes out asynchronously after the dns resolution completes, and I had
incorrectly cleared some transaction state by that time.
In any case, I've made a fix on a branch that I would like you to test
before I merge. The docker image is drachtio/drachtio-server:issue-110.
Can you test with that image and let me know your results?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/davehorton/drachtio-server/issues/110?email_source=notifications&email_token=ABPWV5NAVLFXQTBCKHJUCHDQZJVRBA5CNFSM4J2JPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHHCWUA#issuecomment-567159632,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPWV5MVJWZ35R75DNEEO3DQZJVRBANCNFSM4J2JPIDQ
.

ok will merge shortly into the develop branch and then notify and close this issue at that time.

merged into develop branch


add new functional tests for the first iteration of NPM work (basic functions support)

retest this please


python37Packages.vispy: 0.6.5 -> 0.6.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python37Packages.vispy is: "Interactive scientific visualization in Python"
meta.homepage for python37Packages.vispy is: "http://vispy.org/index.html"
meta.changelog for python37Packages.vispy is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.6.6 with grep in /nix/store/3v7v16k1lhavj1yfjd6ab6akss0rvrab-python3.7-vispy-0.6.6

directory tree listing: https://gist.github.com/1cb55341466c22f85756efe2db8b993c

du listing: https://gist.github.com/0adf7b5e65d1ad641b94b2cbe90b7ccd

Rebuild report (if merged into master) (click to expand)

12 total rebuild path(s)

3 package rebuild(s)

3 x86_64-linux rebuild(s)
3 i686-linux rebuild(s)
3 x86_64-darwin rebuild(s)
3 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python27Packages.vispy
python37Packages.vispy
python38Packages.vispy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3v7v16k1lhavj1yfjd6ab6akss0rvrab-python3.7-vispy-0.6.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python37Packages.vispy https://github.com/r-ryantm/nixpkgs/archive/1a4e03072c169530ea768d34e8c1030f4daa2003.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3v7v16k1lhavj1yfjd6ab6akss0rvrab-python3.7-vispy-0.6.6
ls -la /nix/store/3v7v16k1lhavj1yfjd6ab6akss0rvrab-python3.7-vispy-0.6.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review 1

3 packages built:

python27Packages.vispy
python37Packages.vispy
python38Packages.vispy

Maintainer pings
cc @goertzenator for testing.

Result of nixpkgs-review pr 105440 run on x86_64-darwin 1

3 packages built:

python27Packages.vispy
python37Packages.vispy
python38Packages.vispy

Result of nixpkgs-review pr 105440 run on x86_64-darwin 1

3 packages built:

python27Packages.vispy
python37Packages.vispy
python38Packages.vispy


Stop work after update RC-101

Hello.
After update FW of Device when i start "sudo python3 -m radiacode-examples.basic" i see error:
### DataBuf:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/lib/python3.11/dist-packages/radiacode-examples/basic.py", line 39, in <module>
    main()
  File "/usr/local/lib/python3.11/dist-packages/radiacode-examples/basic.py", line 33, in main
    for v in rc.data_buf():
             ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/radiacode/radiacode.py", line 133, in data_buf
    return decode_VS_DATA_BUF(r, self._base_time)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/radiacode/decoders/databuf.py", line 18, in decode_VS_DATA_BUF
    raise Exception(f'seq jump, expect:{next_seq}, got:{seq}')
Exception: seq jump, expect:230, got:46

Bluetooth connect not worked too. Try on other RPi with same error. FW number 04.08
Any ideas how to fix it?

Can't reproduce on Ubuntu 22.04, kernel 6.5.6, RC-102 fw 4.0.8, and this module v0.2.2

My OS 6.1.0-rpi6-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.58-1+rpt2 (2023-10-27) aarch64
And log when i try use bluetooth connect:
python3 -m radiacode-examples.webserver --bluetooth-mac 52:43:06:50:00:6F will use Bluetooth connection Task exception was never retrieved future: <Task finished name='Task-2' coro=<process() done, defined at /home/SlimpDev/.local/lib/python3.11/site-packages/radiacode-examples/webserver.py:48> exception=Exception('seq jump, expect:58, got:46')> Traceback (most recent call last):   File "/home/SlimpDev/.local/lib/python3.11/site-packages/radiacode-examples/webserver.py", line 52, in process     databuf = app.rc_conn.data_buf()               ^^^^^^^^^^^^^^^^^^^^^^   File "/home/SlimpDev/.local/lib/python3.11/site-packages/radiacode/radiacode.py", line 133, in data_buf     return decode_VS_DATA_BUF(r, self._base_time)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/home/SlimpDev/.local/lib/python3.11/site-packages/radiacode/decoders/databuf.py", line 18, in decode_VS_DATA_BUF     raise Exception(f'seq jump, expect:{next_seq}, got:{seq}') Exception: seq jump, expect:58, got:46 ======== Running on http://<IP_ADDRESS>:8080 ========
Server was started, but no data updates.

I can confirm the bug after new upgrading to the new firmware - looks like authors break the compatibility and replace some message types, I will take a look to it and new version of radiacode library will be released, compatible with new firmware.

Try v0.3.0 - it's compatible only with new firmware (for older FW you can use v0.2.x)

I've got another detector on the way, so I can revert one of them to 4.07 and maybe find a way to keep support for older firmwares too.
At least over USB, v0.2.2 is able to poll the version from fw4.07 and fw4.08.

I don't think it's reasonable to support old firmware in the v0.3.x. Of course, it's possible, but it will add unnecessary complexity and make the code less clean. Anyone who can't upgrade to the new firmware can continue using 0.2.x versions.
That's the reason why I changed the API of this radiacode package and didn't try to split RealTimeData into existing CountRate & DoseRate types, just to avoid breaking compatibility at any cost.

I can confirm that data transfer is now working on the new firmware. Thank you.
P.S. Now I will think how to update mqttpub.py so that it would also work with the new firmware.


efibootmgr not persisted

Changes made to the EFI configuration through efibootmgr in Arch Linux ARM are persisted after a reboot, but not a shutdown and a restart. I assume the NVRAM is not persisted but know little about qemu.
Configuration

UTM Version: 2.1.2 (31) from Mac App Store
OS Version: Big Sur 11.4
Apple Silicon

Debug log
debug.log
Upload VM
config.plist.txt

Duplicate of #2503
Thank you for including the required files and a thorough description of the issue!


Array[Array[__]], conditional, and scatter

I have the following toy workflow, which I invoke with -jar cromwell-25.jar run example.wdl empty_inputs.json.  It reads a tsv that has either one column or two and scatters a task over each row of the tsv.  The task prints the second column if it is present.  When the input fake.tsv has one column, everything is fine.  However, when it has two columns eg
1</TAB>1
2</TAB>2

it fails with "Could not construct array of type WdlMaybeEmptyArrayType(WdlOptionalType(WdlIntegerType)) with this value: List(WdlInteger(1), WdlInteger(2))".  (Side question: why is it trying to make a list out of values in two different scattered rows?)  Using Int? in the conditional instead of Int does not make a difference.
Another bizarre twist: if instead of reading in from a file I hardcode the array, the error persists when each row of the array has the same number of columns but goes away when some rows have two columns and some do not.  That is: Array[Array[Int]] table = [[1,1,1], [2,2]] works, but Array[Array[Int]] table = [[1,1], [2,2]] gives the same error as above.
task printInt {
  Int? int

  command { echo "${int}" > out.txt }
  output { File out = "out.txt" }
}

workflow optional {

  Array[Array[Int]] table = read_tsv("fake.tsv")
  scatter (row in table) {

    if (length(row) == 2) {
      Int int = row[1]
    }

    call printInt {input: int=int }
  }
}

Pinging @LeeTL1220 because this is blocking Mutect.

@kcibul This is important
On Feb 2, 2017 4:34 PM, "David Benjamin"<EMAIL_ADDRESS>wrote:

Pinging @LeeTL1220 https://github.com/LeeTL1220 because this is
blocking Mutect.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/broadinstitute/wdl/issues/87#issuecomment-277091241,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACDXkzcToI7XtZ0zlOv7NFtVwJrGZaKdks5rYkvxgaJpZM4L1qD1
.

Hey guys -- just want to understand more how this is blocking mutect (ie there's no other way to do this?).  Can you explain?
@cjllanwarne -- if you're on bug rotation, could you try to parse this into the separate problems described here and make the appropriate tickets?  Seems like there's a problem with scattering over Array[Array[Int]] as described in the last paragraph that has nothing to do with optionals.  Then there might be a problem with optionals/conditionals as well but I think it's hard to tell if that's true because of the first problem

Priority to at least figure out what's going on here

@katevoss -- I think this should really be in the Cromwell repo... thoughts?

Yes, I am not sure why this is in the wdl repo and not the cromwell repo.
Also, scattering over Array[Array[String]] had the exact same problem.
On Fri, Feb 3, 2017 at 7:27 AM, kcibul<EMAIL_ADDRESS>wrote:

@katevoss https://github.com/katevoss -- I think this should really be
in the Cromwell repo... thoughts?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/broadinstitute/wdl/issues/87#issuecomment-277235727,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACDXk1UsgogVsvFf0CGBlO0-G9qOEU5nks5rYx07gaJpZM4L1qD1
.

--
Lee Lichtenstein
Broad Institute
75 Ames Street, Room 7003EB
Cambridge, MA 02142
617 714 8632

I agree, moving this to the Cromwell repo.


[Feature] BondManager to use a list of admins for bond operations

Feature Description

Add an admin list (new abstract parent contract, perhaps OZ?) with modifier to replace on all the onlyOwner functions.
Additional Information

Adding a list with a function to manage (add/remove) admins allows for multiple admin keys to use the app to manage their bonds.

Use https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/master/contracts/access/AccessControlUpgradeable.sol and have two roles, one the SysAdmin (authorizeUpgrade) and the other BondCreator

Needs AccessControl

BondMediator (SysAdmin & BondAdmin)
BondFactory (SysAdmin & BondAdmin)
BondManager (SysAdmin & BondAdmin)


Failed to instantiate  using constructor NO_CONSTRUCTOR with arguments

I have the following graphqls file
union BarBiffUnion = Bar | Biff

interface Foo {
 a: Int
 b: String!
}

type Bar implements Foo {
 a: Int
 b: String!
 c: String
}

type Biff implements Foo {
 a: Int
 b: String!
 d: Int
}

type Baz {
 blah: [Foo]
 #Also tried blah:[BarBiffUnion]
}

The above compiles fine with no errors.  However when I run the code I get the following error message:
org.springframework.data.mapping.model.MappingInstantiationException: Failed to instantiate dgs.generated.files.Foo using constructor NO_CONSTRUCTOR with arguments
  at org.springframework.data.mapping.model.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:65) ~[spring-data-commons-2.6.0.jar!/:2.6.0]
  at org.springframework.data.mapping.model.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:89) ~[spring-data-commons-2.6.0.jar!/:2.6.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:385) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readDocument(MappingMongoConverter.java:351) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter$ConversionContext.convert(MappingMongoConverter.java:2071) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readCollectionOrArray(MappingMongoConverter.java:1275) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter$ConversionContext.convert(MappingMongoConverter.java:2043) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1773) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readProperties(MappingMongoConverter.java:507) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.populateProperties(MappingMongoConverter.java:420) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:389) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readDocument(MappingMongoConverter.java:351) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter$ConversionContext.convert(MappingMongoConverter.java:2071) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readCollectionOrArray(MappingMongoConverter.java:1275) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter$ConversionContext.convert(MappingMongoConverter.java:2043) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1773) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readProperties(MappingMongoConverter.java:507) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.populateProperties(MappingMongoConverter.java:420) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:389) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readDocument(MappingMongoConverter.java:351) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:287) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:283) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:106) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]
  at org.springframework.data.mongodb.core.ReactiveMongoTemplate$ProjectingReadCallback.doWith(ReactiveMongoTemplate.java:3225) ~[spring-data-mongodb-3.3.0.jar!/:3.3.0]

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [dgs.generated.files.Foo]: Specified class is an interface
  at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:143) ~[spring-beans-5.3.13.jar!/:5.3.13]
  at org.springframework.data.mapping.model.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:62) ~[spring-data-commons-2.6.0.jar!/:2.6.0]

The dgs-codegen package ends up creating constructor code like
public Baz(List<Foo> blah) {...}

instead of something like
public Baz(List<? extends Foo> blah) {...}

Could that be the issue? Why would it try to instantiate an interface? Am I doing something incorrect on my end?
Is there any way to change the graphqls to correct this? Any other suggestions?
FWIW I also tried using 'union' instead in the graphqls file (shown above commented out) but it led to the same result.
Here's how it's getting called via MongoDB
@Repository
public interface MyRepository extends ReactiveMongoRepository<Baz, String> {}

Thanks!

How are you instantiating Baz? Since blah is an interface, you cannot
instantiate using the default constructor, if that is what you are doing. I
assume that is why you are seeing the issue.
On Thu, Dec 23, 2021 at 5:39 AM UglyHobbitFeet @.***>
wrote:

I have the following graphqls file
union BarBiffUnion = Bar |Biff
interface Foo {
a: Int
b: String!
}
type Bar implements Foo {
a: Int
b: String!
c: String
}
type Biff implements Foo {
a: Int
b: String!
d: Int
}
type Baz {
blah: [Foo]
#Also tried blah:[BarBiffUnion]
}
The above compiles fine with no errors. However when I run the code I get
the following error message:
error: org.springframework.data.mapping.model.MappingInstantiationException:
Failed to instantiate dgs.generated.files.Foo using constructor NO_CONSTRUCTOR with arguments
Caused by org.springframework.beans.BeanInstantiationException: Failed to instantiate [dgs.generated.files.Foo]: Specified
class is an interface
The dgs-codegen package ends up creating constructor code like
public Baz(List) {...}
instead of something like
public Baz(List<? extends Foo>) {...}
Could that be the issue? Why would it try to instantiate an interface? Am
I doing something incorrect on my end?
Is there any way to change the graphqls to correct this? Any other
suggestions?
FWIW I also tried using 'union' instead in the graphqls file (shown above
commented out) but it led to the same result.
Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/Netflix/dgs-codegen/issues/308, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ5JPXIIERZ766W3GJASMY3USMRBJANCNFSM5KUZXNKQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

That's a great question. I'm not explicitly instantiating it anywhere. I assume the dgs code is internally doing that somehow.

Could you provide some code to reproduce this scenario?
On Thu, Dec 23, 2021 at 10:27 AM UglyHobbitFeet @.***>
wrote:

That's a great question. I'm not explicitly instantiating it anywhere. I
assume the dgs code is internally doing that somehow.
—
Reply to this email directly, view it on GitHub
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000465490,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ5JPXOOIRORTZ5RQKG2LU3USNSZBANCNFSM5KUZXNKQ
.
You are receiving this because you commented.Message ID:
@.***>

That's really all the code there is. It's all done behind the scenes in
spring, mongo, dgs
On Thu, Dec 23, 2021, 4:29 PM Kavitha Srinivasan @.***>
wrote:

Could you provide some code to reproduce this scenario?
On Thu, Dec 23, 2021 at 10:27 AM UglyHobbitFeet @.***>
wrote:

That's a great question. I'm not explicitly instantiating it anywhere. I
assume the dgs code is internally doing that somehow.
—
Reply to this email directly, view it on GitHub
<
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000465490
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AJ5JPXOOIRORTZ5RQKG2LU3USNSZBANCNFSM5KUZXNKQ
.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000531080,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALBDS7SI6M6LETSPJN2D6CDUSOIBZANCNFSM5KUZXNKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Ok, but where/how are you using this type?
On Thu, Dec 23, 2021 at 1:38 PM UglyHobbitFeet @.***>
wrote:

That's really all the code there is. It's all done behind the scenes in
spring, mongo, dgs
On Thu, Dec 23, 2021, 4:29 PM Kavitha Srinivasan @.***>
wrote:

Could you provide some code to reproduce this scenario?
On Thu, Dec 23, 2021 at 10:27 AM UglyHobbitFeet @.***>
wrote:

That's a great question. I'm not explicitly instantiating it anywhere.
I
assume the dgs code is internally doing that somehow.
—
Reply to this email directly, view it on GitHub
<

https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000465490

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AJ5JPXOOIRORTZ5RQKG2LU3USNSZBANCNFSM5KUZXNKQ

.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000531080
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ALBDS7SI6M6LETSPJN2D6CDUSOIBZANCNFSM5KUZXNKQ
.
Triage notifications on the go with GitHub Mobile for iOS
<
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
<
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub
.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000534010,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ5JPXNTJERT7XFRYRNGYW3USOJEXANCNFSM5KUZXNKQ
.
You are receiving this because you commented.Message ID:
@.***>

I'm just calling findAll() on the mongo interface
On Thu, Dec 23, 2021, 4:52 PM Kavitha Srinivasan @.***>
wrote:

Ok, but where/how are you using this type?
On Thu, Dec 23, 2021 at 1:38 PM UglyHobbitFeet @.***>
wrote:

That's really all the code there is. It's all done behind the scenes in
spring, mongo, dgs
On Thu, Dec 23, 2021, 4:29 PM Kavitha Srinivasan @.***>
wrote:

Could you provide some code to reproduce this scenario?
On Thu, Dec 23, 2021 at 10:27 AM UglyHobbitFeet @.***>
wrote:

That's a great question. I'm not explicitly instantiating it
anywhere.
I
assume the dgs code is internally doing that somehow.
—
Reply to this email directly, view it on GitHub
<

https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000465490

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AJ5JPXOOIRORTZ5RQKG2LU3USNSZBANCNFSM5KUZXNKQ

.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<

https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000531080

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ALBDS7SI6M6LETSPJN2D6CDUSOIBZANCNFSM5KUZXNKQ

.
Triage notifications on the go with GitHub Mobile for iOS
<

https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675

or Android
<

https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000534010
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AJ5JPXNTJERT7XFRYRNGYW3USOJEXANCNFSM5KUZXNKQ
.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000537973,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALBDS7WABMIFPXJRZMGH6ITUSOKYFANCNFSM5KUZXNKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Is this type referenced in your data fetcher code? You must be referring to
it somewhere for it to be instantiated.
On Thu, Dec 23, 2021 at 2:04 PM UglyHobbitFeet @.***>
wrote:

I'm just calling findAll() on the mongo interface
On Thu, Dec 23, 2021, 4:52 PM Kavitha Srinivasan @.***>
wrote:

Ok, but where/how are you using this type?
On Thu, Dec 23, 2021 at 1:38 PM UglyHobbitFeet @.***>
wrote:

That's really all the code there is. It's all done behind the scenes in
spring, mongo, dgs
On Thu, Dec 23, 2021, 4:29 PM Kavitha Srinivasan @.***>
wrote:

Could you provide some code to reproduce this scenario?
On Thu, Dec 23, 2021 at 10:27 AM UglyHobbitFeet @.***>
wrote:

That's a great question. I'm not explicitly instantiating it
anywhere.
I
assume the dgs code is internally doing that somehow.
—
Reply to this email directly, view it on GitHub
<

https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000465490

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AJ5JPXOOIRORTZ5RQKG2LU3USNSZBANCNFSM5KUZXNKQ

.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<

https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000531080

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ALBDS7SI6M6LETSPJN2D6CDUSOIBZANCNFSM5KUZXNKQ

.
Triage notifications on the go with GitHub Mobile for iOS
<

https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675

or Android
<

https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<

https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000534010

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AJ5JPXNTJERT7XFRYRNGYW3USOJEXANCNFSM5KUZXNKQ

.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000537973
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ALBDS7WABMIFPXJRZMGH6ITUSOKYFANCNFSM5KUZXNKQ
.
Triage notifications on the go with GitHub Mobile for iOS
<
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
<
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub
.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/Netflix/dgs-codegen/issues/308#issuecomment-1000541417,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ5JPXNWCVGAY62PCOXGY23USOMGBANCNFSM5KUZXNKQ
.
You are receiving this because you commented.Message ID:
@.***>

My DataFetcher is fairly sparse. It looks like this:
@DgsComponent
public classBazDataFetcher {

    private final BazService service;

    @DgsQuery(field = DgsConstants.QUERY.Baz)
    public Baz baz() {
        return service.findAll().block(); // Blocking is not the issue
    }
}

@Service
public class BazService {
    private BazRepository repository;
    public Mono<Baz> findAll() {
        return this.repository.findAll();
    }
}

@Repository
public interface BazRepository extends ReactiveMongoRepository<Baz, String> {
}

I think I have it working now. I had to have the _class and _id on the types in the insert statement and it seems to be coming through as expected. Correct code is shown on the post above

I see, that makes sense that you need to specify the class, since it wouldn't know what to do with the interface type. Thanks for the update and glad to figured out the missing piece.

I'll close this issue, since this is outside the scope of codegen.


doc/improve-readme-and-contributing-file-issue-827

doc: improve-readme-and-contributing-file-issue-827
Issue-827
Fixed 5 links in contributing file and 2 links in readme file.
Kindly review and merge the same.
Thank you.

Hi @polaroi8d , any idea why checks are not successful and not able to merge into main?
Is there anything left to change or wrong?

@polaroi8d , I hope there aren't any checks to be failed now, kindly check once and approve and merge the changes.
Thank you for letting me know :)


Store Playback Information in File

Description
This feature allows users to store information about the playback status
in a JSON-formatted file. The feature is disabled by default, users have
to manually opt-in through their desktop settings.
The playback information can be used to give external programs access to
the current song and playback status, for instance Twitch streamers
might want to display the currently played song.
These are the attributes of the playback information file:

isPlaying: (bool) Whether or not a song is currently playing
song: (string) The name of the current song
artist: (string) The artist of the current song
album: (string) The album of the current song
imageURL: (string) An URL to the current song's album or song image

This is how the new setting looks in the desktop settings screen:

Changes
All changes should be self-explanatory, but just to make sure:

Desktop Settings UI is changed to reflect the new option.
PlayStatus class is introduced to manage the current playback status.
New JavaScript interface setPlaybackStatus is introduced to
update the "isPlaying" attribute of the playback information.
The existing JavaScript interface songChangeEvent is used to update
the song, artist, album, and imageURL attributes of the playback
information.
The FormClosing event of the main application is used to set the
isPlaying attribute to "false" just before the player closes so the
file reflects the state properly.

Reviewed 10 of 10 files at r1.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

Google Play Music/App.config, line 56 [r1] ([raw file](https://github.com/marshallofsound/google-play-music-desktop-player-unofficial-/blob/2cdadded1377cd429fd7efd9c72d389726e12a12/Google Play Music/App.config#L56)):
This seems a bit complicated for the average user, some people don't know about the %XXXX% file paths.  Can we have it default to empty, and then in the code if it is empty default it to the ACTUAL path that represents %USERPROFILE%

Google Play Music/JSBound.cs, line 147 [r1] ([raw file](https://github.com/marshallofsound/google-play-music-desktop-player-unofficial-/blob/2cdadded1377cd429fd7efd9c72d389726e12a12/Google Play Music/JSBound.cs#L147)):
Instead of setting a much of attributes arbitrarily can we turn this into a method on PlayStatus.  Something like PlayStatus.updateCurrentSong(song, artist, album, url)

Google Play Music/PlayStatus.cs, line 49 [r1] ([raw file](https://github.com/marshallofsound/google-play-music-desktop-player-unofficial-/blob/2cdadded1377cd429fd7efd9c72d389726e12a12/Google Play Music/PlayStatus.cs#L49)):
This line has an uncaught exception when the file path is completely invalid.  For instance
ZZ:::\\\\//asfloib/asf\a
We should catch bad file paths in the settings dialog and warn the user there2

Google Play Music/SettingsDialog.Designer.cs, line 97 [r1] ([raw file](https://github.com/marshallofsound/google-play-music-desktop-player-unofficial-/blob/2cdadded1377cd429fd7efd9c72d389726e12a12/Google Play Music/SettingsDialog.Designer.cs#L97)):
Funky font changes, they should be Roboto....
I wonder when they changed

Comments from the review on Reviewable.io

I'm still considering whether or not this should be merged into this program.  It is definitely an advanced feature as most (98%) of users wouldn't use it.
Also please keep in mind that that I have a contributing.md file https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/blob/master/CONTRIBUTING.md#pull-requests
You can already get the current playing song from the title of the application and I know a few people have figured out how to use that in their twitch streams.
Fix up the things I commented on and I'll think about this PR's purpose in the overall app

I completely understand your perspective and totally agree that this is
something for advanced users only. The issue is that without this
feature, there is currently no way of figuring out whether the player is
currently actually playing a song or not.
However, let me propose this:
How about I remove the path setting completely and only introduce the
"Store Playback Information in File" checkbox. That should suffice
completely and makes the feature less intrusive in the Desktop settings
(One small checkbox doesn't harm anyone I think).
On a later occasion we could also implement a question mark icon next to
the checkbox, explaining what the feature would do, although for now it
would probably be enough if we explain the feature somewhere in the
documentation on the GitHub page.
Let me know your thoughts, the removal of the path setting would also
get rid of the issues you had of average users not having an idea what
the %XXXX% file paths mean.
(On a sidenote: I did read the contributing.md file beforehand, was
there any part of it in particular you were missing in my pull request?)

In regards to contributing.md

Please ask first before embarking on any significant pull request (e.g. implementing features)

Just to prevent a discussion like this happening in a PR, next time an issue for discussion before PR would be great :smile_cat:
Removing the path would be a step in the right direction but I don't want the settings box (it's small as it is) to get bigger and more flooded.
Just a thought, why does this even need to be an option.  Why not just spit out the file no matter what to the APPDATA directory.  It won't even be a kilobyte so no harm for those that don't want it.
Just remove the setting and just make it do it ?

About the part in the contributing.md: I thought the "ask first" was primarily meant for huge features so people wouldn't waste time implementing something that would not even make it into the final application. Since I needed this functionality anyway, I just thought I'd also create a pull request so others could benefit as well :)
The complete removal of the setting seems like a good solution, I'll get to it and create a new pull request when it's done, thanks for the feedback. I've created an issue for further discussion: #156

Did you ever implement this with OBS? Like having OBS parse the JSON, showing the artist - song, and album art?


Header text color

I don't know how dificult could be, but would be great being able to change also the text color.

"Hola" @CodingCarlos,
Is not possible to force the text color, it is auto generated (white or black) based on the contrast ratio.
If the contrast ratio between your header color and white is above 3 it will use the light color. If not, black.
You can check the contrast ratio of your header color here: http://leaverou.github.io/contrast-ratio/
Regards,

Thank you very much!
It's really usefull to know that, and the resource is so cool.
Great plugin, and great work, you rock!


Publish newer versions?

The latest version available on rubygems.org is 0.1.8, and master currently sits at 0.1.12.
Concrete motivation for this request is the Contacts::find_by_email method. In the latest published version, the "batch mode" branch of logic within that method has a comment which reads TODO: Transform response, and fails to produce Hubspot::Contact instances.
The current version of contact.rb does consistently produce Hubspot::Contact instances in both batch and non-batch mode. This was added in 5fcfcabfb19cd2ba679a1f50e74794bd99e408d7 and it looks like any release beyond 0.1.8 (even just 0.1.9) would address this.

Just attempted to publish as a moderator & do not have permission - we need an owner to publish a new version.

I'd appreciate this too. I need the Hubspot::Owner class for my app.
@adimichele or @paulodiniz would either of you mind releasing a new version of the gem? It looks like you both have access. Thanks.

Done. I haven't used Hubspot in years so I can't guarantee this will work in production. It would be best if an active contributor takes over gem push responsibility...

@adimichele thanks so much for the quick response. Much appreciated.


Cannot connect to redis server

I tried the following to connect to redis-server:
html.Div(id="message", className='p-4 border'),  WebSocket(url='ws://<IP_ADDRESS>:6379/1', id='ws')
But received the following error in redis-server terminal:
# Possible SECURITY ATTACK detected. It looks like somebody is sending POST or Host: commands to Redis. This is likely due to an attacker attempting to use Cross Protocol Scripting to compromise your Redis instance. Connection aborted.
`
Any work around to resolve this error?

It looks like to you are trying to connect the websocket directly to your Redis server. Are you sure that is supported? I would expect that you would "something in between" to map the data from the Redis server into the appropriate websocket messages.


Suggestion: warnings (non-invalidating errors)

Formally requesting this feature suggested several weeks ago (#1649).
My form involves budgets, and I'd like to warn users who input values that are valid, but questionable (e.g. value over daily allowed budget).
Because I need this feature, I've written this functionality in a fork: Link to diff.
I saw in the contributing guidelines that non-trivial features should be vetted as issues first. I didn't want to just create a pull request, as I'm still not very experienced with this whole open source thing.
Thanks!

Added warnings in v6.1.0.


Update MembershipContainerType as per lti-nrps Spec

The MembershipContainerType points to lis container instead of lti-nrps container causing unnecessary failures when parsing membership api response from the LtiAdvantage Platforms. Fixing to point to the correct one present at https://www.imsglobal.org/spec/lti-nrps/v2p0#membership-container-media-type

@srijken Please review. Thanks in advance.


Install will overwrite Node Templates

I don't know what the problem is, but installing the plugin will overwrite the node template of the right click

I don't know what the problem is, but installing the plugin will overwrite the node template of the right click

The bug has been fixed


Adding makeymakey extension

@wmacfarl Can you please create a tag for your extension joylabz/makeymakey-makecode-arcade-extension?
MakeCode picks up the latest tag for the extension to work. This helps you to do the development by doing the check-ins and tag it when you want MakeCode to pick the latest one.

More on tags here: https://makecode.com/extensions/versioning
Also look at any other extension to see how they have generated tags.

@wmacfarl This is optional. I think it is slightly better from an UI perspective to add the category for MakeyMakey right after controller to be more context aware. Today it is at the top.

Thank you!  I have added a tag to the repo.  @abchatra I'm not sure how to set where the category appears but I agree that right after controller makes the most sense.  Can you point me to what I have to do to change that?

Changing the weight here to 97 or 98 should do it (instead of 100).
https://github.com/joylabz/makeymakey-makecode-arcade-extension/blob/main/ext.ts#L1

Merged. Thanks so much @wmacfarl


deepmerge in config.ts doesn't do a very good job

Revolver configuration relies on deep merging structure. We recently moved from lodash to deepmerge-ts and it seems that the logic it uses does not give us a 100% correct result. This needs to be looked at.

Possibly related https://github.com/Innablr/revolver/pull/100

@abukharov can you describe incorrect result?


[Codespaces] docker-from-docker ---> docker-in-docker

Work item: https://github.com/microsoft/vssaas-planning/issues/1588
Changes to default codespace image to no longer pass the docker socket to child container, and instead runs it's own docker daemon inside.  Required parent container to be privileged.

We also may want to create a docker-in-docker definition like the docker-from-docker one to make testing the script easier and illustrating its use. Right now kitchen sink takes a long time to build so validation is time consuming mainly because of build time. 😄

Agreed on this - i've watched the image build several times working on this :D

We also may want to create a docker-in-docker definition like the docker-from-docker one to make testing the script easier and illustrating its use. Right now kitchen sink takes a long time to build so validation is time consuming mainly because of build time. 😄

Agreed on this - i've watched the image build several times working on this :D

Also, out of curiosity, I know the offical "docker:dind" image uses this script: https://github.com/moby/moby/blob/master/hack/dind

I was looking and based some of the changes off this old Dockerfile for dind along with a couple more recent blog posts on the matter - i'll take another look at what you shared

Also, out of curiosity, I know the offical "docker:dind" image uses this script: https://github.com/moby/moby/blob/master/hack/dind

I was looking and based some of the changes off this old Dockerfile for dind along with a couple more recent blog posts on the matter - i'll take another look at what you shared

@Chuxel I've added a definition "docker-in-docker" using the shared script file

@Chuxel I've added a definition "docker-in-docker" using the shared script file

Testing with the vscode-dev-containers extension is consistently good.  Still need to test more e2e in codespaces

Testing with the vscode-dev-containers extension is consistently good.  Still need to test more e2e in codespaces

It looks like its working, yes!
A few other things I noticed on close inspection:

I noticed that the image startup has a reference to overlay2 not being supported.  I think you inadvernatly removed the VOLUME reference you had before.  That probably should be in both the Dockerfils and in the docs about it.
Error:
time="2021-01-07T01:59:27.089974857Z" level=error msg="failed to mount overlay: invalid argument" storage-driver=overlay2
time="2021-01-07T01:59:27.091006166Z" level=warning msg="[graphdriver] WARNING: the aufs storage-driver is deprecated, and will be removed in a future release"

Adding VOLUME [ "/var/lib/docker" ] back fixes it.
Another up-side is as we add rebuild support, the container's d-in-d build cache and containers should survive a rebuild too.

Maybe we should also add ( sudoIf dockerd > /tmp/dockerd.log 2>&1 ) & to the init script so the dockerd log can be accessed a bit more easily at /tmp/dockerd.log for troubleshooting. I had to catch the terminal window for the dev container startup to find this which has a bunch of other stuff in it.

We probably should also install pigz which is a faster gzip implementation dockerd can use.

I also saw this in the logs, but don't immediatley know the fix for it:
time="2021-01-07T02:16:56.288684776Z" level=warning msg="Not using native diff for overlay2, this may cause degraded performance for building images: kernel has CONFIG_OVERLAY_FS_REDIRECT_DIR enabled" storage-driver=overlay2

It looks like its working, yes!
A few other things I noticed on close inspection:

I noticed that the image startup has a reference to overlay2 not being supported.  I think you inadvernatly removed the VOLUME reference you had before.  That probably should be in both the Dockerfils and in the docs about it.
Error:
time="2021-01-07T01:59:27.089974857Z" level=error msg="failed to mount overlay: invalid argument" storage-driver=overlay2
time="2021-01-07T01:59:27.091006166Z" level=warning msg="[graphdriver] WARNING: the aufs storage-driver is deprecated, and will be removed in a future release"

Adding VOLUME [ "/var/lib/docker" ] back fixes it.
Another up-side is as we add rebuild support, the container's d-in-d build cache and containers should survive a rebuild too.

Maybe we should also add ( sudoIf dockerd > /tmp/dockerd.log 2>&1 ) & to the init script so the dockerd log can be accessed a bit more easily at /tmp/dockerd.log for troubleshooting. I had to catch the terminal window for the dev container startup to find this which has a bunch of other stuff in it.

We probably should also install pigz which is a faster gzip implementation dockerd can use.

I also saw this in the logs, but don't immediatley know the fix for it:
time="2021-01-07T02:16:56.288684776Z" level=warning msg="Not using native diff for overlay2, this may cause degraded performance for building images: kernel has CONFIG_OVERLAY_FS_REDIRECT_DIR enabled" storage-driver=overlay2

One more bug I fixed when docker container fails unexpectedly (or manually with docker kill <ID> )
time="2021-01-07T15:50:30.662286100Z" level=info msg="Starting up"
time="2021-01-07T15:50:30.663969300Z" level=info msg="libcontainerd: containerd is still running" pid=28
time="2021-01-07T15:50:30.664089000Z" level=info msg="parsed scheme: \"unix\"" module=grpc
time="2021-01-07T15:50:30.664233200Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
time="2021-01-07T15:50:30.664290900Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0  <nil>}] <nil>}" module=grpc
time="2021-01-07T15:50:30.664340800Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
failed to start containerd: timeout waiting for containerd to start

Fixed with another find/delete statement find /run /var/run -iname 'container*.pid' -delete || :

One more bug I fixed when docker container fails unexpectedly (or manually with docker kill <ID> )
time="2021-01-07T15:50:30.662286100Z" level=info msg="Starting up"
time="2021-01-07T15:50:30.663969300Z" level=info msg="libcontainerd: containerd is still running" pid=28
time="2021-01-07T15:50:30.664089000Z" level=info msg="parsed scheme: \"unix\"" module=grpc
time="2021-01-07T15:50:30.664233200Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
time="2021-01-07T15:50:30.664290900Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0  <nil>}] <nil>}" module=grpc
time="2021-01-07T15:50:30.664340800Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
failed to start containerd: timeout waiting for containerd to start

Fixed with another find/delete statement find /run /var/run -iname 'container*.pid' -delete || :

@Chuxel On my end this looks good to go!  Are you able to kick off a release for us (bumping the minor version probably)?

@Chuxel On my end this looks good to go!  Are you able to kick off a release for us (bumping the minor version probably)?

LGTM!  @chrmarti - FYI, I'm going to do a minor version release to queue this up for further testing in Codespaces.

LGTM!  @chrmarti - FYI, I'm going to do a minor version release to queue this up for further testing in Codespaces.

@joshspicer  This will be version 1.1.0 when it goes out.
Release run: https://github.com/microsoft/vscode-dev-containers/actions/runs/470010714

@joshspicer  This will be version 1.1.0 when it goes out.
Release run: https://github.com/microsoft/vscode-dev-containers/actions/runs/470010714


oci_image should support os.version

See https://github.com/opencontainers/image-spec/blob/main/config.md#properties os.version

this is directly related to windows containers therefore doesn't need to be done in 1.0. could be done in a general windows containers improvement.

merging into https://github.com/bazel-contrib/rules_oci/issues/53


preact-router Link issue with createHashHistory

Issue description:
When using Link (or a tag) with hash history when the user open a link in the new page, the resulting url does not contain the hashbang.
How to replicate
using preact cli with default template and then install history module
npx react-cli create default testHashNavigation
Code
/src/components/app.js
import { h, Component } from 'preact';
import { Router } from 'preact-router';

import Header from './header';

// Code-splitting is automated for routes
import Home from '../routes/home';
import Profile from '../routes/profile';

import { createHashHistory } from 'history';

export default class App extends Component {

	/** Gets fired when the route changes.
	 *	@param {Object} event		"change" event from [preact-router](http://git.io/preact-router)
	 *	@param {string} event.url	The newly routed URL
	 */
	handleRoute = e => {
		this.currentUrl = e.url;
	};

	render() {
		return (

				<Router history={createHashHistory()}>
					<Home path="/" />
					<Profile path="/profile/" user="me" />
					<Profile path="/profile/:user" />
				</Router>

		);
	}
}

/src/routes/home/index.js
import { h } from 'preact';
import style from './style';
import {Link} from "preact-router";

const Home = () => (

Home

This is the Home component.

<Link href="/profile/">profile</Link>

profile example

);

export default Home;

/package.json
{
  "private": true,
  "name": "testhashrouting",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "build": "preact build",
    "serve": "sirv build --cors --single",
    "dev": "preact watch",
    "lint": "eslint src",
    "test": "jest"
  },
  "eslintConfig": {
    "extends": "preact",
    "ignorePatterns": [
      "build/"
    ]
  },
  "devDependencies": {
    "enzyme": "^3.10.0",
    "enzyme-adapter-preact-pure": "^2.0.0",
    "eslint": "^6.0.1",
    "eslint-config-preact": "^1.1.0",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^24.9.0",
    "jest-preset-preact": "^1.0.0",
    "preact-cli": "^3.0.0-rc.6",
    "preact-render-spy": "^1.2.1",
    "sirv-cli": "^0.4.5"
  },
  "dependencies": {
    "history": "^5.0.0",
    "preact": "^10.3.2",
    "preact-render-to-string": "^5.1.4",
    "preact-router": "^3.2.1"
  },
  "jest": {
    "preset": "jest-preset-preact",
    "setupFiles": [
      "<rootDir>/tests/__mocks__/browserMocks.js",
      "<rootDir>/tests/__mocks__/setupTests.js"
    ]
  }
}

preact-router will push the href value as is to history. I think you need to use hash based URLs if you really want to use them:
<Link href="/profile/">profile</Link>
profile example

// vs
<Link href="#profile/">profile</Link>
profile example

It'd be nice if the router could be made aware of what kind of history it's using so that the URL can be formatted automatically, but I'm not aware of any way to detect that.

preact-router will push the href value as is to history. I think you need to use hash based URLs if you really want to use them:
<Link href="/profile/">profile</Link>
profile example

// vs
<Link href="#profile/">profile</Link>
profile example

It'd be nice if the router could be made aware of what kind of history it's using so that the URL can be formatted automatically, but I'm not aware of any way to detect that.

Do you think that could be interesting creating a context/provider for that (and an associated Link / a tag)? I was thinking about doing that but I didn't know if that could create issues with size/lightness of the preact way...

Yeah, I'd love to see support for that in preact-router :+1:


bootstrap_sdk: enable arm64 sdk bootstrap

enable arm64 sdk bootstrap
Some issues with lib(64) handling and rust were found during attempts to bootstrap the SDK on arm64. This PR resolves them.
How to use
Provision powerful arm64 machine.
Fetch kinvolk/coreos-overlay/pull/1130
Fetch stage4 from https://github.com/kinvolk/Flatcar/issues/319#issuecomment-881553797.
./bootstrap_sdk --seed_tarball

CI running http://jenkins.infra.kinvolk.io:8080/job/os/job/manifest/3139/
This change is actually independent of arm64 and is also needed for the profile upgrade (17.1) so it would be nice to get it merged soonish. It doesn't change anything functionally right now.

Finished a full amd64 bootstrap with this and all looks good. Talked to @sayanchowdhury and told him about merging this before release.


Master Bug List

Purpose
This particular issue is to list out all the bugs encountered on the production deployment. All you have to do is comment on this thread and record any potential issues or glaring bugs that are seen.
UI/UX

When logging in on Safari, the side navigation does not show. It works on Chrome and Firefox.

Functionality

"An unexpected error occurred" page shows up on Firefox and Safari. It works on Chrome. This is the Vercel default error page so I think it may be a 500 error.

UI/UX

When you click "Forgot Password?" in the login modal, the modal doesn't close on page redirect


Interaction between param.rx and isinstance

Is your feature request related to a problem? Please describe.
I couldn't find an relevant information on how to do an isinstance check of the inner object of the param.rx. Right now I have:
            if isinstance(field, param.rx):
                if field.rx.pipe(isinstance, xarray.DataArray):
                    curr_data = field

This could work, but feels a bit clunky. It would be much nicer if isinstance could work without having to check if it's a param.rx and then use pipe, e.g. by creating a dynamic class that inherits the type of the first definition, or any other way to override isinstance checks.
Describe alternatives you've considered
I have of course tried if it already works, but it doesn't seem to
import param
a = param.rx("string")
isinstance(a, str)

but this doesn't work

Good question! Would you be happy with a.rx.isinstance(str)? I think that would be the natural approach here.

As a clutch, it does help. The preferred interface would be to not have to check for isinstance(_, param.rx). Unfortunately the only method that I know would work is like attrs, but it is quite a redactor for that.
I'm still getting a hang of the .rx interface. I guess neither approach will work with if.

I'd prefer if isinstance resolved to the underlying value.


Bug during smt encoding of assertions with option comparisons after unboxing

I'm getting exception Invalid_argument("List.map2: list lengths differ") when I run the following commands:
make install
./nv -m -unbox examples/debugging/option-comparison.nv
A cursory examination indicates that the issue is that the assertion encoding is (correctly) returning one variable to represent the output of the assertion, but it's returning two expressions to represent the comparison at the end (which, after unboxing, is a tuple comparison, so it's returning one comparison for each component). I'm not sure what the correct fix is, and this is orthogonal to my current work, so for the moment I'm going to leave it as is.
In the meantime, we can use a workaround: instead of writing
x[3] = None
which is bad practice anyway, write

match x[3] with
| None -> true
| Some _ -> false

I bumped into this on the iBGP example too. Will get to it at some point, thanks for documenting it!

Fixed in abae315.


Scrap spawns without item value

I just found a new bug that I think may be caused by this mod as when I deactivated it the scrap item value seemed to have returned? It will need further testing but so far here's what it looks like:

yep ditto

Good news, this issue should be fixed in the next update today.
It was caused by a syncing issue with items and its value, normally it is only a visual bug.

Can confirm that so far it seems to be working for most items, although I would like to report that there seems to be some possible "soft-incompatibility" with LCMod-sellYourStuff as some items show the selling price like the Pro-Flashlight, but some others like the Shovel don't.
Prior to the update that caused the issue those prices were both showing when scanning.

Does this issue still occur?
If not then I shall close this issue soon.

It doesn't seem to occur anymore! Thanks again for your work!


Fix val docs

Added List Docs

Don't create PR directly to master! Releases and fixes should pass through dev first.


Update README.md

By using Docker native commands, update instructions would be easier to follow on Windows (without effecting Linux)

very cool, thanks!


feat: --pedantic-solving flag

Description
Problem*
Resolves https://github.com/noir-lang/noir/issues/6275
Summary*
Adds a compile-time flag --pedantic-solving to run extra sanity-check assertions at the opcode level in ACVM.
Additional Context

This is expected to be useful for fuzzing
This will need a follow-up for similar types of assertions

Documentation*
Check one:

[x] No documentation needed.
[ ] Documentation included in this PR.
[ ] [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

NOTE: the following test appears to be failing due to a bug that was fixed in https://github.com/noir-lang/noir/pull/6771:
tests::compile_success_empty::test_embedded_curve_add_simplification::forcebrillig_false_inliner_0_expects

Can you update our CI to run with pedantic checks on?


Add Article for Hello World in Odin

Pushed code: #235. Looking for an author.

Added link to language README: https://github.com/jrg94/sample-programs/commit/b37447688e11676c9bde5ea0229b9e9c06bdfe85


ELB Cluster handling in-flight requests/response of Krakend

I would like to understand the use case of High availability
If there is a Kubernetes Cluster with redundancy 3 pods of Krakend instances are running managed by a Load Balancer (ELB).
A request is sent by one POD and before the response comes back that pod goes down, then is the response can be managed by other pods in the Cluster? And if there are sequence of backend calls that has to happen after this response is received, can these be handled by other Pods? My feeling is that this edge scenario cannot by handled unless there is some kind of state is managed. Am I correct in saying this.

@alombarte, @kpacha Much appreciated, if you have any in-sights on this scenario

No, the instances do not retry requests to backends. Also, they do not know about each other, so if one goes down the in-transit requests and responses will fail and the client should retry


[WIP]  Addresses #194 Refactoring to Object Oriented Design

Edited: Addresses #194
Have to look on import_module
For now
Added an empty TTS class.
Created tts/espeak/main.py and tts/say/main.py

Later we'll use a similar approach for actions, too

So should I make actions like
melissa/actions/business_news_reader.py -> melissa/business_news_reader/bs4.py For bs4 implementation.

As of now, added the implementation for all the tts engines and actions module in OOD.
Earlier: Implementation was based on checking the words with WORDS constant and getting the response from such functions
Now: It is required to create objects of corresponding classes and calling their methods depending on the favorable word from speech.
That's the reason not able to test code from current implementation.
@emedvedev Please review the code and let me know how's the approach and what should be done next.

The approach is good, except for config.py: we're manually importing every TTS engine, which makes them impossible to plug without changing the codebase.
What you'll have to do is dynamically import every TTS engine from the directory, then pick one depending on the user's configuration file.
You'll need a few changes for that:

Let's change tts_facade to just melissa.tts.
Every TTS engine should have a name attribute to know how it should be referred to in the config file.
Once that's done, use dynamic importing to register TTS engines: import every class that inherits TTS from all tts/ subdirectories.
Use their name attributes to load the required TTS engine depending on the config entry.

Sorry I was busy in making proposal for gsoc.
@emedvedev Can you please review the code for config.py now.

Aside from one small comment, looks good to me now. Fix the error message, and we can merge.

Done.

Sounds good. Let's now refactor STT in the similar fashion, then we can merge into the py3 branch and proceed with the general Python 3 transition.

You can check the code for Refactoring STT in OOD.

Currently, googleSTT.py
import speech_recognition as sr
# from melissa.stt import STT

class GoogleSTT():

    def __init__(self):
        self.r = sr.Recognizer()
        self.name = 'googleSTT'

    def write(self):
        while True:
            with sr.Microphone() as source:
                self.r.adjust_for_ambient_noise(source)
                print("Say something!")
                audio = self.r.listen(source)
            try:
                speech_text = self.r.recognize_google(audio).lower().replace(
                    "'", ""
                )
                print("Melissa thinks you said '" + speech_text + "'")
                return speech_text
            except sr.UnknownValueError:
                print("Melissa could not understand audio")
            except sr.RequestError as e:
                print(
                    "Could not request results from Google Speech " +
                    "Recognition service; {0}".format(e)
                )
            else:
                pass

raises an error
Traceback (most recent call last):
  File "googleSTT.py", line 34, in <module>
    g.write()
  File "googleSTT.py", line 13, in write
    with sr.Microphone() as source:
  File "/usr/local/lib/python2.7/dist-packages/speech_recognition/__init__.py", line 86, in __init__
    device_info = audio.get_device_info_by_index(device_index) if device_index is not None else audio.get_default_input_device_info()
  File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 949, in get_default_input_device_info
    device_index = pa.get_default_input_device()
IOError: No Default Input Device Available

@emedvedev Please state the reason of not merging this PR. If changes required then just let me know.
This is a big PR as following objectives are covered in this PR.

[x] Refactoring to actions in Object Oriented Programming
[x] Refactoring of TTS Engines  in Object Oriented Programming
[x] Refactoring of STT Engines  in Object Oriented Programming
[x] Introduction to Plugin Architecture (Dynamic importing the modules)

Please have a look on it. The PR is opened from 13th March, 2018 and last review received on 11th April, 2018.

Hi there,
As you've mentioned, it's a big PR and it's a lot of work to review it. I'll try to find some time soon (as Tanay has told you, most likely this week), but what you should understand is that open source projects like this one are mostly maintained in spare time, and finding enough uninterrupted spare time to review a massive PR such as this one is not easy.
In the future, if you want your PRs to be merged faster, something to try is to make them smaller. You've listed four issues that were covered by this PR — so it could be four smaller PRs instead of one, and they'd be a bit easier to review this way.
That said, it's great work, so please don't be discouraged by the absence of spare time from our side, because it has absolutely nothing to do with you or the PR :)

Additionally, the PR has zero unit or integration tests, which means that it has to be tested manually, and Travis CI errored out with a build error (which is something you should look into).
On a related note, there are tests in the project, and I see that you haven't modified them in this PR. Do they still pass?

Hi, @emedvedev

You've listed four issues that were covered by this PR — so it could be four smaller PRs instead of one, and they'd be a bit easier to review this way.

That what I was suggested here itself.
Beside of Refactoring to Object Oriented Design.

[x] Introduction to Plugin Architecture (Dynamic importing the modules)

https://github.com/Melissa-AI/Melissa-Core/pull/196#issuecomment-375770114

[x] Refactoring of STT Engines in Object Oriented Programming

https://github.com/Melissa-AI/Melissa-Core/pull/196#issuecomment-380410701

[x] Refactoring of TTS Engines in Object Oriented Programming

https://github.com/Melissa-AI/Melissa-Core/pull/196#issuecomment-372038282

the PR has zero unit or integration tests, which means that it has to be tested manually, and Travis CI errored out with a build error (which is something you should look into).

Starting the project with new implementation requires Test to pass from very first commit? And even the current implementation will not work here as WORDS constant not supported this way. That's why requested opinion on NLP https://github.com/Melissa-AI/Melissa-Core/issues/194#issuecomment-373186073
All modules are supposed to check manually as a file alone with making objects and checking the methods. (in ACTIONS, TTS engines and STT engines)

That said, it's great work, so please don't be discouraged by the absence of spare time from our side, because it has absolutely nothing to do with you or the PR :)

Not at all. Just haven't received any input from 2 months that's why it happened. :)

And even the current implementation will not work here as WORDS constant not supported this way. That's why requested opinion on NLP

Please discuss implementation :)

Yes, if you’re submitting a PR, it should come with tests that pass.
I’ll take a look at the implementation, and you can start working on test coverage for the rest of the the things in the meantime.
No PR will get merged if the project is not in working state.
On Jun 4, 2018, 11:29 +0200, Bhavesh Anand<EMAIL_ADDRESS>wrote:

Hi, @emedvedev

You've listed four issues that were covered by this PR — so it could be four smaller PRs instead of one, and they'd be a bit easier to review this way.
That what I was suggested here itself.
Beside of Refactoring to Object Oriented Design.
• Introduction to Plugin Architecture (Dynamic importing the modules)

#196 (comment)

• Refactoring of STT Engines in Object Oriented Programming

#196 (comment)

• Refactoring of TTS Engines in Object Oriented Programming

#196 (comment)

the PR has zero unit or integration tests, which means that it has to be tested manually, and Travis CI errored out with a build error (which is something you should look into).
Starting the project with new implementation requires Test to pass from very first commit? And even the current implementation will not work here as WORDS constant not supported this way. That's why requested opinion on NLP #194 (comment)
All modules are supposed to check manually as a file alone with making objects and checking the methods. (in ACTIONS, TTS engines and STT engines)
That said, it's great work, so please don't be discouraged by the absence of spare time from our side, because it has absolutely nothing to do with you or the PR :)
Not at all. Just haven't received any input from 2 months that's why it happened. :)
And even the current implementation will not work here as WORDS constant not supported this way. That's why requested opinion on NLP
Please discuss implementation :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Feature/highlighting of viewer objects

Closes #115
Replaces #116
This brings the feature to detect if the user of the plugin (the viewer from the naming of the GH API) has authored an object (e.g. issue or comment) or has reacted to such one. In this case the username or the reaction gets highlighted differently. To do so it puts the usernames into a bubble as it does for labels or reactions. To get an idea how this looks like, checkout the example screenshot below.
While the actual feature additions are quite small, the code changes have become a bit bigger. One part of it comes from the fact that the actual bubbly highlighting implementation was not fully correct working. The delimiter had a fixed color. I always thought something is broken on my setup, but it was the implementation. Also it was duplicated code all other the place. I have iterated over my code over and over again to generalizing code, making it reusable and add small features here and there around bubbles. After all think the feature of drawing bubbles in the UI is now a pretty neat feature that can be used everywhere with ease (as I kinda have proven :grimacing: )
Generally I recommend to review my PRs commit by commit. I try to bundle them always meaningful. Also I take commit messages very serious and explain why a change was needed (for) and what the approach looks like. Everything that even good readable can't (or shouldn't) express. This should enable the reviewer to focus on the code itself, rather then guessing what the higher level intention/reasoning was. Also it is very helpful in all-day development in your editor to read up commit messages for code under the cursor. I hope all decision are clear and you agree with them. Else each commit should be so focused that we can easily delete single history entries or change them with --fixup commits.
Attention: While I tried to optimize the "bubbeling" as my as I can, I had to drop the bubbles in the quickfix window. Because of bug in the old implementation, it was basically not possibly to keep them like they were. More details as said in the commit messages.

(in the screenshot at the bottom there is an example of reactions and their highlighting if the user took part in one of them. Unfortunately they smiley does not work in my terminal. But just that you know.

Generally I recommend to review my PRs commit by commit. I try to bundle them always meaningful. Also I take commit messages very serious and explain why a change was needed (for) and what the approach looks like. Everything that even good readable can't (or shouldn't) express. This should enable the reviewer to focus on the code itself, rather then guessing what the higher level intention/reasoning was. Also it is very helpful in all-day development in your editor to read up commit messages for code under the cursor. I hope all decision are clear and you agree with them. Else each commit should be so focused that we can easily delete single history entries or change them with --fixup commits.

It looks great, will try to do the same from now on

Attention: While I tried to optimize the "bubbeling" as my as I can, I had to drop the bubbles in the quickfix window. Because of bug in the old implementation, it was basically not possibly to keep them like they were. More details as said in the commit messages.

Thats ok for now, we will see if we can add them later or even create our own QF-like buffer

Sometimes it feels like there are too many bubbles in my opinion. I like that I can tweak the hl groups to make the bubble color the same as the Normal background but now its all or nothing for Viewer bubbles. Can you make a hl group for the viewer reactions, and a different one for viewer name? or is it too much HL groups :thinking_face:
Also:

I love the viewer icon, but we can make it configurable
what do you think about adding the viewer icon to viewer reaction groups?)

Sometimes it feels like there are too many bubbles in my opinion. I like that I can tweak the hl groups to make the bubble color the same as the Normal background but now its all or nothing for Viewer bubbles. Can you make a hl group for the viewer reactions, and a different one for viewer name? or is it too much HL groups :thinking_face:

Haha. I guess that is (Neo)Vim. Everyone has his own taste and expresses it. I like it.
Nice workaround you found there. Should we document it as hint for users who feel the same.
Yes I think we could add such a highlight group. Maybe we could have the low level classes as now and then add more specific ones. These will just link to their "parents", but are open for local adoption for each user who wants to tweak it that way. I don't mind to have so many highlight groups. Setting them as user is 100% optional, we have sane defaults, and having such a highlight group hierarchy  allows to set single groups with a wide effect without loosing the ability to absolutely tweak it.

Also:
* I love the viewer icon, but we can make it configurable

On my list of TODOs there is already the task to make all icons configurable. Also reactions (e.g. yours do not work for me). I'm thinking of a more generic interface that makes adding new icons/emojis very easy and flexible. But if you like to I could still add a global scope variable just for now? Would this be helpful?

* what do you think about adding the viewer icon to viewer reaction groups?)

Aeh? I don't know what you mean. :see_no_evil:
Could you describe it in more detail (maybe even just send the code references as links) or send a screenshot? :pray:

Maybe we could have the low level classes as now and then add more specific ones. These will just link to their "parents", but are open for local adoption for each user who wants to tweak it that way. I don't mind to have so many highlight groups. Setting them as user is 100% optional, we have sane defaults, and having such a highlight group hierarchy allows to set single groups with a wide effect without loosing the ability to absolutely tweak it.

LGTM 👍🏻

(e.g. yours do not work for me)

What terminal emulator do you use?

But if you like to I could still add a global scope variable just for now?

No, its ok, we can wait

Could you describe it in more detail (maybe even just send the code references as links) or send a screenshot? 🙏

Something like this (also removed the padding):

What terminal emulator do you use?

I use Alacritty with TMux inside with Source Code Pro Nerd Font.

Something like this (also removed the padding):

Hmm. I added the icon to preceed any username to symbolize: this is a user. So atm this icon is specific to these items, no matter if its the viewer or not. To show the user if it is him or someone else is done by the color only. For reactions, which are no users, there is the icon of the reaction itself and then again the coloring depending of the viewer.
If I interpret your image correctly you now want to add the user icon to a reaction if the reaction was by/includes the viewer plus colering it? Is that right?
If you really like the idea about having a second icon in reactions by the viewer, we might want to add another icon that can be customized and make it a unicode dot? Just like a tiny little hint as you do with notification icons when there are new notifications. And if you like to have it the same as the user icon, go for it.
Sorry, for making these comment so long. Just want to make the async communication as efficient as possible by providing always enough information. :see_no_evil:

Could you please provide input to the left open review conversations? :upside_down_face:

Off-topic, but could you recommend a plugin (might be terminal related) to show images more efficiently? For your image I just used gx. That downloads the image and then uses my default web-browser to display it...

Hmm. I added the icon to preceed any username to symbolize: this is a user. So atm this icon is specific to these items, no matter if its the viewer or not. To show the user if it is him or someone else is done by the color only. For reactions, which are no users, there is the icon of the reaction itself and then again the coloring depending of the viewer.
If I interpret your image correctly you now want to add the user icon to a reaction if the reaction was by/includes the viewer plus colering it? Is that right?

I was suggesting adding the icon instead of the coloring, but forget it, coloring it is :ok:
Just lets create a different sub HL group for it

Off-topic, but could you recommend a plugin (might be terminal related) to show images more efficiently? For your image I just used gx. That downloads the image and then uses my default web-browser to display it. Didn't TMux introduce floating windows as well? I mean with Ranger I can view images in Alacritty already.

I also use gx. You can try something like https://github.com/seebye/ueberzug


add missing anchors in module.dd

Any reason for doing these as separate pulls?

conflicts maybe. I plan to do more. For remaining dd I can merge.


[4.0][Feature] Fix widget assets loading

Hello guys. REF: #2074
I have spent some time in this issue, and I think it's a very tricky one.
Mainly we have two issues with widgets:
1 - Widget loads the same assets multiple times.
When using the same widget multiple times it will load the same assets for every time you included the same widget.

SOLUTION: I did something similar to what we use in fields. We can now check if widget type is loaded before loading the assets.

@if(!CRUD::widgetTypeLoaded($widget))
 <!-- Prevent multiple times loading of assets. -->
@endif

2 - Push widget assets to the header

SOLUTION: NONE

This is waaaaaaay more trickier, I will keep digging on this, but I am not sure we can achieve that without massively changing backpack layout files.
@tabacitu let me know if I am going in the right direction with this one ..!

A new inspection was created.

Problem no 1

I think this is better done in a separate class. We talked about creating a Widget class that does this, and I did.
But now that I think about it, we'd be solving the same problem in two places. We should probably be striving for a single solution for both. Which would be fixing https://github.com/Laravel-Backpack/CRUD/issues/2283 .
So let's close this issue in favour of that one - I've moved it to 4.1.0 launch so I take another look at it soon.

Problem no 2

The solution has already been merged into both 4.0 and 4.1


0.63.2

Fix MercedesMe - add check for unsupported features (@ReneNulschDE - #12342) (mercedesme docs) (binary_sensor.mercedesme docs) (device_tracker.mercedesme docs) (sensor.mercedesme docs)
Fix WUnderground names (@OttoWinter - #12346) (sensor.wunderground docs)
Updated beacontools (@citruz - #12368) (sensor.eddystone_temperature docs)
Introduce zone_id to identify player+zone (@sdague - #12382) (media_player.yamaha docs)
Downgrade limitlessled to 1.0.8 (@amelchio - #12403) (light.limitlessled docs)

Please merge https://github.com/home-assistant/home-assistant/pull/12392, too. It's somehow part of #12368


Clean up "extern" declarations at the top of C files

In the CFE core apps, many files reference functions and data structures defined in other files.  However, the function prototypes or "extern" declarations are not in common header files, but simply put at the top of the C file that uses it.
While this does build, it defeats the type checking done by the compiler.
It is far from ideal because if the real variable type or function prototype ever changes, the linker will still happily link it together even though they might be completely incompatible (or worse, incompatible in a really subtle way).
The only reason to NOT put a declaration in a header file is if it should not be called or referenced by CFS apps, but this can be solved by creating a private CFE core shared header file.

Imported from trac issue 8.  Created by jphickey on 2014-12-30T19:34:31, last modified: 2019-03-05T14:57:55

Trac comment by jphickey on 2015-01-26 14:00:03:
Pushed branch "trac-8-extern_decl_cleanups" to address this
Commit [changeset:62ec03db]
Ensure that all functions/variables that are referenced from a ".c" file other than the file containing the implementation/instantiation are properly prototyped in a header file.
The following rule was used to determine where the prototype/declaration should reside:

For symbols that are only referenced within the same core app (e.g. ES calling another function within ES), place the declaration in a header file within the same core app.  This also applies to symbols referenced from the unit test of the same app.
For symbols that are referenced by other CFE core applications but not outside CFE core, place the declaration in a newly introduced "private" directory under the existing "inc" directory.  Note that placing it here rather than in a separate directory such as "private_inc" allows the existing makefiles to find the new files without modifying include search paths.
For symbols that are referenced outside CFE core, place the declaration in the public "inc" directory under the corresponding module.

Trac comment by jphickey on 2015-01-26 14:05:13:
Important note regarding merging of the basic fix above:
An additional branch "merge-8+1-cmake_plus_refactor" is also pushed to reflect the merge between this fix and trac #32 (new build/cmake files).
Commit [changeset:ddecc89b]
This basically removes some extra items that had been required to make the build work without the trac 8 change in place.  They become unnecessary after trac 8 is merged in.

Trac comment by glimes on 2015-02-11 11:50:53:
Current version is [changeset:642acb9] plus [changeset:ddecc89b] merged in [changeset:e7a6636]

Trac comment by jphickey on 2015-04-06 11:17:06:
This is ready for review/merge

Trac comment by jphickey on 2015-04-06 14:37:29:
With respect to an #ifdef guard --
Actually my original version of this fix had this, the make script would define the CFE_CORE macro when compiling the core apps, and the private include files started in an #ifndef that would error out if someone tried to include them from somewhere else.
The only problem with this approach is that it broke the non-CMake build using the old makefiles, as these did not define the CFE_CORE macro.  However they could probably be fixed to do so.
The other option is to put these into a directory at the same level as the "inc" (such as "private_inc") but this also requires a fix to both sets of makefiles to add another -I to the compiler command, and I think there are too many of these already.
At the end of the day I decided it was best to just leave well enough alone.  With the way it is now, if someone includes this in an app they actually have to write {{{ #include "private/something.h" }}} which should set off some red flags that this is possibly a bad idea.  If the code happens to work anyway, then that is OK, but they will be using it "at their own risk"....

Trac comment by acudmore on 2015-04-06 14:24:18:
I think the reasoning is good, recommend accept.
Do you think anyone will confuse the inc/private files with the subsystem private headers? ( cfe_sb_priv.h? )
Could the private files implemented with a name and excluded from apps using a #ifdef guard?
( keeping them more consistent with the cfe_*_priv.h files )

Trac comment by jwilmot on 2015-04-06 15:12:34:
Concur.  Need to apply this solution to SBN which needs private headers.

Trac comment by glimes on 2015-04-07 13:46:01:
Will retain these changesets in the merge; a new trac ticket will be opened
to track any further incremental improvemtns.

Trac comment by glimes on 2015-04-07 12:50:15:
Tested changesets [changeset:642acb9] [changeset:ddecc89] [changeset:e7a6636] as part of the ic-2015-03-10 merge.

Trac comment by glimes on 2016-02-16 13:16:45:
Susie confirmed these tickets have been approved for CFE 6.5

Trac comment by glimes on 2015-04-13 15:13:24:
Part of integration candidate 2015-03-10,
committed to cFS CFE Development branch on 2015-04-10
as part of merge [changeset:7d6f6d0].

Trac comment by jhageman on 2019-03-05 14:57:55:
Milestone renamed


mitmproxy has crashed!Error: [('system library', 'fopen', 'Too many open files'), ('BIO routines', 'BIO_new_file', 'system lib'), ('x509 certificate routines', 'X509_load_cert_crl_file', 'system lib')]

Steps to reproduce the problem:

Redirecting few requests

What is the expected behavior?
It should not crash, it should be running all the time
What went wrong?
mitmproxy crashed
Any other comments? What have you tried so far?
mitmproxy has crashed!
Please lodge a bug report at: https://github.com/mitmproxy/mitmproxyTraceback (most recent call last):
  File "/Library/Python/2.7/site-packages/libmproxy/proxy/server.py", line 120, in handle
    root_layer()
  File "/Library/Python/2.7/site-packages/libmproxy/proxy/modes/http_proxy.py", line 10, in __call__
    layer()
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/tls.py", line 272, in __call__
    layer()
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/http.py", line 130, in __call__
    layer()
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/http.py", line 323, in __call__
    self.handle_regular_mode_connect(request)
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/http.py", line 409, in handle_regular_mode_connect
    layer()
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/tls.py", line 267, in __call__
    self._establish_tls_with_client_and_server()
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/tls.py", line 392, in _establish_tls_with_client_and_server
    six.reraise(*sys.exc_info())
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/tls.py", line 389, in _establish_tls_with_client_and_server
    self._establish_tls_with_client()
  File "/Library/Python/2.7/site-packages/libmproxy/protocol/tls.py", line 408, in _establish_tls_with_client
    alpn_select_callback=self.__alpn_select_callback,
  File "/Library/Python/2.7/site-packages/libmproxy/models/connections.py", line 82, in convert_to_ssl
    super(ClientConnection, self).convert_to_ssl(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/netlib/tcp.py", line 759, in convert_to_ssl
    **sslctx_kwargs)
  File "/Library/Python/2.7/site-packages/netlib/tcp.py", line 722, in create_ssl_context
    context = self._create_ssl_context(**sslctx_kwargs)
  File "/Library/Python/2.7/site-packages/netlib/tcp.py", line 504, in _create_ssl_context
    context.load_verify_locations(ca_pemfile, ca_path)
  File "build/bdist.macosx-10.9-intel/egg/OpenSSL/SSL.py", line 528, in load_verify_locations
    _raise_current_error()
  File "build/bdist.macosx-10.9-intel/egg/OpenSSL/_util.py", line 48, in exception_from_error_queue
    raise exception_type(errors)
Error: [('system library', 'fopen', 'Too many open files'), ('BIO routines', 'BIO_new_file', 'system lib'), ('x509 certificate routines', 'X509_load_cert_crl_file', 'system lib')]

Mitmproxy Version:
Operating System:

duplicate of #743 and #383


feat: add header block

Fix #6
Test URLs:

Before: https://main--danaher-ls-aem--hlxsites.hlx.page/
After: https://feat-6-header--danaher-ls-aem--hlxsites.hlx.page/

@davenichols-DHLS FYI - I open this new PR to replace #37 as there was a problem updating the preview content on that branch.


Problems in different Languages

I think you can make this proyect of some different languages, not only on Java.
If you don't mind I can start by uploading some problems I have in C++, let me know!

Sure