EXICodec encoding time inconsistent

Using the ISO15118 library I have encountered an issue I cannot quite seem to resolve.
When I am running the software stack on an Ubuntu VM the timings for encoding and decoding appear very fast and smooth. However now using it on two embedded linux devices the performance has plummeted. I cannot quite figure out why.
I will provide some details here :

INFO    2023-10-11 12:12:31,824 - iso15118.shared.exi_codec (177): EXI Codec version: 1.55
INFO    2023-10-11 12:12:31,825 - iso15118.secc (31): Starting 15118 version: 0.23.3
INFO    2023-10-11 12:12:31,830 - iso15118.secc.comm_session_handler (231): Communication session handler started
INFO    2023-10-11 12:12:31,833 - iso15118.secc.transport.udp_server (136): UDP server socket ready
INFO    2023-10-11 12:12:31,838 - iso15118.secc.transport.udp_server (122): UDP server started at address FF02::1%eth1 and port 15118
DEBUG    2023-10-11 12:13:41,818 - iso15118.secc.transport.udp_server (157): Message received from ('fe80::d60f:b2ff:fe07:359b', 49206, 0, 7): 01fe9000000000021000
INFO    2023-10-11 12:13:41,819 - iso15118.secc.comm_session_handler (405): SDPRequest received: [Security: NO_TLS, Protocol: TCP]
INFO    2023-10-11 12:13:41,832 - iso15118.secc.transport.tcp_server (134): TCP server started at address fe80::58f4:c8ff:fec1:16ff%eth1 and port 57454
INFO    2023-10-11 12:13:41,835 - iso15118.secc.comm_session_handler (432): Sending SDPResponse: [ IP address: fe80::58f4:c8ff:fec1:16ff, Port: 57454 , Security: NO_TLS , Transport: TCP ]
INFO    2023-10-11 12:13:41,856 - iso15118.secc.transport.udp_server (200): UDP server has been paused.
INFO    2023-10-11 12:13:41,857 - iso15118.secc.comm_session_handler (280): TCP client connected, client address is ('fe80::d60f:b2ff:fe07:359b', 43670, 0, 7).
INFO    2023-10-11 12:13:41,858 - iso15118.shared.comm_session (347): Starting a new communication session
INFO    2023-10-11 12:13:41,859 - iso15118.shared.states (139): Entered state SupportedAppProtocol
DEBUG    2023-10-11 12:13:41,860 - iso15118.shared.states (143): Waiting for up to 20.0 s
INFO    2023-10-11 12:13:42,624 - iso15118.shared.exi_codec (304): Decoded message (ns=urn:iso:15118:2:2010:AppProtocol): {"supportedAppProtocolReq":{"AppProtocol":[{"ProtocolNamespace":"urn:iso:15118:2:2013:MsgDef","VersionNumberMajor":2,"VersionNumberMinor":0,"SchemaID":1,"Priority":1}]}}
INFO    2023-10-11 12:13:42,626 - iso15118.shared.comm_session (236): supportedAppProtocolReq received
INFO    2023-10-11 12:13:42,627 - iso15118.shared.exi_codec (248): Message to encode (ns=urn:iso:15118:2:2010:AppProtocol): {"supportedAppProtocolRes": {"ResponseCode": "OK_SuccessfulNegotiation", "SchemaID": 1}}
INFO    2023-10-11 12:13:42,643 - iso15118.shared.exificient_exi_codec (45): 0.014929771423339844 time taken for encode
INFO    2023-10-11 12:13:42,644 - iso15118.secc.states.sap_states (147): Chosen protocol: ISO_15118_2
INFO    2023-10-11 12:13:42,645 - iso15118.shared.comm_session (431): Sent supportedAppProtocolRes
INFO    2023-10-11 12:13:42,645 - iso15118.secc.controller.simulator (646): iso15118 state: SupportedAppProtocol
INFO    2023-10-11 12:13:42,646 - iso15118.shared.states (139): Entered state SessionSetup
DEBUG    2023-10-11 12:13:42,646 - iso15118.shared.states (143): Waiting for up to 20.0 s
INFO    2023-10-11 12:13:55,406 - iso15118.shared.exi_codec (304): Decoded message (ns=urn:iso:15118:2:2013:MsgDef): {"V2G_Message":{"Header":{"SessionID":"00"},"Body":{"SessionSetupReq":{"EVCCID":"D40FB207359B"}}}}
INFO    2023-10-11 12:13:55,408 - iso15118.shared.comm_session (236): SessionSetupReq received
INFO    2023-10-11 12:13:55,430 - iso15118.shared.exi_codec (248): Message to encode (ns=urn:iso:15118:2:2013:MsgDef): {"V2G_Message": {"Header": {"SessionID": "B5726ED93618445A"}, "Body": {"SessionSetupRes": {"ResponseCode": "OK_NewSessionEstablished", "EVSEID": "UK123E1234", "EVSETimeStamp":<PHONE_NUMBER>}}}}
INFO    2023-10-11 12:13:57,962 - iso15118.shared.exificient_exi_codec (45): 2.5304505825042725 time taken for encode
INFO    2023-10-11 12:13:57,964 - iso15118.shared.comm_session (431): Sent SessionSetupRes
INFO    2023-10-11 12:13:57,965 - iso15118.secc.controller.simulator (646): iso15118 state: SessionSetup
INFO    2023-10-11 12:13:57,969 - iso15118.shared.states (139): Entered state ServiceDiscovery
DEBUG    2023-10-11 12:13:57,972 - iso15118.shared.states (143): Waiting for up to 60.0 s
INFO    2023-10-11 12:13:57,991 - iso15118.shared.comm_session (398): The data link will terminate in 2 seconds and the TCP connection will close in 5 seconds.
INFO    2023-10-11 12:13:57,996 - iso15118.shared.comm_session (402): Reason: TCP peer closed connection
INFO    2023-10-11 12:14:00,000 - iso15118.shared.comm_session (410): terminated the data link
INFO    2023-10-11 12:14:03,006 - iso15118.shared.comm_session (417): TCP connection closed to peer with address ('fe80::d60f:b2ff:fe07:359b', 43670, 0, 7)
WARNING    2023-10-11 12:14:03,007 - iso15118.secc.transport.tcp_server (149): Closing TCP server
INFO    2023-10-11 12:14:03,009 - iso15118.secc.transport.udp_server (208): UDP server has been resumed.
DEBUG    2023-10-11 12:14:03,115 - iso15118.secc.transport.udp_server (157): Message received from ('fe80::d60f:b2ff:fe07:359b', 49206, 0, 7): 01fe9000000000021000
INFO    2023-10-11 12:14:03,116 - iso15118.secc.comm_session_handler (405): SDPRequest received: [Security: NO_TLS, Protocol: TCP]
INFO    2023-10-11 12:14:03,129 - iso15118.secc.transport.tcp_server (134): TCP server started at address fe80::58f4:c8ff:fec1:16ff%eth1 and port 57454
INFO    2023-10-11 12:14:03,131 - iso15118.secc.comm_session_handler (432): Sending SDPResponse: [ IP address: fe80::58f4:c8ff:fec1:16ff, Port: 57454 , Security: NO_TLS , Transport: TCP ]
INFO    2023-10-11 12:14:03,163 - iso15118.secc.transport.udp_server (200): UDP server has been paused.
INFO    2023-10-11 12:14:03,165 - iso15118.secc.comm_session_handler (280): TCP client connected, client address is ('fe80::d60f:b2ff:fe07:359b', 43672, 0, 7).
INFO    2023-10-11 12:14:03,165 - iso15118.shared.comm_session (347): Starting a new communication session
INFO    2023-10-11 12:14:03,166 - iso15118.shared.states (139): Entered state SupportedAppProtocol
DEBUG    2023-10-11 12:14:03,166 - iso15118.shared.states (143): Waiting for up to 20.0 s
INFO    2023-10-11 12:14:03,299 - iso15118.shared.exi_codec (304): Decoded message (ns=urn:iso:15118:2:2010:AppProtocol): {"supportedAppProtocolReq":{"AppProtocol":[{"ProtocolNamespace":"urn:iso:15118:2:2013:MsgDef","VersionNumberMajor":2,"VersionNumberMinor":0,"SchemaID":1,"Priority":1}]}}
INFO    2023-10-11 12:14:03,300 - iso15118.shared.comm_session (236): supportedAppProtocolReq received
INFO    2023-10-11 12:14:03,302 - iso15118.shared.exi_codec (248): Message to encode (ns=urn:iso:15118:2:2010:AppProtocol): {"supportedAppProtocolRes": {"ResponseCode": "OK_SuccessfulNegotiation", "SchemaID": 1}}
INFO    2023-10-11 12:14:03,364 - iso15118.shared.exificient_exi_codec (45): 0.061188697814941406 time taken for encode
INFO    2023-10-11 12:14:03,366 - iso15118.secc.states.sap_states (147): Chosen protocol: ISO_15118_2
INFO    2023-10-11 12:14:03,368 - iso15118.shared.comm_session (431): Sent supportedAppProtocolRes
INFO    2023-10-11 12:14:03,372 - iso15118.secc.controller.simulator (646): iso15118 state: SupportedAppProtocol
INFO    2023-10-11 12:14:03,375 - iso15118.shared.states (139): Entered state SessionSetup
DEBUG    2023-10-11 12:14:03,377 - iso15118.shared.states (143): Waiting for up to 20.0 s
INFO    2023-10-11 12:14:09,073 - iso15118.shared.exi_codec (304): Decoded message (ns=urn:iso:15118:2:2013:MsgDef): {"V2G_Message":{"Header":{"SessionID":"00"},"Body":{"SessionSetupReq":{"EVCCID":"D40FB207359B"}}}}
INFO    2023-10-11 12:14:09,086 - iso15118.shared.comm_session (236): SessionSetupReq received
INFO    2023-10-11 12:14:09,108 - iso15118.shared.exi_codec (248): Message to encode (ns=urn:iso:15118:2:2013:MsgDef): {"V2G_Message": {"Header": {"SessionID": "AED5C79B03FB6F19"}, "Body": {"SessionSetupRes": {"ResponseCode": "OK_NewSessionEstablished", "EVSEID": "UK123E1234", "EVSETimeStamp":<PHONE_NUMBER>}}}}
INFO    2023-10-11 12:14:12,053 - iso15118.shared.exificient_exi_codec (45): 2.9400177001953125 time taken for encode
INFO    2023-10-11 12:14:12,056 - iso15118.shared.comm_session (431): Sent SessionSetupRes
INFO    2023-10-11 12:14:12,056 - iso15118.secc.controller.simulator (646): iso15118 state: SessionSetup
INFO    2023-10-11 12:14:12,057 - iso15118.shared.states (139): Entered state ServiceDiscovery
DEBUG    2023-10-11 12:14:12,064 - iso15118.shared.states (143): Waiting for up to 60.0 s
INFO    2023-10-11 12:14:12,067 - iso15118.shared.comm_session (398): The data link will terminate in 2 seconds and the TCP connection will close in 5 seconds.
INFO    2023-10-11 12:14:12,068 - iso15118.shared.comm_session (402): Reason: TCP peer closed connection
INFO    2023-10-11 12:14:14,075 - iso15118.shared.comm_session (410): terminated the data link
INFO    2023-10-11 12:14:17,078 - iso15118.shared.comm_session (417): TCP connection closed to peer with address ('fe80::d60f:b2ff:fe07:359b', 43672, 0, 7)
WARNING    2023-10-11 12:14:17,079 - iso15118.secc.transport.tcp_server (149): Closing TCP server
INFO    2023-10-11 12:14:17,081 - iso15118.secc.transport.udp_server (208): UDP server has been resumed.
DEBUG    2023-10-11 12:14:17,143 - iso15118.secc.transport.udp_server (157): Message received from ('fe80::d60f:b2ff:fe07:359b', 49206, 0, 7): 01fe9000000000021000
INFO    2023-10-11 12:14:17,145 - iso15118.secc.comm_session_handler (405): SDPRequest received: [Security: NO_TLS, Protocol: TCP]
INFO    2023-10-11 12:14:17,152 - iso15118.secc.transport.tcp_server (134): TCP server started at address fe80::58f4:c8ff:fec1:16ff%eth1 and port 57454
INFO    2023-10-11 12:14:17,162 - iso15118.secc.comm_session_handler (432): Sending SDPResponse: [ IP address: fe80::58f4:c8ff:fec1:16ff, Port: 57454 , Security: NO_TLS , Transport: TCP ]
INFO    2023-10-11 12:14:17,185 - iso15118.secc.transport.udp_server (200): UDP server has been paused.
INFO    2023-10-11 12:14:17,187 - iso15118.secc.comm_session_handler (280): TCP client connected, client address is ('fe80::d60f:b2ff:fe07:359b', 43674, 0, 7).
INFO    2023-10-11 12:14:17,188 - iso15118.shared.comm_session (347): Starting a new communication session
INFO    2023-10-11 12:14:17,188 - iso15118.shared.states (139): Entered state SupportedAppProtocol
DEBUG    2023-10-11 12:14:17,189 - iso15118.shared.states (143): Waiting for up to 20.0 s
INFO    2023-10-11 12:14:17,252 - iso15118.shared.exi_codec (304): Decoded message (ns=urn:iso:15118:2:2010:AppProtocol): {"supportedAppProtocolReq":{"AppProtocol":[{"ProtocolNamespace":"urn:iso:15118:2:2013:MsgDef","VersionNumberMajor":2,"VersionNumberMinor":0,"SchemaID":1,"Priority":1}]}}
INFO    2023-10-11 12:14:17,254 - iso15118.shared.comm_session (236): supportedAppProtocolReq received
INFO    2023-10-11 12:14:17,256 - iso15118.shared.exi_codec (248): Message to encode (ns=urn:iso:15118:2:2010:AppProtocol): {"supportedAppProtocolRes": {"ResponseCode": "OK_SuccessfulNegotiation", "SchemaID": 1}}
INFO    2023-10-11 12:14:17,268 - iso15118.shared.exificient_exi_codec (45): 0.011466741561889648 time taken for encode
INFO    2023-10-11 12:14:17,271 - iso15118.secc.states.sap_states (147): Chosen protocol: ISO_15118_2
INFO    2023-10-11 12:14:17,272 - iso15118.shared.comm_session (431): Sent supportedAppProtocolRes
INFO    2023-10-11 12:14:17,273 - iso15118.secc.controller.simulator (646): iso15118 state: SupportedAppProtocol
INFO    2023-10-11 12:14:17,275 - iso15118.shared.states (139): Entered state SessionSetup
DEBUG    2023-10-11 12:14:17,276 - iso15118.shared.states (143): Waiting for up to 20.0 s
INFO    2023-10-11 12:14:20,418 - iso15118.shared.exi_codec (304): Decoded message (ns=urn:iso:15118:2:2013:MsgDef): {"V2G_Message":{"Header":{"SessionID":"00"},"Body":{"SessionSetupReq":{"EVCCID":"D40FB207359B"}}}}
INFO    2023-10-11 12:14:20,424 - iso15118.shared.comm_session (236): SessionSetupReq received
INFO    2023-10-11 12:14:20,434 - iso15118.shared.exi_codec (248): Message to encode (ns=urn:iso:15118:2:2013:MsgDef): {"V2G_Message": {"Header": {"SessionID": "6C141611E24FF08C"}, "Body": {"SessionSetupRes": {"ResponseCode": "OK_NewSessionEstablished", "EVSEID": "UK123E1234", "EVSETimeStamp":<PHONE_NUMBER>}}}}
INFO    2023-10-11 12:14:22,698 - iso15118.shared.exificient_exi_codec (45): 2.2585692405700684 time taken for encode
INFO    2023-10-11 12:14:22,711 - iso15118.shared.comm_session (431): Sent SessionSetupRes
INFO    2023-10-11 12:14:22,712 - iso15118.secc.controller.simulator (646): iso15118 state: SessionSetup
INFO    2023-10-11 12:14:22,713 - iso15118.shared.states (139): Entered state ServiceDiscovery
DEBUG    2023-10-11 12:14:22,713 - iso15118.shared.states (143): Waiting for up to 60.0 s
INFO    2023-10-11 12:14:25,880 - iso15118.shared.comm_session (398): The data link will terminate in 2 seconds and the TCP connection will close in 5 seconds.
INFO    2023-10-11 12:14:25,881 - iso15118.shared.comm_session (402): Reason: TCP peer closed connection
INFO    2023-10-11 12:14:27,883 - iso15118.shared.comm_session (410): terminated the data link
WARNING    2023-10-11 12:14:29,609 - iso15118.secc.transport.tcp_server (149): Closing TCP server

