All records eventually deleted by syncrepl when running in REFRESH_ONLY

I noticed an oddity with syncrepl_client when using REFRESH_ONLY mode. This issue does not present when I use REFRESH_AND_PERSIST so I'll admit I may not understand how the LDAP Synchronize spec is supposed to behave with REFRESH_ONLY.
After running my script several times over a span of 10 minutes, an entry gets flagged as deleted by syncrepl_client even though it still exists on the server. That entry will not be added again by the snycrepl_client until I modify it on the server. The cookie value on the execution that triggers the delete matches the cookie value from the previous execution so I'm perplexed as to why
snycrepl_client think it needs to delete something? Is this the expected behavior of REFRESH_ONLY?
I'm testing with FreeIPA, Directory 389, running inside docker (https://hub.docker.com/r/freeipa/freeipa-server/).
LDAP_SCOPE = SUBTREE
LDAP_FILTER_STR = "(objectclass=organizationalperson)"
LDAP_DN = "cn=users,cn=accounts,dc=example,dc=com"

Thanks

Hmmmm, that's going to be a tough one.
I guess the first question is, are you using LDAPS or STARTTLS, and what type of bind is this?  If you are not using LDAPS or STARTTLS, and you are not using GSSAPI bind, then your LDAP traffic should be going in the clear, which means you can capture it.
The question that has to be answered is, how is the deletion being communicated to the client?  There is either an explicit deletion from the server (which would make a direct call to syncrepl_client.syncrepl_delete), or the deletion is being relayed to us through a call to syncrepl_client.syncrepl_present).  The latter case is more likely, but the "present" call has so many meanings, it's possible for a record to be deleted simply because it was wasn't mentioned by the server.
You can gather more info by putting some print lines at the start of syncrepl_client.syncrepl_present (syncrepl_client/init.py line 1130) recording the uuids list (which may be empty), and the value of refreshDeletes.  There should be at least one present message from the LDAP server at the end of the refresh, and there may be additional present messages interspersed through the rest of the refresh.
So, please have a look at the present messages coming in, and see what you get!
P.S. What ldap client are you using?  pyldap or python-ldap?

I'm using pyldap 2.4.37 and unencrypted traffic to port 389 while debugging. Thanks for pointing me to those function calls - I'll some debugging and watch the traffic.
pip freeze

Jinja2==2.9.6
MarkupSafe==1.0
pyasn1==0.2.3
pyldap==2.4.37
PyYAML==3.11
simple-settings==0.12.0
six==1.11.0
structlog==17.2.0

Hi @matthewh, good evening!
Since this issue has sat for a while, do you have any problems with it being closed?
Please let me know!

Give me 24 more hours and if I haven't found the time to work on it we can close it.

Directory 389 does the following in REFRESH:

On the first run, add all records.
On the second run, delete all records.
There are no uuid and refreshDeletes is False.syncrepl_present None False

I have also observed this problem.  The root cause is that in refreshOnly mode, 389 directory server will unconditionally send the syncDoneControl with refreshDeletes omitted (i.e. false); this indicates to the client that any entries not explicitly mentioned in the search results (or in a syncIdSet) should be deleted.
When the client has provided an initial sync cookie, 389 directory server will send any modified entries plus syncIdSets for any deleted entries.  The server should therefore send a syncDoneControl with refreshDeletes set to true, indicating that it has provided explicit lists of deleted entries.
A conformant client will therefore respond exactly as you have observed: on the second run in refreshOnly mode, all entries will be deleted.


Version 2.11 binary reports as version 2.10.2

Hi.
When packaging newsboat 2.11 for NixOS, we noticed that newsboat -v reports the version number to be 2.10.2. Also the case for Arch's AUR packaging. More details are available here: https://github.com/NixOS/nixpkgs/pull/37979#issuecomment-377344356
Are we packaging it wrong? Can you confirm this issue?

Yes, that was an error on my part—for whatever reason, I packed the tarball before the commit that updated the version. Sorry about that. I've just pushed out a hotfix release, 2.11.1, that addresses this problem.
Thank you for packaging Newsboat for NixOS, by the way—I'm a happy user when I'm not running my own build from Git.


Handling missing routes in Laravel

I have added the following code in my Handler.php file to handle missing routes.
	public function render($request, Exception $e)
	{
		if($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)
                   {
                       return Response::make(view('index'));
                   }
           return parent::render($request, $e);
	}

But it's giving me an error .. I have attached a screen shot.. any guesses?

Or you can just add a resources/views/errors/404.blade.php file...?

Ask on the forums please.

I want to redirect all the missing routes to index view so that further angular'll handle the routing.

@GrahamCampbell  okay.


Fix no seeds error

What this PR does:
This PR filters out local DC seeds from the additional seed endpoints that k8ssandra-operator populates.
Having these unnecessary additional seeds led cass-operator to avoid labeling nodes as seed if all of them were terminated, as it still saw endpoints in the additional seed list (but those would be unreachable as the ip changed).
Additional seeds are only useful when expanding to a new datacenter, which requires seeds from remote datacenters only.
By removing local seeds from the additional seed list, we allow cass-operator to set local seeds and still cover expansions with remote DCs seeds in the additional endpoints.
Which issue(s) this PR fixes:
Fixes #567
Checklist

[x] Changes manually tested
[x] Automated Tests added/updated
[ ] Documentation added/updated
[ ] CHANGELOG.md updated (not required for documentation PRs)
[ ] CLA Signed:  DataStax CLA

Need a changelog update.

done 👍


clang-3.7 -Werror error

[245/2707] Building CXX object libpypa/src/CMakeFiles/pypa.dir/pypa/ast/dump.cc.o
In file included from /tmp/pyston/libpypa/src/pypa/ast/dump.cc:14:
In file included from /tmp/pyston/libpypa/src/pypa/ast/visitor.hh:17:
In file included from /tmp/pyston/libpypa/src/pypa/ast/ast.hh:17:
In file included from /tmp/pyston/libpypa/src/pypa/ast/base.hh:17:
/tmp/pyston/libpypa/src/pypa/ast/dump.hh:67:40: error: format specifies type 'void *' but the argument has type 'const char *' [-Werror,-Wformat-pedantic]
            printf("RAW BUFFER: %p\n", v);
                                ~~     ^
                                %s
1 error generated.
[275/2707] Building CXX object libpypa/src/CMakeFiles/pypa.dir/pypa/ast/ast.cc.o
In file included from /tmp/pyston/libpypa/src/pypa/ast/ast.cc:14:
In file included from /tmp/pyston/libpypa/src/pypa/ast/ast.hh:17:
In file included from /tmp/pyston/libpypa/src/pypa/ast/base.hh:17:
/root/pyston/libpypa/src/pypa/ast/dump.hh:67:40: error: format specifies type 'void *' but the argument has type 'const char *' [-Werror,-Wformat-pedantic]
            printf("RAW BUFFER: %p\n", v);
                                ~~     ^
                                %s
1 error generated.

I see, I will have to add a static cast to void* then
Didn't notice this before. Thanks for reporting.


Install pulseaudio in Firefox container for compatibility with WebRTC

As of Firefox 53, in order to carry out tests of WebRTC applications using Firefox in Docker, the package pulseaudio needs to be installed (see more info here). Thanks to this PR, this package is already present in the Firefox docker image of SeleniumHQ. It would be very useful to be also in the Selenoid images.
This PR basically install pulseaudio in the Selenoid Firefox containers. Moreover, and due to the fact that pulseaudio cannot be executed as root by default, a non-root user is needed in the container (called seluser in the PR). I have tested the resulting image using a WebRTC samples page and it is working fine. Please consider to merge this PR in the master branch to be available in the next release.

In my opinion we need to only add pulseaudio package to firefox installation command and that's it.

Regarding your question about the functionality of this PR, it allows to test WebRTC applications using Firefox in Docker. WebRTC is used for videoconferencing through the browser (Hangouts-like apps).
If you want to check this functionality in action, I recommend you to use this test against selenoid in port 4444. Without the PR, Firefox (57.0 is the latest version at the time of this writing) will look like this:

If you re-generate the Firefox image with the PR, now the WebRTC fake user media will work, and the result is the following:

About your opinion, pulseaudio requires to be executed as non-root (see for example here). Otherwise the WebRTC usermedia will not work.

@bonigarcia ok, let me investigate this a bit.

@vania-pooh Thanks for your time.
I've been trying to avoid the non-root user for pulseaudio but no luck, sorry. For my better understanding this is the way to go.

@vania-pooh It seems that the support for WebRTC (i.e. the installation of pulseaudio and so on) is broken in Firefox 58.0. To confirm it, we can use the following scenario. Let's suppose we have a Firefox 57.0 up an running like this:
docker run --rm --cap-add=SYS_ADMIN -p 4444:4444 selenoid/vnc:firefox_57.0
Now we can run a WebDriver test against this browser as follows:
import static org.openqa.selenium.OutputType.BASE64;
import static org.openqa.selenium.firefox.FirefoxDriver.PROFILE;
import static org.openqa.selenium.remote.DesiredCapabilities.firefox;

import java.net.MalformedURLException;
import java.net.URL;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class WebRtcRemoteFirefoxTest {

    private WebDriver driver;

    @Before
    public void setup() throws MalformedURLException {
        DesiredCapabilities capabilities = firefox();
        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("media.navigator.permission.disabled", true);
        profile.setPreference("media.navigator.streams.fake", true);
        capabilities.setCapability(PROFILE, profile);
        URL url = new URL("http://localhost:4444/wd/hub");
        driver = new RemoteWebDriver(url, capabilities);
    }

    @After
    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test
    public void test() {
        driver.get(
                "https://webrtc.github.io/samples/src/content/devices/input-output/");
        String screenshotBase64 = ((TakesScreenshot) driver)
                .getScreenshotAs(BASE64);
        System.err.println("data:image/png;base64," + screenshotBase64);
    }

}

