Fail to deal with integrands with singularities: a simple case

Dear Prof. Chen,
Recently I am working on the following integration, where the integrand has a singularity at $x=2$. It turns out that both your package and the standard 1D numerical integration package QuadGK.jl fail to deal with it.
using MCIntegration
using SpecialFunctions
using QuadGK

z0(x) = 2 ≤ x ≤ 3 ? 3 + 2√(3 - x) - (x / 2)^2 : 4 * √(3 - x)
z1(x) = 2 ≤ x ≤ 3 ? 4 * √(3 - x) : 3 + 2 * √(3 - x) - (x / 2)^2
dos(x) = 1 / (√(z0(x)) * π^2) * ellipk(z1(x) / z0(x))

f_integrand(x, c) = dos(x[1])
rslt1 = integrate(f_integrand, var=Continuous(-6, 2 - 1e-5)) # return error
quadgk(dos, -6, 2 - 1e-5) # return error

As a workaround, one can skip this singular point manually by separating the integration regime into several parts if necessary. Thus a naive way to make such kind of integration to work is by adding a key word argument specifying the points to be excluded in the integration. However, I guess there must be better ways to deal with this problem, at a more fundamental level relating to the algorithms used.
BTW, I've checked that this integration can be perfectly done in commercial softwares like Mathematica.
Best,
Junsen Wang

It looks like the integrand can not handle the upper bound 2-1e-5, see the attached figure.

This problem seems to be an overflow problem associated with "ellipk(1.0)".


Fix promptIsSelectable not being passed through to one-way-select

What is the reason behind removing all .gitkeep files?

They are no longer necessary as other files have been created in these directories.


Add code coverage

This pr will add code coverage through codecov.io and cobertura.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@afb7547). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #11   +/-   ##
=========================================
  Coverage          ?   77.69%
=========================================
  Files             ?        3
  Lines             ?      139
  Branches          ?       29
=========================================
  Hits              ?      108
  Misses            ?       25
  Partials          ?        6

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 afb7547...2d09885. Read the comment docs.


Error listening to TCP on localhost:8082:

wallet cannot start !!

I am getting the same issue.  I have a fresh download of V1.1.0 and the node has synced.  I just can't get the wallet daemon to start.

I found a workaround.  Just delete the "Karlsenwallet" application in your "Karlsen" folder and replace it with the "Karlsenwallet" application from V1.0.0.

Oh I've overseen this report and created #26 on my own. :) You probably run another wallet like Kaspa as we haven't changed the default port yet. It will be fixed with v1.2.0 planned for end of January.

You are correct I've been running a Pyrin node as well.

I had same issue, the problem is the file that is available to dl, the exe anyways, is corrupt. Build from source and no issue. Or I suppose as mentioned above, download v1.0.


feat: enable optional services

for pairing debate :taco:

main problem is the provider and count conflict usage
which leads to wrapper usage
we could object-ify module variables to enable a cleaner wrapper usage such as

-- wrapper
module ""{
source ...
context = var.context
}

any more ideas? :woman_shrugging:

closed. optionals will be managed with self-baked module usage as per #14


Fix plutarch-extra build failure

staging is broken.

I'll merge this right away as I've tested it locally and the change seems to be uncontroversial.


Can I use this inside the bot?

I would like to create transcripts for my own Ticketsystem.
Do you have maybe some Code?

Hi, do you mind clarifying what you're asking for? If you're asking for an example of how this can be used, here is an example of how a GitHub Action can utilize this package to generate transcripts in GitHub.

I have codet my own ticketbot for Discord, that works fine. Now I would like to create a transcrip of the channel automaticly when a ticket gets closed. How can I automate this process?

You should be able to use the examples in the readme and the repo I shared above to use the CLI to do this (I haven't officially created a Node API, though I wouldn't be against it).

If you have any specific questions, please let me know.


Built-in role for Get secrets/certificate?

[Enter feedback here]
The built-in role for RBAC does not seem to have Get/List for secrets/certificates.   Is there a reason why there is no equivalent of a reader/user role?

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

ID: 9fe2188c-d08d-be91-bf80-9665cac23596
Version Independent ID: e0cf82de-bdf5-97a4-f9e0-f40e8c12b064
Content: Migrate to Azure role-based access control
Content Source: articles/key-vault/general/rbac-migration.md
Service: key-vault
Sub-service: general
GitHub Login: @msmbaldwin
Microsoft Alias: mbaldwin

@keatseongchan
Thanks for your Question! We are currently investigating and will get back on this.

@keatseongchan In Key Vault, access can be granted for Management plane or Data plane or both.
Management plane: To control operations like creating and deleting key vaults, retrieving key vault properties, and updating access policies. This require permissions to be added at the Subscription/ResourceGroup/KeyVault Resource level via RBAC.
Data plane: To control operations like reading, adding, deleting , and/or modifying keys, secrets, and certificates. This require permissions to be added via Access Policy blade in Key Vault.
Now, to answer your question, access to data plane is controlled via access policies which is why there is no RBAC role available for this purpose.

Thank for your response.  I figured the RBAC role needed for data plane access if we move away from access list.  Key Vault Secrets User would allow download of certificate and secrets.  However, to get Certificate metadata we need Key Vault Reader.

@keatseongchan Yes, you are right. I apologize, my response was based on how it used to work before RBAC roles for key vault were introduced.


Check clippy lints on CI

This adds a job for checking clippy lints on CI

Testing this on a branch as I’m getting the following error on CI:
 error: process didn't exit successfully: `rustc -vV` (exit status: 127)
--- stderr
rustc: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory


Add listing breakpoints and clearing them by ID

@slid1amo2n3e4 Hi there! You obviously share interest in the Rakudo debugger. Thus may I ask what you're up to? I'm interested!
I myself am working on a TUI frontend and am currently putting together all the tooling I need for that (getting Terminal-Widgets to work cross-platform, a syntax highlighter, a minimal terminal emulator, PTY support in Moar).

@patrickbkr This is my third try of learning Raku, and since I bounced off previous times because of the lack of a basic debugger, this is me trying to kill two birds with one stone.

 :-) It seems we share a passion for debuggers.

But this wouldn't be possible without MoarVM-Remote and this project making things working again, so for everyone who contributed to that: good job people!

All of the debugger infrastructure, the VM side, MoarVM-Remote as well as App-MoarVM-Debug is the work timo. @timo++ indeed!

Will your TUI be integrated into this project? That'd be great.

My current plan is to have a separate project, but using MoarVM-Remote as well. I don't expect there to be much overlap in the code (given all the meat is in MoarVM-Remote and one is a CLI and the other a TUI).

