Changing start source MAC address and DUID so that multiple instances of bngblaster can be run towards the same BNG

In order to scale test a BNG with a large number of dual-stack IPoE sessions, bngblaster may need to be run on more than one host if the CPU/network resouces of a single host are not enough. The host I am using supports up to about 25k sessions before packet loss occurs although the BNG supports up to 120k.
The BNG under test rejects sessions with duplicate MACs / DHCPv6 DUIDs so they need to be unique between bngblaster instances.
However, the src MAC address and IPv6 DUID appear to be hard coded such that two instances of bngblaster will use the same DUID/src MAC address as they interate over the session identifiers.
I have not found a way to do this by configuration option or agument when calling bngblaster. There seem to be two access interface configuration options i1_start and i2_start which I was hoping could be used to configure an offset for the session ID for multiple bngblaster instances.  The documentation at
https://rtbrick.github.io/bngblaster/configuration/index.html#access-interfaces
defines i1_start and i2_start as Iterator for usage in strings {i1} and Iterator for usage in strings {i2} respectively. It's not too clear what they are to be used for. Changing them from their defaults of 1 to something else does not appear to change the MAC src address, IPv6 DUID or other DHCPv6 parameters based on the bngblaster session_id.
I have quickly tested that compiling a second bngblaster instance after changing session->client_mac[1] and session->dhcpv6_duid[3] from their defaults works.
--- a/code/bngblaster/src/bbl_session.c
+++ b/code/bngblaster/src/bbl_session.c
@@ -559,7 +559,7 @@ bbl_sessions_init(bbl_ctx_s *ctx)

         /* Set client OUI to locally administered */
         session->client_mac[0] = 0x02;
-        session->client_mac[1] = 0x00;
+        session->client_mac[1] = 0x01;
         session->client_mac[2] = 0x00;
         /* Use session identifier for remaining bytes */
         session->client_mac[3] = i>>16;
@@ -590,7 +590,7 @@ bbl_sessions_init(bbl_ctx_s *ctx)

         /* Set DHCPv6 DUID */
         session->dhcpv6_duid[1] = 3;
-        session->dhcpv6_duid[3] = 1;
+        session->dhcpv6_duid[3] = 2;
         memcpy(&session->dhcpv6_duid[4], session->client_mac, ETH_ADDR_LEN);

         /* Init string variables/iterators */

If there's not a current way of doing this in the configuration, I believe there is a good use-case to add it as a feature and in such a way that other access interface configuration options such as inner-vlan-min that increment with session identifier work as before.
Additional explanation for the configuration options i1_start and i2_start etc in the documentation would also probably be useful.

Could you share your configuration? Actually would assume that a single BNG Blaster instance is able to handle much more sessions.
Are you testing with traffic streams per session? If yes, have you tried to assign the traffic streams to TX threads?
In general, I guess I can add a configurable session-id offset here, which will also change the MAC address because the last 6 bytes of MAC address are always equal to the session-id.

Thanks very much for the useful reply.
Not tried traffic-streams so far, so no streams config. Only session-traffic:
    "interfaces": {
        "qdisc-bypass": true,
        "io-mode": "packet_mmap_raw",
         "network": {
         "interface": "ens160.2016",
         "address": "<IP_ADDRESS>",
         "gateway": "<IP_ADDRESS>",
         "address-ipv6": "2001:db8:2016::2",
         "gateway-ipv6": "2001:db8:2016::1"
        },
        "access": [
        {
            "interface": "ens224f1",
            "type": "ipoe",
            "qinq": "false",
            "outer-vlan-min": 2016,
            "outer-vlan-max": 2048,
            "inner-vlan-min": 2,
            "inner-vlan-max": 4094,
            "_ipv4": false,
            "ipv4": true,
            "_ipv6": false,
            "ipv6": true,
            "i1_start": "500",
            "i2_start": "1000",
            "vlan-mode": "1:1"
        }
     ]
    },
        "sessions": {
        "count": 25000,
        "session-time": 0,
        "max-outstanding": 16000,
        "start-rate": 1000,
        "stop-rate": 1000
    },
        "access-line": {
        "agent-remote-id": "ABCDEFGH{session-global}",
        "agent-circuit-id": "<IP_ADDRESS>/<IP_ADDRESS> eth 0:{session-global}"
    },
    "dhcp": {
        "broadcast": true,
        "enable": true
    },
    "dhcpv6": {
        "enable": true,
        "rapid-commit": true
    },
      "session-traffic": {
        "ipv4-pps": 1,
        "ipv6pd-pps": 1
    }

You can try with the following configuration to see if performance becomes better.
{
    "interfaces": {
        "tx-interval": 1,
        "rx-interval": 1,
        "io-slots": 4096,
    }
}

I expect also a mayor improvement as soon as we support DPDK. In general I plan to work on performance in the next weeks to be able to scale up to 10M PPS.

Thanks for the suggestions.
Adding the suggested config below and sending session-traffic does not seem to improve performance, unfortunately.
{
    "interfaces": {
        "tx-interval": 1,
        "rx-interval": 1,
        "io-slots": 4096,
    }
}