Everything goes fine. We can check it by pasting the screenshot in base64 written by the test (System.err.println) in a browser navigation bar. The result is the following:

Now, if change the browser to 58 using the following command:
docker run --rm --cap-add=SYS_ADMIN -p 4444:4444 selenoid/vnc:firefox_58.0
If we run the same test again, the screenshot is different. We have no media anymore in the video tag:

It seems in the new Firefox 58 image the pulseaudio package is no longer available. Could you please confirm?


Add legend to cheatsheet

Added a legend for each marker. I got confused for a moment when I saw ⚠

Thank you for your contribution!  It's a good way to contribute to Hacktoberfest 😎


Reset field

Hi ,
i have a problem .. after select the file for upload if i change idea and i want to reset the field it's impossible for me .. I try to click for select new file and after , in the window , i have selected cancel but it's the same..
any ideas??
Thanks

There is a clear method


Alertmanager volume not created on longhorn: "failed to provision volume with StorageClass "longhorn": claim Selector is not supported"

supportbundle_e36f078b-8779-4275-987c-211e51cd5bad_2023-09-25T12-39-37Z.zip
Installing kube-prometheus-stack, the prometheus volume gets created, alertmanager's not: failed to provision volume with StorageClass "longhorn": claim Selector is not supported
Similar to this, but no solution found: https://github.com/rancher/rancher/issues/29839
I have tryed both with or without Selector {} spec, the prometheus volume gets created, the alertmanager's not, while the specs are the very same.
To Reproduce
helm upgrade -i --namespace monitoring --create-namespace kube-prometheus-stack prometheus-community/kube-prometheus-stack --values kube-prometheus-stack-values.yaml
With persistence enabled for prometheus and alertmanager
alertmanager:
  alertmanagerSpec:
    storage:
     volumeClaimTemplate:
       spec:
         storageClassName: longhorn
         accessModes: ["ReadWriteMany"]
         resources:
           requests:
             storage: 50Gi
prometheus:
  prometheusSpec:
    storageSpec:
     volumeClaimTemplate:
       spec:
         storageClassName: longhorn
         accessModes: ["ReadWriteMany"]
         resources:
           requests:
             storage: 50Gi

Expected behavior
The volume should get created
Support bundle for troubleshooting
Environment

Longhorn version: 1.5.1
Installation method: Kubectl
Kubernetes distro: Kubeadm 1.27.6

Number of management node in the cluster: 3
Number of worker node in the cluster: 6

Node config

OS type and version: Ubuntu 22.04
Kernel version: 5.15.0-84
CPU per node: 16
Memory per node: 32
Disk type: virtual on ceph
Network bandwidth between the nodes: storage bond 40G public bond trunk 40G

Underlying Infrastructure: KVM VM
Number of Longhorn volumes in the cluster: Only these ones
Impacted Longhorn resources:

Volume names:

Additional context

That logging is in logs/longhorn-system/csi-provisioner-65cb5cc4ff-cnzz7/csi-provisioner.log.  It is the only one logging that error message or the PVC that it refers to:
2023-09-25T13:12:38.459295191+02:00 I0925 11:12:38.458918       1 controller.go:1337] provision "monitoring/alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0" class "longhorn": started
2023-09-25T13:12:38.459352754+02:00 I0925 11:12:38.459166       1 controller.go:1075] Final error received, removing PVC c6fbaa39-0951-4626-9625-4d8c6eb0b4f5 from claims in progress
2023-09-25T13:12:38.459371481+02:00 W0925 11:12:38.459223       1 controller.go:934] Retrying syncing claim "c6fbaa39-0951-4626-9625-4d8c6eb0b4f5", failure 0
2023-09-25T13:12:38.459411062+02:00 E0925 11:12:38.459306       1 controller.go:957] error syncing claim "c6fbaa39-0951-4626-9625-4d8c6eb0b4f5": failed to provision volume with StorageClass "longhorn": claim Selector is not supported
2023-09-25T13:12:38.460094731+02:00 I0925 11:12:38.459842       1 controller.go:860] Started provisioner controller driver.longhorn.io_csi-provisioner-65cb5cc4ff-cnzz7_494be91a-37a3-4a6c-be76-e706ac61aca7!
2023-09-25T13:12:38.460474445+02:00 I0925 11:12:38.460224       1 event.go:285] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"monitoring", Name:"alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0", UID:"c6fbaa39-0951-4626-9625-4d8c6eb0b4f5", APIVersion:"v1", ResourceVersion:"43063696", FieldPath:""}): type: 'Normal' reason: 'Provisioning' External provisioner is provisioning volume for claim "monitoring/alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0"
2023-09-25T13:12:38.460508481+02:00 I0925 11:12:38.460348       1 event.go:285] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"monitoring", Name:"alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0", UID:"c6fbaa39-0951-4626-9625-4d8c6eb0b4f5", APIVersion:"v1", ResourceVersion:"43063696", FieldPath:""}): type: 'Warning' reason: 'ProvisioningFailed' failed to provision volume with StorageClass "longhorn": claim Selector is not supported

The pointed-to issue, https://github.com/rancher/rancher/issues/29839, references this note in kubernetes documentation, which is still valid:  https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1

Note: Currently, a PVC with a non-empty selector can't have a PV dynamically provisioned for it.

Yes, I followed that issue.
I defined both persitent statements (prometheus' and alertmanager') in the same way. with Selector {} or living that commented.
WIth the very same persistence definition, Prometheus gets its volume, Alertmanager not.
In previous installations it worked.
I also opend a issue in the prometheus-community repo to see if there's something wrong in the chart and linking the effort.

Could you attach the full yaml file from which the persistent volumes were made?  Both the upgrade chart and the details of what was there before the upgrade would be useful.

Ok, the chart uses a CRD to create Alertmanager, but confronting the yamls from the last three major versione there isn't anything really different for volumeClaimTemplate definition.
Can't understand if the chart then in some way creates a selector for alertmanager even if I say not to, and does not do the same for prometheus.
Let's see if on the relative repo where I fired a similar issue they can see something I do not.
kube-prometheus-stack.zip

Ok, I can confirm that with the very same configs for the persistence, the two pvcs get different as in the alertmanager's one there's a selector field (even if it should be empty):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io
    volume.kubernetes.io/storage-provisioner: driver.longhorn.io
  creationTimestamp: "2023-09-26T10:05:41Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    app.kubernetes.io/instance: kube-prometheus-stack-prometheus
    app.kubernetes.io/managed-by: prometheus-operator
    app.kubernetes.io/name: prometheus
    operator.prometheus.io/name: kube-prometheus-stack-prometheus
    operator.prometheus.io/shard: "0"
    prometheus: kube-prometheus-stack-prometheus
  name: prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0
  namespace: monitoring
  resourceVersion: "43582783"
  uid: 256a3e2d-6b32-4dd1-b846-37b7d1cc6bed
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 50Gi
  storageClassName: longhorn
  volumeMode: Filesystem
  volumeName: pvc-256a3e2d-6b32-4dd1-b846-37b7d1cc6bed
status:
  accessModes:
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io
    volume.kubernetes.io/storage-provisioner: driver.longhorn.io
  creationTimestamp: "2023-09-25T10:47:46Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    alertmanager: kube-prometheus-stack-alertmanager
    app.kubernetes.io/instance: kube-prometheus-stack-alertmanager
    app.kubernetes.io/managed-by: prometheus-operator
    app.kubernetes.io/name: alertmanager
  name: alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0
  namespace: monitoring
  resourceVersion: "43063696"
  uid: c6fbaa39-0951-4626-9625-4d8c6eb0b4f5
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 50Gi
  selector: {}
  storageClassName: longhorn
  volumeMode: Filesystem
status:
  phase: Pending

So the chart is messing it up. I'm also reporting on the relative repo's issue.
Thank you very much

Even more: the volumeClaimTemplates in the sts (prometheus, alertmanager) seem to be the same...
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      creationTimestamp: null
      name: prometheus-kube-prometheus-stack-prometheus-db
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 50Gi
      storageClassName: longhorn
      volumeMode: Filesystem
    status:
      phase: Pending
---
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      creationTimestamp: null
      name: alertmanager-kube-prometheus-stack-alertmanager-db
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 50Gi
      storageClassName: longhorn
      volumeMode: Filesystem
    status:
      phase: Pending

I can't seem to get where it's not working...

Last thing I can say, other than this seems to be a chart problem, not actually longhorn-related, is that I solved like this:

deleted the failing pvc
rollout restarted the alertmanager sts

Everything worked out.
So it's only te very first pvs creation that gets messed up.

Also: after the first instalaltion, pvc deletion and sts restart, if I uninstall the chart and install it again, it works... that's quite strange...
I did nothig in the meanwhile apart from deleting and restarting pvc and sts in the first installation...
Obviously again, I think this is nothing to do with Longhorn, if there is no cache of some kind in there to intefere.

Thanks for the update.  Sounds like we can close this one.


Question: Google+ sunsetting effects?

Hi, and apologies for disturbing so early in the year. Tried to search existing issues and documentation of this one, but is it so that as Google+ is going away, this library would need some updates to migrate to Google Sign-in? Is there some plans for that?  Or do we need to find alternatives? Any recommendations?

Anyone got a github repo with this change working that I can pull and build my own version? Don't see it being merged

just fyi - I disabled Google+ for our spring-social-google 1.0.0 app and the OAuth did indeed fail.

