BGPv2: CiliumBGPAdvertisement ignores overlapping matches

Is there an existing issue for this?

[x] I have searched the existing issues

Version
equal or higher than v1.16.0 and lower than v1.17.0
What happened?
When configuring CiliumBGPAdvertisement with overlapping sector-based matches, the last sequential match is used and previous matches are ignored.  There are no errors thrown.  Based on https://github.com/cilium/cilium/blob/main/pkg/bgpv1/manager/reconcilerv2/service.go#L295 and my own log messages, overlapping matches are carried through to this loop and each previous match is overwritten by the next.
I believe an assumption was made that the administrator would only define a single match for each combination of advertisementType and selector.  The lack of an error message leads me to believe that I am trying to configure Cilium for a use case that wasn't considered, rather than an intentionally not supported one.
As a cloud operator, I have a use case that would ideally be served by setting a dynamic combination of BGP communities based on the workload deployed.  As an example, consider:

Matching the label "customer" which sets the BGP Community 100:100.
Matching the label "customer-vpc" which sets the BGP Community 110:110.
Matching the label "backbone" which specifies the BGP Community 200:200.

In this example, all advertisements from the customer's workload include at minimum BGP Community 100:100.  Some advertisements may contain BGP Communities 100:100 and 110:110, while others may contain 100:100 and 200:200.
I would like to modify Cilium to permit overlapping matches for CiliumBGPAdvertisement.advertisements with the following logic:

When overlapping entries define communities (standard, wellKnown, or large), treat it as an append operation.  All matches within the same type (standard vs. large) are combined.
When overlapping entries define localPreference, regardless of being accompanied by communities or in isolation,  if their localPreference values are different -- throw an error and stop processing the CR.

Example:
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: somekey, operator: NotIn, values: ['never-used-value']}
      attributes:
        communities:
          standard: [ "101:101" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: somekey, operator: NotIn, values: ['never-used-value']}
      attributes:
        communities:
          standard: [ "202:202" ]

When processed by Cilium, this is the same as:
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: somekey, operator: NotIn, values: ['never-used-value']}
      attributes:
        communities:
          standard: [ "101:101", "202:202" ]

How can we reproduce the issue?
Cilium Configuration:
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPClusterConfig
metadata:
  name: cilium-bgp-cp
spec:
  nodeSelector:
    matchLabels:
      kubernetes.io/hostname: bgp-cplane-dev-v4-control-plane
  bgpInstances:
  - name: "control-plane"
    localASN: 65001
    peers:
    - name: "frr"
      peerASN: 65000
      peerAddress: <IP_ADDRESS>
      peerConfigRef:
        name: "cilium-cp-frr-peer"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPClusterConfig
metadata:
  name: cilium-bgp-worker
spec:
  nodeSelector:
    matchLabels:
      kubernetes.io/hostname: bgp-cplane-dev-v4-worker
  bgpInstances:
  - name: "worker"
    localASN: 65002
    peers:
    - name: "frr"
      peerASN: 65000
      peerAddress: <IP_ADDRESS>
      peerConfigRef:
        name: "cilium-cp-frr-peer"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeerConfig
metadata:
  name: "cilium-cp-frr-peer"
spec:
  gracefulRestart:
    enabled: true
  families:
    - afi: ipv4
      safi: unicast
      advertisements:
        matchLabels:
          advertise: "bgp"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPAdvertisement
metadata:
  name: "bgp-advertisements"
  labels:
    advertise: "bgp"
spec:
  advertisements:
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: somekey, operator: NotIn, values: ['never-used-value']}
      attributes:
        communities:
          standard: [ "101:101" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: somekey, operator: NotIn, values: ['never-used-value']}
      attributes:
        communities:
          standard: [ "202:202" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: somekey, operator: NotIn, values: ['never-used-value']}
      attributes:
        communities:
          standard: [ "303:303" ]
---

Cilium Version
$  cilium version
cilium-cli: v0.16.7-40-g9316d0ac compiled with go1.22.2 on linux/amd64
cilium image (default): v1.15.5
cilium image (stable): v1.16.3
cilium image (running): 1.17.0-dev

I am running a local build of Cilium using the BGP Control Plane's Kind dev environment:
git log
commit d32ff87a6aa69b64f027fae40083d9148d283d1e (HEAD -> dswaffordcw/bgp-adverts-additive, upstream/main, main)
Author: André Martins<EMAIL_ADDRESS>Date:   Thu Sep 12 11:07:02 2024 +0200

Kernel Version
Linux hostname 6.5.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 12 10:22:43 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
$  k version
Client Version: version.Info{Major:"1", Minor:"20+", GitVersion:"v1.20.15-enhanced-describe-dirty", GitCommit:"ac2e2baa7d4039cc4c68f2e869e4edbe2d60b305", GitTreeState:"dirty", BuildDate:"2023-03-02T00:33:46Z", GoVersion:"go1.20.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"30", GitVersion:"v1.30.0", GitCommit:"7c48c2bd72b9bf5c44d21d7338cc7bea77d0ad2a", GitTreeState:"clean", BuildDate:"2024-05-13T22:00:36Z", GoVersion:"go1.22.2", Compiler:"gc", Platform:"linux/amd64"}

Regression
No response
Sysdump
No response
Relevant log output
FRR (from BGP Control Plane's Dev Environment)
router0# show ip bgp sum

IPv4 Unicast Summary (VRF default):
BGP router identifier <IP_ADDRESS>, local AS number 65000 vrf-id 0
BGP table version 3
RIB entries 5, using 960 bytes of memory
Peers 2, using 1434 KiB of memory
Peer groups 1, using 64 bytes of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
<IP_ADDRESS>        4          0         0         0        0    0    0    never       Active        0 N/A
<IP_ADDRESS>        4      65002         4         4        0    0    0 00:00:01            3        3 N/A

Total number of neighbors 2
router0# show ip bgp
BGP table version is 6, local router ID is <IP_ADDRESS>, vrf id 0
Default local pref 100, local AS 65000
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
*= <IP_ADDRESS>/32      <IP_ADDRESS>                               0 65001 i
*>                  <IP_ADDRESS>                               0 65002 i
*= <IP_ADDRESS>/32     <IP_ADDRESS>                               0 65001 i
*>                  <IP_ADDRESS>                               0 65002 i
*= <IP_ADDRESS>/32   <IP_ADDRESS>                               0 65001 i
*>                  <IP_ADDRESS>                               0 65002 i

Displayed  3 routes and 6 total paths
router0# show ip bgp <IP_ADDRESS>
BGP routing table entry for <IP_ADDRESS>/32, version 5
Paths: (2 available, best #2, table default)
  Advertised to non peer-group peers:
  <IP_ADDRESS> <IP_ADDRESS>
  65001
    <IP_ADDRESS> from <IP_ADDRESS> (<IP_ADDRESS>)
      Origin IGP, valid, external, multipath
      Community: 303:303
      Last update: Mon Nov  4 00:04:01 2024
  65002
    <IP_ADDRESS> from <IP_ADDRESS> (<IP_ADDRESS>)
      Origin IGP, valid, external, multipath, best (Older Path)
      Community: 303:303
      Last update: Mon Nov  4 00:03:59 2024

Anything else?
No response
Cilium Users Document

[x] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

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

Good morning @harsimran-pabla !
It's great to see the improvements coming via Reconciler conditions.
For this, I think I overly simplified the example and it's not making sense as to why I'd like to change it.  Instead of:
- {key: somekey, operator: NotIn, values: ['never-used-value']}

Let's say we have:
spec:
  advertisements:
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1 operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "202:202" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "303:303" ]

With this configuration, a Service advertisement may be advertised into only ONE of:

The VPC named vpc1
The VPC named vpc2
The VPC named vpc3

I have several use cases where I need to advertise the same Service advertisement into various combinations of VPCs - in some cases all VPCs and others a subset.
To support advertising into all VPCs, I could add a fourth Selector Match:
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" , "202:202", "303:303" ]

That is completely reasonable and straightforward.  Where this becomes complicated and really the reason I'm proposing a change, is that the number of permutations can become quite large.
As I don't know in advance what combinations of VPCs a given operator/customer will want to advertise into, I need to generate Cilium Selector matches for every possible combination.  With 3 VPCs in the current example, we would need to define the following combinations:
spec:
  advertisements:

    # Individual VPCs
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1 operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "202:202" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "303:303" ]

   # All VPCs
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" , "202:202", "303:303" ]

    # Various combinations
    # VPC 1 + VPC 2
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" , "202:202" ]
    # VPC 1 + VPC 3
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" ,  "303:303" ]
    # VPC 2 + VPC 3
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "202:202" ,  "303:303" ]

Next, consider the case where a customer adds a new VPC.  On the Node side, this one is assigned the label lb.example.com/vpc-vpc4.  We need to add the following Selector Matches:
   # Individual VPC
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc4, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "404:404" ]

    # Various combinations
    # VPC 1 + VPC 4
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc4, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" , "404:404" ]

    # VPC 2 + VPC 4
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc4, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "202:202", "404:404" ]

    # VPC 3 + VPC 4
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc4, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "303:303", "404:404" ]

    # VPC 1 + VPC 2 + VPC 4
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc4, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" , "202:202", "404:404" ]

    # VPC 1 + VPC 3 + VPC 4
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
        - {key: lb.example.com/vpc-vpc4, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" ,  "303:303", "404:404" ]

As you can see, the complexity grows exponentially on the Cilium CR side.  At this point, I need to build automation/tooling to manage all of the combinations of Cilium Selector matches.
To compare, what I am proposing under this GH Issue is to define one Selector Match per VPC, and to allow the adminstrator to target any combination of them based on K8s labels.  For the example above, we would have only:
spec:
  advertisements:

    # Individual VPCs
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc1 operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "101:101" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc2, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "202:202" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc3, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "303:303" ]
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc4, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "404:404" ]