What are the most pressing issues I can help with (given I don't know much!)?

I guess it depends on what you're interested in. For MoarVM-Remote and App-MoarVM-Debug @timo is definitely the right person to ask.
Since the debugger I'm working towards does not exist yet, none of what needs to be done there is pressing. (Or all of it is, depending of the perspective. :-)
I am currently working on porting MoarVM's PTY implementation, the Terminal-Widgets toolkit and the rest of the Raku terminal stack to Windows. (Next to fixing bugs in a Raku syntax highlighter for which some bug reports started to show up). There is also a pretty minimal terminal emulator that will need some more polishing.
If any of this spikes your interest, ping me!

I don't expect there to be much overlap in the code (given all the meat is in MoarVM-Remote and one is a CLI and the other a TUI).

True, but having it all in one package (like GDB with its TUI) has some advantages, too, like fewer things to install, concentration of effort (which all the more matters in such a small community IMHO).

Currently it's a gut feeling, that I'd like to have them separate. I don't yet know for sure where it's coming from, we'll see. :-) One more reason I can think of is dependencies. The TUI debugger will pull in quite some modules, while the CLI one is, at least currently, pretty slim.

Could you please link the repo?

The Highlighter: https://sr.ht/~patrickb/Rainbow/
This is working well, but there are many parts in the syntax that it doesn't support yet. One example is meta operators.
The Terminal Emulator: https://sr.ht/~patrickb/Anolis/
This requires https://github.com/patrickbkr/Terminal-Widgets/tree/patrickb-pty-widget, https://github.com/patrickbkr/MoarVM/tree/moar-pty and currently only works on Linux.
It already works mostly for CLI apps and to some extent for TUI apps but definitely needs more work.
The workflow on Sourcehut is quite different from how GitHub works. Up until now I've mostly worked alone on Sourcehut, so I don't have a good feel for the collaborative aspects there, but would like to try it out. I hope you're feeling adventurous enough to try.
Feel free to ping me whenever you need help!

I would like to point out also that Comma, the JetBrains IDE plugin that @ab5tract has recently been fixing and updating, also has a client for the moarvm debug protocol.
Comma with its capability to parse and understand Raku code, see the source files corresponding to the code you're running and its dependencies, and the database/index it keeps on types and functions and everything, is in a better position to offer many features you would take for granted in a debugging experience.
Implementing any amount of language knowledge inside of App::MoarVM::Debug is going to be rather tricky, so we will probably take the route of loading some helper code into the debugee and invoking methods on it to get anything meaningfully complicated done.
I agree with patrick that it would be nice to keep the amount of dependencies in the debug CLI small, since I would likely be the one who needs to package any dependencies for debian if the debug cli is to be made available there as a package ...
OTOH liz is currently developing some ecosystem modules for CLIs with command languages / REPLs in general, and prompting with line editing and whatnot ...

The Terminal Emulator: https://sr.ht/~patrickb/Anolis/
This requires https://github.com/patrickbkr/Terminal-Widgets/tree/patrickb-pty-widget, https://github.com/patrickbkr/MoarVM/tree/moar-pty and currently only works on Linux.

Forgot, you'll also need latest main/master from https://github.com/ab5tract/Terminal-Print/commits/master/ and latest https://github.com/japhb/Terminal-ANSIParser installed.


How to deal with the case protobuf does not provide enough data for the color tables?

@bshastry
Consider:
void ProtoConverter::visit(GlobalColorTable const& gct)
{
	// This has to contain exactly 3*2^(m_GlobalColorExp + 1) bytes
        m_output.write(gct.colors().data(), gct.colors().size());
}

How do we handle the case where 3*2^(m_GlobalColorExp + 1) > gct.colors.size()?
We could:

Bail out -> That would waste a lot of test cases.
Just write the whole gct.colors.data(), ignore the rest of the data.

Is there maybe a better option?

Yeah, I'm not sure what's the ideal solution here. Of the three cases

gct.colors.size() > 3*2^(m_GlobalColorExp + 1)
gct.colors.size() < 3*2^(m_GlobalColorExp + 1)
gct.colors.size() == 3*2^(m_GlobalColorExp + 1)

I feel that the second is probably more likely, followed by the first and third. I was hoping we could somehow make it roughly 33% probability each. Not sure how, may be we should file an issue over at protobuf to ask how to handle such dependencies.

That makes sense. Also we need to evaluate the trade-off "adhering to the standard" vs. "creating interesting edge-cases". So if we always ensure that the Global Color Table has the correct size, then we might miss some edge cases?

Yeah, I was wondering if a third of the time getting it right and wrong rest of the time is good enough, but I am pretty sure if that's not ideal. Still, currently we should be getting it right < 1% so perhaps that can be made better


Cursor

PR Description 📜
custom cursor functionality is set properly to all the pages.
Fixes #360

Mark the task you have completed ✅

[ x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[ x] I have performed a self-review of my own code or work.
[ x] I have commented my code, particularly in hard-to-understand areas.
[ x] My changes generates no new warnings.
[ x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[ x] I have added screenshot for review.

https://github.com/ChromeGaming/Community-Page/assets/152693538/73871f0f-c5db-45e5-931d-61e3bf772f0e

Thank you soo much for contributing to our repository 💗

@Manaregr8 can you please label this PR


EPERM Error on Windows OS

When saving CSS code changes, browser sync does not sync to reflect the updated code after refreshing the browser and receives an EPERM error in the Command console.  This happens on my Adobe issue Windows machine with Anti Virus Software running.
Expected Behaviour
Refreshing the browser should reflect css changes.
Actual Behaviour
EPERM error displays in the command console.
Reproduce Scenario (including but not limited to)
Update CSS in _variables.scss, save the file and refresh the browser, EPERM error occurs
Steps to Reproduce
navigate to the the theme-sources folder in a command window
run:  npm live run
Update the background hex color in _variables.scss as instructed in the tutorial and save the file
in a web browser navigate to: http://localhost:7000/content/basic/en.html and refresh the page
View command window and an EPERM operation not permitted, lstat
Platform and Version
Windows 10 -OS
Carbon Black  - Virsus scan software running (unable to turn it off)
Sample Code that illustrates the problem
Logs taken while reproducing problem

fixed in 5.1.2 release


Low severity issue: letter given in UPPERCASE in file a1904204.txt

Hi,
Thank you for maintaining this repository.
Issue:  letters given in UPPERCASE in the first line.
"LEAST RATHER HOWEVER national within after. toward his imagine everyone arrive single need approach."
commit: f1b2c24722bbc1315f6bf3511f0c90304e4bfb6b
Author: Dave Lawrence<EMAIL_ADDRESS>Date:   Mon Sep 23 16:38:52 2024 +0930
Actual issue:
the words 'LEAST' 'RATHER' and 'HOWEVER' are in the upper case.
"LEAST RATHER HOWEVER national within after. toward his imagine everyone arrive single need approach"
Expected behavior:
the letters should be in the lowercase.
'least rather however national within after. toward his imagine everyone arrive single need approach'
I am planning to submit a pull request to solve this issue.

Commit was 1c655ef90dce7f66a2eebc8a45d7c33ff9b4a3b "syndicate granular applications"
The one you gave was for file a1954027.txt


K8s HA installation timed out on task "Join master to ControlPlane"

Describe the bug
K8s HA installation fails randomly on task Join master to ControlPlane on Azure environments.
To Reproduce
Steps to reproduce the behavior:

execute epicli apply -f test.yml

Expected behavior
The HA cluster was successfully deployed.
Config files
Configuration that should be included in the yaml file:
specification:
  components:
    kubernetes_master:
      count: 3
    kubernetes_node:
      count: 3

---
kind: configuration/shared-config
title: Shared configuration that will be visible to all roles
name: default
specification:
  use_ha_control_plane: true
provider: azure

Task where the problem appears:
- when: not kubernetes_common.master_already_joined
  block:
    - include_role:
        name: kubernetes_common
        tasks_from: ensure-token

    - block:
        - name: Ensure /etc/kubeadm/ directory
          file:
            path: /etc/kubeadm/
            state: directory
            owner: root
            group: root
            mode: u=rw,go=r

        - name: Render /etc/kubeadm/kubeadm-join-master.yml template
          template:
            src: kubeadm-join-master.yml.j2
            dest: /etc/kubeadm/kubeadm-join-master.yml
            owner: root
            group: root
            mode: u=rw,go=r

        - name: Join master to ControlPlane
          shell: |
            kubeadm join \
              --config /etc/kubeadm/kubeadm-join-master.yml
          args:
            executable: /bin/bash

        - name: Mark master as joined
          set_fact:
            kubernetes_common: >-
              {{ kubernetes_common | default({}) | combine(set_fact, recursive=true) }}
          vars:
            set_fact:
              master_already_joined: true

- name: Include kubelet configuration tasks
  include_role:
    name: kubernetes_common
    tasks_from: configure-kubelet

OS (please complete the following information):

OS: [RHEL, Ubuntu]

Cloud Environment (please complete the following information):

Cloud Provider [MS Azure]

Additional context
Log:
2020-07-27T13:02:47.6918829Z 13:02:47 INFO cli.engine.ansible.AnsibleCommand - TASK [kubernetes_master : Join master to ControlPlane] *************************
2020-07-27T13:03:56.4662918Z 13:03:56 INFO cli.engine.ansible.AnsibleCommand - fatal: [ci-06hatodevazrhcanal-kubernetes-master-vm-2]: FAILED! => {"changed": true, "cmd": "kubeadm join  --config /etc/kubeadm/kubeadm-join-master.yml\n", "delta": "0:01:07.997277", "end": "2020-07-27 13:03:56.339262", "msg": "non-zero return code", "rc": 1, "start": "2020-07-27 13:02:48.341985", "stderr": "W0727 13:02:48.379669   13265 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.\n\t[WARNING IsDockerSystemdCheck]: detected \"cgroupfs\" as the Docker cgroup driver. The recommended driver is \"systemd\". Please follow the guide at https://kubernetes.io/docs/setup/cri/\n\t[WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'\nW0727 13:03:20.332544   13265 manifests.go:214] the default kube-apiserver authorization-mode is \"Node,RBAC\"; using \"Node,RBAC\"\nW0727 13:03:20.339844   13265 manifests.go:214] the default kube-apiserver authorization-mode is \"Node,RBAC\"; using \"Node,RBAC\"\nW0727 13:03:20.340659   13265 manifests.go:214] the default kube-apiserver authorization-mode is \"Node,RBAC\"; using \"Node,RBAC\"\n{\"level\":\"warn\",\"ts\":\"2020-07-27T13:03:44.441Z\",\"caller\":\"clientv3/retry_interceptor.go:61\",\"msg\":\"retrying of unary invoker failed\",\"target\":\"passthrough:///https://<IP_ADDRESS>:2379\",\"attempt\":0,\"error\":\"rpc error: code = DeadlineExceeded desc = context deadline exceeded\"}\nerror execution phase control-plane-join/update-status: error uploading configuration: etcdserver: leader changed\nTo see the stack trace of this error execute with --v=5 or higher", "stderr_lines": ["W0727 13:02:48.379669   13265 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.", "\t[WARNING IsDockerSystemdCheck]: detected \"cgroupfs\" as the Docker cgroup driver. The recommended driver is \"systemd\". Please follow the guide at https://kubernetes.io/docs/setup/cri/", "\t[WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'", "W0727 13:03:20.332544   13265 manifests.go:214] the default kube-apiserver authorization-mode is \"Node,RBAC\"; using \"Node,RBAC\"", "W0727 13:03:20.339844   13265 manifests.go:214] the default kube-apiserver authorization-mode is \"Node,RBAC\"; using \"Node,RBAC\"", "W0727 13:03:20.340659   13265 manifests.go:214] the default kube-apiserver authorization-mode is \"Node,RBAC\"; using \"Node,RBAC\"", "{\"level\":\"warn\",\"ts\":\"2020-07-27T13:03:44.441Z\",\"caller\":\"clientv3/retry_interceptor.go:61\",\"msg\":\"retrying of unary invoker failed\",\"target\":\"passthrough:///https://<IP_ADDRESS>:2379\",\"attempt\":0,\"error\":\"rpc error: code = DeadlineExceeded desc = context deadline exceeded\"}", "error execution phase control-plane-join/update-status: error uploading configuration: etcdserver: leader changed", "To see the stack trace of this error execute with --v=5 or higher"], "stdout": "[preflight] Running pre-flight checks\n[preflight] Reading configuration from the cluster...\n[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'\n[preflight] Running pre-flight checks before initializing the new control plane instance\n[preflight] Pulling images required for setting up a Kubernetes cluster\n[preflight] This might take a minute or two, depending on the speed of your internet connection\n[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'\n[certs] Using certificateDir folder \"/etc/kubernetes/pki\"\n[certs] Generating \"front-proxy-client\" certificate and key\n[certs] Generating \"etcd/server\" certificate and key\n[certs] etcd/server serving cert is signed for DNS names [ci-06hatodevazrhcanal-kubernetes-master-vm-2 localhost] and IPs [<IP_ADDRESS> <IP_ADDRESS> ::1]\n[certs] Generating \"etcd/peer\" certificate and key\n[certs] etcd/peer serving cert is signed for DNS names [ci-06hatodevazrhcanal-kubernetes-master-vm-2 localhost] and IPs [<IP_ADDRESS> <IP_ADDRESS> ::1]\n[certs] Generating \"etcd/healthcheck-client\" certificate and key\n[certs] Generating \"apiserver-etcd-client\" certificate and key\n[certs] Generating \"apiserver\" certificate and key\n[certs] apiserver serving cert is signed for DNS names [ci-06hatodevazrhcanal-kubernetes-master-vm-2 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local localhost] and IPs [<IP_ADDRESS> <IP_ADDRESS>]\n[certs] Generating \"apiserver-kubelet-client\" certificate and key\n[certs] Valid certificates and keys now exist in \"/etc/kubernetes/pki\"\n[certs] Using the existing \"sa\" key\n[kubeconfig] Generating kubeconfig files\n[kubeconfig] Using kubeconfig folder \"/etc/kubernetes\"\n[endpoint] WARNING: port specified in controlPlaneEndpoint overrides bindPort in the controlplane address\n[kubeconfig] Writing \"admin.conf\" kubeconfig file\n[kubeconfig] Writing \"controller-manager.conf\" kubeconfig file\n[kubeconfig] Writing \"scheduler.conf\" kubeconfig file\n[control-plane] Using manifest folder \"/etc/kubernetes/manifests\"\n[control-plane] Creating static Pod manifest for \"kube-apiserver\"\n[control-plane] Creating static Pod manifest for \"kube-controller-manager\"\n[control-plane] Creating static Pod manifest for \"kube-scheduler\"\n[check-etcd] Checking that the etcd cluster is healthy\n[kubelet-start] Downloading configuration for the kubelet from the \"kubelet-config-1.17\" ConfigMap in the kube-system namespace\n[kubelet-start] Writing kubelet configuration to file \"/var/lib/kubelet/config.yaml\"\n[kubelet-start] Writing kubelet environment file with flags to file \"/var/lib/kubelet/kubeadm-flags.env\"\n[kubelet-start] Starting the kubelet\n[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...\n[etcd] Announced new etcd member joining to the existing etcd cluster\n[etcd] Creating static Pod manifest for \"etcd\"\n[etcd] Waiting for the new etcd member to join the cluster. This can take up to 40s\n[upload-config] Storing the configuration used in ConfigMap \"kubeadm-config\" in the \"kube-system\" Namespace", "stdout_lines": ["[preflight] Running pre-flight checks", "[preflight] Reading configuration from the cluster...", "[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'", "[preflight] Running pre-flight checks before initializing the new control plane instance", "[preflight] Pulling images required for setting up a Kubernetes cluster", "[preflight] This might take a minute or two, depending on the speed of your internet connection", "[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'", "[certs] Using certificateDir folder \"/etc/kubernetes/pki\"", "[certs] Generating \"front-proxy-client\" certificate and key", "[certs] Generating \"etcd/server\" certificate and key", "[certs] etcd/server serving cert is signed for DNS names [ci-06hatodevazrhcanal-kubernetes-master-vm-2 localhost] and IPs [<IP_ADDRESS> <IP_ADDRESS> ::1]", "[certs] Generating \"etcd/peer\" certificate and key", "[certs] etcd/peer serving cert is signed for DNS names [ci-06hatodevazrhcanal-kubernetes-master-vm-2 localhost] and IPs [<IP_ADDRESS> <IP_ADDRESS> ::1]", "[certs] Generating \"etcd/healthcheck-client\" certificate and key", "[certs] Generating \"apiserver-etcd-client\" certificate and key", "[certs] Generating \"apiserver\" certificate and key", "[certs] apiserver serving cert is signed for DNS names [ci-06hatodevazrhcanal-kubernetes-master-vm-2 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local localhost] and IPs [<IP_ADDRESS> <IP_ADDRESS>]", "[certs] Generating \"apiserver-kubelet-client\" certificate and key", "[certs] Valid certificates and keys now exist in \"/etc/kubernetes/pki\"", "[certs] Using the existing \"sa\" key", "[kubeconfig] Generating kubeconfig files", "[kubeconfig] Using kubeconfig folder \"/etc/kubernetes\"", "[endpoint] WARNING: port specified in controlPlaneEndpoint overrides bindPort in the controlplane address", "[kubeconfig] Writing \"admin.conf\" kubeconfig file", "[kubeconfig] Writing \"controller-manager.conf\" kubeconfig file", "[kubeconfig] Writing \"scheduler.conf\" kubeconfig file", "[control-plane] Using manifest folder \"/etc/kubernetes/manifests\"", "[control-plane] Creating static Pod manifest for \"kube-apiserver\"", "[control-plane] Creating static Pod manifest for \"kube-controller-manager\"", "[control-plane] Creating static Pod manifest for \"kube-scheduler\"", "[check-etcd] Checking that the etcd cluster is healthy", "[kubelet-start] Downloading configuration for the kubelet from the \"kubelet-config-1.17\" ConfigMap in the kube-system namespace", "[kubelet-start] Writing kubelet configuration to file \"/var/lib/kubelet/config.yaml\"", "[kubelet-start] Writing kubelet environment file with flags to file \"/var/lib/kubelet/kubeadm-flags.env\"", "[kubelet-start] Starting the kubelet", "[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...", "[etcd] Announced new etcd member joining to the existing etcd cluster", "[etcd] Creating static Pod manifest for \"etcd\"", "[etcd] Waiting for the new etcd member to join the cluster. This can take up to 40s", "[upload-config] Storing the configuration used in ConfigMap \"kubeadm-config\" in the \"kube-system\" Namespace"]}

It happens randomly.
On average, one of the two HA deployments on Azure fails because of this issue.

I would recommend here to check once again if the problem still appears since the ticket was created already a few month ago. Moreover maybe somewhere there should me used time pause (60sec) or conditional in ansible because maybe some tasks run too fast or in wrong order.

Now this has been tested with the latest develop code with Kubernetes 1.18.6 and I haven't been able to reproduce the problem yet.
More testing still underway.

It seems after upgrading to newer Kubernetes 1.18 we don't really see that problem anymore. But it's still there in 0.6, which is impacting upgrade testing. I'll take a look if it's possible to fix it in 0.6. :+1:

Problem still exists, no real progress here. It's reporducible in AWS / Azure while using Azure DevOps, it takes couple of retries to reproduce. Since deployment of a cluster takes 1+ hour it's really annoying to work on.

Is there a workaround? For example if I run apply again would it work?

Add information to changelog known issues section.

Handled in this PR


add : Shreyas Deshpande

Description
add : Shreyas Deshpande

@Shreyas0410 Thank you so much for your contribution! Your efforts are greatly appreciated and will go a long way in improving our project. Please feel free to share it with others and help us grow even further!


Support for EIP-2981 natively within seaport?

Hi seaport builders.
Is there any plans to add support for eip-2981 natively within the protocol? I thought it would be supported but I cannot find anything in the docs or implementation code.
It would be an amazing achievement for the ecosystem to get royalties etched into something like this and would help ratify the standard and usage of royalties for all.
If there are not plans to support it I'd be interested to know why not?
The standard -> https://eips.ethereum.org/EIPS/eip-2981 (I am one of the authors and would love to help get this integrated if possible)
Thanks

We wanted to make fees flexible and not tied to any specific standard, that's why you will see there actually is no mention of it anywhere. A fee is just an offerItem. That being said, a marketplace built on-top of Seaport can easily support EIP-2981 at the time of order creation, and OpenSea will be doing this.

and OpenSea will be doing this.

Thats great to hear @Slokh thanks for the clarification on this 🙏🏻

This feels like a really bad decision. You are creating a full marketplace protocol, coming very strong on marketing on it, and decide to not implement the only standard that was created to respect creators rights.
A protocol like this one should enforce royalties and show it respects creators, and I really hope you will change your mind asap.
This feels very wrong.

We wanted to make fees flexible and not tied to any specific standard.

Supporting EIP-2981 doesn't mean you cannot have your own custom royalty system. They can coexist. You can support 2981 and override royalties if the owner of the contract sets custom fees using the OpenSea interface.
With great power comes great responsibility. OpenSea is the biggest NFT market out there. You need to act responsibly. Not supporting EIP-2981 is a big :middle_finger: to all creators.
And if you really don't care about it, have the honesty to remove your logo from https://royaltyregistry.xyz because people may get confused that you support it.

I build an ERC-721 contract based on royalty-registry IManifold interface, and OpenSea did not honor the royalty settings.
Maybe I am doing something wrong, but if I am not, I agree that Opensea should be removed from RoyaltyRegistry.
This is the contract address: 0x0f6c83ba841D71a64577Bb13688d6b0727815D44 (Polygon network)
Code:

// File: @manifoldxyz/royalty-registry-solidity/contracts/specs/IManifold.sol

pragma solidity ^0.8.0;

/// @author: manifold.xyz

/**
 * @dev Royalty interface for creator core classes
 */
interface IManifold {

    /**
     * @dev Get royalites of a token.  Returns list of receivers and basisPoints
     *
     *  bytes4(keccak256('getRoyalties(uint256)')) == 0xbb3bafd6
     *
     *  => 0xbb3bafd6 = 0xbb3bafd6
     */
    function getRoyalties(uint256 tokenId) external view returns (address payable[] memory, uint256[] memory);
}
// File: @openzeppelin/contracts/utils/Strings.sol

// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

// File: @openzeppelin/contracts/utils/Context.sol

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol

// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol

// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: @openzeppelin/contracts/utils/Address.sol

// OpenZeppelin Contracts v4.4.1 (utils/Address.sol)

pragma solidity ^0.8.0;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol

// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol)

pragma solidity ^0.8.0;

/**
 * @title ERC721 token receiver interface
 * @dev Interface for any contract that wants to support safeTransfers
 * from ERC721 asset contracts.
 */
interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.
     */
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

// File: @openzeppelin/contracts/utils/introspection/IERC165.sol

// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// File: @openzeppelin/contracts/utils/introspection/ERC165.sol

// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

// File: @openzeppelin/contracts/token/ERC721/IERC721.sol

// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol)

pragma solidity ^0.8.0;

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool _approved) external;

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}

// File: @openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol

// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @title ERC-721 Non-Fungible Token Standard, optional metadata extension
 * @dev See https://eips.ethereum.org/EIPS/eip-721
 */
interface IERC721Metadata is IERC721 {
    /**
     * @dev Returns the token collection name.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the token collection symbol.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
     */
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

// File: @openzeppelin/contracts/token/ERC721/ERC721.sol

// OpenZeppelin Contracts v4.4.1 (token/ERC721/ERC721.sol)

pragma solidity ^0.8.0;

/**
 * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including
 * the Metadata extension, but not including the Enumerable extension, which is available separately as
 * {ERC721Enumerable}.
 */
contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;

    // Token name
    string private _name;

    // Token symbol
    string private _symbol;

    // Mapping from token ID to owner address
    mapping(uint256 => address) private _owners;

    // Mapping owner address to token count
    mapping(address => uint256) private _balances;

    // Mapping from token ID to approved address
    mapping(uint256 => address) private _tokenApprovals;

    // Mapping from owner to operator approvals
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    /**
     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    /**
     * @dev See {IERC721-balanceOf}.
     */
    function balanceOf(address owner) public view virtual override returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }

    /**
     * @dev See {IERC721-ownerOf}.
     */
    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }

    /**
     * @dev See {IERC721Metadata-name}.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev See {IERC721Metadata-symbol}.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev See {IERC721Metadata-tokenURI}.
     */
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        string memory baseURI = _baseURI();
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : "";
    }

    /**
     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each
     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty
     * by default, can be overriden in child contracts.
     */
    function _baseURI() internal view virtual returns (string memory) {
        return "";
    }

    /**
     * @dev See {IERC721-approve}.
     */
    function approve(address to, uint256 tokenId) public virtual override {
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

        require(
            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
            "ERC721: approve caller is not owner nor approved for all"
        );

        _approve(to, tokenId);
    }

    /**
     * @dev See {IERC721-getApproved}.
     */
    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

    /**
     * @dev See {IERC721-setApprovalForAll}.
     */
    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(_msgSender(), operator, approved);
    }

    /**
     * @dev See {IERC721-isApprovedForAll}.
     */
    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[owner][operator];
    }

    /**
     * @dev See {IERC721-transferFrom}.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        //solhint-disable-next-line max-line-length
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

    /**
     * @dev See {IERC721-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        safeTransferFrom(from, to, tokenId, "");
    }

    /**
     * @dev See {IERC721-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * `_data` is additional data, it has no specified format and it is sent in call to `to`.
     *
     * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.
     * implement alternative mechanisms to perform token transfer, such as signature-based.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function _safeTransfer(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }

    /**
     * @dev Returns whether `tokenId` exists.
     *
     * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.
     *
     * Tokens start existing when they are minted (`_mint`),
     * and stop existing when they are burned (`_burn`).
     */
    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }

    /**
     * @dev Returns whether `spender` is allowed to manage `tokenId`.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

    /**
     * @dev Safely mints `tokenId` and transfers it to `to`.
     *
     * Requirements:
     *
     * - `tokenId` must not exist.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, "");
    }

    /**
     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is
     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.
     */
    function _safeMint(
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _mint(to, tokenId);
        require(
            _checkOnERC721Received(address(0), to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

    /**
     * @dev Mints `tokenId` and transfers it to `to`.
     *
     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible
     *
     * Requirements:
     *
     * - `tokenId` must not exist.
     * - `to` cannot be the zero address.
     *
     * Emits a {Transfer} event.
     */
    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

        _beforeTokenTransfer(address(0), to, tokenId);

        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(address(0), to, tokenId);
    }

    /**
     * @dev Destroys `tokenId`.
     * The approval is cleared when the token is burned.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     *
     * Emits a {Transfer} event.
     */
    function _burn(uint256 tokenId) internal virtual {
        address owner = ERC721.ownerOf(tokenId);

        _beforeTokenTransfer(owner, address(0), tokenId);

        // Clear approvals
        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

        emit Transfer(owner, address(0), tokenId);
    }

    /**
     * @dev Transfers `tokenId` from `from` to `to`.
     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     *
     * Emits a {Transfer} event.
     */
    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");

        _beforeTokenTransfer(from, to, tokenId);

        // Clear approvals from the previous owner
        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

    /**
     * @dev Approve `to` to operate on `tokenId`
     *
     * Emits a {Approval} event.
     */
    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

    /**
     * @dev Approve `operator` to operate on all of `owner` tokens
     *
     * Emits a {ApprovalForAll} event.
     */
    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC721: approve to caller");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    /**
     * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.
     * The call is not executed if the target address is not a contract.
     *
     * @param from address representing the previous owner of the given token ID
     * @param to target address that will receive the tokens
     * @param tokenId uint256 ID of the token to be transferred
     * @param _data bytes optional data to send along with the call
     * @return bool whether the call correctly returned the expected magic value
     */
    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

    /**
     * @dev Hook that is called before any token transfer. This includes minting
     * and burning.
     *
     * Calling conditions:
     *
     * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be
     * transferred to `to`.
     * - When `from` is zero, `tokenId` will be minted for `to`.
     * - When `to` is zero, ``from``'s `tokenId` will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}

}

// File: @openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol

// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/ERC721URIStorage.sol)

pragma solidity ^0.8.0;

/**
 * @dev ERC721 token with storage based token URI management.
 */
abstract contract ERC721URIStorage is ERC721 {
    using Strings for uint256;

    // Optional mapping for token URIs
    mapping(uint256 => string) private _tokenURIs;

    /**
     * @dev See {IERC721Metadata-tokenURI}.
     */
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721URIStorage: URI query for nonexistent token");

        string memory _tokenURI = _tokenURIs[tokenId];
        string memory base = _baseURI();

        // If there is no base URI, return the token URI.
        if (bytes(base).length == 0) {
            return _tokenURI;
        }
        // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).
        if (bytes(_tokenURI).length > 0) {
            return string(abi.encodePacked(base, _tokenURI));
        }

        return super.tokenURI(tokenId);
    }

    /**
     * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {
        require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token");
        _tokenURIs[tokenId] = _tokenURI;
    }

    /**
     * @dev Destroys `tokenId`.
     * The approval is cleared when the token is burned.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     *
     * Emits a {Transfer} event.
     */
    function _burn(uint256 tokenId) internal virtual override {
        super._burn(tokenId);

        if (bytes(_tokenURIs[tokenId]).length != 0) {
            delete _tokenURIs[tokenId];
        }
    }
}

// File: contracts/LubarV2.sol

pragma solidity ^0.8.15;

contract LubarV2 is ERC721URIStorage, Pausable, Ownable, IManifold {

    mapping(uint256 => address payable[]) internal _receivers;
    mapping(uint256 => uint256[]) internal _bps;

    constructor() ERC721("Luke HK Collection", "LUBAR") {}

    event TokenMinted(address minter, uint256 id, address payable[] royaltyReceivers, uint256[] bps);

    function supportsInterface(bytes4 interfaceId)
    public view override(ERC721)
    returns (bool)
    {
        return ERC721.supportsInterface(interfaceId) || interfaceId == type(IManifold).interfaceId;
    }

    function mintCar(
        uint256 tokenId,
        string memory tokenURI,
        address minterAddress)
    public onlyOwner whenNotPaused
    returns (address payable[] memory, uint256[] memory)
    {
        _mint(minterAddress, tokenId);
        _setTokenURI(tokenId, tokenURI);

        address payable[] memory receivers = new address payable[](2);
        receivers[0] = payable(msg.sender);
        receivers[1] = payable(minterAddress);
        _receivers[tokenId] = receivers;

        uint256[] memory bps = new uint256[](2);
        bps[0] = 300;
        // 3% house
        bps[1] = 700;
        // 7% minter
        _bps[tokenId] = bps;

        emit TokenMinted(minterAddress, tokenId, _receivers[tokenId], _bps[tokenId]);
        return (_receivers[tokenId], _bps[tokenId]);
    }

    function burn(uint256 tokenId) public onlyOwner {
        _burn(tokenId);
    }

    // IManifold -------------------
    function getRoyalties(uint256 tokenId)
    public override view
    returns (address payable[] memory, uint256[] memory) {

        // TODO: failsafe: return default if not present
        return (_receivers[tokenId], _bps[tokenId]);
    }
    // END IManifold -------------------

    // Pausable -------------------
    function pause() public onlyOwner {
        _pause();
    }

    function unpause() public onlyOwner {
        _unpause();
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal override whenNotPaused {
        super._beforeTokenTransfer(from, to, amount);
    }

    // END Pausable -------------------
}


add opencv_videoio to cffi dependencies

add opencv_videoio to cffi build dependencies as my machine cannot find symbol _ZN2cv12VideoCaptureC1Ei without it.

As this fails on a debian machine, it must be an error in my own setup (suspect too new version of opencv, I have 3.x.x installed), I'll cancel this PR


Provide high level guidance on how to approach this problem through a pattern/guideline

EG. from the GDS: You should only ask users about gender or sex if you genuinely cannot provide your service without this information.
https://design-system.service.gov.uk/patterns/gender-or-sex/

Closing as there isn't enough details here for this to be a story, and we're unsure exactly what's needed for this.


Pin dependencies in mono-repo

Summary
This follows a discussion we had yesterday over the weekly commiters meeting.
The idea is to pin down the dependencies (so not excluding Gemfile.lock for example) so we don't get unexpected failures due to a new release of a dependency.
A new nightly build is executed with the dependencies unpinned, so we get notified if a new release of a dependency will cause problems.
Details

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

Checklist:

[ ] The change has been ported to Java.
[x] The change has been ported to Ruby.
[ ] The change has been ported to JavaScript.
[ ] The change has been ported to Go.
[ ] The change has been ported to .NET.
[ ] I've added tests for my code.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have updated the CHANGELOG accordingly.

make[2]: Entering directory '/home/cukebot/cucumber/c21e/ruby'
touch .deps
bundle exec rspec --color
bundler: command not found: rspec
Install missing gem executables with `bundle install`

What's that about?

make[2]: Entering directory '/home/cukebot/cucumber/c21e/ruby'
touch .deps
bundle exec rspec --color
bundler: command not found: rspec
Install missing gem executables with `bundle install`

What's that about?

Try this instead:

make[2]: Entering directory '/home/cukebot/cucumber/c21e/ruby'
touch .deps
bundle exec rspec --color
bundler: command not found: rspec
Install missing gem executables with `bundle install`

What's that about?

Where does the touch .deps come from?

It's from the failing build.

Obsolete now :-(


GOBBLIN-1524: Limit the number of container launch threads used by YarnService

Dear Gobblin 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 Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-1524

Description

[x] Here are some details about my PR, including screenshots (if applicable):
Currently, there are no limits on the number of threads used, which can result in OOMEs with "unable to create a new native thread". This PR makes the number of threads configurable with a default of 1024.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Trivial change. Existing tests should be sufficient.

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 #3375 (e9f45b1) into master (44c7316) will increase coverage by 1.74%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #3375      +/-   ##
============================================
+ Coverage     46.43%   48.18%   +1.74%
+ Complexity    10159     7540    -2619
============================================
  Files          2056     1423     -633
  Lines         80080    56156   -23924
  Branches       8947     6487    -2460
============================================
- Hits          37186    27058   -10128
+ Misses        39448    26560   -12888
+ Partials       3446     2538     -908

Impacted Files
Coverage Δ

...che/gobblin/yarn/GobblinYarnConfigurationKeys.java
75.00% <100.00%> (+8.33%)
:arrow_up:

...main/java/org/apache/gobblin/yarn/YarnService.java
14.80% <100.00%> (+0.44%)
:arrow_up:

...a/org/apache/gobblin/util/limiter/NoopLimiter.java
40.00% <0.00%> (-20.00%)
:arrow_down:

...lin/util/filesystem/FileSystemInstrumentation.java
85.71% <0.00%> (-14.29%)
:arrow_down:

...t/version/TimestampedDatasetStateStoreVersion.java
27.77% <0.00%> (-5.56%)
:arrow_down:

...in/java/org/apache/gobblin/cluster/HelixUtils.java
34.71% <0.00%> (-3.31%)
:arrow_down:

.../org/apache/gobblin/cluster/GobblinTaskRunner.java
63.46% <0.00%> (-0.33%)
:arrow_down:

...modules/flowgraph/datanodes/fs/GridFSDataNode.java

...lin/eventhub/writer/BatchedEventhubDataWriter.java

...apache/gobblin/kafka/writer/KafkaWriterHelper.java

... and 631 more

Continue to review full report at Codecov.

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


Icon legend not showing up on live site

@frnsys I think the icons aren't showing up on the live site because my local changes to VERSION in config.py weren't tracked in the PR (#5). Changing that value on the production server should force clients to display the new version with the legend included.

i just hadn't deployed the changes yet, i try to minimize that when things are really active. will push the update now though


pc console fixes

Fixes:

Parsing negative ratings in PC and AC console.
Export reviewers missing in PC console.
Show and export secondary ACs in PC console.

All these changes are being deployed in ESWC conference

My changes only support two ACs. I'm not sure if it is worth to make more general.


No Transfer options?

Were they removed? If so, why and can they be added back?

What do you mean by "Transfer options"?


Qiskit header image includes qiskit-dynamics but it is not in the docs structure

How does one find qiskit-dynamicsthat is shown in the header figure from within the docs?

It's technically here: https://qiskit.org/documentation/dynamics/, but the Sphinx theme released the new landing page before the PR that sorted out the top nav bar.  The tracking issue for fixing the top nav bar is Qiskit/qiskit_sphinx_theme#64.
Perhaps in the interim, the SVG image could grow some hyperlinks to the correct parts of the documentation?
cc: @javabster


HDFS-15219. fix ResponseProcessor.run to catch Throwable instead of Exception

Can we extend a UT for the issue?

I tried, but as ResponseProcessor class is a private inner class it's almost impossible to mock its behavior ( throw Error in the middle of run() method)
even I tried to mock block field to throw an Error when calling setNumBytes(), but as it's final and ExtendedBlock and BlockToWrite classes are very cautious to not expose their internal object it is impossible to inject my mock instead of their Block object.
can you help me to find a way to write its unit test?

If there is no easy way out for the UT. I think it is Ok then.
Yetus isn't behaving the way it should, Let me check, if there aren't any complains for Jenkins.
This should be fair enough..

-1 overall
04:08:57
04:08:57  | Vote |        Subsystem |  Runtime   | Comment
04:08:57  ============================================================================
04:08:57  |   0  |          reexec  |   0m 34s   | Docker mode activated.
04:08:57  |      |                  |            | Prechecks
04:08:57  |  +1  |         dupname  |   0m  0s   | No case conflicting files found.
04:08:57  |  +1  |         @author  |   0m  0s   | The patch does not contain any @author
04:08:57  |      |                  |            | tags.
04:08:57  |  -1  |      test4tests  |   0m  0s   | The patch doesn't appear to include
04:08:57  |      |                  |            | any new or modified tests. Please
04:08:57  |      |                  |            | justify why no new tests are needed for
04:08:57  |      |                  |            | this patch. Also please list what
04:08:57  |      |                  |            | manual steps were performed to verify
04:08:57  |      |                  |            | this patch.
04:08:57  |      |                  |            | trunk Compile Tests
04:08:57  |  +1  |      mvninstall  |  20m 13s   | trunk passed
04:08:57  |  +1  |         compile  |   0m 48s   | trunk passed
04:08:57  |  +1  |      checkstyle  |   0m 25s   | trunk passed
04:08:57  |  +1  |         mvnsite  |   0m 51s   | trunk passed
04:08:57  |  +1  |    shadedclient  |  14m 24s   | branch has no errors when building and
04:08:57  |      |                  |            | testing our client artifacts.
04:08:57  |  +1  |         javadoc  |   0m 35s   | trunk passed
04:08:57  |   0  |        spotbugs  |   2m 20s   | Used deprecated FindBugs config;
04:08:57  |      |                  |            | considering switching to SpotBugs.
04:08:57  |  +1  |        findbugs  |   2m 18s   | trunk passed
04:08:57  |      |                  |            | Patch Compile Tests
04:08:57  |  +1  |      mvninstall  |   0m 46s   | the patch passed
04:08:57  |  +1  |         compile  |   0m 43s   | the patch passed
04:08:57  |  +1  |           javac  |   0m 43s   | the patch passed
04:08:57  |  +1  |      checkstyle  |   0m 19s   | the patch passed
04:08:57  |  +1  |         mvnsite  |   0m 45s   | the patch passed
04:08:57  |  +1  |      whitespace  |   0m  0s   | The patch has no whitespace issues.
04:08:57  |  +1  |    shadedclient  |  13m  9s   | patch has no errors when building and
04:08:57  |      |                  |            | testing our client artifacts.
04:08:57  |  +1  |         javadoc  |   0m 29s   | the patch passed
04:08:57  |  +1  |        findbugs  |   2m 17s   | the patch passed
04:08:57  |      |                  |            | Other Tests
04:08:57  |  +1  |            unit  |   2m  2s   | hadoop-hdfs-client in the patch
04:08:57  |      |                  |            | passed.
04:08:57  |  +1  |      asflicense  |   0m 29s   | The patch does not generate ASF
04:08:57  |      |                  |            | License warnings.
04:08:57  |      |                  |  63m 11s   |
04:08:57
04:08:57
04:08:57  || Subsystem || Report/Notes ||
04:08:57  ============================================================================
04:08:57  | Docker | Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1902/1/artifact/out/Dockerfile |
04:08:57  | GITHUB PR | https://github.com/apache/hadoop/pull/1902 |
04:08:57  | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle |
04:08:57  | uname | Linux 24c38dc308fc 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
04:08:57  | Build tool | maven |
04:08:57  | Personality | personality/hadoop.sh |
04:08:57  | git revision | trunk / f9bb2a8cc58 |
04:08:57  | Default Java | 1.8.0_242 |
04:08:57  |  Test Results | https://builds.apache.org/job/hadoop-multibranch/job/PR-1902/1/testReport/ |
04:08:57  | Max. process+thread count | 424 (vs. ulimit of 5500) |
04:08:57  | modules | C: hadoop-hdfs-project/hadoop-hdfs-client U: hadoop-hdfs-project/hadoop-hdfs-client |
04:08:57  | Console output | https://builds.apache.org/job/hadoop-multibranch/job/PR-1902/1/console |
04:08:57  | versions | git=2.17.1 maven=3.6.0 findbugs=3.1.0-RC1 |
04:08:57  | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org |


Missing OSA trigger causes acquisition to stop

When the OSA trigger is momentarily disconnected (presumably, it was Jake having a look at the OSA in the lab) and hence the NI DAQ call fails, the acquisition task crashes, leading to the clients stopping to update.
This is not currently reported to the user in any way (except for the server log output), so can be confusing, especially as reconnecting the signal again doesn't fix it without restarting the server.
ERROR<35>:asyncio:Task exception was never retrieved
future: <Task finished name='Task-7' coro=<WandServer.measurement_task() done, defined at c:\scratch\wand\wand\frontend\wand_server.py:292> exception=TypeError("unhashable type: 'dict'")>
Traceback (most recent call last):
  File "c:\scratch\wand\wand\drivers\ni_osa.py", line 112, in get_trace
    PyDAQmx.DAQmxReadAnalogF64(
  File "<string>", line 2, in function
  File "C:\Users\LabUser\Miniconda3\envs\artiq-env\lib\site-packages\PyDAQmx\DAQmxFunctions.py", line 62, in mafunction
    raise exception_class(errBuff.value.decode("utf-8"), f.__name__)
PyDAQmx.DAQmxFunctions.SamplesNotYetAvailableError: Some or all of the samples requested have not yet been acquired.

To wait for the samples to become available use a longer read timeout or read later in your program. To make the samples available sooner, increase the sample rate. If your task uses a start trigger,  make sure that your start trigger is configured correctly. It is also possible that you configured the task for external timing, and no clock was supplied. If this is the case, supply an external clock.
Property: DAQmx_Read_RelativeTo
Corresponding Value: DAQmx_Val_CurrReadPos
Property: DAQmx_Read_Offset
Corresponding Value: 0

Task Name: osa_blue

Status Code: -200284
 in function DAQmxReadAnalogF64

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\scratch\wand\wand\frontend\wand_server.py", line 352, in measurement_task
    wlm_data, osa = (await asyncio.gather(freq_measurement,
  File "C:\Users\LabUser\Miniconda3\envs\artiq-env\lib\concurrent\futures\thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "c:\scratch\wand\wand\frontend\wand_server.py", line 424, in take_osa_measurement
    osa = {"trace": self.osas.get_trace(osa).tolist(),
  File "c:\scratch\wand\wand\drivers\ni_osa.py", line 123, in get_trace
    self.clear()
  File "c:\scratch\wand\wand\drivers\ni_osa.py", line 76, in clear
    task_handle = self.handles.get(osa)
TypeError: unhashable type: 'dict'

Only the follow-on exception was fixed.


enforce mask kwarg in norm layers

enforce mask kwarg in norm layers

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (61ece40) 56.28% compared to head (c748bae) 56.28%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3663   +/-   ##
=======================================
  Coverage   56.28%   56.28%
=======================================
  Files         101      101
  Lines       12201    12201
=======================================
  Hits         6867     6867
  Misses       5334     5334

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

This PR is technically a breaking change, we could consider bumping version to 0.9.0 on next release.


Add Cleanlab's LLM integration

Description
This PR integrates Cleanlab's Trustworthy Language Model (TLM) to llama-index via cleanlab-studio library. The class provides a structured way to send completion requests to TLM, with support for both synchronous and asynchronous calls, as well as streaming responses.
New Package?
Did I fill in the tool.llamahub section in the pyproject.toml and provide a detailed README.md for my new integration or package?

[x] Yes
[ ] No

Version Bump?
Did I bump the version in the pyproject.toml file of the package I am updating? (Except for the llama-index-core package)

[x] Yes
[ ] No

Type of Change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] Added new unit/integration tests
[x] Added new notebook (that tests end-to-end)
[x] I stared at the code and made sure it makes sense

Suggested Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added Google Colab support for the newly added notebooks.
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I ran make format; make lint to appease the lint gods

@AshishSardana thanks for the integration. Could you please add an example notebook similar to the existing notebooks?
Please add tests, you check existing integrations for reference.

Team @ravi-theja, @logan-markewich
When executing llm.complete(prompt), I'm facing the error -
ValueError: Cannot use llm_completion_callback on an instance without a callback_manager attribute.
Can you please suggest what I'm doing wrong?

@AshishSardana BUILD files are missing in tests and other folders. Please look into other LLM integrations for reference.

Looks good. Please take care of linting and other unit tests before merge.

I ran make format; make lint and pytest() to confirm every check is passed.

@ravi03071991 can you see why these 2 checks are failing? the unit tests pass locally.

@AshishSardana take care of Linting and then we are good to go.


OGG audio support

As the title says.
MP3 support should be relatively easy, as it's already in ogc-rs. OGG support will be a bit more work, but it would be great to have it due to looping support. I try to hide it all behind a generic AudioPlayer and Audio objects, as I want low-level Wii stuff as hidden as possible in this project (who knows, maybe it'll allow us to reuse this for another console in the future).
My current plan is to copy: https://github.com/devkitPro/wii-examples/blob/master/audio/oggplayer/source/oggplayer.c

@Qqwy I'm trying to add an oggplayer library, which requires me to update the build-env stage of the Earthfile.
It seems to go well when I call earthly +build-env, but it seems like the build stage  can't find the results from the changed build-env stage.
Am I doing something wrong? Should I be pushing some change like you say in the readme for the other stages to see the result?

@LucvandenBrand You're hitting the limitations outlined here. For now, add the new steps to the rust-cargo-chef target instead. After this PR is merged I'll update the intermediate Docker image that is created from build-env (which is what is used in the later stages). This step is manual because without doing this manually from time to time Docker/Earthly will decide to rebuild everything including Devkitpro etc completely from scratch.

@Qqwy Thanks for your feedback, now it's working!
I'm noticing some small audio hiccups when too much is going on (build the game, then press '1' a lot), which worries me. I think it's due to the badly performing rendering code, at least I hope and not some weird connection between input interrupts and audio.
No big worries though, we still got a lot of time. I think that, after you've given your opinion on https://github.com/snappy-cobra/WiiDevEnv/pull/54 , I'll try to do some optimization (which will be easier for me with that framework). Would be great if we could do a wii flame graph, but oh well :p .
Anyways, could you review this MR and approve if you're ok with it? Thanks in advance :)

Trying to run earthly +build-watch right now. It produces the following error:
        +build-watch *local* | error: failed to run custom build command for `ogglib v0.1.0 (/app/ogglib)`

        +build-watch *local* | Caused by:
        +build-watch *local* |   process didn't exit successfully: `/build/target/debug/build/ogglib-1578b6b32820d09d/build-script-build` (exit status: 101)
        +build-watch *local* |   --- stdout
        +build-watch *local* |   cargo:rustc-link-search=native=/opt/devkitpro/devkitPPC/powerpc-eabi/lib
        +build-watch *local* |   cargo:rustc-link-search=native=/opt/devkitpro/libogc/lib/wii
        +build-watch *local* |   cargo:rustc-link-search=native=/opt/devkitpro/portlibs/wii/lib
        +build-watch *local* |   cargo:rustc-link-search=native=/opt/devkitpro/portlibs/ppc/lib
        +build-watch *local* |   cargo:rustc-link-lib=static=c
        +build-watch *local* |   cargo:rustc-link-lib=static=sysbase
        +build-watch *local* |   cargo:rustc-link-lib=static=wiiuse
        +build-watch *local* |   cargo:rustc-link-lib=static=oggplayer
        +build-watch *local* |   cargo:rustc-link-lib=static=bte
        +build-watch *local* |   cargo:rustc-link-lib=static=ogc
        +build-watch *local* |   cargo:rustc-link-lib=static=asnd
        +build-watch *local* |   cargo:rustc-link-lib=static=aesnd
        +build-watch *local* |   cargo:rustc-link-lib=static=ogg
        +build-watch *local* |   cargo:rustc-link-lib=static=vorbisidec
        +build-watch *local* |   cargo:rerun-if-changed=wrapper.h

        +build-watch *local* |   --- stderr
        +build-watch *local* |   wrapper.h:2:10: fatal error: 'oggplayer.h' file not found
        +build-watch *local* |   thread 'main' panicked at 'Unable to generate bindings: ClangDiagnostic("wrapper.h:2:10: fatal error: 'oggplayer.h' file not found\n")', ogglib/build.rs:103:10
        +build-watch *local* |   note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

@Qqwy
That problem will be solved by your previous comment

After this PR is merged I'll update the intermediate Docker image that is created from build-env (which is what is used in the later stages). This step is manual because without doing this manually from time to time Docker/Earthly will decide to rebuild everything including Devkitpro etc completely from scratch.

Fixed it with some duplication for now.

Ok, also simplified the code now. Realized I engineered too much.


Update compiler_host.ts (Fix for #3847)

The problem: duplication of symlinked source files (npm linked sources) in CompilerHost's stats.
The solution: resolve these paths before of all
It's my gift of kings :)

What is the status of this PR?  I am getting this error when trying to use an npm link lib in my Ionic 2 project:
undefined is not a constructor (evaluating 'new __WEBPACK_IMPORTED_MODULE_8_shared_lib__

Will this PR fix the issue?

Hi @timofeysie.
This PR fix the building errors described in #3847 (I made a mistake by labeling #3875),
Where npm linked libraries with same dependencies are duplicated, It's solves the «Type 'XXX' is not assignable to type 'XXX» compilation errors, where XXX are the same type declares in the same source file, but resolved by different symlink.
The only thing that does this PR is to resolve all the symlinked source files before to passing them to the compiler.
The issue you are describing seems to be something different.
Sorry, i'm a disinterested contributor, i think that I can not help you much.

@hansl can you review?

Any update on this? Is there any way I could help to fix the failing checks?

@sterfpaul the whole file got refactored/moved ... i tried to find the place, where this could fit, too... but had no luck....

@BernhardRode Seems about the same to me on current master.

Closing as something similar has already been added.


GROOVY-7627 Property calls are not correctly type checked if the sett…

…er parameter type or getter return type are different from the underlying field type

@blackdrag @melix Does this look ok?

@shils Looks good as far as I can tell. Thanks for all your excellent work on groovy. :+1: Can you rebase this?

Rebased. Thanks @PascalSchumacher , the feeling is mutual.

This shouldn't be merged until a decision has been made and carried out for backporting GROOVY-7705.


upgrade dependencies + update docs on releasing

outlines full process for releasing (not jus the technical part)

upgrades mento and oclif dependencies as these had subdeps that were giving warnings on install

test package install with npm intead of yarn as its more generic/ offers better chance to catch bugs

PR-Codex overview
This PR focuses on upgrading and fixing dependencies in the project.
Detailed summary

Upgraded @celo/celocli and @celo/odis-identifiers dependencies
Fixed an error with husky not being installed on initial setup
Updated various CLI commands with gas currency values and addresses
Updated various OCLIF plugins and packages to their latest versions

The following files were skipped due to too many changes: docs/command-line-interface/oracle.md, docs/command-line-interface/network.md, RELEASE.md, docs/command-line-interface/dkg.md, docs/command-line-interface/exchange.md, docs/command-line-interface/validatorgroup.md, docs/command-line-interface/election.md, docs/command-line-interface/transfer.md, docs/command-line-interface/lockedgold.md, docs/command-line-interface/plugins.md, docs/sdk/contractkit/classes/kit.ContractKit.md, docs/command-line-interface/validator.md, docs/command-line-interface/releasecelo.md, docs/command-line-interface/governance.md, docs/command-line-interface/account.md, yarn.lock

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

thanks for the edit @lvpeschke