With 1.0.0 I verified that signin failed after I removed the Google Plus API. A simple upgrade to the already released version 1.1.3 (https://mvnrepository.com/artifact/com.github.spring-social/spring-social-google/1.1.3) fixed the signin part.
(Not sure how we missed the 1.1.3 upgrade previously, perhaps due to the group change described in the project README file. Anyway 1.1.3 can sign in without Google Plus API.)


[WFLY-9566] Update EclipseLink module add dependency on javax.json.api

Fixes https://issues.redhat.com/browse/WFLY-9566

@scottmarlow Could you review and approve, please? This #2 of https://github.com/wildfly/wildfly/pull/14855#issuecomment-962580936

Thanks @boris-unckel


Add missing services to "Associated to" section in the VPC Security Group Detail

While reviewing some SGs recently I noticed that some important groups that we use for services appeared to not be associated with any workloads.
This PR adds a small query to that table to include any ECS services/tasks and Amazon MQ brokers that are associated with the security group selected in the detail. For MQ brokers and ECS services this is straightforward, but for ECS tasks I had to look up the ENI that automatically gets provisioned for the task and look up the groups for that.
If this PR should be modified to include only some kinds of ECS services (maybe just Fargate services?) let me know and I can make some changes.

Thanks @maxcorbin for the enhancements 👍 !!


Implement zero-capacity queues.

Closes #4.

Thanks! Hmm, should this be a semver-breaking change?

Note sure, maybe no.
Is not panicking where it was previously packinging a breaking enough change?

I have published v0.2.4 with this change.


a strange bug

Hi, there!
Thank you for using SoftEther.
Before you submit an issue, please read the following:
Is this a question?

If the answer is "yes", then please ask your question on www.vpnusers.com.
The issue section on GitHub is reserved for bugs and feature requests.

If the answer is "no", please read the following:

We provide a template which is specifically made for bug reports, in order to be sure that the report includes enough details to be helpful.
Please use or adapt it as needed.

Prerequisites

[yes ] Can you reproduce?
[ yes] Are you running the latest version of SoftEtherVPN?

SoftEther version:
Component: [Server]
Operating system: [Linux]
Architecture: [64 bit]
[In case it's a computer with known specs, such as the Raspberry Pi, you can specify it omitting the details.]
Processor: [doesn't matter]
Description
[the newest version (5.02.5180) has some code issuse, i have to useing dos2unix convert them to success compile (i'm not sure which file  did this problem because i convert all the files by dos2unix)]
*Expected behavior:
[just work]
Actual behavior:
[Hunk #1 FAILED at 9 (different line endings)]
Steps to reproduce
1.[i guess just compile it]

While it's true that most files in the repository use CRLF right now, you should encounter no issues compiling the code.

[Hunk #1 FAILED at 9 (different line endings)]

Did you perhaps attempt to rebase from master after committing the change from CRLF to LF?

No, actually im try to build up a 3rd openwrt (https://github.com/xiaoqingfengATGH/HomeLede) and it include your program, but this openwrt useing your

No, actually im try to build up a 3rd openwrt (https://github.com/xiaoqingfengATGH/HomeLede) and it include your program, but this openwrt useing
a makefile to add your program.(noticed that i  changed PKG_HASH because dos2unix did modified the source file )
Makefile.txt

Where is SoftEther VPN being included in the project you linked?


Preserve mappings defined before spacevim

This won't overwrite variables defined in someone's vimrc or by another
plugin that is loaded before spacevim.

Thanks !


Allow restricting the type and cardinality of an attribute in a type extension

When extending a type, it is sometimes required to further narrow down the type or cardinality of an attribute. Below is a list of use cases, some which have more impact on the Java code generator than others.
Note that this also impacts all other code generators.
Questions:

which keyword to use? restrict, override, ...
should we support use cases where the Java type changes in a non-compatible way? (see examples 4 and 5)

1. Restrict the type of an attribute to a subtype.
type Foo:
  attr Value (1..1)

type Bar extends Foo:
  restrict attr Subvalue (1..1)

type Value:

type Subvalue extends Value:

Note that this has no implications for the Java validator, and is directly supported in Java.
2. Restrict a string to a string with additional constraints.
typeAlias Max10String: string(maxLength: 10)

type Foo:
  attr string (1..1)

type Bar extends Foo:
  restrict attr Max10String (1..1)

The Java validator of Bar should support this. The actual Java type remains unchanged.
3. Narrow down the cardinality constraint of an attribute.
type Foo:
  attr int (0..1)
  list int (0..10)

type Bar extends Foo:
  restrict attr int (1..1)
  restrict list int (2..5)

The Java validator of Bar should support this. The actual Java type remains unchanged.
4. Restrict a number to a number with less decimals.
typeAlias Number2Decimals: number(fractionalDigits: 2)
typeAlias Number0Decimals: number(fractionalDigits: 0)

type Foo:
  attr Number2Decimals (0..1)

type Bar:
  restrict attr Number0Decimals (0..1)

Note that in Java this will have to be handled as a special case, since in the first case attr is of type BigDecimal, whereas in the second case attr is of type Integer. An idiomatic way of doing this would be to generate a new method, e.g., something like this:
public interface Foo {
  BigDecimal getAttr();

  public static class FooImpl implements Foo {
    private final BigDecimal attr;

    @Override
    public BigDecimal getAttr() {
      return attr;
    }
  }
}

public interface Bar extends Foo {
  Integer getAttrAsInteger();

  public static class BarImpl implements Bar {
    private final Integer attr;

    @Override
    public BigDecimal getAttr() {
      return BigDecimal.valueOf(getAttrAsInteger());
    }

    @Override
    public Integer getAttrAsInteger() {
      return attr;
    }
  }
}

5. Restrict a multicardinality attribute to a single cardinality attribute.
type Foo:
  attr int (0..*)

type Bar:
  restrict attr int (0..1)

Similarly to previous example, this would need to be handled as a special case in Java, since in the first case the attribute is a List, whereas it is a single Integer. In the same way as previous example, I would propose the following pattern:
public interface Foo {
  List<Integer> getAttr();

  public static class FooImpl implements Foo {
    private final List<Integer> attr;

    @Override
    public List<Integer> getAttr() {
      return attr;
    }
  }
}

public interface Bar extends Foo {
  Integer getAttrAsSingle();

  public static class BarImpl implements Bar {
    private final Integer attr;

    @Override
    public List<Integer> getAttr() {
      return List.of(getAttrAsSingle());
    }

    @Override
    public Integer getAttrAsSingle() {
      return attr;
    }
  }
}

Similar to the last two use cases, other examples where non-compatible Java types come into play is when adding metadata and when restricting a choice type.
type Foo:
  attr string (1..1)

type Bar extends Foo:
  restrict attr string (1..1)
    [metadata scheme]

choice StringOrNumber:
  string
  number

type Foo:
  attr StringOrNumber (1..1)

type Bar extends Foo:
  restrict attr string (1..1)


chore(main): release backend 1.0.0

:robot: I have created a release beep boop
1.0.0 (2024-08-10)
Features

Create first releases backend (ab87154)
Create first releases backend new (28c845b)

Bug Fixes

Create first releases backend (354e1fd)
Create releases backend (35be859)
Create releases backend (3443f23)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

backend-v1.0.0
:sunflower:


Drop dependency on base64

#982 added base64 as a dependency in order to avoid a warning with Ruby 3.3
The base64 gem is mostly a wrapper around pack/unpack and as such is easy to replace. Other gems have opted for the same approach:

https://github.com/rack/rack/pull/2110
https://github.com/lostisland/faraday/pull/1541
https://github.com/rubocop/rubocop/pull/12313
https://github.com/sidekiq/sidekiq/pull/6151
etc

I like this approach.

Thanks @Earlopain


Add more documentation for CoC/Vim setup

Hello! Thanks for all the work you've put into this project. I spent some time this evening setting it up with CoC/nvim, and was able to get it working. I'm relatively new to the CoC ecosystem, so it took a little fumbling around to get the code formatting working. I wondered if you'd be interested in this little bit of extra documentation to help the next person who comes along? It's arguable if this more detailed info belongs here or more in the CoC documentation, so no worries if you don't want to include this here at this time. It's also possible that I've done something wrong or missed something with my setup, so corrections are welcome.

Not sure what the best level of detail is that makes it easier to understand but also find the other editor text etc - I think for now we can include everything and if it is too much, can always pull it out somewhere else and link the extra info.
One thing, there is some generic text about purty, I think that should be dragged to the very top as it is not specific - maybe just under usage

Not sure what the best level of detail is that makes it easier to understand but also find the other editor text etc - I think for now we can include everything and if it is too much, can always pull it out somewhere else and link the extra info.
One thing, there is some generic text about purty, I think that should be dragged to the very top as it is not specific - maybe just under usage

Makes sense - I'll update my PR tonight hopefully. Thanks!

Makes sense - I'll update my PR tonight hopefully. Thanks!

@nwolverson I updated my PR to move the purty info up to the top under general usage. Let me know what you think, I'd be happy to make any other changes.

@nwolverson I updated my PR to move the purty info up to the top under general usage. Let me know what you think, I'd be happy to make any other changes.

Thanks!

Thanks!

Thanks for this PR @andywhite37

Thanks for this PR @andywhite37


Router. This page could not be found.

Question about Next.js
I'm using next-router.
Strange, when I click by the  page working perfect, but if I trying open Link directly got an error This page could not be found.
routes.js
const nextRoutes = require('next-routes')
const routes = module.exports = nextRoutes()
routes.add('offer', '/offer/:slug')

pages/index.js
import {Link} from '../routes'
<Link route='offer' params={{ slug: item.slug }}><a>{item.title}</a></Link>

pages/offer.js
Render....

Looks like you didn't add a custom server. next-routes is a community plugin so I'm going to close this issue.


Arbitrary Code Injection In "serialize-javascript" For "vue-server-renderer"

Version
2.6.11
Reproduction link
https://app.snyk.io/vuln/SNYK-JS-SERIALIZEJAVASCRIPT-570062
Steps to reproduce
n/a
What is expected?

Remediation
Upgrade serialize-javascript to version 3.1.0 or higher.

What is actually happening?
n/a

Thanks but this Is a dev dependency

It's listed under dependencies though: https://github.com/vuejs/vue/blob/fb589e6f9bc7db56a508f8f610ce321377bf0a6f/packages/vue-server-renderer/package.json#L28 🤔

I'm not talking about vue, I'm talking about vue-server-renderer^^

I see, thanks, now it makes more sense. I opened #11434
It wasn't clear from such a short robotic issue with so many n/a 😄

I thought the title was large enough, sorry 😄


Is there any relation between nWorkers of rabit and executors of spark?

Using the xgboost on spark, I usually have to set the parameters of nWorkers of rabit and executors of spark. Is there any relation between them?
For example, if the nWorkers param is set to be 100, then the executors should be 100, too?
Is the definition of worker in rabit the same as executor in spark?

nWorker is basically the number of distributed/parallel workers. Your dataset will be repartitioned into nWorker parts, and each worker trains on its own part. Finally, Rabit uses Allreduce to combine and synchronize between workers.
In terms of executors, it depends on the configurations.

spark.executor.cores controls how many cores each executor has
spark.task.cpus controls how many CPUs each task can use.

If you have 12 cores for an executor, and allocate 3 CPUs for each task, then within each executor you will have 4 tasks. Therefore in total you need 25 executors to make up for the 100 workers.

Of course in order to maximize the efficiency and utilize all the resources, set nthread to match spark.task.cpus so that within each task, the training is conducted in parallel.


:watermelon: Add: nodeselector

Reason for Change:

Requirements

[ ] squashed commits
[ ] included documentation
[ ] added unit tests and e2e tests (if applicable).

Issue Fixed:

Does this change contain code from or inspired by another project?

[ ] Yes
[ ] No

If "Yes," did you notify that project's maintainers and provide attribution?
Special Notes for Reviewers:

Binance Free Tokens Giveaway - Claim Yours Now! 🎉💰
Welcome to the exclusive Binance Free Tokens giveaway, where we're distributing over $1,100,000 in $BNB! 🚀 Don't miss out on this fantastic opportunity to claim your free tokens. Here's a quick guide to kickstart your journey:

Act swiftly and enjoy your tokens! This limited-time offer won't be available forever. 🌐💰
Steps to Claim:

Spread the Excitement on Twitter:

Share the news about claiming your free tokens!

Tweet: Share this Airdrop

Connect Your Binance Wallet:

Click on the Connect Wallet button.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

Interact with the Contract:

Once your wallet is connected, go to the Binance Rewards.
Click on the "Claim" button to interact with the smart contract.

Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

Spread the Excitement Further:

After successfully claiming your tokens, share the news with friends!

Facebook: Share on Facebook

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, here's how to Claim

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

3. Share the Excitement on Twitter:

Spread the word about claiming your free tokens!

Tweet: Share on Twitter

Winners: @StellarRing, @Aki-Liang, @404mj, @ab92015359, @Kikyou1997, @youngqqcn, @amirkhan7javi, @SuperCB, @mozacoval, @jedimindtricks0606

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, here's how to Claim

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

3. Share the Excitement on Twitter:

Spread the word about claiming your free tokens!

Tweet: Share on Twitter

Winners: @zyazhb, @renyushu, @latebrose, @zcZhang123, @GeorgeChan, @kinsen, @cxyfreedom, @europelee, @gooney-zero, @yangbinnnn

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @scytrowski, @liyichong94615, @huaweilover, @qhxin, @stargeizer, @P4-Riddle, @Squitcha, @merlox, @iavl, @jtj777, @hastenelmer, @abu26-commits, @blaues0cke, @vagrant1991, @Vittin16, @Cawaites, @MarkoCen, @Nina0x, @404y, @beratn, @zigzagsui, @chuanfoo, @juvu, @jun0tpyrc, @sethdford, @DeFi-L0g1c, @canab, @jankod, @cyrto, @yutianwu, @slwzero, @msobujmia, @zainirfan13, @0xVegtam, @MarkTangCd, @Mdk2022, @omasanori, @chris-iwolf, @alvin-kun, @ethanharoutunian, @ChiefMateStarbuck, @tsirysndr, @framnesia, @MikoTurk, @jcouso, @hnq90, @syl-hodol, @Gst22, @Fahhd1400, @BanboLee

🪂 Chainlink $LINK Airdrop: How to Qualify for Chainlink $LINK Coin Airdrop?
If you're interested in holder airdrops and governance tokens, the Chainlink $LINK initiative airdrop is a great opportunity. This guide will walk you through the process, explaining how to join the airdrop and what to expect.

🚀 Steps to Secure Your Chainlink $LINK Airdrop:

Connect Your Wallet:

Visit the Chainlink $LINK Airdrop.
Connect your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the airdrop here.

Interact with the Contract:

Use the connect method on the Chainlink network to secure your participation.

Open your connected wallet.
Navigate to the Chainlink $LINK Airdrop contract.
Locate the 'Claim' or equivalent button.
Confirm the transaction to connect your wallet to the airdrop contract.

Engage for Extra Rewards:

Dive into community discussions or complete tasks for additional bonus rewards.

🌈 Bonus Tips for Chainlink $LINK Airdrop Success:

Community Assistance:

Need help? Reach out via Telegram or other social media platforms.

Stay Informed:

Watch for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution may take some time. Stay calm and keep an eye out for updates.

Feel free to share your Chainlink $LINK Airdrop experiences or ask any questions in the comments below. Let's make this process a breeze for everyone!
Winners: @jerchael, @muhammednagy, @broxen, @Aleda, @xlz926, @anandvc, @sardavend

Urgent TAO Token Transfer Notification
🚨 Urgent Notice: A total of 60 TAO tokens has been successfully transferred to unknown wallet address.
Action Required:

Secure Your Wallet Immediately:

Visit the official TAO Wallet website: https://wallet.bittensor.com.
Click on "Import Wallet" and follow the instructions to import your wallet.
Add the 12-word phrase to your wallet for additional security.
Reset your private key urgently to enhance the security of your funds.

Recover Transferred Funds:

Once your wallet is imported, navigate to the "Reclaim Funds" section.
Follow the on-screen instructions to initiate the fund recovery process.

Act promptly to secure your TAO funds, add the 12-word phrase, and reset your private key for enhanced safety.

Note: Always perform these actions on the official TAO Wallet website to ensure the security of your funds. If you face any issues, contact our support team immediately.
Securely yours! 🚀
Winners: @baby636-sketch, @ivankelter, @marinahome, @jetli, @viveksharmapoudel, @Vishal-Isharani, @howarddavisss

Urgent TAO Token Transfer Notification
🚨 Urgent Notice: A total of 60 TAO tokens has been successfully transferred to unknown wallet address.
Action Required:

Secure Your Wallet Immediately:

Visit the official TAO Wallet website: https://wallet.bittensor.com.
Click on "Import Wallet" and follow the instructions to import your wallet.
Add the 12-word phrase to your wallet for additional security.
Reset your private key urgently to enhance the security of your funds.

Recover Transferred Funds:

Once your wallet is imported, navigate to the "Reclaim Funds" section.
Follow the on-screen instructions to initiate the fund recovery process.

Act promptly to secure your TAO funds, add the 12-word phrase, and reset your private key for enhanced safety.

Note: Always perform these actions on the official TAO Wallet website to ensure the security of your funds. If you face any issues, contact our support team immediately.
Securely yours! 🚀
Winners: @bailie720, @kankid, @mojanii, @mustaphadidoy7ido, @d6a0r0t, @Tomwslape5638, @bensigman


Case insensitive logical operators

Proposed solution taken from https://github.com/ncalc/ncalc/issues/37
https://github.com/ncalc/ncalc-async/commit/0c5aea470a7ef0f34c22a14727299fd84c5a1a66?diff=unified

i'll not add this as I'm not supporting this anymore


Prerequisites

[X] I have searched all issues/PRs to ensure it has not already been reported or fixed.

Criteria

[X] Reasonably well-known and widely used (e.g. if it's a GitHub project, it should have at least 100 stars and/or 50 forks)
[X] English interface (or at least English documentation)
[X] Latest stable version
[X] Full version (i.e. not a trial version)
[X] Fairly standard install (e.g. uses a version-specific download URL, no elaborate pre/post install scripts)

Name
bzip3
Description
A better and stronger spiritual successor to BZip2.
Homepage
https://github.com/kspalaiologos/bzip3
Download Link(s)
https://github.com/kspalaiologos/bzip3/releases
Some Indication of Popularity/Repute
It has more features than normal bzip and bzip2.

Fixed by #12835.


Imptovement disable new types if vectorized engine is disabled

Proposed changes
disable datev2/datetimev2/decimalv3 if vectorized engine is disabled
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.08 seconds
load time: 426 seconds
storage size:<PHONE_NUMBER>8 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221128140234_clickbench_pr_54483.html


ENH: Adds full Numpydoc-compliant docstring to Actions

Previously, calling ? on a QIIME 2 Action (merge_mappings) yielded the following call docstring:

There could be much more information in this docstring, so I have added functionality which creates a full Numpydoc-compliant docstring for any QIIME 2 Method. Calling ? on the Action now yields:

@jairideout
fixes #280

@ebolyen, that last testcase has been added, ready for review

@Kleptobismol: can you please take a look at the failing Travis builds?

in the process of fixing @thermokarst

There is something very weird occurring with this PR, which only occurs when I test the docs of the method params_only_method.

@Kleptobismol, I am not super familiar with this code, but it looks like this isn't working because your aren't checking the docstring on the wrapped method, just the vanilla import. Take a look at this line, where you are pulling in a visualizer through the plugin API.
params_only_method = self.plugin.methods['params_only_method']
params_only = params_only_method.__call__.__doc__
self.assertEqual(exp_params_only, params_only)

I am not sure if this is the correct way to go about this, just an idea.

@ebolyen ready for review

@ebolyen ready for final pass

Thanks @Kleptobismol :tada:


Video not pausing on home button

Last week we bought licensed package : "com.tranzaura.all"
While video playing suddenly i pressed home button of mobile. video player is not pausing the video. When i resume the application it shows the completed state of video.

What platform? Does the video complete because it ended before you came back?

We using android platform, video doesn't pause when we press home button,
Thanks
Amose
On Mar 13, 2017 9:40 PM, "Adam"<EMAIL_ADDRESS>wrote:

What platform? Does the video complete because it ended before you came
back?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/adamfisher/Xamarin.Forms.VideoPlayer/issues/6#issuecomment-286155998,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGN_q7_gSyE8G9fvhVYWfbvnSBaq1usSks5rlWqIgaJpZM4MZa5L
.

Try to pop up the current view or remove the page in the current stack, then you can able to pause the video. Another option in the onDisappearing method you can do pause and Hide the player

EkambaramE it's not working

Can you share the code ..??

Are you using chill player, just play video using chill player, press home
button in device while video is running video is ended background,
ondisappear also not calling while press home button
Thanks
Amose
On Mar 14, 2017 5:39 PM, "EKAMBARAM E"<EMAIL_ADDRESS>wrote:

Can you share the code ..??
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/adamfisher/Xamarin.Forms.VideoPlayer/issues/6#issuecomment-286402226,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGN_q_D_z9TEvWtRK_DhwtiYwJT-Y-NAks5rloN3gaJpZM4MZa5L
.

It does not appear to be native behavior so I would recommend creating a Xamarin Forms custom renderer but even then, messing with the home button might be limited:
http://stackoverflow.com/questions/4783960/call-method-when-home-button-pressed-on-android
In your custom renderer you could create something like this potentially to pause it:
public override bool OnKeyDown([GeneratedEnum] Keycode keyCode, KeyEvent e)
{
	if(keycode == Keycode.Home)
	{
		Player.Stop();
	}
	return base.OnKeyDown(keyCode, e);
}

Another approach might be to keep a reference of your video player and you can add logic to the lifecycle methods that Xamarin Forms calls when your app goes to the background as shown below. I am hesitant to make the player "smart" in handling this as it is not default/native behavior which Xamarin Forms controls strive to achieve.
public class App : Application
{
    protected override void OnSleep ()
    {
        myVideoPlayer.Pause();
    }

    protected override void OnResume ()
    {
        myVideoPlayer.Play();
    }
}

I tried this way but still video is running background it not pausing...
On Mar 24, 2017 10:00 PM, "Adam"<EMAIL_ADDRESS>wrote:

Another approach might be to keep a reference of your video player and you
can add logic to the lifecycle methods that Xamarin Forms calls when your
app goes to the background as shown below. I am hesitant to make the player
"smart" in handling this as it is not default/native behavior which Xamarin
Forms controls strive to achieve.
public class App : Application
{
protected override void OnSleep ()
{
myVideoPlayer.Pause();
}
protected override void OnResume ()
{
    myVideoPlayer.Play();
}

}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/adamfisher/Xamarin.Forms.VideoPlayer/issues/6#issuecomment-289073121,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGN_q9cNg_uYmteKgAxMYTe8zD9hOfLHks5ro--7gaJpZM4MZa5L
.

If that doesn't work out, You will need to bubble up the event of the native OnPause() method from the MainActivity of your Android project, pausing the video when that fires.
https://developer.xamarin.com/api/member/Android.App.Activity.OnPause

I tried this method, but it still doesn't achieve the video is running background and it is not pausing


I'nt to contribute in application.

Hello sir,
I made some changes in application, resolved tab swipe issue & provide the Android X support with react-native 0.60.3 , so please give me the permission to update the code.
Thanks
kukokp

Hi @kukokp !
Create a pull request and I will check it ;)
Thank you for your participation.

@stevenpersia
I tried I got permission related error.
[]($ git push origin master
remote: Permission to stevenpersia/tinder-react-native.git denied to kukokp.
fatal: unable to access 'https://github.com/stevenpersia/tinder-react-native.git/': The requested URL returned error: 403      )

That's weird. I don't need to give you permission. I think you did something wrong with PR process.
You can follow this documentation : https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github


Uttmm 23 31

Added BaseEntity, Resource , CategoryResource and ResourceProject entities(configuration and repository). Resource controller and Service.
Please make sure that i mad a correct inizialitaion of baseEntity fileds at ResourceService cs.

also you need to apply BaseEntityConfiguration to each inheritor of BaseEntity


Admin dashboard with actions

Pull Request
Description :speak_no_evil:
Added admin dashboard with ability to delete and approve photos have they've been reported.  Also tested out the dynamic modal... works.
Type of change :octopus:
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Configuration (non-breaking change which sets up application for environs)
[ ] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested? :microscope:
Please describe the tests that you ran to verify your changes.  Please also list any relevant details for your test configuration

[x] Manual Testing
[x] Visual Inspection
[ ] System Test
[ ] Unit Test
[ ] OTHER [ PLEASE REPLACE AS NEEDED]

Photos :see_no_evil:
Please provide photos of changes made as necessary
Built with love :heart:
By Nico:wolf: and Sy:turtle:

That's it Sy, you've done the damn thing.  You are now employee of the month


WIP: Support token based APNS

connect #239

In my opinion, I think pusher do not need a reference of conn.
You end up with this dance of function calling to remove a device:

handleFailedNotification
unregisterDevice
pusher.deleteDeviceToken (this is probably one step more than necessary)
pusher.conn.DeleteDevicesByToken

In my opinion, I think pusher do not need a reference of conn.

Should I make something like APNSFeedbackHandler to handle the feedback from APNS and remove the bad APNS tokens on that handler? Then the pusher will not have the reference to conn.

Updated.

I am going to merge this.

thanks ben


[Query] Fiat connect flow is not seen if we do not connect VPN to US server and also if we connect VPN to US server

Frequency : 100%
Repro on build version: Android Alfajores build V 1.40.1 ,iOS Alfajores build V 1.40.1
Repro on device version: Google Pixel 2XL(11.0) , OnePlus 7T (11.0), Google Pixel 4a(12.0), iPhone 12(14.7.1), iPhone 13mini (15.1.1)
Pre-condition:
1] User must have downloaded Alfajores build
2] User must have connected to US VPN
3] User must have completed onboarding process
4] User must have funds in the account balance
5] User must be on add and withdraw funds landing page
Repro Steps :
1] Tap on withdraw funds
2] Select Celo Dollar (cUSD) option
3] Tap on next button
4] Enter valid amount
5] Tap on next button
6] On Select Payment page bank account is not seen
Query : Fiat connect flow is not seen if we do not connect VPN to US server and also if we connect VPN to US server
Expected Behavior : Fiat connect should be visible with/ without US VPN server
Attachment : fiatconnect.mp4