And the Customer could target any combination of VPCs simply by setting the following labels:
One VPC
lb.example.com/vpc-vpc1=true

Two VPCs
lb.example.com/vpc-vpc1=true
lb.example.com/vpc-vpc2=true

All VPCs
lb.example.com/vpc-vpc1=true
lb.example.com/vpc-vpc2=true
lb.example.com/vpc-vpc3=true
lb.example.com/vpc-vpc4=true

From a User Story perspective, the creation of a new VPC would result in the modification of the Cilium CR to add:
    - advertisementType: "Service"
      service:
        addresses:
        - ClusterIP
      selector:
        matchExpressions:
        - {key: lb.example.com/vpc-vpc5, operator: In, values: ['true']}
      attributes:
        communities:
          standard: [ "505:505" ]

And it would result in the definition of a new K8s label.  Here, lb.example.com/vpc-vpc5.
From my perspective, this is much more easy to reason about than adding a non-linear number of Selector Matches based on the number of VPCs currently configured.
Implementation
From an implementation perspective, what I had in mind was allowing multiple matches and to internally combine the attributes configured across multiple matches into a single "Advertisement" when processed in-memory.  Specifically, during this loop.
Today, only two types of attributes may be set -- Communities (standard, large, well-known) and Local Preference.  The handling here would only apply to Communities, as one cannot set two different Local Pref values on an advertisement.  I propose treating differing Local Pref values as an error, and combining all matched communities of the same type.
If this should be approached as a formal CFP, let me know.  I started as a Bug Report to provide visibility that today, one is able to define overlapping matchers and the behavior of only using the last sequential match is potentially confusing.
Thank you,
david

Here is a visual of what I am proposing:

Hi @dswaffordcw, Thanks for the explanation, ( I think ) I understand the situation better now. If we break it down, you'd like to have same service be evaluated across all advertisements ( and not just the last one - which is the case currently ). I think it is a reasonable approach. Like you highlighted, mostly the concern is about contradictory attributes ( Only LocalPref currently, not sure what is best approach to resolve it - pick lowest, or highest along with error log ).
I have no objection to it if you'd like to send out a patch for this change.

Thanks @harsimran-pabla!  I'll be in touch with a patch.


[bug] --jit option fails for HMM example

Issue Description
Using the --jit option for the examples/hmm.py example fails with the following error:
      741 Loading data
      784 ----------------------------------------
      784 Training model_1 on 229 sequences
      791 Step	Loss
Traceback (most recent call last):
  File ".../pyro/examples/hmm.py", line 294, in <module>
    main(args)
  File ".../hmm.py", line 256, in main
    loss = svi.step(sequences, lengths, args, batch_size=args.batch_size)
  File "...\pyro\infer\svi.py", line 96, in step
    loss = self.loss_and_grads(self.model, self.guide, *args, **kwargs)
  File "...\pyro\infer\traceenum_elbo.py", line 431, in loss_and_grads
    differentiable_loss = self._differentiable_loss(*args)
  File "...\pyro\ops\jit.py", line 56, in __call__
    ret = self.compiled(param_list, *args, **kwargs)
RuntimeError: Only tuples, lists and Variables supported as JIT inputs, but got Namespace

I believe this is because the command line arguments args are passed as a parameter of type Namespace, which is not supported by the JIT.
Environment

OS and python version: Windows 10, Python 3.6
PyTorch version: 0.4.0
Pyro version: 0.2.1

Code Snippet
Simply run examples/hmm.py with option --jit.

there is no jit support implemented in 0.2.1 and pytorch 0.4.0. see instructions to install the pre-release versions here. note that the pytorch jit is not yet stable and ongoing active development so things may change/break up to the release.

Hi, please try using the dev branch of Pyro and PyTorch 1.0-rc

@jpchen I am using the dev branch, sorry for being unclear.
@eb8680 Will try, thanks for the suggestion!

Thanks for the bug report, and you are right that args is the problematic bit when we try to JIT the svi.step call.

@jpchen - Reopening this, as this is an issue with the pytorch-1.0 for the reason that @ahmadsalim mentioned.

I think we just need to pass the args object as a kwarg rather than a positional arg:
- loss = svi.step(sequences, lengths, args, batch_size=args.batch_size)
+ loss = svi.step(sequences, lengths, args=args, batch_size=args.batch_size)

I'll send a PR shortly.

@ahmadsalim: This should work on the pytorch-1.0 branch now.

I'm still seeing an error after #1455, but it's a different error:
ValueError: Expected all enumerated sample sites to share a common poutine.scale, but found 11 different scales.

It is unclear whether that's due to a bug in PyTorch or Pyro.


Limit IP range for Logic App HTTP triggers #526

PR Summary

Check Logic App apps limit IP range for HTTP triggers. #526

Fixes #526
PR Checklist

[x] PR has a meaningful title
[x] Summarized changes
[x] Change is not breaking
[x] This PR is ready to merge and is not Work in Progress
Rule changes

[x] Unit tests created/ updated
[x] Rule documentation created/ updated
[x] Link to a filed issue
[x] Change log has been updated with change under unreleased section

/AzurePipelines run

/AzurePipelines run PSRule.Rules.Azure-CI

/AzurePipelines run PSRule.Rules.Azure-CI


There is no mx-auto anymore in v0.2.0

After upgrading Tailwind to version 0.2.0, I have found that there is no .mx-auto class anymore.
As you can see in screenshot bellow, searching in compiled CSS have no results.

@mhamlet According to the upgrade guide, you have to manually add it to the config.

Yes, that is. Thank you.

Ref: https://github.com/tailwindcss/tailwindcss/releases#auto-is-no-longer-a-hard-coded-margin-value


docs: propose logset RFC

Signed-off-by: Aylei<EMAIL_ADDRESS>What type of PR is this?

[ ] API-change
[ ] BUG
[ ] Improvement
[x] Documentation
[ ] Feature
[ ] Test and CI
[ ] Code Refactoring

This RFC propose a new resource LogSet to manage the lifecycle of a log service cluster on Kubernetes.

/merge


Added link to existing "queue-based load leveling" pattern

@udidahan : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


[Bug] Optimizer make my cards dark

When optimizer is open, ALL my cards are dark. I suppose it should higlight the right ones but it doesnt.

Would you mind sending log (%appdata%\XIVLauncher\dalamud.log) ?
It's supposed to match by texture name and if it fails, it should log errors about it.

little edit, if i optimize while im creating a deck, it works fine. The problems appear when i optimize and then i open deck creation and try to make a deck. Nothing in xllog. Is this as intended?

Ah, I see. Yup, it's a bug, highlights don't appear until you press optimize. Opening that window without any actions is just dark cards. Nice find!

Nice. Sorry if i ask here, but is the version on main repo updated? cause i see that you made a custom repo, should i use that or can i use the main repo version?

Both are kept up to date, the only difference is api version.

main Dalamud plugin repo = api4 only (could lag behind a day as it goes through approval process)
this custom repo path = api3 only

Once Dalamud is live with 6.0 / api4, this custom repo will be retired.

oh, ok, thanks!

fixed in <IP_ADDRESS> (api4) / <IP_ADDRESS> (api3)


Use layerPainted event to update _last_active_time may lead to timeout.

Currently, LayerTree.layerPainted event is used to update the _last_active_time variable.
But, as a common case, a blinking cursor in a focused textbox can lead to a continuous refreshing.
Thus, _wait_responses_ready will not work because the one second threshold won't be reached, which means a page without setting  window.prerenderReady will wait until timeout.

Thank you for reporting this, can you give an example page so I can test it?

Is it the same? Let's try https://google.com"
2017-06-12 14:41:28,750 INFO prerender.chromerdp.navigate:205   Page 08a8d058-66e4-4bd6-ae57-6a5942381f6f [1] navigating to https://google.com
2017-06-12 14:41:58,765 INFO websockets.protocol.fail_connection:618   Failing the WebSocket connection: 1006
2017-06-12 14:41:58,767 WARNING prerender.app._render:95    Temporary browser failure: , retry rendering https://google.com in 1s
2017-06-12 14:41:58,786 ERROR asyncio.serve:450   Task exception was never retrieved
future: <Task finished coro=<Page._evaluate_prerender_ready() done, defined at /Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py:219> exception=AttributeError("'NoneType' object has no attribute 'send'",)>
Traceback (most recent call last):
  File "/Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py", line 221, in _evaluate_prerender_ready
    res = await self.evaluate('window.prerenderReady == true')
  File "/Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py", line 215, in evaluate
    'params': {'expression': expr}
  File "/Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py", line 171, in send
    await self.websocket.send(json.dumps(payload))
AttributeError: 'NoneType' object has no attribute 'send'
2017-06-12 14:41:59,773 INFO prerender.chromerdp.navigate:205   Page 5702afd5-b794-4c0c-85f3-5817f2bcc59f [1] navigating to https://google.com
2017-06-12 14:42:28 - (sanic)[ERROR]: NoneType: None

2017-06-12 14:42:28,742 ERROR sanic.log:104   NoneType: None

2017-06-12 14:42:28,751 INFO websockets.protocol.fail_connection:618   Failing the WebSocket connection: 1006
2017-06-12 14:42:28,751 WARNING prerender.app.handle_request:172   Got 504 for https://google.com in 60006ms
2017-06-12 14:42:28 - (sanic)[ERROR]: Connection lost before response written @ ('<IP_ADDRESS>', 62967)
2017-06-12 14:42:28,752 ERROR sanic.write_response:217   Connection lost before response written @ ('<IP_ADDRESS>', 62967)