Output of the program. I have added several "time to encode" stamps these are in seconds. I am simply running both of the simulators. (EVCC and SECC). I this case it is the SECC.
The system it is running on should have the capacity in processing power to handle this.

Architecture:            aarch64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                  4
On-line CPU(s) list:   0,1
Off-line CPU(s) list:  2,3
Vendor ID:               ARM
Model name:            Cortex-A53
Model:               4
Thread(s) per core:  1
Core(s) per cluster: 2
Socket(s):           -
Cluster(s):          1
Stepping:            r0p4
CPU max MHz:         1400.0000
CPU min MHz:         1200.0000
BogoMIPS:            16.00
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid

Small note : I have modified the launch_gateway function to supply py4j with a set path JDK on an SD card because of storage space restrictions
        self.gateway = JavaGateway.launch_gateway(
            classpath=JAR_FILE_PATH,
            die_on_exit=True,
            java_path="/data/jdk-<IP_ADDRESS>+1/bin/java",
            javaopts=["--add-opens", "java.base/java.lang=ALL-UNNAMED"],
        )

ref:  iso15118/shared/exificient_exi_codec.py 29/66

Has anyone expierenced similar issues to mine? If any more info is required I will supply it.

Hi, we have experienced a drop in performance with embedded devices in comparison to general-purpose CPUs. The java engine is quite heavy for embedded applications and is not suitable to run the codec.
We have a rust codec, available only with our Josev Pro version, tailored for embedded applications where the performance is not an issue.

Then may I ask why the Supported app protocol encodes in such a swift time yet the other messages take such an extremely long time? It just doesn't make much sense to me why that message is encoded so fast while the others aren't. Thank you.