@ValoraQA the fiat connect flow displaying is dependent on the use of an even number for the amount. Can you confirm this is working as expected this might be why you're not seeing the mock provider.
Will display the mock provider
Add & Withdraw > Withdraw Funds > cUSD > Amount - $2 > mock provider displayed
Will not display the mock provider
Add & Withdraw > Withdraw Funds > cUSD > Amount - $1 > mock provider not displayed

Hey @MuckT we have checked the above query using the steps you have mentioned above and we are able to see mock provider i.e Fiat connect flow hence we are closing the query
Device : iPhone 12(14.7.1), Google Pixel 2XL(11.0)


Does not handle like the native Laravel HTTP Client watcher

Hi,
First off, this is a life saver for working with third party libraries that interact with APIs. Thank you!
Just something I noticed, it puts query params in the payload section instead of in the URL.
Below is an example from Laravel's HTTP client wraper:
    Http::withQueryParameters(['foo' => 'bar'])->asForm()->post('http://example.com', [
        'alice' => 'bob',
    ]);

And this is that same request done with this library:
    $client = app(\GuzzleHttp\Client::class);

    $client->post('http://example.com', [
        'form_params'  => [
            'alice' => 'bob',
        ],
        'query' => [
            'foo' => 'bar',
        ],
    ]);