Sorry for a late reply. I missed the mail sent to me 11 days ago.
Yes, the search engine is a good example.

For https://google.com I can't reproduce the exception locally. What's your OS and Chrome version? @akarienta

OS: macOS Sierra, version 10.12.5 (16F73)
Chrome: Version 59.0.3071.86 (Official) (64bit)

Oh, I haven't try Chrome stable yet. I am using Chrome Canary for development. Chrome stable might miss some feature that unstable/canary version has.

@messense ok make sense, I will try Canary and let you know, thanks

You can also try www.baidu.com， the biggest search engine in China.
I ran on Sierra too.

@myrfy001 I have no problem rendering www.baidu.com too.
2017-06-12 21:35:00,284 INFO prerender.chromerdp.navigate:205   Page d1945e18-ff0b-4111-95cf-96611fa58975 [1] navigating to https://www.baidu.com
2017-06-12 21:35:01,017 WARNING prerender.chromerdp._on_log_entry_added:316   https://www.baidu.com/:705 console javascript log warning: A Parser-blocking, cross site (i.e. different eTLD+1) script, https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_async_search_0596852.js, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message.See https://www.chromestatus.com/feature/5718547946799104 for more details.
2017-06-12 21:35:01,018 WARNING prerender.chromerdp._on_log_entry_added:316   https://www.baidu.com/:705 console javascript log warning: A Parser-blocking, cross site (i.e. different eTLD+1) script, https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_async_search_0596852.js, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message.See https://www.chromestatus.com/feature/5718547946799104 for more details.
2017-06-12 21:35:02,634 INFO prerender.app.handle_request:161   Got 200 for https://www.baidu.com in 2355ms

@messense It's absolutely the same for me with Version 61.0.3128.0 (Official) canary (64bit)

@messense I have also the same problem to render www.baidu.com:
2017-06-12 15:38:33,258 INFO prerender.chromerdp.navigate:205   Page 4f5a3630-5014-4d85-b5ef-249096334e24 [1] navigating to https://www.baidu.com
2017-06-12 15:38:33,932 WARNING prerender.chromerdp._on_log_entry_added:316   https://www.baidu.com/:705 console javascript log warning: A Parser-blocking, cross site (i.e. different eTLD+1) script, https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_async_search_0596852.js, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message.See https://www.chromestatus.com/feature/5718547946799104 for more details.
2017-06-12 15:38:33,933 WARNING prerender.chromerdp._on_log_entry_added:316   https://www.baidu.com/:705 console javascript log warning: A Parser-blocking, cross site (i.e. different eTLD+1) script, https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_async_search_0596852.js, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message.See https://www.chromestatus.com/feature/5718547946799104 for more details.
2017-06-12 15:39:02 - (sanic)[ERROR]: NoneType: None

2017-06-12 15:39:02,242 ERROR sanic.log:104   NoneType: None

2017-06-12 15:39:02,250 INFO websockets.protocol.fail_connection:618   Failing the WebSocket connection: 1006
2017-06-12 15:39:02,251 WARNING prerender.app.handle_request:172   Got 504 for https://www.baidu.com in 60011ms
2017-06-12 15:39:02 - (sanic)[ERROR]: Connection lost before response written @ ('<IP_ADDRESS>', 64642)
2017-06-12 15:39:02,252 ERROR sanic.write_response:217   Connection lost before response written @ ('<IP_ADDRESS>', 64642)
2017-06-12 15:39:02,398 ERROR asyncio.serve:450   Task exception was never retrieved
future: <Task finished coro=<Page._evaluate_prerender_ready() done, defined at /Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py:219> exception=AttributeError("'NoneType' object has no attribute 'send'",)>
Traceback (most recent call last):
  File "/Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py", line 221, in _evaluate_prerender_ready
    res = await self.evaluate('window.prerenderReady == true')
  File "/Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py", line 215, in evaluate
    'params': {'expression': expr}
  File "/Users/idolezalova/.pyenv/versions/3.6.1/lib/python3.6/site-packages/prerender/chromerdp.py", line 171, in send
    await self.websocket.send(json.dumps(payload))
AttributeError: 'NoneType' object has no attribute 'send'

@myrfy001 Do you have the same error?

@akarienta How did you launch Chrome Canary? I am using:
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --remote-debugging-port=9222

Make sure you didn't already opened a Chrome Canary before running the command in terminal.

To debug it, start it with DEBUG=1 prerender

@messense I go with command from yout README:
/Applications/Google Chrome Canary.app/Contents/MacOS/Google\ Chrome\ Canary --headless --remote-debugging-port=9222 --disable-gpu "about:blank"

@messense Ahahah, it's ok with your command:
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --remote-debugging-port=9222

So maybe just let's update the README file 😄
BTW it works in the last stable Chrome as well!

Good to know. The readme command is for Linux.

@messense Ah I see. Very well then, thank you very much for your help!

BTW, I would expect Chrome Canary to work with --headless, I guess It's broken for now. But it's unstable version anyway, breakages are kind of normal.

I have the same problem again (with both google.com and baidu.com), even when using the command
/Applications/Google Chrome Canary.app/Contents/MacOS/Google\ Chrome\ Canary --headless --remote-debugging-port=9222 --disable-gpu "about:blank"

I tried also the --headless flag. It seems like a problem with Chrome, it works on some runs, on others it doesn't.

Removed layerPainted events in https://github.com/bosondata/chrome-prerender/commit/280ca7939a2ecc3ded207cfe82cbd503612c1ed4


How to generate yml file for a Java class object

I have a complex model class in Java that has attributes of different class. I wanted to get the schema of the class in yml format for better readability. I do not want to serialize java object, instead I want to serialize the class schema
Example
From
public class Phone {
    public String name;
    public String number;
}

To
Phone:
    fields:
      name:
        type: String
      number:
        type: String

@NandishAndDev Please use mailing list for questions; issue tracker is for reporting issues and requesting new features.
As to writing out the schema, it works by first getting JSON Schema object constructed normally, and then serializing it using YAMLMapper (or just ObjectMapper constructed with YAMLFactory) from jackson-dataformat-yaml project.
Note, too, that you should NOT use schema.toString() for serialization: that is not guaranteed to produce valid JSON output. Serialization should always be done by using ObjectMapper or ObjectWriter.


Update documentation to use pre-commit

Description of changes

Remove deprecated stylecheck deps.
Update the contribution guide

MEMO: I'm intentionally not mentioning the details of the checks for future replacement/addition.

Thanks @EarlMilktea!

@kmaehashi Failed to backport automatically.

Not cleanly cherry-picked


WIP: feat: support fast mode on TiFlash

What problem does this PR solve?
Issue Number: ref #5252
Problem Summary:
What is changed and how it works?
support read in fast mode:

remove the sort merge and mvcc part in read
filter the rows with del mark is true and the related test cases.

Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/run-all-tests

/run-unit-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/rebuild

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/merge

/merge

/run-all-tests

/rebuild

/rebuild

/run-integration-test

/merge


-3 switch causes dhparam -check to generate instead of check

Related to #17539
Feature + bug.
Feature:
Something also useful as a new option while checking safe primes would be the option to check whether the 'g' used produces Order=q or Order=2q. I see that OpenSSL has switched to preferring the former, and it won't generate a safe prime unless it has Order=q based on the -2 -3 or -5 switch used.
However -check doesn't seem to offer the ability to warn the user if the p/g combo has Order=2q.
Bug:
dhparam -check should not be generating safe primes, especially when the -in parameter is used.
While testing to make sure if the above functionality already existed, I found some misleading behavior, which could give the user the false idea that the safe prime in a .pem is valid. Example:
creates safe prime in dhparam.pem:
openssl dhparam -out dhparam.pem -3
checks safe prime in dhparam.pem and outputs detail to dhparam.txt:
openssl dhparam -check -in dhparam.pem -out dhparam.txt
adding the -3 switch causes -check to generate a brand new safe prime to the .txt with a message implying that it found that dhparam.pem held a valid safe prime
openssl dhparam -check -3 -in dhparam.pem -out dhparam.txt

This can be confirmed by comparing the contents of the .pem against that of the .txt, and also by having the .pem contain a different bit length than the default 2048 generated by the final '-check' syntax. If the -in filename does not exist, there is no error generated either.
edit: to clarify this was tested in v3.01

-3 is no longer a valid option.

-3 is no longer a valid option.

The command accepts it and the dh_builtin_genparams() that's invoked will also work with it. It will generate a safe prime.

Basically the -in option will be silently ignored.

@faramir-dev If you want to fix this one just add a warning, I do not think changing the functionality or erroring out would be a good idea due to backwards compatibility.

-3 is no longer a valid option.
Just confirming that I do see -2 -3 and -5 being treated as valid options. They determine the 2/3/5 value for g that's attached to the generated safe prime so that Order=q. The -2 is default behavior which skips p if p-mod-24=11, and the -5 skips p unless p-mod-60=59


Soft-teacher configuration may have some typo error

Describe the bug
In the default configuration of the soft-teacher model provided by mmdetection,
model = dict(
    semi_test_cfg=dict(predict_on='teacher'))

I confirmed this configuration makes inference on the teacher model
BUT, the soft-teacher author's configuration defines inference on the student model (and also the paper)
author's config line :253
Is the mmdetection's configuration intended or just a typo error?

It is because the experimental results show that ‘teacher’ perform better. You can switch to 'student' for inference.