One reason could be because of the schema used to generate the EXI. The schema used for supportedAppProtocol is the V2G_CI_AppProtocol.xsd which is the simplest of the lot and is that single file. supportedProtocolRes afaik is the shortest EXI stream of all EXI messages.
Setting MESSAGE_LOG_EXI=True in the env would show this.
Majority of the other -2 messages might require traversing multiple schema files starting from [V2G_CI_MsgDef.xsd] (https://github.com/SwitchEV/iso15118/blob/master/iso15118/shared/schemas/iso15118_2/V2G_CI_MsgDef.xsd) and perhaps the slower performance.

Can I ask you if you tried to set MESSAGE_LOG_EXI=False and LOG_LEVEL=INFO and check if the timings improve?
logging is very expensive, consuming a lot of MCU time

I will try, thank you! I will post results
Cheers.

Alright, disabled both JSON and EXI logging has improved performance quite a bit.
I have additionally cranked up the OS niceness for the EVCC and SECC and enabled TCP_NODELAY for the SECC socket. It still however times out occasionally in the beginning. Performance has greatly improved though.
One thing I have also noted, the more cycles that run sequentially, the more the performance of the codec appears to improve. I can for example set the SDP retry cycles of the EVCC to around 50. and the longer it runs the more the performance of the codec appears to improve with the occasional outlier.
Perhaps I will also look into maybe improving the performance of the codec on the system myself by looking for optimizations, although I doubt I will find many.
If you have any other ideas for improving the performance I would love to hear them!

One reason could be because of the schema used to generate the EXI. The schema used for supportedAppProtocol is the V2G_CI_AppProtocol.xsd which is the simplest of the lot and is that single file. So a lot less grammar to traverse. Also, supportedProtocolRes afaik is the shortest EXI stream of all EXI messages in 15118-2. Setting MESSAGE_LOG_EXI=True in the env would show this. Majority of the other -2 messages requires traversing multiple schema files starting from V2G_CI_MsgDef.xsd and therefore a larger grammar file.

I do not believe I know quite enough about the library, however I feel it is still worth asking.
Could it be that the performance of supported app protocol is fast because it doesnt have to import very big XML files. The path for a regular message goes something like this.

<xs:import namespace="urn:iso:15118:2:2013:MsgHeader" schemaLocation="V2G_CI_MsgHeader.xsd"/> | 20 lines
<xs:import namespace="urn:iso:15118:2:2013:MsgBody" schemaLocation="V2G_CI_MsgBody.xsd"/> | 499 lines
MsgDef.xsd

<xs:import namespace="urn:iso:15118:2:2013:MsgDataTypes" schemaLocation="V2G_CI_MsgDataTypes.xsd"/> |  723 lines
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="../xmldsig-core-schema.xsd"/> | 319 lines
MsgHeader.xsd

<xs:import namespace="urn:iso:15118:2:2013:MsgDataTypes" schemaLocation="V2G_CI_MsgDataTypes.xsd"/> | 723 lines
MsgBody.xsd

Is this import chain called every time a message needs to be constructed? Or is it built once and cached? Reconstructing a message by hand "ex. SessionSetupReq" results in a pretty small file resembling the length of supported app protocol response.
I may be wrong about this, or maybe it is optimized away later but I am just trying to understand if there is maybe a better way to do this, like defining the message attributes in individual files and calling them when required.
Again, I may be wrong about this so please correct me if I am wrong.

Could it be that the performance of supported app protocol is fast because it doesnt have to import very big XML files.
Yes, the grammar for AppProtocol is way smaller compared to the others. The grammar is loaded only once. So I would expect the subsequent calls to be quicker.
The difference in length of message shouldnt matter that much
Correct - Length of the input does have an impact, but the size of the grammar has the bigger impact.
As a quick test, could you try the following please - construct an standalone SessionSetupReq(or another message that requires V2GCI_Msg_Def with random values) before running the actual session. Would like to see if this helps with your case.

I stripped away all message info related to other messages except for SessionSetup in the messages, however the session is still somehow running the simulated session in its entirety which is impressive.
I speculate that the .jar is loading these files statically internally and any changes I make are not doing anything.
Could this be true?
@shalinnijel2


[AutoRelease] t2-securitydevops-2022-12-29-00718(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/3609
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=5640

issue link:https://github.com/Azure/sdk-release-request/issues/3609


get_block_root(state.justified_epoch) != current_justified_epoch

I noticed this during testing and I raise it for consideration.
Consider the genesis hash is 0x42 * 32 and we're at slot GENESIS_SLOT + 1.

state.current_justified_root == 0x00 * 32
get_block_root(state, get_epoch_start_slot(state.current_justified_epoch)) == 0x42 * 32

There are two, seemingly valid ways to read the current_justified_root and they return different values.

Correct. chicken and egg problem with the state and block roots again.
I see two solutions:

Locally use b'\x00'*32 as a synonym to the genesis block root wrt to finality (don't revert past 0x00 means do revert past genesis block)
We can "surgically" add in previous and current justified_root as well as finalized_root in cache_state on the first transition after the genesis_slot. This would require putting a little bit of exceptional logic into the validator guide to explicitly handle attesting to his case.

shall we favor the former (the alias route)? refer: https://github.com/ethereum/eth2.0-specs/pull/1023

I'm inclined to go with the alias (I suppose that's obvious as I merged the PR). I actually tried surgically adding it to the state in a future slot and it significantly complicated the attestation logic with an exceptional rule.
Closing this issue. Happy to reopen if the debate is not yet done


type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'

Hi, I was trying your library and ran into this error. I am not able to extract the data from reverseGeocoding if I try like this:
try{
      Address newAddress = await GeoCode().reverseGeocoding(latitude: latitude, longitude: longitude);
      print(newAddress.city);
    } catch (e) {
      print(e);
    }

Error : type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'

Hello @vipinnegi90,
What's the type and value of both latitude and longitude variables?
*I've removed your API key from the original post, don't share it, keep it for yourself.

Hello @vipinnegi90,
What's the type and value of both latitude and longitude variables?
*I've removed your API key from the original post, don't share it, keep it for yourself.

I've been reviewing some specífic geocode requests and found out it could return an empty object for some of the attributes, which mainly caused the error you're reporting. I've worked on a fix that's already published.
Upgrade the package dependency, and it should be fixed.
dependencies:
  geocode: ^0.1.3

I've been reviewing some specífic geocode requests and found out it could return an empty object for some of the attributes, which mainly caused the error you're reporting. I've worked on a fix that's already published.
Upgrade the package dependency, and it should be fixed.
dependencies:
  geocode: ^0.1.3

@imvalient thanks for removing my key from op. Is there a way to delete the key and create a new one on my existing account as the key exposed for a while.
I updated the dependencies and now it shows a different error :

Invalid argument(s): The source must not be null

after few tries I was getting:

[Error]: (006) Request Throttled. Over Rate limit: up to 2 per sec. See geocode.xyz/pricing
and I'm not passing any key, since requests are throttled @ 1req/second for free requests.
Is there something that I'm missing?

@imvalient thanks for removing my key from op. Is there a way to delete the key and create a new one on my existing account as the key exposed for a while.
I updated the dependencies and now it shows a different error :

Invalid argument(s): The source must not be null

after few tries I was getting:

[Error]: (006) Request Throttled. Over Rate limit: up to 2 per sec. See geocode.xyz/pricing
and I'm not passing any key, since requests are throttled @ 1req/second for free requests.
Is there something that I'm missing?

Could you send me the values of latitude & longitude you're calling the function with?
Does it happen with all the calls you're making?
To change the API Key you should create a new account, if you wanna keep the account, write to geocode.xyz support team.
https://geocode.xyz/contact

Could you send me the values of latitude & longitude you're calling the function with?
Does it happen with all the calls you're making?
To change the API Key you should create a new account, if you wanna keep the account, write to geocode.xyz support team.
https://geocode.xyz/contact

Thanks for the contact info, I'll surely contact the support.
I was trying to pass : 13.023254762760828, 77.64545207539284
geocode](https://pub.dev/packages/geocoder) lib is fetching the location name for me. I was having issues with android since android fetches the short decimals for my marker eg. 13.023254, 77.645452 and geocoder resolves it in not proper way. With iOS I didn't face such issues as I get very specific location with higher decimal points like above.

Thanks for the contact info, I'll surely contact the support.
I was trying to pass : 13.023254762760828, 77.64545207539284
geocode](https://pub.dev/packages/geocoder) lib is fetching the location name for me. I was having issues with android since android fetches the short decimals for my marker eg. 13.023254, 77.645452 and geocoder resolves it in not proper way. With iOS I didn't face such issues as I get very specific location with higher decimal points like above.


Call to a member function add() on null

I have created attribute "conditions", and attach values.
$advert = \App\Models\Advert::find(400);
$advert->conditions->add(['value1', 'value2']);
Call to a member function add() on null

+1

I created an attribute that I try to add multiple values to, and I can not.
I don't understand.
Do I need to add some method to the model?

+1

Please close.
The error was due to the fact that in the database I did not specify the attribute is_collection, with value 1.


chore: dependencies cleanup and bumps

Description
root package.json:

Remove caret from dependencies
Bump all packages to latest version according to pnpm outdated
Bump dependabot limit to 8
Ran pnpm format to fix ~419 prettier errors after updating prettier to latest version

/app package.json:

Bump patch version updates of packages
Removed unused deps mentioned in #2504

Looks like pnpm format of commit https://github.com/Kwenta/kwenta/pull/2534/commits/81afb42f5f885512ff51fc5955c275fce1108b07 broke the TV chart:


release 0.31.2

We forgot to add a release commit to the backport #2614.

Edited the PR description so that the merge commit will at least be correct.

Will go ahead and merge/release this since the original PR that this releases had 2 ACKs, and also this is a somewhat-timely fix that we want to get out.

Tagged and published.


Code review

Great work so far.  However I would like to highlight the following aspects below:

Kindly, update the README file with information related to the project you are currently working on.

Also,
@Javed-Shahbaz: -Good effort in setting up the webpack configuration.

hi @Jrmcuervo, Good job configuring Webpack. 👍
You could consider in the.gitignorefile, to mark an entry as a folder, put the symbol "/" at the end of the name to differentiate it from a file.
say:
node_modules
consider to change
node_modules/
Otherwise everything looks great. 👏
Happy coding 😄


Update with master

This PR aligns beta with current master

:tada: This PR is included in version 7.6.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 7.7.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix crash when clicking on a link when in file comparison mode.

Explicitly check whether we have a source editor when before querying its "textView" property.

hey, I'd love to accept the PR but can you only include the fix for crash and not the colors, as this plugin is not meant to deal with colors like that?

Oops, the subsequent commits ended up in the PR.  I will create a new PR with only 	96361de.

you would't happen to know how I can add a toolbar button to the console area?  I want to display the current workspace and git branch there.


Scroll sync cannot be fully disabled

Describe the bug
Disabling scroll sync is not respected. When scroll sync is disabled, both panes can be scrolled independently however, typing in the editor pane causes the editor pane to scroll back to the top.
To Reproduce
Steps to reproduce the behavior:

Goto Tools->Options->Text Editor->Markdown->Advanced->Preview Window and set Enable Scroll Sync to False
Open a relatively long Markdown document
Scroll both panes to the bottom
Type some text in the editor
The preview pane will scroll to the top (or close to)

Expected behavior
The preview pane does not scroll

This is particularly problematic as the scroll sync doesn't really work when working with a Mermaid document of any appreciable size. Scroll jumps around as you are typing a new line of mermaid in (especially if you happen to get the syntax wrong).


psgl uuid suport?

postgres uuid table definition not work. example
create_table :books do |t|
  t.uuid :uuid
end

here is my temporary patch.

Thanks! :smiley:

Thanks! :smiley:
I will fix.

:+1:

v0.6.1.beta has been released.
Please try it out! :smiley:

great! I will try it soon!


Forms : Barcode support

Related to issue: #apollo/867

Description:
Introduces a new input field using BarcodeScannerFormInput with the ability to scan barcodes from the camera.
Summary of changes:

Added new field BarcodeTextField which provides text input in addition to a barcode scanner accessory.
The BarcodeScanner composable provides the scanning functionality using CameraX and MLKit. The official doc and implementation guide is here.

Barcode Scanning

A camera preview is displayed using the camerax PreviewView.
An ImageAnalysis.Analyzer is set on the PreviewView`s `CameraController which receives the frames from the camera for analysis.
BarcodeImageAnalyzer implements the ImageAnalysis.Analyzer interface and identifies barcodes from the given frames using MLKit.
The BarcodeImageAnalyzer provides any detected barcode and its bounding box as a Rect in the view coordinate system. This is used to overlay a graphic on top of the barcode in the camera preview.

Pre-merge Checklist

a vTest Job for this PR has been run

[ ] link:

Unit and/or integration tests have been added to exercise this PR's logic, and the tests are passing:

[ ] Yes
[ ] No

Thanks @sorenoid.


Deterministic fixture generation

Making fixture generation be deterministic so that we can more easily test for deltas when re-running fixture generation.
This involves adding Ord to the objects that can be stored in a DbRecord, as well as using StdRng with a seed instead of OsRng.
Also moved to using StdRng for a bunch of other tests, and added a more complex publish test.

Codecov Report
Base: 57.78% // Head: 86.58% // Increases project coverage by +28.80% :tada:

Coverage data is based on head (ebb8cf2) compared to base (62d9d6e).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #346       +/-   ##
===========================================
+ Coverage   57.78%   86.58%   +28.80%
===========================================
  Files          77       40       -37
  Lines       13577     8419     -5158
===========================================
- Hits         7845     7290      -555
+ Misses       5732     1129     -4603

Impacted Files
Coverage Δ

akd/src/append_only_zks.rs
96.03% <100.00%> (-0.07%)
:arrow_down:

akd/src/directory.rs
79.55% <100.00%> (+0.29%)
:arrow_up:

akd/src/storage/transaction.rs
58.06% <100.00%> (ø)

akd/src/storage/types.rs
74.52% <100.00%> (ø)

akd/src/tests.rs
94.53% <100.00%> (+0.10%)
:arrow_up:

akd/src/tree_node.rs
88.13% <100.00%> (ø)

akd_core/src/types/mod.rs
64.94% <100.00%> (+1.03%)
:arrow_up:

akd_core/src/ecvrf/ecvrf_impl.rs
93.23% <0.00%> (-0.16%)
:arrow_down:

akd_test_tools/src/fixture_generator/generator.rs

... and 40 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


feat(Card): create web component

Related Ticket(s)
#3534 #3408 #3842
Description
create Card web component
Changelog
New

add stories and test

Changed

styles
fixed footer
fix the image in featureCard stories
fix cardLink stories

@ariellalgilmore can you resolve the merge conflicts?

@ariellalgilmore looks like some prettier formatting issues now:


Questions about Flacoco

Hello,
I'm using Flacoco in the context of detecting energy regressions, based on the energy consumption of the tests.
The idea is the following:
First, we have a program in two versions P and P' where P is the program before applying a commit, and P' is the program after applying the commit.
I take the tests that execute the lines modified and compute their respective Software Energy Consumption (SEC) of both versions of the program.
Then, for each test t that has SEC(t, P') - SEC(t, P) > 0, meaning that the commit increases the SEC of the test t, I make them fail by inserting a junit.framework.Assert.fail() at the end of their body.
Then, I give to Flacoco only the tests that are now failing. I take the ranked list of lines, and filter it by keeping only the modified lines.
In your opinion, is it a proper way to use Flacoco? Should I also use the "passing" tests in Flacoco? Does the junit.framework.Assert.fail() significant regarding the fault localization accuracy of Flacoco?
Thank you very much!

Hello,

Hi @danglotb ,

I'm using Flacoco in the context of detecting energy regressions, based on the energy consumption of the tests.

Nice!

The idea is the following:
First, we have a program in two versions P and P' where P is the program before applying a commit, and P' is the program after applying the commit.
I take the tests that execute the lines modified and compute their respective Software Energy Consumption (SEC) of both versions of the program.
Then, for each test t that has SEC(t, P') - SEC(t, P) > 0, meaning that the commit increases the SEC of the test t, I make them fail by inserting a junit.framework.Assert.fail() at the end of their body.
Then, I give to Flacoco only the tests that are now failing. I take the ranked list of lines, and filter it by keeping only the modified lines.

If I understood correctly, what you are doing is essentially computing the code coverage of the tests that you implicitly fail. Correct?

In your opinion, is it a proper way to use Flacoco?

You can use Flacoco to compute code coverage in this way, however it might make more sense to just use a code coverage tool directly.

Should I also use the "passing" tests in Flacoco?

If you don't use the passing test cases, all executed lines will have a suspiciousness value of 1.0.
If you pass the test cases the suspiciousness values will take them into account. This means that lines predominantly executed by failing test cases will have higher values than others.
Please note that we currently have a limitation #57, which means we can only select test classes.
If you want to run specific test methods within a class, test-runner supports this and it can be easily done through flacoco. I can setup a branch for you if that's the case. You'll, ofc, be limited by the problem in #57.

Does the junit.framework.Assert.fail() significant regarding the fault localization accuracy of Flacoco?

What do you mean by "fault localization accuracy"? By implicitly failing a test case, it will be counted as a failing test case like any other.

Hi @andre15silva,
Thank you for your answers.

If I understood correctly, what you are doing is essentially computing the code coverage of the tests that you implicitly fail. Correct?

Not really, what I want is to compute a score for each modified line that corresponds to their suspiciousness regarding the energy regression.
This scenario can be seen as classical regression, where you want to find out which lines seem to be responsible for the bug, that is detected by a failing test case.
However, in my case, no test case is failing, so I make artificially the ones that reveal the energy regression failing, and then I can apply Flacoco to have the ranking.

What do you mean by "fault localization accuracy"? By implicitly failing a test case, it will be counted as a failing test case like any other.

What I want to know is that does the error that makes the test failing has an impact on the result of Flacoco? This junit.framework.Assert.fail() provides a stack trace without any link with the "production" code. I am afraid that it would result in a less accurate result.
Best


Heads up: Plausible site verification tool

Hey,
just wanted to notify you about a new feature we've introduced in Plausible - a site verification tool allowing users to troubleshoot their integrations.
It employs a headless agent that visits the site and seeks for window.plausible() function being defined.
The signature is plausible(eventName, options) where options must be able to accept a callback key with a value of function({status}) - status is the HTTP status of /api/events response. The agent will send a custom event using that function. Otherwise the verification will be marked as failing.
Our tracker has been updated accordingly, as well as the npm package. If you like the next-plausible module to be verifiable, please consider applying similar changes.
Many thanks!

Hey @aerosol, thanks for the heads up! However I am not sure if anything needs to be done on my side. next-plausible uses window.plausible and does not overwrite it.
Please let me know if I am missing something.

Hey @4lejandrito - thanks for coming back to me.

next-plausible uses window.plausible and does not overwrite it.

Good to know, apologies for not looking at the source before posting.
I think this should be fine then. Can we safely assume that the tracker script fetched from plausible origin is always the latest in this setup (modulo browser/CDN caches)?  Cheers.

Can we safely assume that the tracker script fetched from plausible origin is always the latest in this setup (modulo browser/CDN caches)?

Yes. This module just creates the <script> tag pointing to the original plausible script.


Protegeé displays object properties as annotation properties

Hi,
I don't know if it is something inherent to Ontop, but when I try to materialized triples with object properties in a new .ttl file (eg, :Artist :creates :Work ), the object property is not recognized as such on Protegée. Instead, it is displayed as an Annotation property. This happens both with the CLI and the plugin. If instead I materialize triples within the same ontology file everything is fine.
Is Ontop supposed to work like this? (below two snapshot of the original ontology and the file produced as an output)

My best

Hi, Protégé expects properties to be declared as instances of owl:ObjectProperty to be recognised as object properties. When it does not know if it is an instance of owl:ObjectProperty orowl:DataProperty, it treats it is as an annotation property.
Ontop on its side has no problem dealing with any property.
The pain point you experienced is specific to the Protégé UI.
Best,
Benjamin

Hi Benjamin,
thanks a lot, I've dealt with this painful point :)
best,
Marco


Avoid crash when CanvasTexture used with light decal atlas

Fixes: https://github.com/godotengine/godot/issues/69692
Supersedes: https://github.com/godotengine/godot/pull/69739
This fix was also applicable to light projectors so I added it there. The error is the same as the one currently found in the decal code.
Another QoL thing we could do (but I don't know how) is to avoid showing all Texture2Ds in the editor. Right now when assigning a texture to a PointLight2D, users are able to select CanvasTexture even though it isn't a valid option. It would be nice to restrict the popup list to only valid options instead of showing every single texture2D

Thanks!


JST SH: Add suction cap MPNs and device name prefix

SUMMARY

This PR adds:

MPNs for the BM variants that have a 'suction cap', indicated by an appended 'T' to the non-'suction cap' MPN
A StringAttribute FEATURES 'Suction Cap' for the new MPNs
Prefix all devices with 'JST ' (mind the whitespace)

See https://github.com/LibrePCB/librepcb-parts-generator/pull/131 for the corresponding changes in the generator script
DATASHEETS / REFERENCES

none
OPEN QUESTIONS / UNRESOLVED ISSUES

none
CHECKLIST

[x] I have read and followed the library conventions¹.
[x] For packages, I followed IPC7351C (see details in library conventions).
[x] For modified elements, I bumped their version number².
[ ] I already used the new library elements in a design and verified their correctness (optional).
[x] I'm the copyright owner of the added content (i.e. the changes are made by myself, not copied/imported from somewhere else).
[x] I agree to publish all my changes under the CC0 Public Domain License³, allowing everyone to use and modify the content without any restrictions.

¹ Library Conventions: https://docs.librepcb.org/#libraryconventions
² Minor version bump if only metadata was modified (e.g. "0.1" -> "0.1.1"), major version bump if functional changes were made (e.g. "0.1" -> "0.2")
³ CC0 Public Domain License: https://en.wikipedia.org/wiki/CC0

I see it's the "non-canonical file" CI issue again, I thought I fixed it. Will push an update

I see it's the "non-canonical file" CI issue again, I thought I fixed it but forgot to run the librepcb-cli locally to verify.

Ah, I suspect you are the first person using librepcb-parts-generator on Windows where it might generate CRLF line endings :see_no_evil:
Probably lines like this (in the entity classes):
with open(path.join(dir_path, '.librepcb-dev'), 'w') as f:

would need to be changed to this:
with open(path.join(dir_path, '.librepcb-dev'), 'w', newline='\n') as f:

to make it working correctly on Windows.

Ah, I suspect you are the first person using librepcb-parts-generator on Windows where it might generate CRLF line endings 🙈

Yes, your suspicion is correct 😄 But usually git converts the line endings to LF upon commiting since I have core.autocrlf=true but it seems * -text inside the .gitattributes prevents this from happening. Maybe it'd be a good idea to change the .gitattributes to always use LF? Or use the code change you proposed with using newline='\n'.
Anyway, thanks for review & merge!

Maybe it'd be a good idea to change the .gitattributes to always use LF?

No, IMHO it's the responsibility of the tool (in this case librepcb-parts-generator) to generate the desired line endings, not the responsibility of Git. LibrePCB's file format clearly states that Unix line endings shall be used, so it's a bug in the generator not following this specification.


Update ui for command box and result display

Closes #95

Codecov Report

Merging #96 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #96   +/-   ##
=========================================
  Coverage     25.17%   25.17%
  Complexity      144      144
=========================================
  Files            84       84
  Lines          1295     1295
  Branches         96       96
=========================================
  Hits            326      326
  Misses          948      948
  Partials         21       21

Continue to review full report at Codecov.

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


unable to navigate and select from hierarchy in set editor

ecl editor - ecl builder - add concept. Term search , select term, look in hierarchy, =go to a parent. You cannot select anything other than the one you first selected.


[WIP] cache build

Problems:

[ ] in the current way of functioning, we need to reuse the exact prefix to make things work
[x] cache key is obviously wrong right now
[ ] we don't restore the source directory contents yet, but maybe we can work on that later. This is already quite useful for split packages.

I have been working on this package (forked from the feedstock):
context:
  name: PCMSolver
  version: 1.2.3
  build: 9

recipe:
  name: ${{ name|lower }}-split
  version: ${{ version }}

source:
  url: https://github.com/${{ name }}/${{ name|lower }}/archive/v${{ version }}.tar.gz
  patches:
    - 0001-update-cmake-adapt-for-win-add-licenses.patch
    - 0002-final-touches.patch
    - 0003-likely-catch-fix-for-osx_arm64.patch
  sha256: d1ef6bdc268a2e719b36c85125c3543df7a26e1a738daf4483f4ded0c76f5b60

build:
  number: ${{ build }}
  # Only build for one python version because python module is repackaged as noarch
  skip: match(python, "!=3.12")

cache:
  build:
    script: build_cache.sh
  # TODO: run-exports should be computed again in the outputs.
  requirements:
    build:
      # - python                              # [build_platform != target_platform]
      # - cross-python_{{ target_platform }}  # [build_platform != target_platform]
      - cmake
      - ninja
      - if: unix
        then:
          - ${{ compiler('c') }}
          - ${{ stdlib("c") }}
          - ${{ compiler('cxx') }}
          - ${{ compiler('fortran') }}
      - if: win
        then:
          - ${{ compiler('m2w64_c') }}
          - ${{ stdlib("c") }}
          - ${{ compiler('m2w64_fortran') }}
    host:
      - libboost-devel
      - eigen
      - python
      - zlib
    run:
      - ${{ 'm2w64-gcc-libgfortran' if win }}
      - python

outputs:
  - package:
      name: pcmsolver
    build:
      noarch: python
      # Only one pcmsolver variant by having a shared build string for all platforms
      string: py_${{ build }}
      files:
        - bin/*.py
        # Note: had to add `/` at the end to match this as a folder
        - lib/python3.12/site-packages/pcmsolver/
        # windows
        - Library/bin/*.py
        - Lib/site-packages/pcmsolver/
    requirements:
      host:
        - python
      run:
        - python
        - ${{ pin_subpackage('libpcm', max_pin='x.x.x') }}
      run_exports:
        - ${{ pin_subpackage('pcmsolver', max_pin='x.x.x') }}
        - ${{ pin_subpackage('libpcm', max_pin='x.x.x') }}
    tests:
      - python:
          imports:
            - pcmsolver
      # files:
      #   - molecule.inp
      # requires:
      #   - m2w64-binutils                                               # [win]   # provides objdump.exe
      # commands:
      #   # Verify library
      #   - test -L $PREFIX/lib/libpcm$SHLIB_EXT                         # [unix]
      #   - test ! -f $PREFIX/lib/libpcm.a                               # [unix]
      #   - test -f $SP_DIR/pcmsolver/pcmparser.py                       # [unix]
      #   - if not exist %PREFIX%\\Library\\lib\\libpcm.dll.a exit 1     # [win]   # gnu import lib
      #   - if not exist %PREFIX%\\Library\\lib\\libpcm.lib exit 1       # [win]   # ms import lib
      #   - if not exist %PREFIX%\\Library\\bin\\libpcm.dll exit 1       # [win]   # gnu/ms dyn lib
      #   - if exist %PREFIX%\\Library\\lib\\libpcm.a exit 1             # [win]   # gnu static lib removed
      #   - if not exist %SP_DIR%\\pcmsolver\\pcmparser.py exit 1        # [win]
      #   # Verify executable
      #   - test -f $PREFIX/bin/go_pcm.py                                # [unix]
      #   - test -f $PREFIX/bin/run_pcm                                  # [unix]
      #   - if not exist %PREFIX%\\Library\\bin\\go_pcm.py exit 1        # [win]
      #   - if not exist %PREFIX%\\Library\\bin\\run_pcm.exe exit 1      # [win]
      #   # Verify accessories
      #   - test -e $PREFIX/include/PCMSolver/pcmsolver.h                # [unix]
      #   - test -e $PREFIX/share/cmake/PCMSolver/PCMSolverConfig.cmake  # [unix]
      #   - if not exist %PREFIX%\\Library\\include\\PCMSolver\\pcmsolver.h exit 1  # [win]
      #   - if not exist %PREFIX%\\Library\\share\\cmake\\PCMSolver\\PCMSolverConfig.cmake exit 1  # [win]
      #   # Inspect linkage
      #   - ldd -v $PREFIX/lib/libpcm$SHLIB_EXT                          # [linux and build_platform == target_platform]
      #   - otool -L $PREFIX/lib/libpcm$SHLIB_EXT                        # [osx]
      #   - objdump.exe -p %PREFIX%\\Library\\bin\\libpcm.dll | findstr /i "dll"  # [win]
      #   # Actually test
      #   - python $PREFIX/bin/go_pcm.py --inp molecule.inp --exe $PREFIX/bin  # [unix]
      #   - python %PREFIX%\\Library\\bin\\go_pcm.py --inp molecule.inp --exe %PREFIX%\\Library\\bin  # [win]
      #   - cat molecule.out                                             # [unix]
      #   - type molecule.out                                            # [win]

  - package:
      name: libpcm
    requirements:
      run_exports:
        - ${{ pin_subpackage('libpcm', max_pin='x.x.x') }}
      ignore_run_exports:
        from_package:
          - python

    build:
      files:
        - bin/run_pcm                        # [unix]
        - lib/libpcm*                        # [unix]
        - share/cmake/PCMSolver              # [unix]
        - include/PCMSolver                  # [unix]
        - Library/include/PCMSolver          # [win]
        - Library/bin/run_pcm*               # [win]
        - Library/bin/libpcm*                # [win]
        - Library/lib/libpcm*                # [win]
        - Library/share/cmake/PCMSolver      # [win]
    tests:
      # requires:
      #   - m2w64-binutils                                               # [win]   # provides objdump.exe
      # commands:
      #   # Verify library
      #   - test -L $PREFIX/lib/libpcm$SHLIB_EXT                         # [unix]
      #   - test ! -f $PREFIX/lib/libpcm.a                               # [unix]
      #   - if not exist %PREFIX%\\Library\\lib\\libpcm.dll.a exit 1     # [win]   # gnu import lib
      #   - if not exist %PREFIX%\\Library\\lib\\libpcm.lib exit 1       # [win]   # ms import lib
      #   - if not exist %PREFIX%\\Library\\bin\\libpcm.dll exit 1       # [win]   # gnu/ms dyn lib
      #   - if exist %PREFIX%\\Library\\lib\\libpcm.a exit 1             # [win]   # gnu static lib removed
      #   # Verify executable
      #   - test -f $PREFIX/bin/run_pcm                                  # [unix]
      #   - if not exist %PREFIX%\\Library\\bin\\run_pcm.exe exit 1      # [win]
      #   # Verify accessories
      #   - test -e $PREFIX/include/PCMSolver/pcmsolver.h                # [unix]
      #   - test -e $PREFIX/share/cmake/PCMSolver/PCMSolverConfig.cmake  # [unix]
      #   - if not exist %PREFIX%\\Library\\include\\PCMSolver\\pcmsolver.h exit 1  # [win]
      #   - if not exist %PREFIX%\\Library\\share\\cmake\\PCMSolver\\PCMSolverConfig.cmake exit 1  # [win]
      #   # Inspect linkage
      #   - ldd -v $PREFIX/lib/libpcm$SHLIB_EXT                          # [linux and build_platform == target_platform]
      #   - otool -L $PREFIX/lib/libpcm$SHLIB_EXT                        # [osx]
      #   - objdump.exe -p %PREFIX%\\Library\\bin\\libpcm.dll | findstr /i "dll"  # [win]

about:
  homepage: https://github.com/PCMSolver/pcmsolver
  repository: https://github.com/PCMSolver/pcmsolver
  documentation: https://pcmsolver.readthedocs.io/en/stable/
  license: LGPL-3.0-only AND MIT AND MIT-0 AND Apache-2.0
  license_url: https://opensource.org/license/lgpl-3-0/
  license_file:
    - LICENSE
    - THIRD-PARTY-LICENSES
  summary: "R. Di Remigio & L. Frediani's Polarizable Continuum Model (PCM)"

extra:
  recipe-maintainers:
    - github_user

Some interesting observations/challenges around the run dependencies:

first package (libpcm) should not depend on Python at all
second package should only have a loose dependency on Python

I think the first package shoudl add a ignore_run_exports: from_pacakge: python
and the second package should only get the "noarch" runexports applied.


Failed to import profile: Line is too long

Everything went fine on the Terraform side:
module.openvpn-ephemeral.null_resource.obtain_ovpn_file (local-exec): fatal error: An error occurred (404) when calling the HeadObject operation: Key "openvpn.ovpn" does not exist
module.openvpn-ephemeral.null_resource.obtain_ovpn_file (local-exec): ls: openvpn.ovpn: No such file or directory
module.openvpn-ephemeral.null_resource.obtain_ovpn_file: Still creating... [1m0s elapsed]
module.openvpn-ephemeral.null_resource.obtain_ovpn_file (local-exec): Completed 6.9 KiB/6.9 KiB (9.7 KiB/s) with 1 file(s) remaining
module.openvpn-ephemeral.null_resource.obtain_ovpn_file (local-exec): download: s3://terraform-20230801220018334600000001/openvpn.ovpn to ./openvpn.ovpn
module.openvpn-ephemeral.null_resource.obtain_ovpn_file (local-exec): openvpn.ovpn
module.openvpn-ephemeral.null_resource.obtain_ovpn_file: Creation complete after 1m7s [id=2983115070959307466]
Releasing state lock. This may take a few moments...

Apply complete! Resources: 9 added, 0 changed, 0 destroyed.

The final step of importing the openvpn.ovpn profile crashes with the following message: "Failed to import profile: Line is too long"

I am using OpenVPN Connect 3.4.2 (4547)
I also tried to use tunnelblick 4.0.0. Similar error message:

<PHONE_NUMBER>.626361 b000 Options error: In /Library/Application Support/Tunnelblick/Users/dorst/openvpn.tblk/Contents/Resources/config.ovpn:4: Maximum option line length (256) exceeded, line starts with remote <!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name=
<PHONE_NUMBER>.626584 1040 Use --help for more information.

     More details may be in the Console Log's "All Messages"

Hi @cemdorst
First off - my sincerest apologies for the delay in this reply!! I have had some crazy life changes as of recent and my beloved  terraform-aws-openvpn-ephemeral project has not been on the high list of priorities at this time!
Can you please confirm you are using the latest tag v1.1.0 on your side?
Thanks!
Paul

Hi Paul, no problem! I hope that the life changes came in at a good time!
So, about your lovely module, yes, I am using 1.1.0. Looking at it, I would say it is something with the openvpn-install  script. It is generating the remote config line with a lot of unnecessary stuff, exceeding the length limit. If I just replace all the line by remote <my ec2 public IP> everything works.


adding a Doxyfile

I wonder if adding a Doxyfile would be a worthwhile change. It can generate a web page from the README.md. I think search engines prefer web pages over md files in GitHub repos, though I've never researched the results that thoroughly.
@sexybiggetje you can see here how it converted my rmw README.md into a web page: https://remove-to-waste.info/doxygen/html/
wdyt?

yeah, true. :)


[Bug Report] Menu state is not saved

Element UI version
2.3.3
OS/Browsers version
Chrome 65.0.3325.181
Vue version
2.5.16
Reproduction Link
https://jsfiddle.net/deemetr/eywraw8t/23943/
Steps to reproduce

Click on "expand" button
Select node "Navigation One\item four\item one"
Click on button "collapse"
Click on button "expand"

What is Expected?
The node from step №2 still selected
What is actually happening?
Navbar state set to default

I have the same problem

I face this bug too

+1

怎么解决

Fixed in #12178

There is any way to make the behavior of collapse and expand menu same as anti-design menu? when i expand  the menu,  it's behavior should be  same as the last behavior before i collapse the menu.


Double block send when network is bad.

When the network conditions are not good and/or the blocks get big, blocks can be sent twice. This is sometimes visible during a sync: when the node that's syncing requests a block and the response fails to arrive before the timeout (but the block is still in-flight), the syncing peer will re-request the block, so the node will re-receive it.
It causes the node to enter in a re-request cycle (each block twice), eventually the node gets the block but it lags behind because of the block sizes.
Update: after further analysis it's not so obvious why this happens, but probably a lag in the network itself. The request is send, the other node starts replying, but the first message (frame) takes 5s to get the node and even more for the rest of the block).
Proposed solution:

[requesting side] on request - check that the block is not in the out-queue.
[replying side] on timeout - check that the block is not in the in-queue.
[logs] log the start and end of the send.
[logs] log the start and end of the receive.

There's been improvement on this, but after multiple refactors the issue is not reproducible.

Close due to fixed and not repro again.


Improve validation

#53
#55
and other

Facet & tooltips validation

Check nessesary layer mappings

#108

@AndreiKingsley What's with this issue? Are we closing it?


Support F20

I think support for F20 was intended all along since it's is mentioned in Spec.md and MASShortcutValidator.m accounts for it.
(Unfortunately, supporting F21–F24 isn't going to be this straigtforward: we run out of kVK_F constants after F20.)

Thanks! It could be undocumented what 21-24 are. I'll wait to merge this if you want to explore and see if you can figure anything further out (I don't mind allowing them even if they are undocumented, since it would kind of be an "at your own risk" type of behavior anyhow).

Unfortunately, F21–F24 don't even trigger the event handler that MASShortcutView.activateEventMonitoring sets up. I tried changing the event type mask to NSEventMaskAny, but the handler still isn't called when I try to record F21 as a shortcut. I don't know what other ways there might be to capture events, or whether those ways would include F21–F24.
NSEvent does document an enum that includes constants for F21–F35(!!), but there's no information about what might return those values.
I'd say go ahead and merge this PR as is, because I don't think I'm going to have anything further for you any time soon.

Alrighty, this'll go in the next Rectangle release. Thanks!


RN Packaged on Web

Hi
I'm trying to build a small app for ios, Android and Web as POC but I cannot get RN packages working on Web (They work fine on ios and Android). I've been trying Native-Base and/or React-Native-Easy-Grid. (Is there something I'm missing?)
Thanks
Here is the Error I get:
Entrypoint bundle = bundle.js bundle.f0a091cd09b580a1e966.hot-update.js bundle.js.map bundle.f0a091cd09b580a1e966.hot-update.js.map
[./node_modules/react-native-easy-grid/Components/Col.js] 286 bytes {bundle} [built] [failed] [1 error]
[./node_modules/react-native-easy-grid/Components/Grid.js] 297 bytes {bundle} [built] [failed] [1 error]
[./node_modules/react-native-easy-grid/Components/Row.js] 305 bytes {bundle} [built] [failed] [1 error]
[./node_modules/react-native-easy-grid/index.js] 164 bytes {bundle} [built]
[./src/screenHome.js] 3.59 KiB {bundle} [built]
    + 725 hidden modules

ERROR in ./node_modules/react-native-easy-grid/Components/Col.js 30:8
Module parse failed: Unexpected token (30:8)
You may need an appropriate loader to handle this file type.
|     if(this.props.onPress){
|       return(
>         <TouchableOpacity onPress={this.props.onPress}
|         {...this.prepareRootProps()}>
|     <View
 @ ./node_modules/react-native-easy-grid/index.js 6:0-35 8:0-25
 @ ./src/screenHome.js
 @ ./src/app.js
 @ ./index.web.js
 @ multi (webpack)-dev-server/client?http://<IP_ADDRESS>:8080 (webpack)/hot/dev-server.js ./index.web.js

ERROR in ./node_modules/react-native-easy-grid/Components/Row.js 31:12
Module parse failed: Unexpected token (31:12)
You may need an appropriate loader to handle this file type.
|       if(this.props.onPress){
|         return(
>             <TouchableOpacity onPress={this.props.onPress}
|             {...this.prepareRootProps()}>
|           <View
 @ ./node_modules/react-native-easy-grid/index.js 4:0-35 8:0-25
 @ ./src/screenHome.js
 @ ./src/app.js
 @ ./index.web.js
 @ multi (webpack)-dev-server/client?http://<IP_ADDRESS>:8080 (webpack)/hot/dev-server.js ./index.web.js

ERROR in ./node_modules/react-native-easy-grid/Components/Grid.js 42:8
Module parse failed: Unexpected token (42:8)
You may need an appropriate loader to handle this file type.
|     if(this.props.onPress){
|       return(
>         <TouchableOpacity onPress={this.props.onPress}>
|     <View
|       ref={component => this._root = component}
 @ ./node_modules/react-native-easy-grid/index.js 5:0-37 8:0-25
 @ ./src/screenHome.js
 @ ./src/app.js
 @ ./index.web.js
 @ multi (webpack)-dev-server/client?http://<IP_ADDRESS>:8080 (webpack)/hot/dev-server.js ./index.web.js

Never tried those libraries, but problem there seems to be that they are not being processed by babel, so detects JSX as invalid.
If you eject the project you can open your webpack.config.js and add it to the include path.
const babelLoaderConfiguration = {
    test: /\.js$/,
    // Add every directory that needs to be compiled by Babel during the build.
    include: [
        path.resolve(appDirectory, 'src'),
        path.resolve(appDirectory, 'node_modules', 'react-native-easy-grid'), <-- HERE
    ],
    use: {
        loader: 'babel-loader',
        options: {
            babelrc: false,
            presets: [
                ['module:metro-react-native-babel-preset'],
            ],
            plugins: ['@babel/plugin-proposal-class-properties'],
        },
    },
};

@danielmarino24i / @CHaNGeTe good suggestion!
@ahwelgemoed fixed in 0.21.12

@ahwelgemoed added support for native-base (https://github.com/GeekyAnts/NativeBase)  in 0.21.14.
simply rnv plugin add and pick native-base from options and re-run project


Problem integrating with prerender.io (PHP lavarel prerender middleware)

Hi,
I am trying to set up prerender.io for our website. But I have problem integrating with service.prerender.io.
Our web app is using PHP Lavarel and knockoutjs as the main framework.
I have already set up the PHP lavarel prerender middleware.
I also set up the code prerender server running as http://localhost:3000
The url of our web app is like: https://example.com/#!/support (we use hashbang #!)
When I test it locally, it works well. When I get access to https://localhost/?escaped_fragment=/support in browser, it returns static HTML. and the log in nodejs console looks good.
Then I change 'prerender_url' => 'https://service.prerender.io', and set up 'prerender_token' and deployed it to amazon web service.
The web server is behind load balancer(ELB).
The following url also works fine
https://service.prerender.io/https://example.com/?_escaped_fragment_=/support
I can get back static html.
But if i directly try to get access to
https://example.com/?_escaped_fragment_=/support
There is no response returned.
From prerender.io web console's crawl status, I can see the status code is 302.
I have no idea what the problem is. Please give help!
Thanks,

It sounds like you might be sending an http URL to our prerender service? If you are using SSL termination at the load balancer, then your middleware might be seeing the http URL instead of the https URL so it's just forwarding the http URL to us. We would then try to access the http URL and get an http -> https redirect and return that to the crawler.
Can you try to force your middleware to send an https URL to us in production?

I have fixed the problem change http to https.
Now when I load in chrome
https://example.com/?_escaped_fragment_=/support
From Chrome's Network console, I see finally 502 http code returned and I cannot see the web page.
But in prerender.io web console, I can see that page is cached successfully and from Crawl Stats, I see that URL and the status Code is 200.
Is it normal?

Hmm, no that isn't normal. If we are returning a 200 status code, your middleware should also return a 200 status code. Are you able to debug the middleware or look in your logs for hints at what's causing the 502?

I think I have fixed the problem. The reason is basically not accept the php server's response with the header of service.prerender.io.  I have to change the header to the php web server's own header.


Behavior changed since?

Both the "Old Behavior" paragraph and the "New Behavior" paragraph list .NET 6.0

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

ID: 3fa60e1c-9c9a-ce16-2e47-c41857fc8c48
Version Independent ID: c3b792d7-50ab-ff45-09bf-37a7550f0e09
Content: Breaking change: System.Drawing.Common only supported on Windows - .NET
Content Source: docs/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only.md
Product: dotnet-fundamentals
GitHub Login: @gewarren
Microsoft Alias: gewarren

The behavior changed in .NET 6. The "old behavior" section states "Prior to .NET 6...". I'll close this issue, but if you still think there's an error, please reopen.

The reason I presumed it was in error, is because I was directed there by a link on the System.Drawing.Common 7.0.0 nuget package, which specifically states a change Since .NET 7, with a link to https://aka.ms/systemdrawingnonwindows for more information. However that link redirected to this help document which doesn't mention .NET 7 at all. So I'm not sure if there's actually a change relevant to .NET 7 or not?
I don't believe I can re-open issues.

@nickalbrecht What happened in .NET 7 is that they removed the EnableUnixSupport configuration switch. There is a note in a purple box at the bottom of the page stating that the switch is only available in .NET 6. I wonder if that is why the package links there?

Possibly. I always just assumed that when documentation says "Only available in version X", is because that's when the change was made, and being accurate at the time it was noted, is not available in any previous version. I never take it as a literal "Only in version X, not in any previous version nor any future version".
I had specifically tried a Ctrl-F on the page before creating the issue, when I read the package description, to try and find an explanation of the .NET 7 disclaimer, but if that's the only relevant line "This switch is only available in .NET 6.", That's no more information than what the package  stated. So I'm not sure what having a "Go here for more information" adds 😅
Maybe worth explicitly mentioning the change in .NET 7 instead of implying it


And found a big bug

Different projects in the same project, using the tray to INSTALL_FAILED_CONFLICTING_PROVIDER problems in API = 19

You cannot use the same authority for different projects. It's recommended to use your package name as authority to prevent those conflicts.


myfixip: Support for mod_http2

Hello,
Do you have any plans to support mod_http2?
With H2SerializeHeaders off it seems like mod_myfixip has no effect (the hooks probably aren't used) but with H2SerializeHeaders on I get the following (not sure if all 3 are related to myfixip)
[ssl:error] [pid 40] AH02031: Hostname my.example.com provided via SNI, but no hostname provided in HTTP request
[http2:warn] [pid 40] (22)Invalid argument: AH02955: h2_response: invalid header[0] '<html><head>\n'
[core:notice] [pid 6] AH00052: child pid 40 exit signal Segmentation fault (11)

Thanks

Well @mnoorenberghe,
myfixip is a filter that run before any protocol (HTTP/HTTPS); In theory it should work... but If mod_http2 need special care, yes, I will support...
I want to reproduce the error. I need versions... (apache, mod_http2, mod_myfixip, and browser) and a minimal sample config, can you send me?

This definitely remains an issue. Had to remove myfixip once we enabled http/2; https connections were breaking.
Apache2 2.4.27 (built-in http2 module), myfixip hash 7d002ee18a1179d0d9b1a70eab4eaf98f955ca65, and the basic config to enable it for port 443:

        RewriteIPResetHeader on

It didn't break every connection; it just broke certain ones, so this will be a fun one to chase.

ok @jimmy-biznessapps, as more info give to me, I can be faster to solve it :-)

ubuntu linux? version?
what browser? version?
a bit more that "zen" config sample to reproduce?
thnks!

Ubuntu 16.04 (although I'm using ondrej's PPA for apache2 to pull in 2.4.27).
Browser -- Chrome, latest (61.0.3163.100 official)
config sample -- aw geez, man, we have so much config it's a mess.

We were using an AWS Classic ELB in TCP mode with PROXY protocol enabled, and http/2 turned on for port 443.
Also -- and this turned out to be important after we disabled myfixip -- we had the ELB configured for a 300s KeepAlive, but apache2 for only a 5s KeepAliveTimeout. However, simply adjusting the apache2 KeepAliveTimeout wasn't enough to fix the issue; myfixip also had to be removed.
I won't scare you off with our config; we have an enormous number of vhosts (literally thousands), a couple dozen htaccess files peppered everywhere. Also: We are running a PHP backend in php-fpm with apache2 in using mpm_event, with jQuery on the front-end making ajax calls.
The basic issue is (I believe) with ServiceWorker and http2 persistent connections, making multiple large ajax calls on the same connection. The first call would succeed, but all future calls would fail, until apache2 was restarted. And it was odd, because this only recurred with certain calls, not with all of them. The call in question depended on login session data and had roughly ~128KB of POST data (it's the call made when the user "Saves" their design).
I hope this is more helpful.


Feature Request: A way to hide and show quest objectives.

A way to hide quest objectives by default and revealing them one by one as the players continue to progress in order to not spoiler them up front would be very great.

Both hiding individual tasks and a toggle "hide future tasks from players" are often requested features that both are on a TODO list that you can check in README.md file.
Hiding specific tasks will for sure be in nearest update ;)

closed by #24


Missing format description for AppxPackages.xml in feature / reg key installappxpackages

When configuring the feature "installappxpackages" the registry key will refer to the file %APPDATALOCAL%\FSLogix\AppxPackages.xml
But literally nowhere on earth including Google the required structure for this file is documented.
Please add also a description about the required structure. Or if a stub is generated when enabling it then even this information.
We need to know how this can be configured in detail! Especially as we have currently Appx apps just disappearing from user profiles where a re-registering is required often.
https://learn.microsoft.com/en-us/fslogix/reference-configuration-settings?tabs=profiles#installappxpackages
Thank you for fixing this documentation bug.

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

ID: 01eecaa9-373c-0b07-ea97-4f818ff3a117
Version Independent ID: 01eecaa9-373c-0b07-ea97-4f818ff3a117
Content: Configuration Settings - FSLogix
Content Source: fslogix-docs/reference-configuration-settings.md
Product: fslogix
GitHub Login: @msft-jasonparker
Microsoft Alias: japarker

The AppxPackages.xml file is not meant to be edited or modified. Editing this file may cause unexpected results and the file will be overwritten by the FSLogix service.


Add exporter for code

Add a generic exporter to export code.

Export will have to stub out any JSON models that are loaded or textures.

Seems to be done for the first Alpha.


Add file detection options

[x] Changes have been thoroughly tested to not break existing functionality.
[x] New functionality has been documented or existing documentation has been updated to reflect changes.
[x] Visual changes are explained in the PR description using a screenshot/recording of before and after.

This option speeds up the form access speed. Trying to modify js is unsuccessful. If it is 0 here, it is better to show that the file size is unavailable.

Is there a way to return 0 or -1 or false, hide the file size display, or display as Size not available, for example:
filepond Labels: labelFileSizeNotAvailable
DEFAULT VALUE: 'Size not available'
Label used when no file size information was received

 $FileDetection  = $component->shouldFileExistDetection();

Variable name should started with lowercase latter.

Hi, thanks for the PR. I think it's important to give you a bit of information as to why this PR has been tagged as "low priority". We really appreciate all contributions, and intend to visit this in the future, and hopefully merge it if it is a suitable feature for the framework.
However, reviewing PRs, and often rewriting them on behalf of the author to ensure they are consistent with the rest of the framework, consumes a lot of my time. At the moment we have a large backlog of bug reports that I am prioritising, since most of these affect functionality that worked in a previous version and are now impacting real projects. Hopefully you can see how that work comes first before introducing new features that people aren't using in projects yet.
Again, thank you for contributing and I'm looking forward to reviewing this PR when our backlog of bug reports has reduced.

Thanks


Block cleartext traffic

If I understand correctly, the current network security config specifically opts out of the default Android network encryption requirement (meaning network traffic could be sent unencrypted).
Is this required?  If not, please can cleartext traffic be disallowed.  (This might be a carryover from Tachiyomi using less-secure sources)
If it is required, please can we document what cleartext traffic is required on the wiki, so users are aware.

Yea it can be removed it was carry over from when i rebased over j2k

Found a scenario where this was needed not big enough though to readd.
Open a manga in webview, click the group, click their website. Website was http

I assume in that scenario you could still "open in Chrome" and then manually bypass the restriction that way if need be?

yep that is why it is not a big deal


poc:

Motivation: manage top-level domains for redirects only with ease.
Rules

https://godownloader.octolab.org/ → https://github.com/kamilsk/godownloader/releases/tag/homebrew
https://goimports.octolab.org/ → https://github.com/kamilsk/go-tools/releases/tag/goimports
https://golangci-lint.octolab.org/ → https://github.com/kamilsk/golangci-lint/releases/tag/looppointer
https://brew.octolab.org/ → https://github.com/octolab/homebrew-tap

Not related, but jfi

[ ] register maintainer.octolab.org, ghp(docs)

success


New: change font-family to improve UI

In this PR I made my first contribution to this important project.
I changed the font-family to improve the UI.
This PR is addressed to issue #500
Screenshots before and after changes:
Before

After

@brafdlog Is it the design?

I am fine with the change.
Its pretty minor.
But the build is not passing

I am fine with the change. Its pretty minor. But the build is not passing

Why the build isn't passing? Is it something that I need to do?

No, usually we have problems with the build

No, usually we have problems with the build

Ok, so you want I open on this bug new issue?
I don't sure that I can resolve this issue, but I can to try...

You don't need to do something, I'm on it


Bundle size incorrect

Hi there, this is an interesting looking package, but I think your bundle size in the readme may be a little misleading.
Given that you have a few dependencies that other people may not have (like superagent and reselect, for example), the bundle size is actually quite a bit higher than advertised<EMAIL_ADDRESS>

Thanks for reporting this issue! Measuring bundle size is certainly difficult given the nature of how different people could possibly include a library. Because of this one simple number is indeed an oversimplification. Having said that, I think it's useful to have a number of what people can reasonably expect to grow their total bundle in a normal project. I'll lay out my reasoning and I encourage you to inject your own perspective on the subject.
The number we try to give should represent around what should be expected to add to a bundle. Of course this will vary based on a few factors. First off, normalizr is a key library that provides much of the functionality here. It is not a general purpose library - so it is 100% counted toward the bundle size. Note that both this and that library support tree-shaking. Rest Hooks in fact includes many optional features that would typically be considered mutually exclusive (like redux integration vs useReducer() based Provider). This means in the real world there will be many parts of the code that will not be included in the library. So really we're giving an upper bound on those things. To address bundlephobia - it claims 50% is from lodash. This is incredibly misleading as we only use lodash.merge and possibly one other tiny utility. Even build systems without tree shaking will not include the entirety of lodash. And given its popularity - it's even likely those modules were already included in someone's bundle. The same applies to babel/runtime as most people will be using babel with their code. This does break apart if they are targetting only modern browsers as runtime might include a few more pieces than they already used. Finally, the only library left to mention is superagent. Including superagent as a default was a conscious choice as we felt it provided the best experience - using the builder pattern and supporting SSR out of the box. However, you are free to use any other networking library that you might choose - or none at all. https://resthooks.io/docs/guides/custom-networking should lead you towards such a goal. In those cases your choice affects your bundle separately from Rest Hooks. Again, Rest Hooks supports tree shaking so you aren't required to use the superagent implementation. We do plan on making it easier to separate various pieces of Resource in the future so more tree shaking can be done. (For instance non-REST apis probably don't care to have the REST FetchShape generators.)

Thanks for the thoughtful response. Here's a quick test using create-react-app. Not as bad as bundlephobia claims, but still a bit more of a jump than the readme. I hear you on tree-shaking and the complexity w/ providing a single number, so feel free to do whatever you like with this info and these thoughts.
Before:
  36.44 KB  build/static/js/2.b41502e9.chunk.js
  762 B     build/static/js/runtime~main.a8a9905a.js
  602 B     build/static/js/main.28647029.chunk.js
  517 B     build/static/css/main.2cce8147.chunk.css

After:
  51.29 KB (+14.85 KB)  build/static/js/2.08fd04e9.chunk.js
  762 B                 build/static/js/runtime~main.a8a9905a.js
  735 B (+133 B)        build/static/js/main.5da66aa1.chunk.js
  517 B                 build/static/css/main.2cce8147.chunk.css

Here's the code I included:
import {useResource, useFetcher, Resource} from 'rest-hooks'

class Foo extends Resource {
}

useFetcher(Foo.updateShape())
useResource(Foo.detailShape())

Related: why is redux a dependency? It doesn't seem to be included, but I didn't look too closely.

Redux is included for 'rest-hooks/testing'. I plan to move testing library to its own package (probably v3 as this is breaking change) but then I have to try getting my auto-release setup properly with lerna so working on other stuff for now.
The culprit for your measurement is superagent. So I made https://github.com/coinbase/rest-hooks/pull/113 to fix it. I've been meaning to do this since the beginning but getting generic types with inheritance working right was a bit of a hurdle. This PR allows people who want to use any networking library they choose - so this means that part of the bundle is up to them. Potentially if they only support modern browsers they could just use https://resthooks.io/docs/guides/custom-networking#fetch-https-developermozillaorg-en-us-docs-web-api-fetch_api and have 0 size impact.
I'm thinking of doing a blog post sometime in the future explaining bundle sizing in more detail (as in practice initial size is much lower in fact!). For now though I consider that PR to fix the issue as it truly makes the user's networking library of choice their own and thus should not be considered a part of the rest-hooks bundle impact.

Taken from analyzing https://github.com/ntucker/anansi/tree/master/examples/typescript

Sizes are split into three pieces:
entry: 2.54kb
resource: 1.21kb
superagent: 6.08kb
hooks: 1.86 + 0.468 = 2.33kb
Total: 12.16kb
And without superagent it becomes 6.08kb total. Of course this is less than advertised size because the example doesn't use every single piece provided. For instance ExternalCacheProvider.
Note because this example has other things, the dependency on lodash.merge for instance was already there - which explains the slightly smaller results when including superagent.

Sounds great, thanks!


docker stack deploy an URL

This is very low priority, but it would be pretty cool to be able to run:
$ docker stack deploy mystack -c https://raw.github.com/.../docker-compose.yml

/cc @vieux @dnephin @thaJeztah

IIUC there is a plan to add docker bundle pull.
Does this issue relate to docker bundle pull?
https://github.com/docker/docker/issues/26876

This works for me if you're running bash;
docker stack deploy -c<(curl -fsSL https://raw.githubusercontent.com/docker/compose/master/tests/fixtures/v3-full/docker-compose.yml) foo

(the compose file seems to be invalid, but it works :D)

lol, the new curl | bash

@cpuguy83 yup, it is, but t.b.h. we'd have the same if -c accepts an URL; perhaps it's best to not have this as a feature, to encourage people to download first before blindly deploying something from an URL (well, unless there's Notary in use)

I suppose this issue is closable, as this issue is about CLI.
If this is still problem, could you reopen at docker/cli repo?


Create display tutorial

Create a tutorial showing how to use all the Synthesis display code. Show basic usage, how you can customize the size of the plot and its contents, and the fine-grained control allowed by axes_idx. Also, how animate works pretty easily.
For advanced usage, discuss update_plot?

Starts addressing in #70


Hey Nick,
not sure if you meant to shut off the verbose output in 1.36 by any chance, seems when i run any command without -v i dont see anything when i try rclone sync, copy, move, just wanted to let you know incase you missed something before you pushed out 1.36
Thanks
Dedsec1

See #1180. (FWIW, it's also in the release notes.)

Yes, this is working as intended to make rclone behave more like rsync.


How to access localCachedMap wit RedissonBatch?

is getLocalCachedMap not available with rBatch? or is rBatch.getMap() and rBatch.getMapCache() good enough to getLocalCachedMap reference?
Expected behavior
rBatch.getLocalCachedMap() is available
Actual behavior
Only rBatch.getMapCache() and rBatch.getMap() is avaiable
will using rBatch.getMap() return a local cached reference or will it actually fetch from redis when rBatch.execute is called?

@mrniko @jackygurui Is there something I am missing here? Is local cached map not available with batched command submissions?

Local cached map is not supported yet in RBatch object

@mrniko Is it scheduled to be added in any of the upcoming releases?

@PC-AKumar
I haven't planned it yet.


Problem with installing models

2024-02-07 15:13:31.123 - ERROR - separator - Failed to download file from https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/Kim_Vocal_2
As i see, it gives me 404 Not Found error https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/

Gotcha @crexlight , sorry yeah it's confusing and I know i've changed the interface a bit with the latest version - sorry about that.
It helps make it more extensible / future proof (I'm working towards audio-separator being compatible with non-UVR models too eventually!)
There's also a new CLI param to list all of the currently supported model filenames by the way!
audio-separator --list_models


Play test plugin: Write plugin implementation class with current model

Convert existing logic from software model to current model
Configures test source set from Scala plugin
Configures test task from Scala plugin

Implementation:

https://github.com/gradle/play/blob/master/src/main/java/com/lightbend/play/plugins/PlayTestPlugin.java


Unable to access LAN when connected to server

Hello, I am able to connect to the server and access the internet thereafter, but am unable access any devices on the LAN.  What other information do you need to help troubleshoot?  This is on a fresh installation of ubuntu and this script.
Here is my config file
port 1194 proto udp dev tun user nobody group nogroup persist-key persist-tun keepalive 10 120 topology subnet server <IP_ADDRESS> <IP_ADDRESS> ifconfig-pool-persist ipp.txt push "dhcp-option DNS <IP_ADDRESS>" push "dhcp-option DNS <IP_ADDRESS>" push "redirect-gateway def1 bypass-dhcp" ifconfig <IP_ADDRESS> <IP_ADDRESS> crl-verify crl.pem ca ca.crt cert server.crt key server.key tls-auth tls-auth.key 0 dh dh.pem auth SHA256 cipher AES-128-CBC tls-server tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 status openvpn.log verb 3

Hi,
Check route table's client with sudo route -n.

Here is the output:
`Generating DH parameters, 3072 bit long safe prime, generator 2
This is going to take a long time
...................................................................................................................................................................................................................................................................................................................................................+.......................+...................................................................................................................................................................................................................................................................................................................................................................................+.............................................................................+..+........................................................................................................+........................+........+..........................................................................................................................................+........................................................+................+................................................................................................................................................................+.......................................+...........................................+..+...............................................................................................................................................................................................................+.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................++++
Note: using Easy-RSA configuration from: ./vars
Generating a 3072 bit RSA private key
.++
.........................................................................................++
writing new private key to '/etc/openvpn/easy-rsa/pki/private/server.key.9pRU0uNtX5'
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server'
Certificate is to be certified until May 31 20:25:25 2027 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Note: using Easy-RSA configuration from: ./vars
Generating a 3072 bit RSA private key
.................................................................................++
......................................................................................................................................................................++
writing new private key to '/etc/openvpn/easy-rsa/pki/private/client.key.sHNanm7z5O'
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'client'
Certificate is to be certified until May 31 20:25:25 2027 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Note: using Easy-RSA configuration from: ./vars
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.cnf
An updated CRL has been created.
CRL file: /etc/openvpn/easy-rsa/pki/crl.pem
249
Looks like your server is behind a NAT!
If your server is NATed (e.g. LowEndSpirit, Scaleway, or behind a router),
then I need to know the address that can be used to access it from outside.
If that's not the case, just ignore this and leave the next field blank
External IP or domain name: clayshouse.mooo.com
Finished!
Your client config is available at ~/client.ovpn
If you want to add more clients, you simply need to run this script another time!
clayton@server:~$ sudo ./openvpn-install.sh
OpenVPN-install (github.com/Angristan/OpenVPN-install)
Looks like OpenVPN is already installed
What do you want to do?

Add a cert for a new user
Revoke existing user cert
Remove OpenVPN
Exit
Select an option [1-4]: 1

Tell me a name for the client cert
Please, use one word only, no special characters
Client name: client-ipad
Note: using Easy-RSA configuration from: ./vars
Generating a 3072 bit RSA private key
.............................................++
................................................................................................................++
writing new private key to '/etc/openvpn/easy-rsa/pki/private/client-ipad.key.xRysBcVV3Y'
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'client-ipad'
Certificate is to be certified until May 31 20:29:58 2027 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Client client-ipad added, certs available at ~/client-ipad.ovpn
clayton@server:~$ sudo nano /etc/openvpn/server.conf
clayton@server:~$ sudo /etc/init.d/openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
clayton@server:~$ sudo nano /etc/openvpn/server.conf
clayton@server:~$ sudo /etc/init.d/openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
clayton@server:~$ sudo nano /etc/openvpn/server.conf
clayton@server:~$ sudo nano /etc/openvpn/server.conf
clayton@server:~$ route add -net <IP_ADDRESS>/24 gw <IP_ADDRESS>
route: netmask doesn't match route address
Usage: route [-nNvee] [-FC] []           List kernel routing tables
route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
   route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
   route {-V|--version}                  Display version/author and exit.

    -v, --verbose            be verbose
    -n, --numeric            don't resolve names
    -e, --extend             display other/more information
    -F, --fib                display Forwarding Information Base (default)
    -C, --cache              display routing cache instead of FIB

=Use '-A ' or '--'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
clayton@server:~$ sudo nano /etc/openvpn/server.conf
clayton@server:~$ route add -net <IP_ADDRESS>/24 gw <IP_ADDRESS>
route: netmask doesn't match route address
Usage: route [-nNvee] [-FC] []           List kernel routing tables
route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
   route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
   route {-V|--version}                  Display version/author and exit.

    -v, --verbose            be verbose
    -n, --numeric            don't resolve names
    -e, --extend             display other/more information
    -F, --fib                display Forwarding Information Base (default)
    -C, --cache              display routing cache instead of FIB

=Use '-A ' or '--'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
clayton@server:~$ sudo /etc/init.d/openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
clayton@server:~$ sudo nano /etc/openvpn/server.conf
clayton@server:~$ sudo route -n
[sudo] password for clayton:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
<IP_ADDRESS>         <IP_ADDRESS>     <IP_ADDRESS>         UG    202    0        0 enp0s31f6
<IP_ADDRESS>        <IP_ADDRESS>         <IP_ADDRESS>   U     0      0        0 tun0
<IP_ADDRESS>     <IP_ADDRESS>         <IP_ADDRESS>     U     1000   0        0 enp0s31f6
<IP_ADDRESS>     <IP_ADDRESS>         <IP_ADDRESS>   U     202    0        0 enp0s31f6
clayton@server:~$
`
My subnet mask in my router is <IP_ADDRESS> could that be the issue?  If so, how do I change it?

Try this: https://community.openvpn.net/openvpn/wiki/NatHack
iptables -t nat -A POSTROUTING -s <IP_ADDRESS>/24 -o eth0 -j MASQUERADE

Should work immediately. Don't forget to save the iptables if it does.

Any news @dcgrove ?

Unfortunately no.  I actually had to reinstall Ubuntu and haven't reinstalled this yet.