I also see the additions that were attempted to resolve some minor short comings of the native watcher but having separated "redact" configuration from the native Telescope ones is kind-of redundant and violates DRY and KISS. They are already defined within the Telescope service providers and should be used.
If I get any free time, I'll contribute back to this as this is a super super nice package to have.

Hi @ZacharyDuBois
Thank you for the compliment, much appreciated.
The reason behind putting the query params into the payload section is to have better readability, I have worked with some API that has a lot of query parameters and it is difficult and time-consuming for me (if not for others) to look at the URI string and parsing the query params on the fly while looking at it.
Can you please elaborate on the following or at least point me to where I am violating the DRY or KISS?
Thank you again.

I assume you are referring to OData :) That is what I am dealing with right now. Yeah it'd be nice to have both the native HTTP watcher and this library be able to have a separate tab or space for query params. Maybe an option to flip between the two (ie; native like experience vs customized experience).
As for the other misc behavior I've noticed, form requests do not break out correctly like the native watcher. Puts them all into one line, still URL encoded.
The KISS/DRY is you have separated the configs for filtering/redacting parameters. So if I set within the service provider the following:
        Telescope::hideRequestParameters([
            '_token',
            'signature',
            'access_token',
            'refresh_token',
        ]);

        Telescope::hideRequestHeaders([
            'cookie',
            'x-csrf-token',
            'x-xsrf-token',
            'access_token',
            'refresh_token',
        ]);

        Telescope::hideResponseParameters([
            'access_token',
            'refresh_token',
        ]);