I'm using soft teacher configuration with custom data. However, I found that if I changed the loop to EpochBasedTrainLoop, the training would exceed the displayed iteration number in one epoch like Epoch(train) [1][2150/1458] without stopping to do evaluation. Kindly request for some explanations or help please!

I have the same question, type='EpochBasedTrainLoop' and Epoch(train)  [1][1000/881] @Jeffery-MIC

Only support IterBasedTrainLoop, since there exits two datasets: labeled and unlabled.

The problem has been solved according to your method, thank you @Czm369

File "e:\lzx\mmdetection\mmdet\models\detectors\soft_teacher.py", line 255, in rcnn_cls_loss_by_pseudo_instances
losses['loss_cls'] = losses['loss_cls'] * len(
KeyError: 'loss_cls' 你好，我遇到了一个问题，关于损失函数没有loss_cls列表的问题

Have you solved the problem? @lzx101

Have you solved the problem? @lzx101

解决了，我没有改具体的数据，我只是修改了source_ratio=[1,2]


Stuck on a registration page after using VPN

Checklist:

[ X] I have checked that there are no issues with similar or the same content
YOU SHOULD CHECK CLOSED ISSUES ASWELL

[X ] I have checked the FAQ (https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/wiki/FAQ) and the answer I am looking for is not there

[X] I have double checked and can reproduce the issue

OS:
Windows
GPMDP Version:
V4.6.1
Issue Descriptions:
Swapping between Google play music and Youtube music while being connected to my VPN in Switzerland (Mullvad VPN), I'm now stuck in an infinite loop of this screen: https://imgur.com/a/cjjmF6W. Swapping back between the two players even after stopping the VPN and restarting my machine + reinstalling the app still gives me that screen.
Steps to Reproduce:
Connect to a VPN (I used Mullvad and a server in Switzerland) and swap between Google play music and Youtube Music from the hidden icons on the windows bar.

^^ deleting your settings cache will fix the issue 👍


Pass includes and defines from Python

Pass the previously unused Python command line arguments -I and -D to RunVerilator.
The conversion from boost::python::list seems a bit clumsy, but the best I could come up with for now.

Hey @heiner-bauer, thanks for raising this project's first pull request!
The changes look good to me, could you add unit tests for this to tests/integration/py_wrapper_tests.py and tests/integration/tool_tests.py?
Cheers,
Jamie


2.2.19 Some spurious System.err

In this commit a trial System.err has been forgotten and should be removed

Any chance of this getting a release version soon? Maybe have a release just for that?
It's kind of annoying to have these additional error log lines in the latest version.

included in latest 2.2.20


Consider adding support for unknown scales and zero_points

The goal of the ticket is to track the support of unknown scales and zero-points. This is required to represent the scales and zero-points, in StableHLO graph, calculated on the fly by the training program while quantizing the activations.
Please refer to relevant discussion here.

Support for unknown scales would be incredibly useful for quantization aware training (QAT). What is the current status on this?
Maybe a bit of context, our use case is focused on QAT targeting a fully int8 quantized TFLite inference model. Currently we're relying on tf.quantization.fake_quant_with_min_max_vars on the training side. As far as I'm aware this is the only supported way at the moment but it would be great to be able to directly output StableHLO from jax or maybe even PyTorch for greater flexibility and better usability.
@abattery mentioned that he's interested in QAT as well and the odml team seems to have a way to inject stablehlo.uniform_quantize ops but I'm not sure what the latest status on these efforts are.
@sdasgup3 do you know whether there is interest in supporting QAT workflows via StableHLO from frontends like jax or PyTorch? I'd be very interested in getting involved and contributing towards any consolidated effort here since QAT is much easier to deal with from an ML training standpoint compared to post training quantization which always has the potential to introduce accuracy degradations if not done carefully.

@lgeiger Thanks for bringing this up and providing details about your case. This is on our radar for sometime, but did get a sufficiently motivating use-case (and bandwidth) to initiate work on it.

do you know whether there is interest in supporting QAT workflows via StableHLO from frontends like jax or PyTorch? I'd be very interested in getting involved and contributing towards any consolidated effort here

Much appreciated on your willingness to contribute! I will get back to you on you the question.


Integrating with pvc-transfer library

Removes konveyor/crane-lib dependency
Updates transfer-pvc subcommand to use backube/pvc-transfer library instead of crane-lib
Refactors struct for command flags:

Seggregates flags for endpoint and pvc
Introduces a new flag for ingress-class
Updates endpoint type flag to structured

/retest-required

/check-required-labels


Fixed #34220 -- Moved csrf_input_lazy, csrf_token_lazy imports to the toplevel.

adding imports on line 11, thanks to thread by @felixxm

@rajdesai24 Thanks :+1:


Test if the source files are well-formatted by clang-format in CI

Summary

Run clang-format.
Test if the source files are well-formatted by clang-format in CI.

Only on macOS because the result of clang-format doesn't depend on platform.

@Ruin0x11
If you are making a big change, I'll postpone merging this pull request until it finishes to avoid huge conflict.

Okay, so I wait for them.

@ki-foobar Everything is merged in, so this can be worked on.


Discrepancy between estimated value and balance for $yfi

Hello,
I just made a $yfi purchase and the value immediately disappeared from the estimated value. Also, the yfi dropped to the bottom of my balance. Screenshot included.

Hi just wanted to follow up to this. Still not seeing the $YFI value in my account. Thanks for your help.

From the screenshot, $YFI is in your account. The issue is the pricing of $YFI is missing in our API.

Thank you so much for your response. It was just very scary seeing my
estimated value drop when I purchased. I thought I made a trading mistake.
Thanks for your hard work and help.
JF
On Mon, Sep 14, 2020 at 2:06 PM SunnyWheat<EMAIL_ADDRESS>wrote:

From the screenshot, $YFI is in your account. The issue is the pricing of
$YFI is missing in our API.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Loopring/dexwebapp/issues/192#issuecomment-692314315,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQ7PBKKLIM6JTTUATNVH5SDSF2AU5ANCNFSM4RK4C2XA
.
--
Jared B. Feldman
C -<PHONE_NUMBER>
Cornell University 2011 | School of Industrial and Labor Relations


Evolutions

Short Description:
Bot will evolve pokemon when it has enough candies for it.
It runs after_catch_pokemon and after_transfer_pokemon.
Changes:

Added list of candies to bot
Added method to update/add candies
Moved _initial_transfer_get_groups to bot as get_pokemon
Added Evolver plugin
Added 'after_transfer_pokemon' event
Added evolve_pokemon config

@OpenPoGo/maintainers

Awesome work so far, but I'd really like to see some config options for this. Is it feasible to have the user (in the config file) specify which pokemon to evolve? (or, alternately, which Pokemon not to evolve?) Basically, I'd like it so if -ev is specified on the commandline, it uses whatever rules are in the json file, and if no rules are present, it evolves whenever possible.

I can work on that, about to get on a plane so wont be till tomorrow at least.

No rush, thanks for the work so far


[AIRFLOW-1797] S3Hook.load_string didn't work on Python3

Dear Airflow maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Airflow JIRA issues and references them in the PR title. https://issues.apache.org/jira/browse/AIRFLOW-1797

Description

[x] With the switch to Boto3 (#2532) we now need the content to be bytes, not a string. On Python2 there is no difference, but for Python3 this matters.

Tests

[x] My PR adds the following unit tests: New tests/hooks/test_s3_hook.py file covering load_string and read_key. Moved one existing test out of tests/core.py

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #2771 into master will increase coverage by 0.05%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2771      +/-   ##
==========================================
+ Coverage   73.26%   73.31%   +0.05%
==========================================
  Files         157      157
  Lines       11934    11934
==========================================
+ Hits         8744     8750       +6
+ Misses       3190     3184       -6

Impacted Files
Coverage Δ

airflow/hooks/S3_hook.py
51.19% <100%> (+20.23%)
:arrow_up:

airflow/task_runner/bash_task_runner.py
93.33% <0%> (-6.67%)
:arrow_down:

airflow/utils/helpers.py
53.44% <0%> (-2.88%)
:arrow_down:

airflow/jobs.py
79.23% <0%> (-0.45%)
:arrow_down:

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 3eb2dd8...771ced3. Read the comment docs.


add the configuration to show line numbers

Duplicate of #375

Note that you can include your keys and configs in the my_configs.vim Ref


better style and documentation

Ran this and followed all the steps and it's working a lot better, but is still reformatting indentation incorrectly sometimes on my computer.


fix: add workaround for removing document change listeners

Closes #232

Codecov Report

Merging #235 (1f48328) into main (09f3da5) will decrease coverage by 76.88%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #235       +/-   ##
===========================================
- Coverage   90.06%   13.17%   -76.89%
===========================================
  Files         122      118        -4
  Lines        7639     7293      -346
===========================================
- Hits         6880      961     -5919
- Misses        759     6332     +5573

Flag
Coverage Δ

e2e.cbl
?

unit.cbl
?

unit.cbl_dart
13.17% <ø> (ø)

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

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

@blaugold Looks promising... will it fix #227

Yes, that's the reason for this change :)

Wow, cool... thanks for fixing this!! One blocker off the road!


Build a specific php 8.0. version.

Hi, it is possible to build the latest alpha 3 version of php 8.0, since to test the packages it would be good to test  with lasted alpha versions in linux and windows.

The nightly PHP 8 builds are newer than alpha 3.
It will be difficult for me to maintain 6 different PHP 8.0 builds, extension builds and support for them in setup-php.
I understand that PHP 8 nightly builds might give unexpected errors in tests as something changes daily or is unstable. I suggest adding continue-on-error: true to the testing steps when PHP is 8.0. And after each PHP 8 beta/RC release in future you can fix tests in your project.
- name: Run tests for  PHP < 8.0
  if: matrix.php-version != '8.0'
  run: phpunit ...

- name: Run tests for PHP 8.0
  if: matrix.php-version == '8.0'
  continue-on-error: true
  run: phpunit ...


Add the development version of Qiskit to API ref?

I'm think particularly in the run up to 1.0 people might be especially curious to see what's coming in the development version of the API reference. I've also seen other documentation types that they sometimes have a dev version of their api in their historical versions, so it's not a completely novel idea for documentation

Duplicate of https://github.com/Qiskit/documentation/issues/316


fix(etherpad): change import/export icon

Decrease the padding-top property that causes bottom text being cut off for
viewers
closes: https://github.com/alangecker/bbb-etherpad-skin/issues/4

the title seems wrong but the content looks good! 😄  thanks for the PR


Add admin interface for reindexing a project search

We have a management command for this, but a site admin command probably makes a lot more sense. Let's move the management command to a site admin feature.
Work required:

[ ] On Project admin, a command that reindexes all active versions (project queryset and all attached active versions)
[ ] On Version admin, a command that reindexes by version queryset instead
[ ] Drop management command, these aren't good interfaces for site admins and are mostly hidden
[ ] The management command seems to just do all versions active or not, we should probably test for active versions instead.
[ ] There should also be an admin function to wipe the index for a version and for a project

I wiped project indexes manually with:
query = {'query': {'bool': {'must': [{'term': {'project': 'docs'}}]}}}
PageIndex.delete_document(query)
SectionIndex.delete_document(query)

hi

Hi @agjohnson I am interested to work on this issue. I just wanted to ask can someone who is new to this project can solve this issue?

Thanks for the interest, I think this kind of depends on https://github.com/rtfd/readthedocs.org/pull/4722

@agjohnson I would like to take this issue up.
Can you please guide me on how to get started with this.

Should be easy enough to do it now, but we should build it knowing that the functionality that we call to index things might change, but that should be a small change in this part of the code.

We have a management command for this

I am assuming that this command is python manage.py reindex_elasticsearch -p <project_name>.
right?
I will be making an initial PR soon.

One doubt, by the terms Project Admin, Version Admin, did you mean the project and version admin interface provided by the django or the one which is on RTD like readthedocs.org/dashboard/<project-slug>/edit/ ?

This issue can be closed now.

:+1:


Add fp-ts-std to ecosystem docs

:slightly_smiling_face:

omit from fp-ts-std/lib/Record just saved my day!


WiFi HID emulator

hi , sorry to open a ticket for my question, but I have a question that may related to your field of repository and any possible hint really appreciated
Actually I interested to send game-pad data by WiFi bridge(ESP8266) to my laptop, but generic joystick only use USB port, Is there a way to emulate "HID-compliant game controller" driver which listen to IP message instead of USB port
Tnx

thanks for quick reply , I've actually prepared my server  side with ESP8266 which can send any joystick data (buttons,pot,..) on websocket message , so on my laptop wifi emulator should connect to specific IP and listen to websocket message,  and upon any mesege pass it to generic HID-compliant game controller
I'm not sure, how to bind wifi message with HID driver on laptop but I find this site made similar software ,but unfortunately it is not opensource to modify it
I hope I make it clear
tnx

Well, when you already have an established method to transfer the data to your PC then all you need is to feed that data into a Gamepad emulator like ViGEm or vJoy.

I haven't yet found the time to update the feeder documentation but explore the sample implementations to get an idea on how to use the client library. Also a lot of action happens on the Discord so consider joining.

@nefarius can you direct me where should I start and entry point for the ViGEm, my skill is mostly focus on Soc programming with c++ but I have  little skill on visual c#
tnx

The examples I linked to are in C++...


[CSS] Selectors

Acceptance criteria

[x] The listed features are documented sufficiently on MDN

[x] BCD is updated

[x] Interactive example and data repos are updated if appropriate

[ ] The content has been reviewed as needed

Features to document

Support for compound selectors and complex selectors within :not() negation pseudo-class. Needs BCD update, and some examples adding to the :not() page

Related Gecko bugs

[ ] support compound selectors and complex selectors within :not() negation pseudo-class.

For folks helping with Firefox-related documentation features — make sure above AC have been done, but also:

Set bugs to dev-doc-complete
Add entry to Firefox release notes if feature is enabled in release
Add entry to Firefox experimental features page if feature is not yet enabled in release

Added an example of complex syntax to the example section. I also updated the previous example with a clearer result and to remove a class named ".crazy" as it is exclusive language (regarding MH issues, and seemed unnecessary).
https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/:not
Added to release notes.

Great work, thanks @rachelandrew . I've reviewed this, made a few small edits, and it looks fine.
I also see you did the BCD too: https://github.com/mdn/browser-compat-data/pull/7376
When that gets merged, I think we can close this.

I had a look at the examples and it seems that the existing example
body :not(p) {
  text-decoration: underline;
}

has no effect due to the newly used text-decoration: overline. I don't think that's intentional. How about using this:
body :not(p) {
  font-style: italic;
}

I had a look at the examples and it seems that the existing example
body :not(p) {
  text-decoration: underline;
}

has no effect due to the newly used text-decoration: overline. I don't think that's intentional. How about using this:
body :not(p) {
  font-style: italic;
}

I had a look at this, and it seems to work for me (I tried in both Fx and Chrome) — the third and fourth elements in the example are underlined because they are not paragraphs?

It works in Fx 83 and Chrome, because they don't support complex selectors in ":not()" and therefore ignore the fifth rule. When testing in Fx Beta or Nightly (which support complex selectors in ":not()") the text-decoration: overline of the fifth rule takes precedence. Am I missing something?

@mikoMK my apologies — I didn't have my Firefox Nightly updated. Now I can see exactly what you mean ;-)
I've updated the wording and the styling so that it makes a bit more sense.

There's no need to apologize. I'm glad I could help to improve the example. Thanks to you and the other tech writers at MDN. You're doing an amazing job in providing the world with knowledge!

Thanks to you and the other tech writers at MDN. You're doing an amazing job in providing the world with knowledge!

;-)

All done, looks like we can close this one.


proposal: net/http: Make parsePostForm public

Currently, parsePostForm is private. It is called only from ParseForm and one cannot call manually. This means that if one wants to call it on a non-standard HTTP method (not POST, PUT, PATCH) you have to temporary change method, then call ParseForm and then return it back. Or if you want to parse just post form and ignore any query string parameters. Currently you cannot ignore string parameters (you have to set RawQueryString to "" currently). In my case, I want to parse query string and post form separately because I want o log parsed query string but not post form (the latter might have sensitive data).
I think code could be something like:
func (r *Request) ParsePostForm() error {
	var err error
	if r.PostForm == nil {
		r.PostForm, err = parsePostForm(r)
		if r.PostForm == nil {
			r.PostForm = make(url.Values)
		}
	}
	return err
}

func (r *Request) ParseForm() error {
	var err error
	if r.PostForm == nil {
		if r.Method == "POST" || r.Method == "PUT" || r.Method == "PATCH" {
			err = r.ParsePostForm()
		}
		if r.PostForm == nil {
			r.PostForm = make(url.Values)
		}
	}
	...
}

Given what it does, why wouldn't you use url.ParseQuery directly?

parsePostForm parses application/x-www-form-urlencoded body, so it has a bit more logic than just calling url.ParseQuery.

It only handles application/x-www-form-urlencoded, not multipart/form-data, and all it does is pretty much:
b, _ := io.ReadAll(r.Body)
v, _ := url.ParseQuery(string(b))

And sets limiter if it is not already set, etc. I understand I can make it myself. But why not make it public?


Footnote extension: validate ids for unicality

Add a config option to throw in case of non-unique footnote id was found.
I can work on this if no objections will be expressed.

Throw an error? When parsing a document? Absolutely not! The parser should never throw an error while parsing a document. Not only is this typical Markdown practice, but many/most use Markdown parsers behind web servers, many of which would crash the entire server if an error was thrown during parsing. That puts too much power in the hands of users to bring down a server.
I realize you are suggesting this as a non-default option, but I'm not at all interested. Of course, you are free to fork the extension and do whatever you want, but I don't recommend it..


Failed to verify broker certificate: unable to get local issuer certificate

Description
I am running 3 host cluster on a hosted service (cloudkarafka).
Client = Windows 10 + dotnet 4.7.1
I've successfully run tests using kafka builtin kafka-console-consumer & kafka-console-producer, so I think my credentials and system certs are fine.
When runnign a producer, I am getting following logs (logs file attched).
The error I am seeing is "Failed to verify broker certificate: unable to get local issuer certificate", but that might or might not be the issue.
How to reproduce
Log attached
Checklist
Please provide the following information:

[x] Confluent.Kafka nuget version: 0.11.3
[ ] Apache Kafka version:
[x] Client configuration: attached in log
[x] Operating system: Windows 10
[x] Provide logs (with "debug" : "generic,broker,topic,metadata,feature,queue,protocol,msg,security,all" as necessary in configuration)
[ ] Provide broker log excerpts
[ ] Critical issue
log-2018-03-09.txt

I started (but never finished) writing in detail about security here, I think it will help:
https://github.com/mhowlett/confluent-kafka-dotnet/tree/security/examples/Security

Thanks.
It appeared to be an issue with the broker verification.
Everything worked when I set CA certificate:
var config = new Dictionary<string, object> {
  {"ssl.ca.location", <location of broker root CA> },
  ...
};

It looks that C# does not use the same root certificates as Java does (as the Java consumer/producer worked out of box).
I imported the certs from Java (using x509 format) and used them in the C# app (as the "ssl.ca.location").

Thanks.
It appeared to be an issue with the broker verification.
Everything worked when I set CA certificate:
var config = new Dictionary<string, object> {
  {"ssl.ca.location", <location of broker root CA> },
  ...
};

It looks that C# does not use the same root certificates as Java does (as the Java consumer/producer worked out of box).
I imported the certs from Java (using x509 format) and used them in the C# app (as the "ssl.ca.location").

I am running into the same issue you were having, but dont understand what you meant by exported them from Java.
I copied the Certificate value from the heroku page and saved it locally, but am still getting this error. I pointed the ssl.cert.location value to saved .crt file too

@tollek @mhowlett Tagging you in case this gets lost since its an older issue

I can't really check it at this point - the source code I used for testing is long gone :)
It's worth to read the link posted by @mhowlett: https://github.com/mhowlett/confluent-kafka-dotnet/tree/security/examples/Security
Not sure if I understand your snippet correctly, but broker cert is one thing and CA root cert is another. It's very important to get this right.

Yes, i read those links, but the SASL section is empty for both examples. I believe the one i would need is SASL_SSL..
I am trying to connect to a Heroku Karka resource called Carafka. They provide the SASL username/ password, API key (no clue what to do with that) and the CA cert string. Ive attempted to connect using SASL SCRAM and found almost no resources (except your issue) that seems to be right on the money

I had similar issue with SSL handshake problem https://github.com/confluentinc/confluent-kafka-dotnet/issues/1374
I was able to solve having a .pem file under my root of the application and setting the SslCaLocation config.
However, why doesn't Confluent Lib access the Windows Trusted Certificate Root Store ? is that a known issue?


Onnx export

Can you upload a script to correctly export the entire model as onnx ?

Thanks. We will support it in the future. But it should be a similar process to here.

First of all, thanks for open-sourcing your work.
I tried running the original SAM Jupyter notebook for exporting the decoder in ONNX format.
I was able to correctly run the cells where the model is laoded, using SAM-HQ vit-h checkpoint. However, when running the cell that effectively exports the model as ONNX, I'm getting:
`[...]
File ~/Downloads/sam-hq/segment_anything/utils/onnx.py:120, in SamOnnxModel.forward(self, image_embeddings, point_coords, point_labels, mask_input, has_mask_input, orig_im_size)
117 sparse_embedding = self._embed_points(point_coords, point_labels)
118 dense_embedding = self._embed_masks(mask_input, has_mask_input)
--> 120 masks, scores = self.model.mask_decoder.predict_masks(
121     image_embeddings=image_embeddings,
122     image_pe=self.model.prompt_encoder.get_dense_pe(),
123     sparse_prompt_embeddings=sparse_embedding,
124     dense_prompt_embeddings=dense_embedding,
125 )
127 if self.use_stability_score:
128     scores = calculate_stability_score(
129         masks, self.model.mask_threshold, self.stability_score_offset
130     )
TypeError: MaskDecoderHQ.predict_masks() missing 1 required positional argument: 'hq_features'`
Any help is much appreciated.

i'm facing the same problem as @juanilarregui .
i'm trying to fix it, if I manage to do so I will copy here the solution

same here.

Hi @lkeab , any advice you could provide for that specific error?

"TypeError: MaskDecoderHQ.predict_masks() missing 1 required positional argument: 'hq_features'`". By check this error log, I would suggest you to modify the here and providing the hq-features required by HQ-sam.

I'm not being able to get hq_features (that depends on interm_embeddings for example) inside that class, given that interm_embeddings for what I'm seeing is an instance attribute of SamPredictor. Am I correct?

same here.

hi, we are working on it and will support it soon.

hi, we are working on it and will support it soon.

Hi, is there any approximate date available?

Hi, we have updated the script and example colab notebook for exporting and using ONNX model.

Hi, we have updated the script and example colab notebook for exporting and using ONNX model.

Thank you for your nice work! But, how can we separate the encoder and decoder into separate onnx files (like traditional seq2seq models) for flexible deploy? Because of that, if we export the model with an encoder and decoder combined, that will have to run the encoder on every prompt, which is a huge overhead.

Hi, we have updated the script and example colab notebook for exporting and using ONNX model.

Thank you for your nice work! But, how can we separate the encoder and decoder into separate onnx files (like traditional seq2seq models) for flexible deploy? Otherwise, if we export the model with an encoder and decoder combined, that will have to run the encoder on every prompt, which is a huge overhead.

Hi, this pull request may help you.


Fix custom OptimizerChain docs

Just noticed docs contained a mistake. This PR fixes this.

Thanks!

Thanks!


Missing overflow check for transferred_amount

Similar to #2058 and #2059 when a locked transfer is successful the transferred_amount will be increased, and that must not overflow. Because of this, when a locked transfer must only be create iff the code below would not overflow:
https://github.com/raiden-network/light-client/blob/60903231bc2bcebc366b8431061bb20610ca5579/raiden-ts/src/transfers/epics/locked.ts#L257-L259
To reinforce, the overflow must be checked when the locked transfer is created, and not at unlock time, that would be too late.

Closing in favor of #2058


migrate to dep

Codecov Report

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

@@            Coverage Diff             @@
##           master      #89      +/-   ##
==========================================
+ Coverage   66.31%   68.46%   +2.14%
==========================================
  Files           3        3
  Lines         190      130      -60
==========================================
- Hits          126       89      -37
+ Misses         56       34      -22
+ Partials        8        7       -1

Impacted Files
Coverage Δ

main.go
41.37% <0%> (-10.24%)
:arrow_down:

sse/sse.go
72.22% <0%> (+1.63%)
:arrow_up:

selenoid/selenoid.go
80.85% <0%> (+4.18%)
: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 d43178b...f27358d. Read the comment docs.


Avoid uncaught exceptions on late JSONP answers

Better do something like "received a late JSONP response, ignoring"

Fixed, released in 3.15.1


server: close connection on parse-ip failure

Close the client's connection if we're unable to parse their IP.
This also simplifies the check to reduce indentation by a level.
Finally, this replaces the two-var construction of the pseudo-const
messages with an inline dereference via a slice to allow constructing
them less noisily.
Note: this is easier to review if you squash whitespace (via adding ?w=1 to github's diff viewer url).
I don't know of any way to actually hit that error case, but if we're intent on handling the error, this is a slightly neater way to do so.

Looks good and makes sense to handle it this way, thanks for the PR!


Not able to login to local server

The latest main branch login seems to have been hardcoded the server address to: https://staging-consent-bb-api.igrant.io/v2/onboard/admin/login
It should take from .env variable isnt it?. Looks like the env variable didnt get picked up.
Problem with this commit? https://github.com/decentralised-dataexchange/bb-consent-admin-dashboard/commit/138d2c6cfb0a131aa6ca0e0812c03729d07c6707

Closing as it works when the info is changed in public/config.json


Feature/omni examples

A few small things(DEPOSITING):

no symbol
POI balance was not updated after a tx
wrong symbol

REDEEM:

no symbol
POI balance was not updated after a tx


Worst fit memory allocation in C

Fixes #5933

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Worst fit memory allocation in C
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#5933

@ankitaggarwal23 , @HarshCasper kindly review the PR


Invalid syntax for required_providers

Prerequisites

[ ] Ensure you have latest version of plugin installed
[ ] Search for possible issue duplicates

Installation details

[ ] IDE version (Help->About->Copy to Clipboard)
PyCharm 2019.1.3 (Community Edition)
Build #PC-191.7479.30, built on May 29, 2019
JRE: 11.0.2+9-b159.60 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-54-generic
[ ] intellij-hcl plugin version (Settings->Plugins)
v0.7.4
[ ] Terraform version (terraform -v)
Terraform v0.12.5

Terraform Configuration Files
terraform {
  required_version = ">= 0.12"
  required_providers {
    aws = ">= 2.20"
    local = "~> 1.2"
    null = "~> 2.1"
    random = "~> 2.1"
    template = "~> 2.1"
  }
}

Exception
<identifier>, <string literal> or '}' expected, got 'null'

Expected Behavior
https://www.terraform.io/docs/configuration/terraform.html#specifying-required-provider-versions
Actual Behavior
The syntax is invalid

Thank you for reporting, will be fixed in next plugin update (0.7.5 or so)


Compile error of qemu port, Ho to deal with this error?

Hi folks:
my procedure is this:
1.clone the nuttx and apps project and let then in the same directory.
2.  ./tools/configure.sh qemu-intel64:nsh and got success.
3. execute "make" in top nuttx dir, and got failure.
~/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx$ make
make[1]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/tools'
make[1]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/tools'
make[1]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx'
make[2]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/boards'
make[2]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/boards'
make[2]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/apps'
make[3]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/apps/platform'
make[3]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/apps/platform'
make[3]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/apps/builtin'
make[3]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/apps/builtin'
make[2]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/apps'
make[2]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics'
make[3]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics/nxglib'
make[3]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics/nxglib'
make[3]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics/nxglib'
make[3]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics/nxglib'
make[3]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics/nxglib'
make[3]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics/nxglib'
make[2]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/graphics'
make[2]: Entering directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/arch/x86_64/src'
make[2]: Nothing to be done for 'clean_context'.
make[2]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx/arch/x86_64/src'
make[1]: Leaving directory '/home/czl/WorkSpace/smp-nuttx/nuttx-upstream/clean-code/nuttx'
Create .version
error: unknown option `sort=taggerdate'
usage: git tag [-a|-s|-u ] [-f] [-m |-F ]  []
or: git tag -d ...
or: git tag -l [-n[]] [--contains ] [--points-at ]
[...]
or: git tag -v ...
-l, --list            list tag names
-n[<n>]               print <n> lines of each tag message
-d, --delete          delete tags
-v, --verify          verify tags

Tag creation options
-a, --annotate        annotated tag, needs a message
-m, --message
tag message
-F, --file      read message from file
-s, --sign            annotated and GPG-signed tag
--cleanup       how to strip spaces and #comments from message
-u, --local-user
use another key to sign the tag
-f, --force           replace the tag if exists
--column[=

Looks like you have a very old version of git and should probably upgrade. But you can get around this by running the tool directly and supplying a version like 9.1.0 ./tools/version.sh -h

Looks like you have a very old version of git and should probably upgrade. But you can get around this by running the tool directly and supplying a version like 9.1.0 ./tools/version.sh -h

it worked, thank you! :)


Changelog entry for isInnerClass and new emplace behaviour

Changelog entry for #4650 and #4734.

@wilzbach Fixed. Thank you for the feedback.

Auto-merge toggled on

Auto-merge toggled off

How bizarre that we named this trait isInnerClass instead of isNestedClass. I'm also surprised declaring inner as a field will make the trait fail. A class may still be nested even if you declare such a field. For example:
class C { class Inner { int outer; } }

void main()
{
    auto Inner = new C.Inner;  // error, requires instance of C
}

Therefore I think the trait probably needs compiler support to properly identify nested classes.

How bizarre that we named this trait isInnerClass instead of isNestedClass.

FYI:

The trait hasn't been released yet, so renaming is still possible and without any deprecation costs.
The D spec uses the term nested classes

I'm okay with a sensible rename.
On Thursday, September 1, 2016, Sebastian Wilzbach<EMAIL_ADDRESS>wrote:

How bizarre that we named this trait isInnerClass instead of isNestedClass.
FYI:

The trait hasn't been released yet, so renaming is still possible
and without any deprecation costs.
The D spec uses the term nested classes
https://dlang.org/spec/class.html#nested

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dlang/phobos/pull/4761#issuecomment-244100218, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAill9gX-LH8KcfE_3pBiOA7f3Y5Agzdks5qluPggaJpZM4Jxbzu
.

--
Please excuse terseness and typos

Wait a minute. I knew I remembered this had to have existed before, and it does https://github.com/dlang/phobos/blob/2854ae011f92af6b0632bec6bed4b878290ebd6a/std/traits.d#L2082
What advantage does the new function have over the existing one?

What advantage does the new function have over the existing one?

This trait identifies a special case of nested classes: the ones whose context pointer can be manipulated in D. This is possible only when the context pointer is a class and not a closure (that is: when the class is directly nested inside another class and not inside a function) and also the class does not "hide" it by defining something called outer.
The reason for this trait is to identify these special cases, which can be treated differently. In fact, objects that respect this trait can be "rebound" to different outer instances after creation and can also be created with emplace and then assigned an outer instance. In the other cases, when the context pointer is not accessible, an emplaced object that tries to use it will segfault (as emplace has no way to initialize it).

@andralex @wilzbach I decided to use a very different name as this trait has a very specific meaning. But of course I'm open to changes if it's deemed better. (In fact it caused some confusion already)

Interesting. I wasn't aware we can actually rebind outer! But it does indeed work:
import std.stdio;

class C
{
    int x;

    class D
    {
    }
}

void main ( )
{
    auto c1 = new C;
    auto c2 = new C;

    c1.x = 10;
    c2.x = 20;

    auto d = c1.new D;

    writeln(d.outer.x);

    d.outer = c2;

    writeln(d.outer.x);
}

I wonder what kind of patterns this enables, or just when it is used.

I wonder what kind of patterns this enables, or just when it is used.

The current use is to make emplace, and by extension std.allocator.make, safer. Before #4734, you could emplace any class/struct that required a context pointer, and emplace would of course not initialize it (as it had no way to do it), causing segmentation faults whenever that context was accessed. With that PR, when the context pointer can be manipulated, emplace will require you to pass it. So buffer.emplace!Inner() does no longer work. Now you are required to do buffer.emplace!Inner(outerInstance).
Of course, the next step is to totally forbid emplacing structs/classes whose context is a closure (that is, structs/classes nested inside functions), as their contexts cannot be manipulated inside the language. But this requires another PR, which I hope I'll manage to prepare.

Fixed some wording.
What's blocking this? A final decision on isInnerClass is needed quickly, before it makes it into a non-beta release. @andralex @wilzbach ?

By the way, this is also blocking me from starting some experiments (with the goal of disallowing emplacing structs/classes with closures).

A final decision on isInnerClass is needed quickly, before it makes it into a non-beta release.

As far as I see, isInnerClass is going to be in 2.072, not in 2.071.2. It's not that urgent.


Changed the layout information of technical for network

Issue

none

Overview (Required)

The title says everything :P

Links

Screenshot

Before
After

let me merge


Bump GitHub Actions

What was changed

Updated all GHA actions to latest.

Why?

All GHA official actions based on Node 16 are deprecated.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


Do not parse non-markdown files

It would be great if there was a possibility to exclude files from being parsed and rendered as markdown.
For example, I have a markdown file that links to source code files and HTML files. Currently, if there is text in those files that look like markdown they parsed and rendered which makes the output unusable. Better would be if those files would be shown as text files (source code files) or as is (HTML files).

Note that this is an area where grip is not rendering things as GitHub does: compare GitHub's rendering of 0cjs/sedoc:lang/python/runtime/activate with grips, for example.

This is a duplicate of #236

This is a duplicate of #236.


FCA throwing error on launch

Description
Fixing FCA throwing error on launch [error][Utils.js][overrideParams][{}].
JIRA Ticket
Include a link to the JIRA Ticket linked to this PR.
Issue-0000
Additional Info (Test steps / Steps to reproduce etc.)
Details on how to test the feature

 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.preethi.m seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@PreethiMaai can we close this PR and open one from a branch in main repo instead of forking.


Set path_mtu and segment_mtu to 1550 to accomodate guest vm mtu 1500

Can one of the admins verify this patch?

"ok to test" to accept this pull request for testing
"test this please" for a one time test run
"add to whitelist" to add the author to the whitelist

:+1:  We will need to back port this to our 3.0.0 release branch as well.

ok to test


Expose profiler as a library

Relevant issue https://github.com/foundry-rs/starknet-foundry/issues/1724

I wonder if we shouldn't just rename the package to cairo-profiler at this point

Feel free to open an issue.


MINIFICPP-1446 - SQL extension doesn't compile on Debian

Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically main)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file?
[ ] If applicable, have you updated the NOTICE file?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

Not debian, but I get this error when trying to build this PR with SQL enabled
make[2]: *** No rule to make target 'extensions/sql/thirdparty/iodbc-install//lib64/libiodbc.a', needed by 'main/minifi'.  Stop.
on main I get a similar error, but for libsoci_odbc.a instead.

Not debian, but I get this error when trying to build this PR with SQL enabled
make[2]: *** No rule to make target 'extensions/sql/thirdparty/iodbc-install//lib64/libiodbc.a', needed by 'main/minifi'.  Stop.
on main I get a similar error, but for libsoci_odbc.a instead.

Not debian, but I get this error when trying to build this PR with SQL enabled
make[2]: *** No rule to make target 'extensions/sql/thirdparty/iodbc-install//lib64/libiodbc.a', needed by 'main/minifi'. Stop.
on main I get a similar error, but for libsoci_odbc.a instead.

This PR was meant to address the latter, but cmake caching is so f... up that you never know when you have the good setup. Will tackle this a bit more.

Not debian, but I get this error when trying to build this PR with SQL enabled
make[2]: *** No rule to make target 'extensions/sql/thirdparty/iodbc-install//lib64/libiodbc.a', needed by 'main/minifi'. Stop.
on main I get a similar error, but for libsoci_odbc.a instead.

This PR was meant to address the latter, but cmake caching is so f... up that you never know when you have the good setup. Will tackle this a bit more.

A bit more info after trying to build this PR:
szaszm@szaszm-pc:~/nifi-minifi-cpp-2/cmake-build-relwithdebinfo-gcc-large$ find -name libsoci_odbc.a
./extensions/sql/soci-external-prefix/src/soci-external-build/lib/libsoci_odbc.a
./extensions/sql/thirdparty/soci-install/lib64/libsoci_odbc.a
szaszm@szaszm-pc:~/nifi-minifi-cpp-2/cmake-build-relwithdebinfo-gcc-large$ find -name libiodbc.a
./extensions/sql/thirdparty/iodbc-install/lib/libiodbc.a
./extensions/sql/thirdparty/iodbc-src/iodbc/.libs/libiodbc.a

A bit more info after trying to build this PR:
szaszm@szaszm-pc:~/nifi-minifi-cpp-2/cmake-build-relwithdebinfo-gcc-large$ find -name libsoci_odbc.a
./extensions/sql/soci-external-prefix/src/soci-external-build/lib/libsoci_odbc.a
./extensions/sql/thirdparty/soci-install/lib64/libsoci_odbc.a
szaszm@szaszm-pc:~/nifi-minifi-cpp-2/cmake-build-relwithdebinfo-gcc-large$ find -name libiodbc.a
./extensions/sql/thirdparty/iodbc-install/lib/libiodbc.a
./extensions/sql/thirdparty/iodbc-src/iodbc/.libs/libiodbc.a


how can I use distinct to query data?

@whoshuu  @satyan @sibelius
any movement here? i am in the same boat. Please shed some light.


Synchronized methods

Synchronized method support implementation, except static synchronized methods in shared generic code (needs codegen modification).
Fixes #2364

Opened https://github.com/dotnet/corert/issues/2375 on the static synchronized methods in shared generic code case.


[bug] maximize is not resizing current window

Hey!
It looks like window is not being resized after all other are hidden
before pressing:

after pressing:

Hi sorry I'm not quite sure what is causing this. I tried using your settings from your nvim config but it still works for me so maybe it's having issues with another plugin. Could you please try going to ~/.cache/nvim and seeing if a .maximize_session-XXXXXXXXXX.vim exists after you try maximizing (with vim still open)?

hey! sorry for delay :(
no, i don't see such

No worries!
I just want to double check that I'm understanding the issue correctly, are the original windows not able to be restored once you maximize? If this is the issue hopefully using require('windex').toggle_nvim_maximize() instead of require('windex').toggle_maximize() will work.

sorry, which should i use? the one with nvim seems to work only for nvim, but not tmux


add web phone module

add web phone module
add browser option to call settings
add fromNumber to call module

Coverage decreased (-2.9%) to 46.736% when pulling a7a7d4dd64bbb87278820cf4365944248b0ea32d on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

Coverage decreased (-2.9%) to 46.736% when pulling 9d95b406202104fac214e8de6159927d78451210 on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

Coverage decreased (-3.2%) to 46.423% when pulling 1a9f04597f28bcfb9ab0e550317f79981e5e7989 on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

Coverage decreased (-3.2%) to 46.423% when pulling f7eccded3c6cf07e15a07df5a2b74db309490e8e on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

Coverage decreased (-3.2%) to 46.44% when pulling 9f66172fc78cf1b8d6954189a6799463da482122 on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

Coverage decreased (-3.2%) to 46.412% when pulling 3ec45d052aba07199759553edbba330fb9c81168 on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

Coverage decreased (-3.7%) to 45.904% when pulling d8b3c9d8217cdccf84ab59a5fd920ae33b6fdfde on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

看起来非常的复杂。要不我们先merge了？

Coverage decreased (-3.7%) to 45.904% when pulling a1d42c7a7c54b27e6e2c9bcf182b631471c128d6 on embbnux:webphone into 38e5e5ca0f49daf4e5b4f295662024d59dbe8021 on ringcentral:master.

@LingForCC yes, It's a individual module, and will not change features. It's better to merge to avoid a big pr


Regression tutorial seems to be missing interpretation answers

Went through the regression tutorial and it appears to be focused on calculating quantities and making plots, but there are some important interpretation questions that we'd want them to reflect on that we should have answers to.
I'll start with the first task in which the solutions show 3 different visualizations that are not interpreted (i.e., answered the posed question). These other tasks are similarly missing interpretations from the solution.

yeah i didnt write these on purpose because i wanted to make the tutorial and get feedback on the general design prior to going all out.


[Tokenizers] Add LICENSE to OpenVINO Tokenizers

Add separate LICENSE, third-party-programs.txt and SECURITY.md files to custom_operations folder

We would need to maintain 2 set of license files on the repository (


rsync on provision

According to https://github.com/janschumann/vagrant-aws#synced-folders, folders will be synced on up, reload and provision actions. But for provision the SyncedFolders task was missing.
When placing b2.use SyncedFolders before b2.use Provision the folder sync is executed AFTER provisioning. Is that intended? Nevertheless I placed it after provisioning and now it works correctly.

We've recently found that this used to be the behaviour in 0.6.0, but it regressed in 0.7.0.

@ColinHebert could you please tell us why you decided to regress this feature in 0.7? Does it have any side effects?

As per https://github.com/mitchellh/vagrant-aws/pull/347 and https://www.vagrantup.com/docs/synced-folders/rsync.html

Without running these commands, Vagrant only syncs the folders on vagrant up or vagrant reload.

To expand on my previous answer. The initial behaviour was to sync only on vagrant up and vagrant reload.
On vagrant up it makes sense because otherwise there is nothing to provision in the first place. vagrant reload is meant to be a full reload of the machine, so syncing again makes perfect sense.
vagrant provision on the other hand is meant to run the provisioning part assuming that the files are already there from a previous sync (on up or reload). And it is, by design, possible to provision the same content multiple times without having new data. It doesn't require any extra operations (upload or otherwise) than running the provisioning (ie. does what it says on the tin).
On the other hand if we do synchronise before a provision, or at any other point in time, we break this contract of "sync only at given times" and also introduce a behaviour different from the "provision only provisions":
https://github.com/mitchellh/vagrant/blob/b223380/plugins/providers/virtualbox/action.rb#L171
https://github.com/mitchellh/vagrant/blob/b223380/plugins/providers/docker/action.rb#L53
(and so on).
The best thing to do is to either create a new action (provision_sync or something like that), use vagrant rsync-auto or simply run two commands (as it's been initially designed): vagrant rsync && vagrant provision.
My recommendation being the second one which is specifically there for this particular use-case.

@ColinHebert thanks. Actually an rsync command was what I was initially looking for. But it does not show up on vagrant -h, so I refused to read the docs and tried my own solution. Also because the vagrant-aws docs document another behaviour: https://github.com/janschumann/vagrant-aws#synced-folders,

The rsync command actually shows up in vagrant list-commands. Thanks!


Pod issue

Hii while installing pod files it says acces denied, can you help me with that thanks..

Can you please provide the full output from this error message, and exactly what command you ran?

I ran pos install command in terminal and this is the error I am getting
Pre-downloading: PoissonRecon from git@github.com:StandardCyborg/PoissonRecon.git, commit 9f30316c1b247736654652c72e06b3f0db2e79ed
[!] Error installing PoissonRecon
[!] Failed to download 'PoissonRecon': [!] /usr/bin/git clone git@github.com:StandardCyborg/PoissonRecon.git /var/folders/fg/rls0p68d5vl423_2xgs461900000gn/T/d20230513-7177-kl3ahf --template=
Cloning into '/var/folders/fg/rls0p68d5vl423_2xgs461900000gn/T/d20230513-7177-kl3ahf'...
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Strange, that is a standard GitHub repo spec. Are you able to access this repo on the web?
https://github.com/StandardCyborg/PoissonRecon/tree/xcodeproj

Same problem here. @Sarvjeetsh Have you found a solution? Thanks.

@Sarvjeetsh Managed to fix it by setting up the ssh on my mac (obviously :) ) and deleting the podfile.lock. Afterwards running pod install worked.

@stadarz  thank you very much, will try your solution. Also you can get depth data directly from ARFront camera configuration using frame.capturedDepthData?.depthDataMap which can give you depth data. I started from scratch lol


[aiconfig readme] updated quickstart to link to vs code extension

[aiconfig readme] updated quickstart to link to vs code extension


console in error occured : SyntaxError: Unexpected token < in JSON at position 0

useEffect(() => {
const loadModels = () => {
Promise.all([
faceapi.nets.tinyFaceDetector.loadFromUri("/models"),
faceapi.nets.faceLandmark68Net.loadFromUri("/models"),
faceapi.nets.faceRecognitionNet.loadFromUri("/models"),
faceapi.nets.faceExpressionNet.loadFromUri("/models"),
])
.then(handleImage)
.catch((e) => console.log(e));
};
imgRef.current && loadModels();

}, []);

Please any one know about this error please give me answer.

add models in public folder

Close this issue

I tried and I did so I closed this issue.


[SPARK-35437][SQL][FOLLOWUP] Relax cast if does not need timezone with PrunePartitionsFastFallback

What changes were proposed in this pull request?

Allow Cast during prunePartitionsFastFallback if it actually does not require the timezone.
Why are the changes needed?

Make prunePartitionsFastFallback work with more cases.
For example, one partition column data type is StringType but the query with the partition predicate using IntegerType
CREATE TABLE t(c int) PARTITIONED BY(p string);
SELECT * FROM t WHERE p = 20210101;

Does this PR introduce any user-facing change?

no, not released and this pr itself just affects the perf.
How was this patch tested?

Add some test for Cast who need or does not need time zone.

Test build #146470 has started for PR 34981 at commit 3a70db0.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50946/

Test build #146470 has finished for PR 34981 at commit 3a70db0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

cc @cxzl25 @sunchao @cloud-fan

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146470/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50946/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50946/

Can you link to the original PR in your PR description?

Can you link to the original PR in your PR description?

updated

thanks, merging to master!

thank you @cloud-fan


OpenCL is dead

OpenCL is dead and nVidia is slowly getting some competition in the compute space so that CUDA doesn't really suffice anymore either. There's a whole bunch of potential alternatives (SYCL, Vulkan, HIP, OneAPI, OpenAcc, Kokkos, and probably more I don't know about) but what to do? I think the CUDA and OpenCL chapter could use an update. Maybe something for the GPU SIG to pick up?

According to the people at Khronos OpenCL is not dead, it is widely used (especially on mobile) and it is the target of e.g. various SyCL compilers :)
I became the maintainer of that page yesterday, will allocate time before the end of the year for a thorough overhaul of our GPU guidelines.

According to AMD it is though. At least they're not making a driver for the GPU in my laptop...
Anyway, you know much more about this than I do, so I'm looking forward to the new page. Thanks in advance!


add english language

English users can now reference the english language in the _config.yml

The English is in the default.yml. https://github.com/hexojs/hexo-theme-landscape/blob/master/languages/default.yml

Hi Noah, I was referencing the default in the _config.yml but the blog was not changing my language, only after creating a en.yml and referencing it in the _config was I able to get the English working properly.

Hi Noah,
It seems that when hexo create new blog is initialized for the first time.
The language is french rather than the default.

Yes, I also encountered such scenario. However, if you set the language to en, it will use the default one.