With regards to the earlier comment about traffic-streams, the documentation seems to imply 200-300kpps is achievable with one thread, 1Mpps with multiple threads.
Trying this simple traffic-stream config seems to result in traffic loss earlier than when using session-traffic mostly due to TX send failed and at about 40kpps.
        "access": [
        {
            "interface": "ens224f1",
            "type": "ipoe",
            "qinq": "false",
            "outer-vlan-min": 2016,
            "outer-vlan-max": 2048,
            "inner-vlan-min": 2,
            "inner-vlan-max": 4094,
            "ipv4": true,
            "ipv6": true,
             "stream-group-id": 1,
            "vlan-mode": "1:1"
        }
     ]
    },
        "streams": [
        {
            "stream-group-id": 1,
            "name": "S1v4",
            "type": "ipv4",
            "direction": "both",
            "length": 256,
            "threaded": true,
            "thread-group": 1,
            "pps": 1
        },
                {
            "stream-group-id": 1,
            "name": "S1v6",
            "type": "ipv6pd",
            "direction": "both",
            "length": 256,
            "threaded": true,
            "thread-group": 2,
            "pps": 1
        }

Approx 10k dual-stack sessions with 1pps traffic:
Sessions           10000 (0 PPPoE / 10000 IPoE)
  Established       9630 [##########################################################  ]
  Outstanding          0 [                                                            ]
  Terminated           0 [                                                            ]
  DHCPv4     10000/10000 [############################################################]
  DHCPv6      9630/10000 [##########################################################  ]
  Setup Time       80904 ms
  Setup Rate      119.03 CPS (MIN: 1.06 AVG: 51.98 MAX: 126.19)
  Flapped              0

Traffic Flows Verified
  Stream     37932/40000 [#########################################################   ]

  Network Interface ( ens160.2016 )
  Tx Packets                   7499901 |  19383 PPS      41867 Kbps
  Rx Packets                   7232919 |  19074 PPS      41198 Kbps
  Tx Stream Packets            7499521 |  19382 PPS
  Rx Stream Packets            7232539 |  19073 PPS     281346 Loss
  Tx Multicast Packets               0 |      0 PPS
Access Interface ( ens224f1 )
  Tx Packets                   7805860 |  19153 PPS      42565 Kbps
  Rx Packets                   7391646 |  19357 PPS      42430 Kbps
  Tx Stream Packets            7503485 |  19079 PPS
  Rx Stream Packets            7299483 |  19356 PPS     211846 Loss
  Rx Multicast Packets               0 |      0 PPS          0 Loss

Report:
Sessions PPPoE: 0 IPoE: 64000
Sessions established: 576/64000
DHCPv6 sessions established: 3977
Setup Time: 47102 ms
Setup Rate: 12.23 CPS (MIN: 0.51 AVG: 4.56 MAX: 12.23)
Flapped: 0

Network Interface ( ens160.2016 ):
  TX:                     83813 packets
  RX:                     79873 packets
  TX Stream:              83804 packets
  RX Stream:              78085 packets (0 loss)
  TX Multicast:               0 packets
  RX Drop Unknown:            0 packets
  TX Encode Error:            0
  RX Decode Error:            0 packets
  TX Send Failed:             0
  TX No Buffer:               0
  TX Poll Kernel:             0
  RX Poll Kernel:         27996

Access Interface ( ens224f1 ):
  TX:                    322816 packets
  RX:                    123150 packets
  TX Stream:              83838 packets
  RX Stream:              78019 packets (0 loss)

  TX Poll Kernel:             0
  RX Poll Kernel:         87046

Access Interface ( ens224f1 ):
  TX:                  14438634 packets
  RX:                  13655472 packets
  TX Stream:           14002837 packets
  RX Stream:           13504899 packets (484425 loss)
  RX Multicast:               0 packets (0 loss)
  RX Drop Unknown:           58 packets
  TX Encode Error:            0 packets
  RX Decode Error:            0 packets
  TX Send Failed:        330793
  TX No Buffer:               0
  TX Poll Kernel:             0
  RX Poll Kernel:         86355

  Access Interface Protocol Packet Stats:
    ARP    TX:      48863 RX:      48862
    PADI   TX:          0 RX:          0
    PADO   TX:          0 RX:          0
    PADR   TX:          0 RX:          0
    PADS   TX:          0 RX:          0
    PADT   TX:          0 RX:          0
    LCP    TX:          0 RX:          0
    PAP    TX:          0 RX:          0
    CHAP   TX:          0 RX:          0
    IPCP   TX:          0 RX:          0
    IP6CP  TX:          0 RX:          0
    IGMP   TX:          0 RX:          0
    ICMP   TX:          0 RX:          0
    DHCP   TX:     177544 RX:      39975
    DHCPv6 TX:     190424 RX:      38212
    ICMPv6 TX:      18966 RX:      23268
    IPv4 Fragmented       RX:          0

  Access Interface Protocol Timeout Stats:
    LCP Echo Request:          0
    LCP Request:               0
    IPCP Request:              0
    IP6CP Request:             0
    PAP:                       0
    CHAP:                      0
    DHCP Request:         127554
    DHCPv6 Request:       151842
    ICMPv6 RS:                 0

Traffic Streams:
  Verified Traffic Flows: 37932/40000
  First Sequence Number Received  MIN:        1 MAX:        1
  Flow Receive Packet Loss        MIN:        2 MAX:      124
  Flow Receive Delay (msec)       MIN:    0.000 MAX:   66.478

The above was with two thread-groups, one for v4 and one for v6pd.  I guess to scale it, the sessions need to be split across more thread-groups - not sure what the easiest way of doing that is. The idea is to verify forwarding for both protocol stacks for all the sessions.  Or is the conclusion to wait for DPDK support?

A significant amount of loss is caused by TX Send Failed which is currently not retried and therefore counted as a loss. I plan to add a retry queue to retry packets if send has failed to ensure that stats and loss stats are correct.
In the meantime, the number of send errors could be reduced by increasing the queue size of your interfaces.
If you execute ethtool -g it shows you currently applied and max HW queue size.
$ sudo ethtool -g ens5f1
Ring parameters for ens5f1:
Pre-set maximums:
RX:                4096
RX Mini:        0
RX Jumbo:        0
TX:                4096
Current hardware settings:
RX:                512
RX Mini:        0
RX Jumbo:        0
TX:                512

Which can then be changed with:
sudo ethtool -G ens5f1 tx 4096 rx 4096
sudo ethtool -G ens5f1 tx 4096 rx 4096

You can even change the software queue size:
sudo ip link set txqueuelen 4096 dev pci1f2
sudo ip link set txqueuelen 4096 dev pci1f3

I can also see some improvement if the interfaces used by Blaster are configured without any family so that linux kernel is not handling those packets.
This can be also archived via netplan using the following configuration for each BNG Blaster interface.
network:
version: 2
renderer: networkd
ethernets:
    eth1:
    dhcp4: no
    dhcp6: no
    link-local: []
    mtu: 9000
    eth2:
    dhcp4: no
    dhcp6: no
    link-local: []
    mtu: 9000

https://rtbrick.github.io/bngblaster/interfaces.html

Thanks, hadn't tried changing the software queue size but already had TX HW queue size at the max, and no protocol family configured on the interface.
$ sudo ethtool -g ens224f1
Ring parameters for ens224f1:
Pre-set maximums:
RX:             4078
RX Mini:        0
RX Jumbo:       0
TX:             4078
Current hardware settings:
RX:             4078
RX Mini:        0
RX Jumbo:       0
TX:             4078

$ ip addr show dev ens224f1
5: ens224f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 4096
    link/ether 80:61:5f:11:ff:ff brd ff:ff:ff:ff:ff:ff
$

The suggestion to increase the software queue size improves things slightly but does not eliminate the need to run multiple instances.
It's running on a VM on an ESXi hypervisor with 16 Intel Xeon E5-2667 3.20GHz cores (32 threads).
~ vim-cmd hostsvc/hostsummary | grep cpuModel
      cpuModel = "Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz",
~ esxcli hardware cpu global get
   CPU Packages: 2
   CPU Cores: 16
   CPU Threads: 32
~    esxtop
 2:03:35pm up 50 days 54 min, 1008 worlds, 14 VMs, 27 vCPUs; CPU load average: 0.19, 0.20, 0.19
PCPU USED(%): 5.6 6.8 4.7 8.7 6.1 5.7 5.3 6.8 6.1 4.2 7.4 2.5 7.1 3.8 5.4 6.8 4.0 0.1 0.1 110 0.7 0.5 0.5 0.3 0.4 0.5 0.7 0.3 0.4 0.2 0.2 0.0 NUMA: 5.8 7.5 AVG: 6.6
PCPU UTIL(%):  20  23  16  27  19  18  16  20  19  14  21 8.7  21  13  17  21 6.8 0.3 0.3 100 2.4 1.5 1.6 0.9 1.1 1.6 2.1 0.9 1.2 0.9 0.5 0.1 NUMA:  18 7.6 AVG:  13
CORE UTIL(%):  35      37      33      33      29      27      31      33     7.0     100     3.7     2.4     2.7     2.9     2.0     nan     NUMA:  32  15 AVG:  23

        ID        GID NAME             NWLD   %USED    %RUN    %SYS   %WAIT %VMWAIT    %RDY   %IDLE  %OVRLP   %CSTP  %MLMTD  %SWPWT
     44663      44663 bngblaster        17   77.50  225.54    0.07 1489.35    0.00    3.03  598.63    0.33    0.00    0.00    0.00

I added a new configuration option mac-modifier, which allows changing the third byte of the automatically generated access session MAC address. This should suit your use case. Could you please verify this in the mac-modifier branch before merging into the dev branch?
https://github.com/rtbrick/bngblaster/pull/75
{
    "interfaces": {
        "mac-modifier": 1
    }
}

Many thanks for adding the mac-modifier config option.
It works for my use-case.

This issue is fixed in version 0.7.2.
Please verify and close the issue if the solution is accepted!

mac-modifer feature working fine in version 0.7.2.
Many thanks for adding this.


Update serviceprincipal.md

added some clarifications and updated naming to CLI 0.1.0b10 terminology

Hi @xtophs, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Christoph Schittko). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@xtophs can you please update or close

And also please resolve the conflicts

Can one of the admins verify this patch?

There hasn't been activity here for a while and I haven't seen issues around this part of service principal creation. I'm closing this for now.


story(analytics): add more metrics

Expected Behavior
Analytics metrics should be tracked for key app actions.
There is a common api method  that is defined but not being used for analytics tracking. https://github.com/Pocket/extension-save-to-pocket/blob/500f0285dcff2851269691cdb3030c4be9277cb0/src/common/api/analytics/analytics.js#L5-L16
This should be tracked both for chrome and safari, safari may require a swift api solution.
TODO

[ ] update analytics spec https://docs.google.com/spreadsheets/d/15YIc9n0eqOA9soD_NleEqED49Tqy5p4S9a5IHDN8BeI/edit#gid=0

Actions to track
Analytics should be tracked for the following actions:

[ ] tag_added Fix#120
[ ] keyboard
[ ] signed_up
[ ] itemrec_request
[ ] itemrec_save
[ ] itemrec_impression
[ ] itemrec_open
[ ] itemrec_timeout
[ ] update_user_setting
[ ] add_device
[ ] sp_impression_unfilled
[ ] sp_add

Based on what the MVP will include (No Recs, No Spocs) which matches with the existing safari extension
Actual Behavior
No analytics tracking happening in the current app other than survery analytics https://github.com/Pocket/extension-save-to-pocket/search?q=sendAnalytics&unscoped_q=sendAnalytics
Steps to Reproduce the Problem

Search for analytics: No reference other than survery analytics https://github.com/Pocket/extension-save-to-pocket/search?q=sendAnalytics&unscoped_q=sendAnalytics

Specifications

Version: <IP_ADDRESS>
Browser: Safari
Operating System: macOS Mojave

The un-captured events mentioned in this issue are for features that don't yet exist in safari. Closing this issue. We will be sure to add the related analytics as we implement their features.


Use target name variable.

When building libcudf, I see a message Generate git revision file for {target} before the build begins. I think this is intended to say ${target} and insert the variable name.
Also, I notice this message because this stage takes a long time (something like 10 seconds) for most of my builds, even partial builds. What does this command actually do, and why does it take so long? Can it be cached / accelerated / disabled?

I think this is intended to say ${target} and insert the variable name.

Correct.

Also, I notice this message because this stage takes a long time (something like 10 seconds) for most of my builds, even partial builds. What does this command actually do, and why does it take so long? Can it be cached / accelerated / disabled?

It calls into git to compute a set of information ( branch name, SHA1 hash, have local changes, git describe tag ) for the source code directory. This evaluation can't be cached since the build-system ( CMake ) has no knowledge of what files have changed. We can't do this computation at CMake configuration time, since it won't re-run whenever source files are changed.
I don't see this function being called in cudf or rmm so it would be great to know what dependency is using it. Maybe it can be removed.

@bdice Are you good with this being merged?

@robertmaynard Thanks for the helpful info! I'll merge it.

I don't see this function being called in cudf or rmm so it would be great to know what dependency is using it. Maybe it can be removed.

Hmm. I'll see if I can figure out what's calling this next time it comes up.

@gpucibot merge

@robertmaynard I don't have merge privileges, oops. However, I also noticed that CODEOWNERS reports errors: https://github.com/rapidsai/rapids-cmake/blob/branch-22.06/.github/CODEOWNERS
Looks like @rapidsai/rapids-cmake-codeowners doesn't exist.

@gpucibot merge


Inconsistent lineage errors between thema cli and library

In this example, the thema CLI generated the go types and bindings with no error, but calling the generated Lineage() function gives an error:
schema 0.1 is not backwards compatible with schema 0.0:
required field is optional in subsumed value: header
value not an instance

The CLI commands should return the same error (and refuse to generate the code) (or otherwise be replaced)
Repro here: https://github.com/mildwonkey/thema-examples/tree/main/cli-errors
It's likely enough that this is a symptom of some other issue - we have a few reports of unclear and swallowed errors - do what you will with this issue. 😁

false alarm! I'm getting the expected error on the command line after a fresh build of the CLI ❤


Skip parameter on maven was removed

Discussed in https://github.com/trivago/cluecumber/discussions/315

Originally posted by NicoIodice August  1, 2023
I've noticed that since the last build I was using (v2.9.4) to the latest one available at this time (v3.2.2) there were a couple of changes and it seems the  maven option to skip the report generation was removed.
Was it on purpose or for any special reason? Because it was a useful feature to use for the maven build process and easily skip the report generation.

I re-integrated this option now. This will be part of release 3.3.0.


Translate a Java app: Can this be done through an API call?

I have a use case in my project where we need the translated i18n.properties file for locales, like :
i18n_de.properties

@ianarm Can you look at this?

Hi @akashSri92. Translating files using an API call is currently not supported, but it is something that we're working on. The 'translate' API in SAP Translation Hub requires you to add the individual texts that you want to translate to the request payload.
Best,
Ian

Thank you for your feedback. We haven't heard from you in the past 30 days, so we are closing the issue.
If you still have questions, feel free to reopen the issue.


Shorthand Card creation

Using the Card componenent like this
<Card title='Hello World' body={
Something
} />

should result in output like:
<Card>
  <Card.Header>
    <Card.Title>Hello World</Card.Title>
  </Card.Header>
  <Card.Body>

Something

  </Card.Body>
</Card>

I wiil start from this


parser barfs if '[' token is not separated by a space from the next token

for [l 1 10 1] is invalid, whereas for [ l 1 10 1 ] is valid.

This does not appear to be a problem.


random-reddit\dist folder is gone after installing or updating to version 2.0.2

and package.json main still points to dist/index.js on 2.0.2

@markpaul099
That's strange.
I'll fix it very soon. Try installing<EMAIL_ADDRESS>for now

@markpaul099, I couldn't republish the 2.0.2 version so I published the 2.0.3 instead.
npm install random-reddit@latest


include custom auth header for webdav

@skshetry I added the additional option for using custom auth header with webdav remote to the documentation.

You may disregard these recommendations if you used the Edit on GitHub button from dvc.org to improve a doc in place.

❗ Please read the guidelines in the Contributing to the Documentation list if you make any substantial changes to the documentation or JS engine.
🐛 Please make sure to mention Fix #issue (if applicable) in the description of the PR. This causes GitHub to close it automatically when the PR is merged.
Please choose to allow us to edit your branch when creating the PR.
Thank you for the contribution - we'll try to review it as soon as possible. 🙏

@jorgeorpinel, why is restyled not making PRs? Is that disabled?

Restyled stopped being available in fork PRs due to security reasons unfortunately 🙁 we must rewrap these manually.


LTL operator: eventually

Quickstrom is currently missing the eventually LTL operator. I understand that the main reasoning is the fact that it's quite a bit harder to verify that something doesn't exist, especially when you run examples.
I'm not sure what the literature says about finite temporal logics (I'll ask around!), but one idea would be to somehow allow explicit annotations regarding to the number of required steps. One could say that some property must hold (restricted always) for at least 50 steps. Or that some property should be true at least once in the next 50 steps (restricted evetually).

Yeah, the paper I found on this (I'll see if I can dig it up again) basically concluded that liveness properties (like with eventually) can need infinite behaviors to be verified.
The idea I've had is to support eventually together with coverage checking of some kind. Basically being able to say "there should be at least N tests that reach a specific state". This ties into your #33 proposal, but could be done in others ways too, I guess.
I'm a bit skeptical to the restricted versions with fixed behavior lengths. Not sure, it seems like a weird thing to specify. Do you have any examples or ideas of where it might make sense?

I think I'll just jeep a single issue open so we can chat there. I kind of mixed the ideas anyway, but it sort of makes sense: if we find a way to use existentials, that idea might work on both one path (eventually) and probably on multiple paths as well (exists from CTL).


Use GitLabCI.validates_as_ci? to validate GitLab CI

This is attempting to fix https://github.com/danger/danger/issues/1231
I have one question. Why do we need to validate it with:
# @return [Boolean] whether scm.origins is a valid git repository or not
def validates_as_ci?
  !!self.scm.origins.match(%r{#{Regexp.escape self.host}(:|/)(.+/.+?)(?:\.git)?$})
end

I don't want to break anything, but it seems a bit odd to me that we use two different ways to validate if we're on GitLab CI or not.
Does this change make sense?

          1 Error

:no_entry_sign:
Tests have failed, see below for more information.

          1 Warning

:warning:
Tests were not updated

Tests:

File
Name

gitlab_spec.rb
Danger::RequestSources::GitLab validation does not validate as CI when there is a port number included in host

  Generated by :no_entry_sign: Danger

@mbogh Could you please review this?


Support pathPrefix for shared webservers (fix #56)

This PR fixes #56 by adding ann optional pathPrefix property to connection definitions.

I hope the CI changes by @daimor in #53 will fix CI failure here once they have been merged to master and used to update this branch.


Google documents have size -1

Rclone sees Google documents as having a size of -1, which messes up everything that relies on these sizes. A proper handling would be to create a local file with the content of the document, or even better: A link to the Google document. That's also what the official client for Windows does.
More info and discussion so far here: https://github.com/cjnaz/rclonesync-V2/issues/1#issuecomment-407823320
and here: https://github.com/cjnaz/RCloneSync/issues/22

Treating Google documents as real files will probably always have some drawbacks, since there is no lossless mapping between the two formats.
Representing them as some kind of link file has already been discussed here.
I will close this issue in favor of the old one.


Add support for VS 2022 to the VSBuildV1

Task name: VSBuildV1
Description: Add support for VS 2022 to the VSBuildV1
Documentation changes required: (Y/N) Y
Added unit tests: (Y/N) N
Attached related issue: (Y/N) #15051
Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

@AnnaOpareva Please bump msbuildhelpers version in /Tasks/Common/MSBuildHelpers/package.json

tested this changes manually, found no issues


Correct AX and FX regex

Fixes the issue reported in https://github.com/mdgriffith/elm-optimize-level-2/pull/90
The code was looking for A2 wrappers and the likes, and extracting the arity out of that (2 for A2, 3 for A3...).
The root issue was that the regex used to match and extract that arity was too permissive, making functions like $folkertdev$elm_sha2$Internal$SHA256$loopHelp be considered as an Elm wrapper function with 256 arguments (A256...).
This happened in the patterns module used by the passUnwrappedFunctions transformer.
I fixed the issue by changing /A.../; to /^A.../; I also added a $ at the end just to be safe.
Since this regex was re-declared in multiple modules (and even correct in one of them :man_facepalming: ), I mutualized them into a single helper module, and decided to give it a nicer API for the purpose of the transformer.

Thanks for working on this issue. Would https://gitlab.com/software-garden/elm-optimize-level-2-sha-bug make a good test case?


Add support for inequality filters, operations on dynamic columns, and streaming output results

This patch stems from working with an extremely large data set in ORACLE performing complex queries.

Instead of a boolean to determine like or equals, I'm using a string to determine the column's search operator which defaults to "like".  This adds some flexibility on column filtering functionality.
So if you had a column of numbers and you wanted to filter to only numbers greater than or equal to an input you could simply do:

ColumnDT('col_name', search_type='>=', filter=filter_func)

In most cases, storing a formatted list in memory was not desirable for large data sets. Instead, formatting the results is no longer done by default and is now broken out into its own callable function.  A generator function has also been added so the results can be streamed.
In flask this would now look like:

rowTable = DataTables(request, sqla_obj, query, columns, dialect)
response = Response(stream_with_context(rowTable.format_generator), mimetype='application/json')

If the ajax parameters specify a page length of -1, the plugin will now return the entire result set.  This is to accommodate for the default "All" behavior in datatables
When using a complex query in sqlalchemy, a dynamic column (such as a count), will break the ability to do any filtering / sorting on that column.  Added a check to see if a column name is not an attribute and if it's not, it's assumed to be a label in the query.

Coverage decreased (-17.8%) to 69.36% when pulling 4927559a9449cc867007c3e0af048c7570410e93 on brendino:master into 096ace624a3ca68f2d4aad6721547777ed38a98e on Pegase745:master.

I am closing the PR as this should be covered in >1.0.0


Cannot collect captures of apitrace replay

Description
RenderDoc cannot collect captures of apitrace (https://github.com/apitrace/apitrace) in replay mode.
Steps to reproduce
Set "Executable Path" to apitrace.
Set "Command-line arguments" to "replay -b $path_to_trace_file".
Click "Launch".
When apitrace is running status window shows that the connection status is "established" and API is "None".
Captures counter in the overlay increases on F12, but after apitrace window closes, the application tab also closes.
Workaround
Use glretrace instead of apitrace replay
Environment

RenderDoc version: 1.7
Operating System: Linux
Graphics API: OpenGL
apitrace 1b3c83371ae34a894cff6168e765098f91c6620a

DiagnosticLogFile.txt

Capturing apitrace's replay was fine, the problem was that apitrace runs a child process to do the replay and on linux the child processes weren't properly propagated up to the UI. That commit should fix it so they are displayed.

Still doesn't work for me. (on f39e05a4d634bd9eccc885cfbe2e19c33e77be6c, which includes d7ed861f9b674bc17f00c47bb76c6b98331b02c5)
renderdoc_after_fix.log
I can't reopen this issue.

Did you navigate to the child process? The connection window should now show any child processes which you can then select to open a new connection to that process:

When apitrace replay is in progress the API label says "None".
The apitrace tab closes as soon as apitrace finishes.

The UI for tracing "apitrace replay" works a bit differently than for "glretrace", and that's what confused me.
Now that I understand the difference I can say it works.


list-group-border-width variables

Description

Motivation & Context

Type of changes

[x] Bug fix (non-breaking change which fixes an issue)

Checklist

[x] I have read the contributing guidelines
[x] My code follows the code style of the project (using npm run lint)
[x] I have added tests to cover my changes
[x] All new and existing tests passed

Live previews

https://deploy-preview-37644--twbs-bootstrap.netlify.app/docs/5.2/components/list-group/

Related issues

I can't recall why I didn't do this, but I don't see any issues in the docs, so I'm inclined to merge :). Thanks @jonnysp and @julien-deramond!

021348fecfa295a9f9f4489d091cbaca18cbdf2e


Optional parameters are sent as 'None'

When I create a request, all my optional parameters are sent as None, and it causes problems for String enum, and date parameters. I think if an optional parameter is not given, it should be left out from the request.

should be fixed in 0.8.5. Reopen this issue if it's not the expected result.

Thanks! It works now.


Sorald always prints added elements with tabs

New elements are printed with tabs for some reason.

This appears to be a sniper printer problem

See inria/spoon#3715

Moving this to week 51's sprint as I messed up on a corner case of the indentation detection, so we must wait for the next beta release of Spoon :(

8.4.0-beta-7 is out on Central
https://repo1.maven.org/maven2/fr/inria/gforge/spoon/spoon-core/8.4.0-beta-7/

Or we can depend on the snapshot instead for a few days?

beta-7 contains a bug in the indentation detection, that I'm fixing with inria/spoon#3722. That can probably be merged as soon as we get CI up and running.

@monperrus Snapshot worked, #272 is passing tests. I suggest we simply depend on the Spoon snapshot for now as I'm fairly often fiddling about in Spoon. We don't really need a stable version of Spoon until we make a release of Sorald.


Failed to complete chroot setup

I tried running crouton but here's what I got
Moving sudo GID from 27 to 28...
Installing target core...
Preparing environment...
Preparing software sources...
Ign http://archive.ubuntu.com trusty InRelease
Ign http://archive.ubuntu.com trusty-updates InRelease
Ign http://archive.ubuntu.com trusty-security InRelease
Err http://archive.ubuntu.com trusty Release.gpg
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty-updates Release.gpg
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty-security Release.gpg
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty Release
Ign http://archive.ubuntu.com trusty/main amd64 Packages/DiffIndex
Err http://archive.ubuntu.com trusty/main Sources
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/restricted Sources
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/universe Sources
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/multiverse Sources
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/restricted amd64 Packages
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/universe amd64 Packages
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/multiverse amd64 Packages
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/main Translation-en
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/multiverse Translation-en
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/restricted Translation-en
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/universe Translation-en
Connection failed [IP: <IP_ADDRESS> 80]
Err http://archive.ubuntu.com trusty/main amd64 Packages
Connection failed [IP: <IP_ADDRESS> 80]
Reading package lists...  They have been ignored, or old ones used instead.
Ensuring system is up-to-date...
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree... Done
sudo is already the newest version.
The following extra packages will be installed:
libasn1-8-heimdal libcurl3-gnutls libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal
libhx509-5-heimdal libidn11 libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libroken18-heimdal librtmp0
libsasl2-2 libsasl2-modules-db libwind0-heimdal openssl
Suggested packages:
krb5-doc krb5-user
Recommended packages:
krb5-locales libsasl2-modules
The following NEW packages will be installed:
apt-transport-https ca-certificates libasn1-8-heimdal libcurl3-gnutls libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal
libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libidn11 libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0
libldap-2.4-2 libroken18-heimdal librtmp0 libsasl2-2 libsasl2-modules-db libwind0-heimdal openssl wget
0 upgraded, 24 newly installed, 0 to remove and 0 not upgraded.
Need to get 2756 kB of archives.
After this operation, 9150 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
libroken18-heimdal libasn1-8-heimdal libkrb5support0 libk5crypto3 libkeyutils1 libkrb5-3 libgssapi-krb5-2 libidn11 libhcrypto4-heimdal
libheimbase1-heimdal libwind0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libheimntlm0-heimdal libgssapi3-heimdal libsasl2-modules-db
libsasl2-2 libldap-2.4-2 librtmp0 libcurl3-gnutls apt-transport-https openssl ca-certificates wget
E: There are problems and -y was used without --force-yes
Failed to complete chroot setup.
Unmounting /mnt/stateful_partition/crouton/chroots/trusty...

Please help. I really need to do this

If it may help, this is my third attempt to install crouton in my Chromebook (ASUS C200), tried different tutorials, but i always get the same output.


Support: Process for turning on Jamf Software Updates (beta)

What is the process for turning on software updates in jamf (in beta)...

Does it affect any super workflows?
The GUI says "Enabling this feature will cancel all x in flight upgrades (Does this mean it will cancel all the MDM commands in progress?) Will these affect any existing super workflows in progress?
How does super 4 work with jamf software updates (beta) ?

1 and 3. Yes... super behaves identically except for the different permissions that are required if you enable the new method in Jamf Pro... as documented here: https://github.com/Macjutsu/super/wiki/Apple-Silicon-Jamf-Pro-API-Credentials#jamf-pro-api-required-privileges
2. Yes... as both stated in the Jamf GUI and documented here: https://learn.jamf.com/bundle/jamf-pro-documentation-current/page/Updating_macOS_Groups_Using_Beta_Managed_Software_Updates.html


3.0.10 missing RAND_egd on NonStop x86

In prior attempts to use the hardware randomizer, we were advised to configure OpenSSL 3.0.x with no-egd. This appears to be resulting in the RAND_egd symbol not to be included in the .so files, causing loading issues of applications using OpenSSL including curl and git. If we remove no-egd, the hardware randomizer is ignored, requiring PRNGD. I'm confused as to how to resolve this and why the symbol is missing in the first place.
Command line (with current working directory = .):

    perl ./Configure nonstop-nsx_64 --with-rand-seed=rdcpu enable-fips no-egd

Perl information:

    perl
    5.30.3 for NSV-D-nonstop_kernel

Enabled features:

    acvp-tests
    aria
    async
    autoalginit
    autoerrinit
    autoload-config
    bf
    blake2
    bulk
    cached-fetch
    camellia
    capieng
    cast
    chacha
    cmac
    cmp
    cms
    comp
    ct
    deprecated
    des
    dgram
    dh
    dsa
    dso
    dtls
    dynamic-engine
    ec
    ec2m
    ecdh
    ecdsa
    engine
    err
    filenames
    fips
    fips-securitychecks
    gost
    idea
    legacy
    loadereng
    md4
    mdc2
    module
    multiblock
    nextprotoneg
    ocb
    ocsp
    padlockeng
    pic
    pinshared
    poly1305
    posix-io
    psk
    rc2
    rc4
    rdrand
    rfc3779
    rmd160
    scrypt
    secure-memory
    seed
    shared
    siphash
    siv
    sm2
    sm3
    sm4
    sock
    srp
    srtp
    sse2
    ssl
    ssl-trace
    static-engine
    stdio
    tests
    tls
    ts
    ui-console
    whirlpool
    tls1
    tls1-method
    tls1_1
    tls1_1-method
    tls1_2
    tls1_2-method
    tls1_3
    dtls1
    dtls1-method
    dtls1_2
    dtls1_2-method

Disabled features:

    afalgeng            [not-linux]      OPENSSL_NO_AFALGENG
    asan                [default]        OPENSSL_NO_ASAN
    asm                 [no asm_arch]    OPENSSL_NO_ASM
    buildtest-c++       [default]
    crypto-mdebug       [default]        OPENSSL_NO_CRYPTO_MDEBUG
    devcryptoeng        [default]        OPENSSL_NO_DEVCRYPTOENG
    ec_nistp_64_gcc_128 [default]        OPENSSL_NO_EC_NISTP_64_GCC_128
    egd                 [option]         OPENSSL_NO_EGD
    external-tests      [default]        OPENSSL_NO_EXTERNAL_TESTS
    fuzz-afl            [default]        OPENSSL_NO_FUZZ_AFL
    fuzz-libfuzzer      [default]        OPENSSL_NO_FUZZ_LIBFUZZER
    ktls                [default]        OPENSSL_NO_KTLS
    makedepend          [unavailable]
    md2                 [default]        OPENSSL_NO_MD2 (skip crypto/md2)
    msan                [default]        OPENSSL_NO_MSAN
    rc5                 [default]        OPENSSL_NO_RC5 (skip crypto/rc5)
    sctp                [default]        OPENSSL_NO_SCTP
    threads             [config]
    trace               [default]        OPENSSL_NO_TRACE
    ubsan               [default]        OPENSSL_NO_UBSAN
    unit-test           [default]        OPENSSL_NO_UNIT_TEST
    uplink              [no uplink_arch] OPENSSL_NO_UPLINK
    weak-ssl-ciphers    [default]        OPENSSL_NO_WEAK_SSL_CIPHERS
    zlib                [default]
    zlib-dynamic        [default]
    ssl3                [default]        OPENSSL_NO_SSL3
    ssl3-method         [default]        OPENSSL_NO_SSL3_METHOD

Config target attributes:

    AR => "ar",
    ARFLAGS => "qc",
    CC => "c99",
    HASHBANGPERL => "/usr/bin/env perl",
    RANLIB => "ranlib",
    RC => "windres",
    bn_ops => "SIXTY_FOUR_BIT",
    build_file => "Makefile",
    build_scheme => [ "unified", "unix" ],
    cflags => "-g -O2 -Wextensions -Wnowarn=203,220,272,734,770,1506 -Wbuild_neutral_library -Wverbose -Wtarget=tns/x -Wsystype=oss -Wlp64 -WIEEE_float",
    cppflags => "",
    defines => [ "OPENSSL_BUILDING_OPENSSL", "OPENSSL_VPROC=\$(OPENSSL_VPROC)", "_XOPEN_SOURCE", "_XOPEN_SOURCE_EXTENDED=1", "_TANDEM_SOURCE", "B_ENDIAN", "_TANDEM_ARCH=3" ],
    disable => [ "threads" ],
    dso_scheme => "DLFCN",
    enable => [ "egd" ],
    ex_libs => "-lrld",
    includes => [  ],
    lflags => "-Wxld=\"-set systype oss\" -Wxld=\"-set data_model lp64\" -Wxld=\"-set floattype ieee_float\"",
    lib_cflags => "",
    lib_cppflags => "",
    lib_defines => [  ],
    module_cflags => "",
    module_cxxflags => undef,
    module_ldflags => "-Wshared",
    multilib => "64",
    perl => "/usr/bin/perl",
    perl_platform => "Unix",
    shared_argfileflag => "-Wxld_obey=",
    shared_cflag => "",
    shared_defflag => "-Wxld_obey=",
    shared_defines => [  ],
    shared_extension => ".so",
    shared_ldflag => "-Wshared",
    shared_rcflag => "",
    shared_target => "nonstop-shared",
    sys_id => "TANDEM",
    thread_defines => [  ],
    thread_scheme => "(unknown)",
    unistd => "<unistd.h>",

Recorded environment:

    AR =
    ARFLAGS =
    AS =
    ASFLAGS =
    BUILDFILE =
    CC =
    CFLAGS =
    CPP =
    CPPDEFINES =
    CPPFLAGS =
    CPPINCLUDES =
    CROSS_COMPILE =
    CXX =
    CXXFLAGS =
    HASHBANGPERL =
    LD =
    LDFLAGS =
    LDLIBS =
    MT =
    MTFLAGS =
    OPENSSL_LOCAL_CONFIG_DIR =
    PERL =
    RANLIB =
    RC =
    RCFLAGS =
    RM =
    WINDRES =
    __CNF_CFLAGS =
    __CNF_CPPDEFINES =
    __CNF_CPPFLAGS =
    __CNF_CPPINCLUDES =
    __CNF_CXXFLAGS =
    __CNF_LDFLAGS =
    __CNF_LDLIBS =

Makevars:

    AR              = ar
    ARFLAGS         = qc
    CC              = c99
    CFLAGS          =
    CPPDEFINES      =
    CPPFLAGS        =
    CPPINCLUDES     =
    CXXFLAGS        =
    HASHBANGPERL    = /usr/bin/env perl
    LDFLAGS         =
    LDLIBS          =
    PERL            = perl
    RANLIB          = ranlib
    RC              = windres
    RCFLAGS         =

NOTE: These variables only represent the configuration view.  The build file
template may have processed these variables further, please have a look at the
build file for more exact data:
    Makefile

build file:

    Makefile

build file templates:

    Configurations/common0.tmpl
    Configurations/unix-Makefile.tmpl

More info. When no-egd is specified, the RAND_egd symbol is not added to libcrypto.a and not exported (or in) libcrypto.so. When not specified, the symbol is in both. What is confusing is why this makes a difference in curl and git. It seems that we need to have this symbol exported even if it is not used, on this platform, because it is referenced in the calling program somehow.

In prior attempts to use the hardware randomizer, we were advised to configure OpenSSL 3.0.x with no-egd.

See #20394

What is confusing is why this makes a difference in curl and git.

Did you also also build curl and git yourself against your configured OpenSSL library?

What is confusing is why this makes a difference in curl and git.

Did you also also build curl and git yourself against your configured OpenSSL library?

Yes. We seem to have a solution. I will describe in #20394.


Error validating migrated state version=0

I tried to launch the dapp with a state that's not versioned yet and the Raiden initialization fails. Not sure if that's an issue we have to take care of but reporting it nonetheless. Probably not relevant because new states will be created including the version, so removing olds states should work as a fix)
Steps to Reproduce

Copy app state below
Go to https://lightclient.raiden.network
Replace state

Expected Result

State gets migrated so that it can be parsed (probably can't be validated because version is missing?)
User can continue to use the dapp

Actual Result

Additional Infos (Optional)
raiden_goerli_0x9b0c8C8C75904CEf5B7a8dbF59c3459Ea85c6526_0x385dB1Ed9509FF184ff9E34a06b2D93daFdBAc0b:"{
  "address": "0x385dB1Ed9509FF184ff9E34a06b2D93daFdBAc0b",
  "chainId": 5,
  "registry": "0x9b0c8C8C75904CEf5B7a8dbF59c3459Ea85c6526",
  "blockNumber": 2129541,
  "config": {
    "pfsSafetyMargin": 1.1
  },
  "channels": {

  },
  "tokens": {

  },
  "transport": {
    "matrix": {
      "server": "https://transport04.raiden.network",
      "setup": {
        "userId": "@0x385db1ed9509ff184ff9e34a06b2d93dafdbac0b:transport04.raiden.network",
        "accessToken": "MDAyOGxvY2F0aW9uIHRyYW5zcG9ydDA0LnJhaWRlbi5uZXR3b3JrCjAwMTNpZGVudGlmaWVyIGtleQowMDEwY2lkIGdlbiA9IDEKMDA1OWNpZCB1c2VyX2lkID0gQDB4Mzg1ZGIxZWQ5NTA5ZmYxODRmZjllMzRhMDZiMmQ5M2RhZmRiYWMwYjp0cmFuc3BvcnQwNC5yYWlkZW4ubmV0d29yawowMDE2Y2lkIHR5cGUgPSBhY2Nlc3MKMDAyMWNpZCBub25jZSA9IDprdzhCNlBiRTsjQ2VXI3YKMDAyZnNpZ25hdHVyZSDvo4L94YiKcCvgKw7OK1_0e0OmvvPajhP1XoOEFwpqJQo",
        "deviceId": "OLZHCMQKXZ",
        "displayName": "0xdfa161f090a566221f03641d52b7dd466078e3044d3ad9d7a52255a7c560aca958938bb3c040b489f81487efead4f9d1a7d3077f75a8ebcc6db83562dbacb1a31b"
      }
    }
  },
  "secrets": {

  },
  "sent": {

  },
  "path": {
    "iou": {

    }
  }
}"

@andrevmatos said it's due to the missing pendingTxs prop which was added before the migration got introduced. So the state above is "quite outdated"

This specific state didn't contain the latest breaking change prior to the state migrations/upgrade. At the time, we didn't care, but now, every breaking change in state should be accompanied of a migration function. I'd say this issue should be closed, as we din't care yet, but if you wanna fix it locally by "migrating" it manually, just add a "pendingTxs: [] prop to the state and try to connect ot the account in dApp again =)


fix nix aspell installation instructions

The original instruction made nix install the language packages in different directories than the aspell package.
Use solution provided here https://github.com/hlissner/doom-emacs/issues/4138#issuecomment-717266771
closes https://github.com/hlissner/doom-emacs/issues/4138

Thanks!


#738 - Add new icon - Implemented

#738 implemented

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: Vadim-Bulavin sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


lang: Mutate instead returning new one in CpiAccount::reload

Once https://github.com/project-serum/stake/pull/15 will be merged I'll update git rev to project-serum/stake in this PR and tests will be fixed.

Restarted CI.

cargo fmt fails, but locally everything ok :thinking:

Thanks! :tada:


Adding config options for workaround_flags.

Provides a way to specify in the config file workaround_flags to be passed onto FreeIPMI.
I needed this to pass in a flag due to a known issue with HP ProLiant servers:
tps://www.gnu.org/software/freeipmi/freeipmi-faq.html#Why-is-the-output-from-FreeIPMI-different-than-another-software_003f
Thought this might be of interest to others as well for different workaround flags needed for their systems.

Hey, i am having the same issues with Supermicro.
unfortunately i didn't check for the opened pull requests and i also wrote an an implementation for the workaround flags.

Hi and thanks for contributing! Sorry for the delay, I was out for a while. I can see how this could be useful, I am wondering however if it might make sense to make this more generic right away, as there are probably other knobs someone is going to want to turn at some point. Please give me another moment to think about this.

Okay, I gave it some thought, making this any more generic does not make sense at the moment, so let's merge this as is.
Could I get you to add an example of this in action to the ipmi_remote.yml example config, along with a comment providing a brief explanation and a link to the list of workarounds (e.g. https://www.gnu.org/software/freeipmi/manpages/man8/ipmi-sensors.8.html#lbAL)?
Thanks a lot!

Added. Thanks!

Thank you!


Select apps for regression tests

See list in CocoaPods/CocoaPods#3891

Tried a handful of apps, almost none build out-of-the-box :/

Yikes! What didn't build about them? Different swift versions?

A few had issues with 0.38.x stricter enforcement of pod targets
eigen fails with this:
⌦  /var/folders/by/znchwbl51gdfht48wv0m4t6r0000gn/T/eigen/Pods/Analytics/Analytics/SEGAnalyticsIntegration.m:5:9: 'TRVSDictionaryWithCaseInsensitivity.h' file not found with <angled> include; use "quotes" instead

which might be a regression

Yeah, that ones technically a regression, but not one we should fix imho


Vorto Dropdowns: Cannot read property 'en-GB' of undefined

Hello,
I've a project that I've added Vorto to and changed most of the properties to Vorto ones.
However, dropdowns have been causing major issues by losing data when saving. I saw this was supposedly fixed on latest version 1.5.1 and this is where I am having the javascript issue:

Please try and latest nightly and let me know if the problem persists
https://ci.appveyor.com/project/mattbrailsford/umbraco-vorto/build/artifacts

I've used the nightly with a umbraco 7.2.3 and 7.4.2 and same js errors.

ok, then I'll need to re-look into this. Which version of Umbraco are you using?

I'm using 7.2.3 for my stable version.
As stated earlier, I did an experimental upgrade to 7.4.2 and tried the nightly build also with that but have had same results.

ok, will take a look as soon as I can.

Thanks! Let me know if you need me to provide more debug info.

Hi @rosudrag
I've just take a look at this in 7.4.2 using my local version (aka the nightly) and the dropdown is working perfectly fine for me. Selections are remembered between tab loads and after publish on page load. The values also return perfectly fine on the front end so I don't seem to be able to replicate this at all.
Can you make sure if you are updating to the nightly that you clear your JS cache as maybe you have a cached file from the previous version, but otherwise I can't think what the issue would be.

I will setup a new basic umbraco solution and test it. I'll come back with my results.

New instance with Vorto works as you would expect. I guess the issue lies somewhere between upgrading from 1.4.0 to the nightly build on my solution. I'll dig into it more and see what needs done on the upgrade.

I was unable to find anything that would point why I would be getting those JS errors. I've downgraded back to 1.4.0 and replaced all the Vorto Dropdowns with normal umbraco dropdowns until I figure it out ...
Console error log file:
http://puu.sh/o8exX/e4fa460079.log

Gonna close this issue then for the time being. Feel free to re-open if you find out the specific issue.


Storing transcript text in a variable problem

I'm currently using your library in my project and everything work fine. But somehow, I can't store tanscript text as soon as the response get back from api. I could use setTimeout and store the textContext of DOM element output in a variable but it's not flexible and efficient. It would be better if I could store the transcript text right after getting the response.
This is how I'm currently using -
const data = useWhisper({         apiKey: "<MY API KEY>"     })     const handleInput = async () => {         await data.stopRecording();         setTimeout(() => {             let text = document.getElementById('myText').textContent             console.log(text);             handleAnswer(text)         }, 500);     }

Hello @ThantHtetAung101
This is because after onStopRecording it will process audio data and send to Whisper before it get the result, so catching transcribed text inside onStopRecording will not work.
If you want to save transcribed text, you should use useEffect instead.
const [texts, setTexts] = useState([])
const { transcript } = useWhisper(yourConfig)

useEffect(() => {
  if (transcript.text) {
    setTexts([...texts, transcript.text])
  }
}, [transcript])


Absorb failure when unable to determine remote content length

When fetching NFT content/metadata, we attempt to fetch the content length using a HEAD request, and then proceed with downloading the content. If the HEAD request fails for some reason, an exception was being thrown which would prevent the content from loading.
On Windows, a strange set of events could cause the user to see EPERM: operation not permitted, open '<path>' error dialogs. The sequence of events seems to be:

fetchBinaryContent opens a file stream for writing
Performing a HEAD request to fetch the content length would fail, raising an exception
The promise is rejected

meanwhile...

A separate call to fetchBinaryContent proceeds
Performing the HEAD request succeeds
The data is downloaded
When determining whether to cache the data, the cache directory is probed
While iterating over the cache directory, the 0-byte file from the previously failed call can't be stat'd leading to the EPERM error.

For this patch, the (lack of) error handling in getCacheSize() hasn't been addressed, but rather the file stream is now closed and the call to getRemoteFileSize() is placed in a try/catch, allowing the request to be handled without learning the content length upfront.

Superseded by #1467


feat(saml): add functionality to provide saml

#3618 closed due to maintenance mode for V1.87.x will be integrated into V2


feature!: add different highlight groups for undo and redo

Resolves #12 and maintains backwards compatibility through config object. Some thoughts for future improvements:
The config object may be cleaner if fields for undo and redo actions (and their sub-fields) are referred to through explicit fields rather than an array. Something like:
config = {
    hlgroup = 'HighlightUndo',
    undo_hlgroup = nil,
    redo_hlgroup = nil,
    duration = 300,
	undo = {
		mode = 'n',
		lhs = 'u',
		map = 'undo',
	},
	redo = {
		mode = 'n',
		lhs = '<C-r>',
		map = 'redo',
	},
},

This does however break backwords compatibility. Please let me know your thoughts. Thanks!

I think I like you new config option.
Can you make the change and adjust the documentation?
10x.

Updated config object and corresponding documentation. The result is slightly different than above but should consolidate fields better.

Thanks :+1


Coverage reports are not being shown in codecov.io site

Hi,
For some reason, the coverage reports are not being shown.
Reviewing the travis-ci log, everything looks fine, and a log line says that the reports have been successfully uploaded, but when I enter into codecov.io no coverage info appears.
This is the travis-ci log:
https://travis-ci.org/crisfervil/Jigsaw/builds/115989439
The codecov commit:
https://codecov.io/github/crisfervil/Jigsaw?ref=444608894ac8cf355466aa0a68a0782191899513
It shows 0% coverage and a message saying File path not found
The project in github
https://github.com/crisfervil/Jigsaw/
Any ideas?
Thanks!!

I am facing the same issue here. Any updates on the fix?

It's been over a year, can we get some feedback on this issue please?


Time to drop http-parser?

Hi,
https://github.com/httprb/http/blob/8b432a79072235ec445ecc3e2763b6efca64490b/http.gemspec#L33
Can we patch http to not use http-parser because it looks like it is not being maintained actively; last commit was in October 2018.
Or is there any alternative that we could possibly use?

We had plans of switching to own ffi binding, but we don't have enough bandwidth to do so. Meanwhile, you should not worry about http-parser as long as it works fine.

We run into random segfaults when we upgraded from 4.1.1 to 4.4.1. After some digging we found that this was caused by the new Compacting GC in ruby 2.7 and the ffi library used by http-parser. ffi has already issued a fix for this.
For now we fixed this by manually including ffi 1.13.1 in our gemfile to include the fix. I also opened a PR to require at least ffi 1.13.1.
However, this still makes me wonder if this project should either bring it's own ffi binding (if there are resources) or maybe more realistic, try to take over (if really needed, fork) http-parser.


Support for Mac El Capitan

can do something to make it work with OSX Capitan
please

Yes Please....

Same error with Yosemite OSX

Electrum-BTCP crashes on macOS version 10.11 because of _getentropy.
Dyld Error Message:
Symbol not found: _getentropy
Referenced from: /Applications/Electrum BTCP.app/Contents/Frameworks/Python.framework/Versions/3.6/Python (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib
I haven't tried it yet but will see if I can build from source on maxOS 10.11 and let you know

I've gotten it to compile and start on 10.11 but I haven't been able to test anything beyond that. This isn't an official version but if you'd like to test it, it's available at https://www.dropbox.com/s/o8q5cqms29rj6d7/electrum-btcp-P!1.0.0_macos_10.11-macosx.dmg?dl=0

Great pjain you are the best...

Happy to help. Like I said, please test it with small amounts as I haven’t tested it at all. I only compiled it from the source code in the main BTCP repository. Hopefully, the dev team can put out an official version soon.

On Mar 5, 2018, at 12:49 AM, ootisra<EMAIL_ADDRESS>wrote:
Great pjain you are the best...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Updated at https://github.com/pjain/electrum-btcp/releases/tag/1.0.0b

Really appreciate the fast response to the problem!  I am going to test run it with a very small amount and will update with results.  Thank you!

Update: Just imported a key for .5 ZCL and it worked just fine... Thanks for your work on this pjain!

Thanks for doing this !

Just so you all know, I was able to use it to sweet ZCL private keys but sweeping BTC keys didn't work. I opened up #35

Pjain, I also was able to sweep a few ZCL keys onto your updated version.
I have only done test amounts so far.  I am curious if this a permanent
wallet I can work off of or if the dev team will be releasing something
different?
On Mon, Mar 5, 2018 at 6:27 PM, Pankaj Jain<EMAIL_ADDRESS>wrote:

Just so you all know, I was able to use it to sweet ZCL private keys but
sweeping BTC keys didn't work. I opened up #35
https://github.com/BTCPrivate/electrum-btcp/issues/35
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/BTCPrivate/electrum-btcp/issues/19#issuecomment-370628311,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AjVKEbC0Ui-rG54wYZcqy4NvenLIVKvHks5tbeXvgaJpZM4SbWzd
.

--
Kyle Bauer
Bachelor of Science - Nutrition
ACSM - Certified Personal Trainer
The Ridge Athletic Club
4181 Fallon Ave, Bozeman, MT 59718
Cell:<PHONE_NUMBER>

Kyle,
I can’t speak for the dev team. FWIW, I ran a few tests and am using this version for myself to sweep and hold BTCP until a better solution arrives.
Best,
Pankaj

On Mar 6, 2018, at 8:52 AM, kbauer0720<EMAIL_ADDRESS>wrote:
Pjain, I also was able to sweep a few ZCL keys onto your updated version.
I have only done test amounts so far. I am curious if this a permanent
wallet I can work off of or if the dev team will be releasing something
different?
On Mon, Mar 5, 2018 at 6:27 PM, Pankaj Jain<EMAIL_ADDRESS>wrote:

Just so you all know, I was able to use it to sweet ZCL private keys but
sweeping BTC keys didn't work. I opened up #35
https://github.com/BTCPrivate/electrum-btcp/issues/35
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/BTCPrivate/electrum-btcp/issues/19#issuecomment-370628311,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AjVKEbC0Ui-rG54wYZcqy4NvenLIVKvHks5tbeXvgaJpZM4SbWzd
.

--
Kyle Bauer
Bachelor of Science - Nutrition
ACSM - Certified Personal Trainer
The Ridge Athletic Club
4181 Fallon Ave, Bozeman, MT 59718
Cell:<PHONE_NUMBER>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/BTCPrivate/electrum-btcp/issues/19#issuecomment-370787436, or mute the thread https://github.com/notifications/unsubscribe-auth/AABypU2uLTwXoLZNLjP-7by1E6_T-dpRks5tbpScgaJpZM4SbWzd.

Thanks for the great work @pjain !
Hopefully a BTCP dev (@heyrhett or other dev) can look at it soon and endorse it or not.
I downloaded on my Mac and seems to run, was even able to create a new hardware wallet with my KeepKey.
We need a BTCP dev endorsement to trust with real BTCP and private keys. Thanks again 👍

I completely agree. I wouldn’t trust some random person on the Internet with the my keys either :-)
Maybe @ch4ot1c will have a chance to take a look at the build and make a decision.

On Mar 6, 2018, at 9:50 AM, calhroub<EMAIL_ADDRESS>wrote:
Thanks for the great work @pjain https://github.com/pjain !
Hopefully a BTCP dev (@heyrhett https://github.com/heyrhett or other dev) can look at it soon and endorse it or not.
I downloaded on my Mac and seems to run, was even able to create a new hardware wallet with my KeepKey.
We need a BTCP dev endorsement to trust with real BTCP and private keys. Thanks again 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/BTCPrivate/electrum-btcp/issues/19#issuecomment-370805855, or mute the thread https://github.com/notifications/unsubscribe-auth/AABypQf8L69028P6MMOvAo8TH0EutnN5ks5tbqI_gaJpZM4SbWzd.

I've been trying to figure out who is the Electrum Mac dev to get in touch with about this... Is it @ch4ot1c ?

I've been trying to figure out who is the Electrum Mac dev to get in touch with about this... Is it @ch4ot1c ?

@pjain  One of the admins on Discord said:

awoogs - Today at 6:06 PM
@calhroub you could always encourage that dev to make a pull request off the main official git repository and contribute changes back into the official codebase - its all open source.

I'm not sure what a pull request is... Hopefully you know what he's talking about and contribute? Thanks.

I have submitted multiple pull requests for other things. A pull request wouldn’t work for this because the Mac app has to be built using Xcode on a version of MacOS prior to Sierra (10-12) with an older SDK. There was no code changed when I built this on an older Mac other than changing the version. Technically, anyone running an older version of macOS can clone the main BTCP repository and build it themselves locally (assuming they have the technical background).
No idea who @awooqs is but @ch4ot1c has merged my pulls in the past.

On Mar 6, 2018, at 11:10 AM, calhroub<EMAIL_ADDRESS>wrote:
@pjain One of the admins on Discord said:
awoogs - Today at 6:06 PM
@calhroub you could always encourage that dev to make a pull request off the main official git repository and contribute changes back into the official codebase - its all open source.
I'm not sure what a pull request is... Hopefully you know what he's talking about and contribute? Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for all your communication and contribution @pjain
I would like to try to clone and build myself. I think I have done something similar in the past using a guide. Do you think you can point me to a guide for me to clone and build myself? Or maybe post some instructions? Thanks again :-)

You can download the zip (if you're not comfortable with git), extract it and then follow the directions at https://github.com/BTCPrivate/electrum-btcp

Hello pjain the wallet does open just fine but there are no connections maybe this is the reason for the previous issue ?

Thank you Pjain for your commitment. Have a nice day

Ok, the solution is easy! It looks like an issue due to the SDK on OS X 10.12 not compatible with previous OS X. All I had to do was "clone" and build .app and .dmg on my older machine (OS X 10.11.6):
The instructions are pulled from the official https://github.com/BTCPrivate/electrum-btcp with some minor corrections (for OS X 10.11.6 El Capitan at least):

Go to a directory you have full access priviledges, example "Downloads"
enter the following command to clone source code from official BTCP Github by copy/pasting:
git clone git://github.com/BTCPrivate/electrum-btcp.git
This created a new folder directory in your Downloads folder.  Copy the following commands in order and enter your administrative password whenever requested. First setup Homebrew:
./setup-mac.sh
Then Install Homebrew dependencies:
brew bundle
Install Python dependencies:
pip3 install -r requirements.txt
Build icons:
pyrcc5 icons.qrc -o gui/qt/icons_rc.py
Compile the protobuf description file:
protoc --proto_path=lib/ --python_out=lib/ lib/paymentrequest.proto
Build .app, .dmg:
./create-dmg

Enjoy! :-)

Good evening everybody, i try to open this official wallet on mac yosemite... it do not work... on tge other hand @Pjain wallet works... why... mistery?!?
Thx @Pjain

Hi @micalways
Did you try the official "Electrum_BTCP-P_1.0.0-macosx-yosemite-beta.dmg" from https://github.com/BTCPrivate/electrum-btcp/releases/tag/P!1.0.0
?

Hi Calhroub, if I download the wallet Beta version on the official site for Yosemite it still quit unexpectely... Pjain link #19 is working....
what am I suppose to do?  Like everybody else I want my forked coins as well ;-)

@micalways if you don't want to use the version at https://github.com/pjain/electrum-btcp/releases/tag/1.0.0b which is signed with my PGP keys, then, your best bet for now is to download a copy of the Electrum BTCP code, install Xcode and built it yourself as @calhroub detailed above.
Who knows when someone from the BTCP dev team will get around to officially supporting older versions of macOS.

@Pjain, Good evening... actualy I use this version  https://github.com/pjain/electrum-btcp/releases/tag/1.0.0b which is signed with your PGP keys and I was able to claim my BTCP on it.
the only question I have is it legit? I trust you @Pjain... so if you are telling me that it is a working and reconized I am feeling ok with that! ( I did not try to send or recieve any BTCP on it so I do not now if it's working a 100% )
But I am not a Dev. so I can't develop or Install code or stuff like that :-), I am not a IT specialist...
So if you are telling me that it's a 100% safe, I am cool with that!!!
but nobody except you is able to help for older Mac versions and that is a bit strange... I mean my Mac is old but still not destined for the trash.
I hope you understand my point of view.
I wish you a good evening.


What is the current behavior?
ts_project() generally provides a JsInfo with .d.ts declarations and .js sources, which is typically what you want in most situations. However, sometimes you want to type check against a dependency without including the implementation of that dependency. This can happen because you expect the implementation to be provided as an input or linked separately. In my particular situation, I would like to type check a tool against my own npm_package() built at HEAD but not include it in the output tool's implementation, since it will be dynamically linked against the same npm_package() in the user's workspace. See https://github.com/dgp1130/rules_prerender/issues/48#issuecomment-1182656780 for more context.
You can technically do this today with emit_declaration_only however this has two problems when applied to this use case:

It only applies to ts_project(), not npm_package().
It must be applied to the ts_project() dependency, not the usage of that dependency. When package foo is built, it should contain its full implementation. However a particular dependent of it may want to limit itself to just consuming the types of foo, rather than the full *.js.

You can also do this with import type which makes TypeScript prevent value references to that import. However there is nothing stopping misguided developers from adding a value import in the future. Also import type is not known to the Bazel layer and does not prevent emitting the JavaScript. This will still pull JavaScript from the type-only dependency, even if the import is elided at runtime. This can complicate dependency resolution, particularly in cases of multiple workspaces. You'd need to pass through a bundler to fully tree shake the unused JS implementation, and that shouldn't be needed for something like this.
Describe the feature
I propose a types_only() rule which effectively strips the JS implementation from the JsInfo provider. You would use it like so:
load("@aspect_rules_ts//ts:defs.bzl", "ts_project", "types_only")

ts_project(
    name = "lib",
    srcs = ["lib.d.ts"],
    declaration = True,
    # ...
)

# Use normally with JS sources included.
ts_project(
    name = "app",
    deps = [":lib"],
)

types_only(
    name = "lib_types",
    dep = ":lib",
)

# Depend only on the types, `lib.js` is not in the transitive output.
# `tsc` will error on value usages of the dependency.
ts_project(
    name = "app_with_lib_types",
    deps = [":lib_types"],
)

It implementation is pretty straightforward:
load("@aspect_rules_js//js:providers.bzl", "JsInfo", "js_info")

def _types_only_impl(ctx):
    info = ctx.attr.dep[JsInfo]
    return js_info(
        declarations = info.declarations,
        npm_linked_package_files = depset(),
        npm_linked_packages = depset(),
        npm_package_store_deps = depset(),
        sources = depset(),
        transitive_declarations = info.transitive_declarations,
        transitive_npm_linked_package_files = depset(),
        transitive_npm_linked_packages = depset(),
        transitive_sources = depset(),
    )

types_only = rule(
    implementation = _types_only_impl,
    attrs = {
        "dep": attr.label(
            mandatory = True,
            providers = [JsInfo],
            doc = "`ts_project()` to remove JS implementation from."
        ),
    },
    doc = "Provides only the types of the given dependency, no implementation.",
)

Since npm_link_package() returns a JsInfo as well, this same implementation works there. However it has the caveat that NPM packages are implemented with a TreeArtifact in the declarations / transitive_declarations property. That TreeArtifact still maintains *.js sources, even if all the other properties of the provider are dropped. That means that if you use types_only() on an npm_link_package(), tsc will actually pass though the output won't include the *.js files. Ideally the *.js files would be removed from the NPM package and the package.json would be limited to just .d.ts, though I don't see an easily feasible way of doing that. Not sure what the best approach is there beyond accepting the foot gun that tsc will allow value references for dependents of types_only() of NPM packages.
Fund our work

[ ] Sponsor our open source work by donating a feature bounty

We have a moderately large project with thousands of rules and tests.  We auto generate all our dependencies and we use consistent-type-imports.  The combination of all these things makes types_only attractive to us as an optimization.  We use this within our build on every PR.
However, to ensure that we aren't over caching, we needed to make one change to the implementation provided above.
-        sources = depset(),
+        sources = info.declarations,

With that change, we get the appropriate caching behavior.  A test (eg) will wait for a dependent ts_project (types_only) rule to build, but then if it only depends on types_only, the test result will be cached since it didn't need the implementation.  This change looks like it saved several minutes on our build and test runs at the 95%-ile.

This feature could be useful for the cases where you have test targets that take .ts or .tsx files as inputs and the test runner (such as jest or mocha) do the transpiling and there are import type in the typescript files. In those cases, not depending on the runtime of those deps could result in better caching.

Just discovered that Angular has an implementation of this called extract_types in our current @build_bazel_rules_nodejs workspace. Just one more example use case for motivation here.
https://github.com/angular/dev-infra/blob/8642bb38e4e37508133aee57c8be9c3903495289/bazel/extract_types.bzl

The proposed implementation here is no longer viable as of @aspect_rules_js v1.40.1. https://github.com/aspect-build/rules_js/pull/1554 removes the declarations properties this depended upon.
Instead I went with a different approach of using a regular dependency, created an NPM package, and then afterwards "pruned" the type-only dependency after the fact. It's not super elegant, but works well enough.
https://github.com/dgp1130/rules_prerender/compare/389383417b9e0dbc4c1e1b8c47f2b4ee71648f6e...313314e9d2c0edd2154d73c27f61d61f86d7715c
My implementation is limited to pruning from npm_package targets, but in theory it should support pruning ts_project directly. Unfortunately the JsInfo type is quite a bit more complicated than NpmPackageInfo, but in theory might be doable.
An alternative approach is to just import type everything you need, TS import elision will naturally ensure it doesn't get loaded at runtime. However it's hard to guarantee that and you likely need to add extra tests or checks to ensure future PRs don't accidentally introduce a value import when you don't have a types_only dependency to cause that error for you.
It would definitely be great for this to be a supported feature so we don't need these workarounds.


THRIFT-4334: Fix perl indentation for default attribute values

I didn't see a testing infrastructure for testing the perl compiler, but I have put reproduction steps in the description of the associated JIRA ticket

Please change the branch target to apache/master.


Nginx PDB shows as not ready

The nignx Pod Disruption Budget is showing as not ready.
It's not allowing any disruptions.
Name:           nginx-e2e
Namespace:      testing
Min available:  2
Selector:       app=web-frontend
Status:
    Allowed disruptions:  0
    Current:              0
    Desired:              2
    Total:                3
Events:
  Type    Reason  Age                  From               Message
  ----    ------  ----                 ----               -------
  Normal  NoPods  3m5s (x2 over 3m5s)  controllermanager  No matching pods found

Fixed in helm chart.


Assert enough aplha powers for combine.

This change is

Codecov Report
Attention: Patch coverage is 90.00000% with 1 line in your changes missing coverage. Please review.

Project coverage is 92.00%. Comparing base (cfb13e3) to head (814e8ad).

Files with missing lines
Patch %
Lines

crates/prover/src/constraint_framework/logup.rs
90.00%
1 Missing :warning:

Additional details and impacted files
@@                           Coverage Diff                           @@
##           09-18-fall_back_to_cpu_in_small_fri     #850      +/-   ##
=======================================================================
- Coverage                                92.01%   92.00%   -0.01%
=======================================================================
  Files                                       90       90
  Lines                                    12204    12211       +7
  Branches                                 12204    12211       +7
=======================================================================
+ Hits                                     11229    11235       +6
- Misses                                     869      870       +1
  Partials                                   106      106

Flag
Coverage Δ

92.00% <90.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Merge activity

Sep 24, 4:47 AM EDT: @alonh5 started a stack merge that includes this pull request via Graphite.


[Question] group by multiple parameters

I have an easy christmas question for you :-)
In C# linq it seems easy but I don`t get it with TypeScript.
How can I group by 2 parameters like schoolclassNumber AND SubjectName?
Normally I would ask that on SO, but there is no linq-es2015 tag existing ;-)
UPDATE
I was confused and wanted actually something different. Of course I could just make a getter for the schoolclassNumber and subjectName together.
Thus my original question is how can I pass the TestType.id property as property of the returned item object?
export class TestType {

    constructor(obj)
    {
        this.id = obj.id;
        this.name = obj.name;
        this.schoolclassNumber = obj.schoolclassNumber;
        this.subjectName = obj.subjectName
    }

    id: number;
    name: string;
    schoolclassNumber: string;
    subjectName: string;
}

   let groupedTestTypes = Enumerable.from(testTypes)
         .GroupBy(g => g.schoolclassNumber, g => g.name, (key, names) => { return { key: key, names: names } })
        .Select((item, index) => new TestTypePair(item.key, Enumerable.from(item.names).ToArray()))
         .ToArray();

    for (var x of groupedTestTypes) {
      console.log(x.key);
      console.log("------------------");
      for (var z of x.names) {
        console.log(z);
      }
    }
```

Ok finally got it 📦
let groupedTestTypes = Enumerable.from(testTypes)
.GroupBy(g => g.schoolclassCode, g => g, (key, g) => { return { key: key, testTypes: g } })
.Select((item, index) => new TestTypePair(item.key, Enumerable.from(item.testTypes).ToArray())) // FIX: warning
.ToArray();
for (var x of groupedTestTypes) {
  console.log(x.key);
  console.log("------------------");
  for (var z of x.testTypes) {

    console.log(z.id);
    console.log(z.name);
  }
}


[Test] Add support for public ECR image

TL;DR
tf-operator can switch to use public ECR image to support better testing user experience, which support CI + CD simultaneously.
Details
We've started work in Kaniko and ECR Credential Helper (https://github.com/awslabs/amazon-ecr-credential-helper/issues/248 + https://github.com/GoogleContainerTools/kaniko/issues/1515), after those work done, we can start engineering work in tf-operator for Public ECR Image support.

/cc @ChanYiLin @gaocegege @Jeffwan

Hi
Is there any progress?

@gaocegege There are some engineering work ongoing, and we look forward to making this work around March

FYI, we have added support for public ECR. From now on, we can use latest kaniko to build and push images to public ECR registry.
I think only a few changes need to be made:

replace image url from private ecr to public ecr
create public ecr registry
Update kaniko to latest version

/cc @gaocegege @ChanYiLin @Jeffwan

cc @andreyvelich @johnugeorge

Hi all, personally I plan to invest more in training part, so I could help finish this part to begin my training project contributions.

Thanks a lot @PatrickXYS!
That would be great.
So do we want to have 2 public registries for each project ?
One for the CI and one for the release ?

@andreyvelich  There are two options we can move forward:

One public ECR registry, in presubmit, we enable kaniko --no-push flag to not push to public ECR.
Two public ECR registry, one for presubmit, one for postsubmit.

WDYT?

If we have enough resources I prefer 2nd option since some of the project might not re-build all of the images in the CI and just use images from the release.
Also it's more safety as you mentioned.
What do others think @kubeflow/wg-training-leads ?

Hi all, personally I plan to invest more in training part, so I could help finish this part to begin my training project contributions.

Cool!

@andreyvelich There are two options we can move forward:

One public ECR registry, in presubmit, we enable kaniko --no-push flag to not push to public ECR.
Two public ECR registries, one for presubmit, one for postsubmit.

The no.1 is development-easy but may mess up carelessly, e.g, someone mistakely remove --no-push in their PR, thus, pushing into public registry directly.
The no.2 is more robust, which need to explicitely specificy two registries in presubmit and postsubmit.
WDYT?

Personally, prefer the latter.

Created a public ECR registry:<PHONE_NUMBER>50.dkr.ecr.us-west-2.amazonaws.com/tf-operator
Public View: https://gallery.ecr.aws/j1r0q0g6/training/tf-operator

Will send a follow up PR to fix test part


Swagger? How? cmd?

Swagger
After adding packages, run the following command: { no command ???}
You can also generate swagger annotations for your apis. swagger option is false by default and can be enabled from config. set
'add_on.swagger' => true.

What is the command to generate the swagger docs and what are the paths to it?

From Swagervel Site:
Installation
Add Jlapp\Swaggervel\SwaggervelServiceProvider to your providers array in app/config/app.php above your route provider, to avoid any catch-all routes
Run php artisan vendor:publish to push swagger-ui to your public folder.

The second part does not add the swagger-ui to the public path???

I have the same problem. What is the command to generate the swagger docs?

I found it, the api docs are in /api/docs

@phillipmadsen @raarts its already in their installation steps. You need to open /api/docs url.
https://github.com/slampenny/Swaggervel#example

@mitulgolakiya  sorry to reopen this issue, but it's very interrelated question. Could you please descibe me how to regenerate the json file which comes at myproject.com/docs ?
I have added a custom parameter in API controller and have marked up  extra parameter
*      @SWG\Parameter(
    *         name="my-key",
    *         in="header",
    *         description="Token for every request in header",
    *         required=true,
    *         type="string",
    *     ),

but it did not come to the json file.

ok, apparently you have to remove the api-docs.json  file from /storage/docs/ and it will be regenerated automatically. If somebody needs.


How to open the miniplayer with maxHeight by default ?

First of all, great plugin and exactly I was looking for :)
I have a requirement of whenever I click on a button in a page, I need to open the mini-player in full height? Any idea how to achieve this?
Current behavior is...when I click on it by default it is showing the mini-player with the minimum height. Thanks for your help,
static const double _playerMinHeight = 70.0;
// using Getx for the state management
Obx(
() => !_videoController.isSessionInProgress.value
? const SizedBox.shrink()
: Miniplayer(
controller: _videoController.miniPlayerController,
minHeight: _playerMinHeight,
maxHeight: MediaQuery.of(context).size.height,
builder: (height, percentage) {
if (percentage > 0.10)
return VideoView();
else
return Text('mini');
}),
),

nevermind fixed it using the valuenotified mentioned here : https://github.com/peterscodee/miniplayer/issues/4


Migrate prod (ckernel + composite op)

Migrate prod op

uses both ckernel and composite implementation
add a folder structure for prod in eltwise. this may change.
implement prod api in unary composite.

Merged

Merged to main #10577


DAB - Cosmos Engine : Unable to resolve type reference None: Hero. (HotChocolate.Types.ObjectType)

I am trying to execute the runtime against the config file generated through the CLI, the engine throws an error during startup as

Unable to resolve type reference None: Hero. (HotChocolate.Types.ObjectType)

Config.json:

"entities": {
    "hero": {
      "source": "heroes.heroes",
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            "create",
            "read",
            "update",
            "delete"
          ]
        }
      ]
    }
  }

Schema.gql
type hero @model {
id : String,
superhero : String,
publisher : String,
characters : String,
alter_ego: String,
first_appearance: String
}

@sajeetharan is this still a valid bug?


Sass Compilation Error in GitLab CI Pipeline

Hello,
I'm trying to use your Jekyll theme for my GitLab Pages site, but I'm encountering an issue when GitLab CI tries to build the site. The error occurs during the Sass compilation step and seems to be related to the use of Liquid syntax in the index.sass file.
Here's the error message I'm seeing:
Error: Expected newline.
  ╷
8 │     padding: 1.75em calc(40% - 17em)
  │                                     ^
  ╵
  /builds/myusername/myproject/assets/css/index.sass 8:37  @import
  /builds/myusername/myproject/assets/css/frame.sass 1:9   root stylesheet
  Conversion error: Jekyll::Converters::Sass encountered an error while converting 'assets/css/frame.sass':
                    Expected newline.

The issue seems to be that the Sass compiler is trying to process the file before the Liquid processing happens. This is unusual, as Jekyll should be processing the Liquid tags before the Sass compiler runs.
I'm using Ruby version 3.0.2 and Jekyll version 4.3.2. The issue occurs in a GitLab CI pipeline using the ruby:3.0.2 Docker image.
I've tried updating all my gems to their latest versions and checked my Jekyll configuration, but the issue persists. I'm not using any Sass plugins.
Any help would be greatly appreciated.
Thank you!

@damc on the README.md of jekyll-sass-converter there is the following:

Dropped support of importing files with the same filename as their parent file
In v2.x, the Converter allowed imports of files with the same filename as their parent file from sass_dir or load_paths. This is a side effect of a bug in the Converter, which will remain as is in v2.x due to its usage in the wild.
In v3.x, imports using the same filename of parent file will create a circular import. To fix these imports, rename either of the files, or use complete relative path from the parent file.

For me renaming assets\css\index.sass to assets\css\index2.sass resolved the issue.

i had a similar problem and after clone the project
bundle install
After solving the related problem in my local project i run the
bundle exec jekyll build --trace
I did not experience the problem again on the cli side.


[Task]: Playground frontend integration tests. Cancel running an unchanged precompiled example

What needs to happen?
Playground frontend integration tests. Cancel running an unchanged precompiled example
Issue Priority
Priority: 3 (nice-to-have improvement)
Issue Components

[ ] Component: Python SDK
[ ] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[ ] Component: IO connector
[ ] Component: Beam examples
[X] Component: Beam playground
[ ] Component: Beam katas
[ ] Component: Website
[ ] Component: Spark Runner
[ ] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

.take-issue


Setting an Object's ACL's

Is your feature request related to a problem? Please describe.
I need to set the access level of a file to public when I create it. However, there are no methods to do in the SDK.
Describe the solution you'd like
A way to set an object's ACLs (https://developers.digitalocean.com/documentation/spaces/#acls)
Describe alternatives you've considered
Nothing yet.

Nevermind, I figured out you can use the bucket's custom headers

@Geometrically glad you figured it out, do you maybe have a code snippet we could put in the README to help out folks from the future :)

let bucket : Bucket = ...;

bucket.add_header("x-amz-acl", "public-read");

This worked for me!

Rock on! Thank you :)

It was a little hard to find this answer, would be great if this were in the README.

Note that the workaround does not work with the put_object_stream methods, as it adds the custom header to both the initial CreateMultipartUpload request (where it's valid), and the final CompleteMultipartUpload request, where it's invalid and returns a 400.
It'd be good to have a correct way to set an object ACL's directly while uploading using the streaming methods, but also a way to set object ACLs for existing objects in general (not just during upload).


Code for attentions visualisaion

Hi,
Thanks for sharing such a great work.
Is it possible to release the code for implementing the attentions visualisation as shown in the paper as well? If not, could you share me some guidelines on how to replicate that part of your work?
Thanks very much for your help.

Hi,
Thank you for your interest. You just need to output the normalized attention weight Am and Ap, and draw heatmaps based on the attention weights, respectively. The molecule part was depicted by RDKit with a similarity map function.
I hope this will help you.


Dependencies on specific versions

The documentation is quite vague about the requirments, mentioning packages but not their versions. For instance, on a Debian stable, the packages mentioned do not work:
Traceback (most recent call last):
  File "CycleHunter.py", line 5, in <module>
    from CyclicDetector import map_nsset
  File "/home/bortzmeyer/tmp/CycleHunter/CyclicDetector.py", line 2, in <module>
    import dns.asyncresolver
ModuleNotFoundError: No module named 'dns.asyncresolver'

This is because CycleHunter requires a more recent version of dnspython, so the apt install command mentioned in the doc is wrong.
Same issue for tqdm:
Traceback (most recent call last):
  File "CycleHunter.py", line 5, in <module>
    from CyclicDetector import map_nsset
  File "/home/bortzmeyer/tmp/CycleHunter/CyclicDetector.py", line 15, in <module>
    import tqdm.asyncio
ModuleNotFoundError: No module named 'tqdm.asyncio'

In both cases, removing the Debian package and installing with pip works.

I think I added as a requirement Python 3.7 minimum.
that should do... I guess

Nope. Debian stable has Python 3.7.3 but the problem is in external libraries (such as dnspython).

Oh thanks (  the original version of cyclehunter did not require asyncio, but the newer did, so the text  seems that has not been updated.
So what did you have to do on Debian? remove dnspython and re-install it with pip3.7?

Yes, see above "removing the Debian package and installing with pip works"


Error Page content sticks

According to the instructions (great write up, thanks!), I've added a 404 link to the nav, in order to see the error handling of unknown pages.

    Home
    About
    404

Works like a charm, but the error message sticks on the page. When I navigate to other pages, I keep having the error message. The page seem to refresh and HRM is also broken. I assume it's a bug in svelte, but you guys might know more about it.

I experienced the same. You can bypass it (although not optimal) by adding rel="external" to your a elements.

thanks @higsch not so much an issue I need to work around for now, just wanted to make sure it's an existing bug rather than a local issue on my side.


Animation support

are you guys planning to have animation?

Yes, it's not a focus until the medium-term future but it's definitely a core feature in the future. For a not-yet-that-organized look at the current thinking about planned features, check out https://graphite.rs/features/ and feel free to ask any other questions or suggestions you think of! 😄


cleaning up refactor

this will replace #42

Codecov Report

Merging #46 (77e4fa7) into develop (25d87d7) will increase coverage by 3.10%.
The diff coverage is 90.00%.

@@             Coverage Diff             @@
##           develop      #46      +/-   ##
===========================================
+ Coverage    42.69%   45.80%   +3.10%
===========================================
  Files            5        5
  Lines          267      286      +19
  Branches        38       39       +1
===========================================
+ Hits           114      131      +17
- Misses         142      144       +2
  Partials        11       11

Impacted Files
Coverage Δ

src/cafe/farm.py
51.89% <87.50%> (+4.01%)
:arrow_up:

src/cafe/fakeData.py
78.57% <100.00%> (+1.64%)
:arrow_up:

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 25d87d7...77e4fa7. Read the comment docs.

@djdebonis last commit just managed to restore simulation with the old syntax. but the yield is constant over time.
next step is encoding Events / Configs to take into account strategies + the growth pattern of trees.
What's good about the code now is that it now works with example syntax in our README (the failing tests before that were because I ripped out the old Farm class).
I think running tests overwrite fakeData from the README which we need to fix. tests should not produce side-effects. I'll look into mocking the saving of the csv and prevent it... thought I already did that but it may have been a different csv. not sure.


Adding a warning for gene percentage

The problem is that for paths we also check this here https://github.com/theislab/scarches/blob/e11e7b433d928250fba18c8193fbb7b56f6e2079/scarches/models/base/_base.py#L218, https://github.com/theislab/scarches/blob/e11e7b433d928250fba18c8193fbb7b56f6e2079/scarches/models/base/_utils.py#L8.
Could you add the validation for surgery from a model object also like for model path and move the warning to _validate_var_names?

It should be fixed now. I'm validating for model object in the load_query_data function and validating for model path in _validate_var_names


Using slack-machine in code

I would like to use slack-machine in code. Not by running slack-machine command.
I need to run the slack bot as a thread of a bigger application. I'm having a hard time finding a way to do this.
If it's already supported, please document it.

It is supported. You can run the bot from code like this:
from machine import Machine

bot = Machine()
bot.run()

You should be able to do this in a separate thread. Using multiprocessing instead of threading is probably better though.
Does this help?

One other remark: when instantiating Slack Machine like this, you can optionally provide a dict with settings (like SLACK_API_TOKEN etc.) If you don't, Slack Machine will try to find a local_settings.py module and try to import that.

Thanks! That works.
I've been using the 'main' method, but now I use the run method directly as you said.
What I'm trying to achieve, is a rest api access to the bot. For example, a third party application that wants to send a message via the bot, will send a request to the bot, and the bot will send a message to slack.

Glad it works for you! A couple of remarks:

I'm planning to add an optional webserver to Slack Machine, that would allow you to expose routes so external applications can call your bot. That feature is mostly meant for callbacks in case you want to use Slack Buttons for instance, but it works for your case as well.
It might be even easier for you, to just use Slack Webhooks for what you want. You can use webhooks to have applications send messages to Slack. Then you wouldn't need Slack Machine at all. Or you could use the Slack WebApi

I'm glad Slack Machine is of use to you, but I'm wondering what Slack Machine adds for your use-case, that you can't achieve more directly with either the Slack WebApi or Slack Webhooks :)

The rest api is just additional feature I need in the bot. I still do need a fully featured framework, instead of using the slack webapi directly. Your framework just supports the most slack features I saw from all the frameworks I've checked, so I chose it. Just the api is what I'm missing.
I did work around it currently, by calling SlackClient directly from flask server, and I still have the bot running in a thread. So it would be pretty easy for us to move to your api implementation once available (I hope it will be soon), and remove the need for threading completely.

Great! Glad you like it.
I will keep this issue open, so I can notify you once the webserver part has been built :)

Update: I have created an initial webserver integration. It's based on Bottle, because that's a nice light-weight framework. I've added a @route decorator to the machine.plugins.decorators package, that takes the same parameters as the Bottle @route decorator. You should use it on functions inside a MachinePlugin It will then automatically register the decorated function as a Bottle route, while also allowing you to use all the features of the Slack Machine Plugin API inside your route functions.
Slack Machine will take care of starting the webserver for you.
I haven't cut an official release yet with this feature, because it's not very thoroughly tested and documented yet. In the meanwhile you can already use it by cloning this repo and running python setup.py install.
Let me know if you run into any issues!

Thanks a lot!
Can you add other decorators as well? Like @get @post @put and the others?

You can provide any method to the @route decorator using the method parameter. Like so:
@route("/hello/<name>", method="POST")
def my_exposed_function(self, name="World"):
    self.say('my-channel', '{} is talking to me'.format(name))
    return {"hello": name}

@route("/status", method=["POST", "GET"])
def my_other_function(self):
    return {"status": "I'm a-okay!"}

To be honest, I'd rather keep the API as simple as possible and not introduce too many decorators.

I guess this works now @Tahvok, so I'm closing the issue.