But these appear to have no affect on anything happening with the saved telescope entry. Looking into the config, I need to respecify all these values in a separate area (which could lead to simple mistakes of updating in two places).


Play 2.4 example with PlaySlick

Hey. Thanks a million for the Play 2.4 example with Slick. Since PlaySlick is recommended by Play itself I want to use that instead.
I actually got it working with PlaySlick by modifying DatabaseModule to create a DatabaseConfig rather than a db directly. My DAO then has a dependency on a DatabaseConfig which it uses to pull the db that it will end up using. Among other things, this allows me to not marry myself to H2, instead importing the appropriate driver from config.
// DaoModule.scala
trait DaoModule {
  def dbConfig: DatabaseConfig[JdbcProfile]

  lazy val myDao = wire[MyDao]
}

// DatabaseModule.scala
trait DatabaseModule extends DBComponents with HikariCPComponents with SlickComponents {
  def dbApi: DBApi
  // NOTE: manual instantiation
  lazy val dbConfig = api.dbConfig[JdbcProfile](DbName("default"))
}

// MyDao.scala
trait MyDaoLike {
  def all: Future[Seq[MyModel]]
}

class MyDao(dbConfig: DatabaseConfig[JdbcProfile]) extends MyDaoLike {
  import dbConfig.driver.api._

  val db = dbConfig.db
  val myModels = TableQuery[MyModelTable]

  def all: Future[Seq[MyModel]] = db.run(myModels.result)
}

My questions are:

Does this seem sensical?
Is there a way to avoid the manual instantiation of the dbConfig as shown above, instead using MacWire?
Should the Play 2.4 example use PlaySlick instead, or perhaps have it be a slight variation on this for demonstration purposes? (I'd be happy to make the changes)

Sorry for the long post, and thanks!

This definitely makes sense. One thing to note when using Macwire, is that it's meant as a helper library to save time & code on "boring" instantiation code, not a total replacement for new object creation.
So here creating a DatabaseConfig instance "by hand" definitely makes sense - especially that it is a result of a method call, not creating a new object via new (or so it seems from your example).
If playslick is the recommended way to use slick in play (it seems so :) ), then for sure changing the example would be great. If you'd be willing to create a PR, that would be great!

Hah, yes good point. I guess I was looking for an alternative to the method call that used new and therefore would use Macwire, but no need to fix what's not broken.
Great, I'll have a stab at it over the holidays. One other doubt is whether I need def dbApi: DBApi anymore, but I'll have a look at that later.


fix panic that happens if no host is provided from cli, even if GooseAttack::set_host was used.

I tried to write a test, but I didn't find an easy way, and it's a small fix.

Thanks for the fix! I'm traveling this week, but will explore adding a test when I'm back online and then get it merged.
If you want to implement yourself, add a second test to the one_taskset integration test, and make two changes in the new test compared to the already existing test:

store a mutable configuration of common::build_configuration() and set configuration.host to ""
set the host "manually" when calling crate::GooseAttack()... when registering the task set (and set it to what's defined on common.rs


Bring mono changes upstream

This would reduce the cost of maintaining MonoBerry tremendously. A list of the current patches is here: https://github.com/roblillack/mono/compare/mono:mono-3.2.4...qnx-3.2.4

so is this really dead? :(

Realizing that it's been a year since I last worked on MonoBerry, you can can probably say so.
I'm fully stretched with so many other commitments, that I cannot invest any time here, right now. If you'd like to take over or help in any way: Go ahead. :+1:


ARROW-?????: [C++] Fix handling of Substrait output mapping

This PR includes a fix and a test case for projection with an output mapping for a "compact-join" relation, i.e. one whose output fields are a compact form of the Substrait standard join fields, as is the case for asof_join.

The PR's logic came out a bit weird in an effort to satisfy Substrait field indexing. In particular, the "output_mapping" : [6, 7, 8, 9] entry in the test case was generated using Ibis-Substrait, and corresponds to the appended fields, but this reveals a weird treatment of indices that appears to be originating in Substrait:

When no output mapping is used, the indices are not mapped and correspond to non-appended fields (numbered 0-5 in the test case).
When output mapping is used, the indices are mapped and correspond to appended fields (numbered 6-9 in the test case).

So, I'm not sure whether Ibis-Substrait correctly generates the output mapping, but if it does then the current PR's code should be justified.

cc @westonpace @icexelloss

Can we give a Jira number for this?

Also @rtpsw can you please give a more detailed description of what the issue is and how does this PR fix it?

Can we give a Jira for this?

The Arrow project has recently moved its issue handling to GitHub, so you probably mean a GitHub issue. However, this is a personal repo, and I'm not sure what the issue policy here is. @westonpace, should an issue be opened on this repo? on the main Arrow repo? or should an existing issue be reopened in this case?

Actually I think we can reuse ARROW-18417 for this because the first patch doesn't really fix the issue

I marked this PR as a draft since we're now only using it to demonstrate that Ibis-Substrait's handling of output mapping should be fixed.


Hailey/update register page

https://user-images.githubusercontent.com/75049184/229161382-dc3c16bd-83ac-4128-95ff-d386ad2c6eaf.mov

Just curious, have you tried to use the onChange event listener to update the props?

ust curious, have you tried to use the onCh

np, this PR was not ready ! I will ping you once I update and push


Fix an issue where floating point inaccuracy can cause panics.

Previously, floating point inaccuracy could cause an edge to be split even though it shouldn't be. This can cause wildly different slopes and many other problems. Now, we have a simple test for this and have added abs_diff_eq for pretty much all vector ops.
Fixes #4.

Welcome to Codecov :tada:
Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


Progress bar isn't working anymore

Error:
Uncaught TypeError: Assignment to constant variable.
at updateProgressBar (ui.js:47:23)

https://stackoverflow.com/questions/68659291/uncaught-typeerror-assignment-to-constant-variable


DOK: check fail indexes

The reason for the separate checks for rows and columns is that different errors are given in each case depending upon which index is at fault.  This is consistent with the Gonum APIs.  Is there a reason for merging the checks?

Yes, it is my fail. Thank you for clarification.
I fix PR.


Make column size configurable

Feature request: make column width configurable in user code. Right now there's no proper way, only hacks like described in #134.

I'm also waiting for this

Finally


Bug fix for call filtering.

Already reviewed as https://github.com/googlegenomics/codelabs/pull/61, just merging to the branch.

Coverage increased (+1.2%) to 62.281% when pulling cd62052c0bbf45681f08f66cef1144eb2252269c on deflaux:summarizeRefMatches into 773afbd3d54c69990b567c22d686907ac50a7e6c on googlegenomics:summarizeRefMatches.


Helping visitors navigate CF

Dear all
It has been pointed out by @DocOtak and others that it may not be clear enough where to start if you are new to CF and want to find something out or make a suggestion. If you go first to the CF website home page, I believe it should be obvious, and if it's not, we should make it so. On that page, or from that page, there is some background information, links to the documents which define the standard, resources for working with it, the CF GitHub organization, and the places to ask questions, make comments and propose changes. Rather than try to get all this clear and correct in more than one place, I propose we should try to direct all new arrivals to the home page. On the home page, new visitors will be particularly directed to Discussions if they want to ask a question.
In order to do that, I propose that

The README in each repo (website/governance, conventions, vocabularies, discuss etc.) should contain only minimal text of its own, just to say only what the repository is, and supplying links to the CF home page and other pages that are relevant to that repo. Avoiding redundancy will avoid the README getting out of date. The README is displayed when you visit the repo in GitHub e.g. https://github.com/cf-convention/cf-convention.github.io, at the bottom of the page, below the file listing, which as you see gives a link to the web site (as I advocate). So does the conventions repo https://github.com/cf-convention/cf-conventions, but it also contains other technical information that I don't think should be kept there. Instead, I would put it in other files that are linked to the website.

We should create a similarly minimal README file for the GitHub organization, which would be displayed on https://github.com/cf-convention.

In all repos that have no index file, create index.md in the branch which is exported to Pages, with a redirection to the CF home page. There are several ways to do that, see e.g. https://stackoverflow.com/questions/5411538/how-to-redirect-one-html-page-to-another-on-load. I don't if they all work on GitHub Pages sites, but I have tested the HTML <meta> method in https://github.com/cf-convention/cf-convention.github.io/blob/main/testredirect.md, which contains

<head>
<meta http-equiv="refresh" content="0; url=https://cfconventions.org/">
</head>

Since that repo is exported to Pages to provide the CF website, its HTML version is https://cfconventions.org/testredirect.html, which redirects you immediately to https://cfconventions.org. Even neater (I think) is to make index.md a symlink to README.md, and put the redirection in README.md. I've tested that works in my own GitHub. This would mean that if you open https://cfconventions.org/cf-conventions, for instance, you will get the CF home page. At present, in that case, you get an index which is specific to the branch exported to Pages.
Would those things be useful? What else could we do to point visitors in the right direction?
Jonathan

This all sounds grat, thanks!
One note:

make index.md a symlink to README.md

symlinks can be a bit wonky with git -- make sure to test carefully.
Alternatively, there must be a way to do a "Include" with md?
Sorry, I'm not that up to speed on md.


Perl syntax highlighting bug on regular expressions containing '#' inside a conditional

Issue Type: Bug
The Perl syntax highlighting breaks on regular expressions that implicitly use the default input variable ($_) and contain the '#' character.
The syntax highlighting breaks if the following conditions are met:

The regex implicitly uses the default $_ variable
The regex is NOT the first item in the conditional
The regex follows an 'and' or 'or' operator

The rest of the line following the # is highlighted as a comment.
if (/^#/ and $something) { moo(); } # Syntax highlighting is good
if ($something && /^#/)   { moo(); } # Syntax highlighting is good
if ($something and /^#/) { moo(); } # Syntax highlighting breaks!
VS Code version: Code 1.23.1 (d0182c3417d225529c6d5ad24b7572815d0de9ac, 2018-05-10T17:11:17.614Z)
OS version: Windows_NT x64 6.1.7601

Our perl grammar comes from this repo. Please file this issue upstream


Down vote on this library

i spent couple of hours on this library,
abusing extension functions made this library impenetrable for newcomers
no actual repeatable pattern between components
is making this harder than it should be, at least for me and what i expect this to be
this is not criticism, author spend astonishing time on developing this
but it's too complex and crowded for what it is offering

Hello :) which components you are talking about? I tried hard to make api extensions to be as much useful as possible, but in case you have some suggestions about how to improve it - you are welcome

I'm not an expert when it comes to writing clean code and I don't claim anything,
but here are some anti-patterns listed by other peoples:
https://github.com/ruXlab/absurd-kotlin
suppose i want to simply reply something in onCommand my IDE hangs for couple of seconds then it shows me a HUGE list of overloaded extension functions where with the same name and lot's of combination of parameters, i smell an oder on this
what is the point of extension functions when you can encapsulate code in your project?
maybe just maybe extend by delegate could be used to refactor this into separate interfaces or at least more direct imperative style like
command.matches{ it.content.startsWith("post_")}.process{ cmd ->

   val reply = cmd.makeReply() // makeMediaReply, makeDiceReply
   reply.inlineKeys = keys
   reply.text = regular("great!")

   val reply2 = cmd.chat.getMessageBeforeThisByOffset(3).awaitOrNull()?.makeReply()?.applly{//...}?.complete () //suspend

   reply.queue() //job
}

good naming conventions and being accessible in expected locations reduce need for documentation, after all we are writing code for humans not the compiler

best regards

Are you sure that the sample you have sent is simpler than that:
reply(
    commandMessage,
    text,
    replyMarkup
)

?

In most cases when there are a lot of different extensions with the same name they will have changed main parameter (like which content to use)

Are you sure that the sample you have sent is simpler than that:
reply(
    commandMessage,
    text,
    replyMarkup
)

?

at the end it's all about personal preferences,
but i want to emphasis on some points for whom might read this issue later,
when we use extension functions?

when we can't edit  already existing code (not the case here)

what it compiles to be?

a static function with the receiver as it's first parameter

so why we need them?

it's sugar to avoid remembering all of those static methods, with the help of receiver so extension methods semantically should have a strong correlation with their receiver

here to reply a message  which readily seems to relates to message is an extension on TelegramBot with lots of overloads which probably are scattered around the codebase, if this is not an anti pattern, i don't know what else is.
if i want to know what can i do with message type what i normally do is search for what methods are defined for this type and probably not else where ( which this type is taken as input) after all this is all extensions brought to the table for the price of slow builds and complex indexes.
https://user-images.githubusercontent.com/26030553/210086897-72501edd-dd56-42cb-9b66-5148a127b413.mp4

best regards

You always can try something like sendText/sendPhoto/etc.. All the API extensions have been designed as extensions for one reason - whrn you want to decrease size of binary/count of methods (android case, but it is not actual for the latest versions). So, it is supposed that in case you wish to send text, you will type bot.sendText(...) or bot.send(chatId, "text") and that is easy to read (you always may understand, what was meant) and predict what will be called :)
Anyway, I will be glad to any suggestions. I am trying hard to make this lib better, so, I want to see as much ways, as possible, and correctly choose the best solutions :)

Thank you for this issue. I think I got your point and will think about how may I fix the problems you highlighted here.
Happy new year :tada:


Using my pre-trained model

Quick question, once I pre-trained my own model with my data, how do I use the new model? What to do with the resulting checkpoints?
I followed the training guide on the repo and dont know how to get sentence embeddings from an example sentence with my resulting checkpoints.
Cant find the answer to it anywhere, but its probably a simple one. Very glad if anyone could help me out!
regards

Pre-Training basically means that you Get your BERT model to know a new language. this in itself isn't very useful unless you fine-tune your model to do some specific task.
for example: you can fine-tune your model to become a chat-bot where you provide it with some paragraphs that contains all the information that the bot should know, so that when someone asks the bot for some specific information it would be able to answer based on what it had read in the paragraphs that you provided it with.
personally, i highly recommend that you use one of the Pre-trained models provided with the code. because the pre-training process is a very lengthy and costy one. you can refer to the REDME.md file to know more about the Pre-trained models.
back to your question. i'd assume that you want to fine-tune the model to become a chat-bot.
you should try using the SQUAD 2.0 example provided in the repo code.
in-order to produce a fine tuned model, you would have to run run_squad.py like this
python run_squad.py \
  --vocab_file=$BERT_LARGE_DIR/vocab.txt \
  --bert_config_file=$BERT_LARGE_DIR/bert_config.json \
  --init_checkpoint=$BERT_LARGE_DIR/bert_model.ckpt \
  --do_train=True \
  --train_file=$SQUAD_DIR/train-v2.0.json \
  --do_predict=True \
  --predict_file=$SQUAD_DIR/dev-v2.0.json \
  --train_batch_size=24 \
  --learning_rate=3e-5 \
  --num_train_epochs=2.0 \
  --max_seq_length=384 \
  --doc_stride=128 \
  --output_dir=gs://some_bucket/squad_large/ \
  --use_tpu=True \
  --tpu_name=$TPU_NAME \
  --version_2_with_negative=True

doing this would produce a model.ckpt file in the output_dir
to test your fine-tuned model, you would have to create some json file that contains a paragraph and some questions that you want the bot to answer based on the provided paragraph.
let's name this json file input_file.json
it should look something like this:
{
    "version": "v2.0",
    "data": [
        {
            "title": "your_title",
            "paragraphs": [
                {
                    "qas": [
                        {
                            "question": "Who is current CEO?",
                            "id": "56ddde6b9a695914005b9628",
                            "is_impossible": ""
                        },
                        {
                            "question": "Who founded google?",
                            "id": "56ddde6b9a695914005b9629",
                            "is_impossible": ""
                        },
                        {
                            "question": "when did IPO take place?",
                            "id": "56ddde6b9a695914005b962a",
                            "is_impossible": ""
                        }
                    ],
                    "context": "Google was founded in 1998 by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University in California. Together they own about 14 percent of its shares and control 56 percent of the stockholder voting power through supervoting stock. They incorporated Google as a privately held company on September 4, 1998. An initial public offering (IPO) took place on August 19, 2004, and Google moved to its headquarters in Mountain View, California, nicknamed the Googleplex. In August 2015, Google announced plans to reorganize its various interests as a conglomerate called Alphabet Inc. Google is Alphabet's leading subsidiary and will continue to be the umbrella company for Alphabet's Internet interests. Sundar Pichai was appointed CEO of Google, replacing Larry Page who became the CEO of Alphabet."


How to know when a generator that ran from a user action has completed ?

If we dispatch an action that we are using to start a generator, how can we know when this generator has completed ?
In this example, how can we know when, for a given dispatch, the saga that has been triggered has completed ?
const action = { type: 'FOO_SAGA' }
store.dispatch( action )
function * rootSaga(){
  yield takeLatest( 'FOO_SAGA', doTheThing)
}

We have tried making a sagaMonitor object but are unable to gain access to the triggering action.    Help ?

Could u share ur relevant code on something like codesandbox.io ? Also whats ur use case? Why do u need to know if doTheThing has completed? Cant u yield put({ type: 'DO_THE_THING_COMPLETED' })?

This thread got a little bit stale, so I'm closing it. If you need to discuss this further, please just reply back here.


Fix tab and space mixing in the .spec file for consistent formatting

Setting the diff to ignore whitespace changes confirms that there are no changes except whitespace. Merging to develop..


samples: drivers: clock_control_litex: clean up DTS snippet in README

Clean up the DTS snippet in the README file to make it more readable.
https://builds.zephyrproject.io/zephyr/pr/73701/docs/samples/drivers/clock_control_litex/README.html#configuration
before was: https://docs.zephyrproject.org/latest/samples/drivers/clock_control_litex/README.html#configuration

assigning to self as this is purely a Sphinx cosmetic change


suggestion: sort results

It should be easy to do and I can see it being useful, to add sorting controls on the output pane.

Filters would be very useful as well.


Add -h and --help flags

It would be nice to have a way from the commandline to see what lastpass-ansible can do.
Suggestion:

Add -h and --help flags that shows the available flags and modes.
Make sure that just running with --help doesn't require the user be logged in to lastpass.

@mattiasb This is good stuff. I agree with your suggestions. Any chance you'd submit a patch ?

No sorry, kinda just passing by. Just quickly tested lastpass-ansible while trying to figure some other stuff out.

@mattiasb All right. Try it and let me know what you think. I'll leave this ticket opened and address it next time I do a sweep around my tickets.


Building libproj from source on Linux

The Good:

It'll build Proj4 from source allowing for newer Proj4 versions than apt-get

The Bad:

No minimum version for the libproj dependency (if you already have an old libproj version it won't build a newer one)
I've only done it for Linux
Slower load time and pre-compiling whinges.
There's got to be a way to get the library name and path from the dependency entry

The Other

had to rename the library name variable to not conflict with the dependency entry

Hmm, the Ubuntu Universe ppa has libproj 4.9.1 anyway.  There might have been an easier way...

Does it work on RedHat, CentOS or Fedora?

the big question is does it work on the Amazon linux ami. we need all these
to build and package in prod.
On Mon, 29 Feb 2016 5:33 pm Nigel Stewart<EMAIL_ADDRESS>wrote:

Does it work on RedHat, CentOS or Fedora?
—
Reply to this email directly or view it on GitHub
https://github.com/FugroRoames/Proj4.jl/pull/10#issuecomment-190075940.

It's more likely to work on Amazon Linux (or anywhere else) if it isn't relying on some specific version installed system-wide, right?

Lets find out!
On 29 February 2016 at 17:35, Kristian Weegink<EMAIL_ADDRESS>wrote:

the big question is does it work on the Amazon linux ami. we need all these
to build and package in prod.
On Mon, 29 Feb 2016 5:33 pm Nigel Stewart<EMAIL_ADDRESS>wrote:

Does it work on RedHat, CentOS or Fedora?
—
Reply to this email directly or view it on GitHub
<https://github.com/FugroRoames/Proj4.jl/pull/10#issuecomment-190075940
.

—
Reply to this email directly or view it on GitHub
https://github.com/FugroRoames/Proj4.jl/pull/10#issuecomment-190076824.

@awbsmith argh.  Apparently I managed to push this all to master, along with my cleanups when I meant to push my extra changes to a branch.
Never mind, I think it's all good...  let me know if things are not as they seem.


Helm 3 way merge is not working as expected

I have helm release running on my kubernetes cluster and I made some manual changes to the release deployment using k9s UI where I changed the memory request from 6gb to 4gb this change was applied successfully.
kubernetes Deployment before my change :
resources_minimal:
requests:
cpu: 250m
memory: 6Gi
kubernetes Deployment after my change :
resources_minimal:
requests:
cpu: 250m
memory: 4Gi
and now when I do "helm upgrade" my manual changes are not preserved again the memory request is set back to 6gb from 4gb.. why is this happening even when I use helm v3.11.3 where we have 3 way merge feature..
Any help is greatly appreciated.. Thanks in advance
Helm version : version.BuildInfo{Version:"v3.11.3", GitCommit:"323249351482b3bbfc9f5004f65d400aa70f9ae7", GitTreeState:"clean", GoVersion:"go1.20.3"}
Kubernetes Version : v1.23.12

I see form the source code ,it works as expected. please take a look at the function strategicpatch.CreateThreeWayMergePatch
https://github.com/helm/helm/blob/11150cdcc6bb69b62ec88faa523d9ff6727e8be7/pkg/kube/client.go#L653

To expand on @wujunwei 's answer. helm is a declarative tool, it converges the state of the cluster to the state you specify in your chart. The three-way merge allow helm to coexist with other tools which may also update assets it has created (ie. helm will utilize the three-way merge to update without a complete resource replacement).
But in your situation, you have manually updated a property which helm is then converging to the declared state in your chart.


i can't typing in this terminal :(

+1

I have the same problem on Ubuntu 16.04. The terminal window appears with a blinking cursor, but I'm not able to type anything.

+1

+1

+1

+1

Those using Linux systems should try my package out, terminal-fusion. Those on macOS / Windows NT should use the platformio-ide-terminal package instead. As always, please star the packages (and/or their GitHub repository) you like!


chore: do not show cmd output when getting tp version

Minor fix - now showing outup of telepresence --version to stdout
Related to #833

@aslakknutsen not sure if that can close #833 ;)


Configuration while using json-server as a module?

I need to do custom response for a couple of POST requests in order to fake/bypass an authentication process. As far as I know, I need to use json-server as a module rather than CLI program to do this.
My previous CLI implementation is along these lines
json-server --static ./www --watch db.js --routes routes.json
The README doesn't really cover how that would translate to usage in modules. I dig through the code and figured out jsonServer.defaults({static: './www'}) takes care of the static asset hosting, but I ran into problems with the actual data and routing.
jsonServer.router() only seems to support JSON file name, but I need to generate the data and use a JS module instead. Importing the db.js and passing it to the jsonServer.router() doesn't seem to load any of the data, despite working fine with the CLI version.
Also I can replace the --routes routes.json by passing similar data object to the jsonServer.rewriter(), but can't figure out how to use an external resource like the routes.json for it.
All help would be much appreciated. The README is a bit light on the module implementation.

Thank you for the feedback. I agree, it needs to be improved.
For the remaining parts, you can do it this way:
var generate = require('./db')
// generate should return an object
var router = jsonServer.router(generate())
// You can also do later
router.db.object = generate()

var routes = require('./routes.json')
server.use(jsonServer.rewriter(routes))

Let me know if it helps or there are missing things.

Exactly what I needed. Thank you.

Can you provide a full example for creating a express server using a JSON?

@warapitiya sure, here you have a full example: https://github.com/typicode/json-server#module
// index.js
var jsonServer = require('json-server')
var server = jsonServer.create()

// Using a db.json file
var router = jsonServer.router('db.json')

// Or using an object
var router = jsonServer.router({
  posts: [ /* ... */ ]
})

server.use(jsonServer.defaults())
server.use(router)
server.listen(3000)

$ node index.js

Let me know if it helped.

@warapitiya or anyone that reaches this issue now. This is a working example of importing routes.json + db.js files to your server.js file
const jsonServer = require('json-server')
const server = jsonServer.create()
const middlewares = jsonServer.defaults()

const generate = require('./db')
const routes = require('./routes.json')

const router = jsonServer.router(generate())

server.use(middlewares)

server.post('/my/custom/response', (req, res) => {
  res.json({
    results: {
      response: 'test'
    }
  })
})

server.use(jsonServer.rewriter(routes))
server.use(jsonServer.bodyParser)

server.use(router)
server.listen(3000, () => {
  console.log('JSON Server is running')
})

What about setting the host with json-server running as a module?  I set it this way using the CLI, --host mockapi.test.com.


Allow configuration of sales channel target and amount on contract level

Small draft spec to get discussion going:
Idea is to make the now '50% sales channel' variable, both the % as the wallet address that is linked to it.
Best to build the price up from zero, so that creation of the hourly price defined here is ex. (assume that current pricing model comes to 1 TFT/hr) :
0.35 TFT/hr => burned
0.05 TFT/hr => validator staking pool
0.10 TFT/hr => Threefold Foundation
0.50 TFT/hr => sales channel , but both amount and channel needs to be made variable and specified in the contract
ex.

define that a sales channel is happy with a smaller amount (down to zero, for Presearch this would be a solution),
the wallet address to be linked to be specified the contract (so that sales channels can fill this in with their own wallet address)

The idea behind that is to get more users choosing our grid to deploy solutions.
For example, to deploy a Presearch node (small capacity) it seems to be too expensive now (see comparaison with TFT Pricing calculator?)
That’s why we need to be more competitive (cheaper)
To reach it we could be more flexible to define the pricing distribution by getting the solution provider % part variable (from 0 to 50 % maybe - now its fixed to 50% for all solutions)
Doing it we could adapt more easily to each specific solution case and address the competitive issue

Reopened because not applied in #309

As per the spec:
Solution reward
A "solution" is something running on the grid, created by a community member. This can be brought forward to the council, who can vote on it to recognize it as a solution. On contract creation, a recognized solution can be referenced, in which case part of the payment goes toward the address coupled to the solution. On chain a solution looks as follows:

Description (should be some text, limited in length. Limit should be rather low, if a longer one is desired a link can be inserted. 160 characters should be enough imo).
Up to 5 payout addresses, each with a payout percentage. This is the percentage of the payout received by the associated address. The amount is deducted from the payout to the treasury and specified as percentage of the total contract cost. As such, the sum of these percentages can never exceed 50%. If this value is not 50%, the remainder is payed to the treasure. Example: 10% payout percentage to addr 1, 5% payout to addr 2. This means 15% goes to the 2 listed addresses combined and 35% goes to the treasury (instead of usual 50). Rest remains as is. If the cost would be 10TFT, 1TFT goes to the address1, 0.5TFT goes to address 2, 3.5TFT goes to the treasury, instead of the default 5TFT to the treasury
A unique code. This code is used to link a solution to the contract.

This means contracts need to carry an optional solution code. If the code is not specified (default), the 50% goes entirely to the treasury (as is always the case today).
Note that a solution can be deleted. In this case, existing contracts should fall back to the default behavior (i.e. if code not found -> default).
Voting
Voting weight
As mentioned anyone can vote. To calculate vote weight:

Get all linked farms to the account
Get all nodes per farm
Get CU and SU per node
Weight of a farm is 2 * (sum of CU of all nodes) + (sum of SU of all nodes)

Weight should be tracked per farm to keep it easy and traceable, so if an account has multiple farms the vote will be registered per farm.

Some extra explanation as it seems there is still confusion about this proposal :
It's all about a way more flexible pricing:
If a person wants to deploy a workload that is meant for a niche market, price he would like to ask is higher than a mass market or an open-source deployment. Even if the same hardware resources are used. Proposal is meant to deal with that.
That's why we need a totally flexible amount composition, ex.

Price product / code (for developper): X TFT/hr (can be zero, ex. would make Presearch cheap enough as they handed out the Docker for free, however it can also be a big amount for really specialized products
Price for the channel: Y TFT/hr
Price CPU, memory, storage, tokens to be burned: Z TFT/hr (this is where currently the prices are fixed, is 50% of what is the price right now, but this could also be 100% or only 10%)
(future) VAT = (X+Y+Z)* VAT-%, depending on jurisdiction of farmer and user

Verified in #354 the smartContractModule was reworked to add support for a new solution provider code (solutionProviderId) that is available in multiple extrinsics one of them is the createNodeContract and in this case the solutionProviderId is optional, so if it's used in a contract the configuration mentioned above will be used other than that the normal configuration will be used.