Automated IP Assignment

As a tenant, I can assign an IP automatically to services on CloudProvider (OpenStack) via cmd line so that services can easily be made external

Did you mean CloudProvider (OpenStack) integration?

Sure, updated

You are referring to providing a public IP address to the kubernetes services themselves?

Indeed, let me know if you have other ideas

Maybe, we should try to adopt OpenStack Magnum It's a going to become a native approach in OpenStack to provide containers to the cloud users. Here is a video from the latest summit: https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/magnum-containers-as-a-service-for-openstack

If the skydns add-on is enabled then we would have to give skydns a real network block that is addressable. Without skydns, then flannel (or the networking layer for docker used) would need a real network block that is addressable.
With services as defined by Kubernetes, they are good for creating a "virtual name" for a pod, but even using LoadBalancer mode for the service you still get random port assignment. As such I had to leverage the (https://github.com/GoogleCloudPlatform/kubernetes/tree/v1.0.1/contrib/for-demos/proxy-to-service) approach to get a more constant port, that I could then provide the Openstack LoadBalancer such that then I had a public ip address.

We have several engineers at Cisco developing magnum we should sync with, this was actually suggested to me Friday.
Solving this will likely guide us to the networking solution we would like to use. We did Calico for MI but lets be open to others if there is a good reason.

Sounds good!

With OpenStack we will use Neutron in any case. But we can choose plugins for Neutron such as OVS, Calico, OpenDaylight, etc.

This keeps coming back up. Are there any creative solutions that do not integrate with Openstack? @ldejager Suggested to provide a sort of dynamic (dns) registration service ourselves. For example, user X spins up our k8s solution, upon completion the terraform.py posts the information that would usually go into /etc/hosts to the registration service and get’s back and prints out a unique resolvable DNS name for the instance, I.e. k8s-master.X.cs.co that points to the IP address of the master which they can then reach.

I'm not sure but this sounds like a list of goals:
1. dns / service discovery, which may be satisfied via the k8s dns addon, and adding the dns resolver for the k8s cluster into the client side appl.
2. automatically exposing ports on an external host so there is a known endpoint address.
3. address resolution via network block mgmt
1) can be tested from the implementations available
2) exposing ports
Assuming that (3) address resolution via network block mgmt is working via either bridge[flat cider space] or a flannel implementation the problem is the same for exposing ports transparently.
Currently there's an effort to add transparent proxying: use iptables for proxying instead of userspace #3760, and there's a contribute option to enable a bare metal solution for load balancing w/o a provider specific solution, recently moved service load-balancer . This approach claims it will support cross cluster load balancing.
Let's track the iptables solution, and test the load balancing solution in our environment.
An alternative implementation could be to write our own monitor that injects port forwarding to services, effectively using the default load balancing a normal service provides but forwarding the port from the public machine to the internal k8s service's ip:port. Either etcd or kube event discovery could be monitored to manage the injection and creation of the port forwarding and the default round robin load balancing will apply from the k8s service.
3) A flat address block with flannel traffic is generally NAT but we can invert the bridge to flatten the visibility of the containers.
In this scenario the bridge can be a member of a CIDR block shared by all cluster members, for now let's say a /16 address space. This CIDR block is transparent without NAT to all other cluster members including all of the member's containers.
         bridge0
            |
          bond0
        /     \
      eth0     eth1

In cloudinit format, using <IP_ADDRESS>/16 with a gateway of <IP_ADDRESS> and this host assigned to <IP_ADDRESS>/24, and docker bridge configured with <IP_ADDRESS>/24 the configuration might look like the following:
#cloud-config

coreos:
  units:

    - name: 10.static.netdev
      command: start
      content: |
        [NetDev]
        Name=bridge0
        Kind=bridge

    - name: 20.static.network
      command: start
      content: |
        [Match]
        Name=bridge0

        [Network]
        Address=<IP_ADDRESS>/16
        DNS=...
        DNS=...
        Gateway=...
        IPForward=yes

    - name: 50.static.network
      command: start
      content: |
        [Match]
        Name=eth0

        [Network]
        Bridge=bridge0

    - name: 60.static.network
      command: start
      content: |
        [Match]
        Name=eth1

        [Network]
        Bond=bond0

Then configure docker to use this same subnet:
    - name: docker.service
      command: start
      enable: true
      content: |
        [Unit]
        After=docker.socket
        Description=Docker Application Container Engine
        Documentation=http://docs.docker.io

        [Service]
        Restart=always
        Environment="DOCKER_OPT_BIP=-b=bridge0"
        Environment="DOCKER_OPT_MTU="
        Environment="DOCKER_OPT_CIDR=--fixed-cidr=<IP_ADDRESS>/24"
        Environment="DOCKER_OPTS=--host=unix:///var/run/docker.sock"
        ExecStart=/bin/bash -c "/usr/lib/coreos/dockerd \
                 --daemon \
                 ${DOCKER_OPTS} \
                 ${DOCKER_OPT_BIP} \
                 ${DOCKER_OPT_CIDR} \
                 ${DOCKER_OPT_MTU} \
                 ${DOCKER_OPT_IPMASQ} \
                 "
        [Install]
        WantedBy=multi-user.target

A sample implementation without auto discovery forcing the service address to match the port .88:8888 using a trivial forwarder:
default       sfs-svc      k8s-app=sfs-svc                                                                  k8s-app=sfs-rc     <IP_ADDRESS>    8888/TCP
With:
kubectl scale --replicas=1 rc/sfs-rc

for (( i=0; i<4; i++ )); do printf "%3d %s\n" "${i}" "$(curl --silent <IP_ADDRESS>:8888|grep host)"; done
  0 host-coreos-alpha-00
  1 host-coreos-alpha-00
  2 host-coreos-alpha-00
  3 host-coreos-alpha-00

With:
kubectl scale --replicas=3  rc/sfs-rc

for (( i=0; i<3; i++ )); do printf "%3d %s\n" "${i}" "$(curl --silent <IP_ADDRESS>:8888|grep host)"; done
  0 host-coreos-alpha-03
  1 host-coreos-alpha-02
  2 host-coreos-alpha-01

And from a public ip with a running forwarder:
for (( i=0; i<3; i++ )); do printf "%3d %s\n" "${i}" "$(curl --silent <IP_ADDRESS>:8888|grep host)"; done
  0 host-coreos-alpha-03
  1 host-coreos-alpha-02
  2 host-coreos-alpha-01

The systemd service file
# /etc/systemd/system/forward-sfs.service
[Unit]
Description=%N port forward to k8s service on fixed flannel subnet address <IP_ADDRESS>:8888
After=flanneld.service
Requires=flanneld.service

[Service]
ExecStart=/var/lib/ecmi/forward <IP_ADDRESS>:8888 <IP_ADDRESS>:8888
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

guestbook front end
The prior example with sfs uses a fixed ip address and hardcoded ip from the service pool to map the public address [ which is assigned to the master node for this example ] to the backend guestbook.
The mapping of an ip:port pair is dynamically managed via environment variables.
This introduces k8s a creation sequence dependency. The environment variable for the GUESTBOOK_PORT_3000_TCP_ADDR  and GUESTBOOK_SERVICE_PORT aren't available until after the object is created.
kubectl create -f guestbook-fe.yaml
# guestbook-fe.yaml
apiVersion: v1
kind: ReplicationController
metadata:
  name: guestbook-fe
  labels:
    app: guestbook-fe
    version: v1
spec:
  replicas: 1
  selector:
    app: guestbook-fe
    version: v1
  template:
    metadata:
      labels:
        app: guestbook-fe
        version: v1
    spec:
      nodeSelector:
        role: master
      containers:
      - image: simple-forwarder:latest
        imagePullPolicy: IfNotPresent
        name: simple-forwarder
        ports:
        - containerPort: 3000
          hostPort: 3000
        resources: {}
        privileged: true
        args:
        - "/bin/bash"
        - "-c"
        - "/simple-forwarder <IP_ADDRESS>:3000 ${GUESTBOOK_PORT_3000_TCP_ADDR}:${GUESTBOOK_SERVICE_PORT}"

# local variables:
# comment-start: "# "
# mode: shell-script
# end:


NoMethodError: undefined method `[]' for nil

I found it here:
D: Octokit::Client.pull_request_comments("zerocracy/judges-action", 349) in 142ms
D: Octokit::Client.issue_comments("zerocracy/judges-action", 349) in 160ms
D: Octokit::Client.issue_comment_reactions("zerocracy/judges-action", 23693[304](https://github.com/zerocracy/judges-action/actions/runs/11005314143/job/30557758445#step:5:305)00) in 136ms
D: Octokit::Client.issue_comment_reactions("zerocracy/judges-action",<PHONE_NUMBER>) in 149ms
D: Octokit::Client.issue_comment_reactions("zerocracy/judges-action",<PHONE_NUMBER>) in 167ms
NoMethodError: undefined method `[]' for nil
	/action/judges/github-events/github-events.rb:97:in `comments_info'
	/action/judges/github-events/github-events.rb:191:in `fill_up_event'
	/action/judges/github-events/github-events.rb:320:in `block (4 levels) in <top (required)>'
	/usr/local/bundle/gems/factbase-0.4.0/lib/factbase/looged.rb:65:in `block in txn'
	/usr/local/bundle/gems/factbase-0.4.0/lib/factbase/rules.rb:73:in `block in txn'
	/usr/local/bundle/gems/factbase-0.4.0/lib/factbase.rb:168:in `txn'
	/usr/local/bundle/gems/factbase-0.4.0/lib/factbase/rules.rb:72:in `txn'
	/usr/local/bundle/gems/factbase-0.4.0/lib/factbase/pre.rb:62:in `txn'
	/usr/local/bundle/gems/factbase-0.4.0/lib/factbase/looged.rb:63:in `txn'
	/action/judges/github-events/github-events.rb:[311](https://github.com/zerocracy/judges-action/actions/runs/11005314143/job/30557758445#step:5:312):in `block (3 levels) in <top (required)>'
	/action/judges/github-events/github-events.rb:299:in `each'
	/action/judges/github-events/github-events.rb:299:in `each_with_index'
	/action/judges/github-events/github-events.rb:299:in `block (2 levels) in <top (required)>'

@yegor256 I can help

@Suban05 ok, it's yours

@rultor release, tag is 0.0.53

@rultor release, tag is 0.0.53

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.53

@yegor256 Done! FYI, the full log is here (took me 30min)


Typo in State.UNVERIFIED enum value

The State.UNVERIFIED enum value has a typo with a value of "unverfied" instead of "unverified". Check the source code.
export enum State {
  ERROR = 'error',
  VERIFIED = 'verified',
  VERIFYING = 'verifying',
-  UNVERIFIED = 'unverfied',
+  UNVERIFIED = 'unverified',
};

Fixed in 0.1.4; thanks for reporting.


 The link is: https://laracasts.com/series/learn-vue-2-step-by-step/episodes/23

I tried doing laravel new new-app from strach and after that I did:
npm install cross-env webpack webpack-cli --save-dev
then the error seems that there is no node_modules/laravel-mix/setup/webpack.config.js module.


IDVA3-1542 added tracking to psc list

added tracking for the radio options, continue and back button on psc list

CI: No security warnings found


fix: update to latest VPC module to fix terraform bug with ACLs

Description
Fixed a Terraform bug with certain configurations of ACL maps in the VPC module (https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone-vpc/pull/725).
Updating the VPC module version to the release containing the fix.
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
Updating to latest version of VPC module which fixes a Terraform bug in certain configurations of ACL maps.
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline


introduce network id transaction body element

Should we remove the networkId sent in the transaction init APDU?

@janmazak so two questions:

element 15 is not mandatory in the tx body, but we add it all the time. Should the txHashBuilder code handle it as optional like now, or should it assume it's always there?
what are these "By always including the network id, we can get rid of the warning and the related logic" parts that we can remove? We still want some checks on the network id, I don't really find much code to throw out.

I agree that it won't be much code, probably only a handful of lines around the warning we are removing (I've not checked in detail yet).

I think I modified all the relevant parts, but I might have missed some.

So far, this only includes changes in the hash builder? And signTx changes will be done within this PR?

As far as I see, there is no need for much modification in signTx. That one line I added in this PR so far is all we need, really. Since it's a mandatory element and not tied to a APDU.


:ls list is removed when trying to delete a buffer

FAQ

[X] I have checked the FAQ and it didn't resolve my problem.

Issues

[X] I have checked existing issues and there are no open or closed issues with the same problem.

Neovim Version
NVIM v0.6.0
Minimal reproducible config
-- Setup nvim-cmp.
local cmp = require'cmp'

local has_words_before = function()
  local line, col = unpack(vim.api.nvim_win_get_cursor(0))
  return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end

cmp.setup({
  snippet = {
      -- REQUIRED - you must specify a snippet engine.
      expand = function(args)
        vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
      end,
    },
  mapping = {
    ["<Tab>"] = cmp.mapping(function(fallback)
      if cmp.visible() then
        cmp.select_next_item()
      elseif vim.fn["vsnip#available"](1) == 1 then
        feedkey("<Plug>(vsnip-expand-or-jump)", "")
      elseif has_words_before() then
        cmp.complete()
      else
        fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
      end
    end, { "i", "s" }),

    ["<S-Tab>"] = cmp.mapping(function()
      if cmp.visible() then
        cmp.select_prev_item()
      elseif vim.fn["vsnip#jumpable"](-1) == 1 then
        feedkey("<Plug>(vsnip-jump-prev)", "")
      end
    end, { "i", "s" }),

    ['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
    ['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
    ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
    ['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
    ['<C-e>'] = cmp.mapping({
      i = cmp.mapping.abort(),
      c = cmp.mapping.close(),
    }),
    -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
    ['<CR>'] = cmp.mapping.confirm({ select = false }),
  },

  -- Use lsp, buffer, and path sources in completion.
  sources = cmp.config.sources({
    { name = 'nvim_lsp' },
    { name = 'vsnip' },
  }, {
    { name = 'buffer' },
  }, {
    { name = 'path' },
  })
})

-- Use buffer source for `/` search (won't work with `native_menu` enabled).
cmp.setup.cmdline('/', {
  sources = {
    { name = 'buffer' }
  }
})

-- Use cmdline & path source for ':' commands (won't work with `native_menu` enabled).
cmp.setup.cmdline(':', {
  sources = cmp.config.sources({
    { name = 'path' }
  }, {
    { name = 'cmdline' }
  })
})

Description
When I want to delete a group of buffers I usually type :ls to display the list of opened buffers and, with the list still visible, I type :bd followed by the list of buffer numbers I want to delete, separated by spaces, e.g. :bd 1 7 12. For this to work, it's important that the list of buffers displayed by the :ls command stays visible while I'm typing the :bd command and the number of the buffers I want to delete.
The native Vim/Neovim behavior keeps the list visible. However nvim-cmp changes this behavior and makes the list disappear when I try to type the :bd command. I think it's better to keep the list visible (while keeping nvim-cmp completion) given it is closest to the native Vim/Neovim behavior.
Steps to reproduce

Add the above configuration to Vim's configuration.
Comment or remove the cmp.setup.cmdline(':', {}) section in the configuration.
Restart Neovim.
Open at least 5 buffers.
Type :ls to show the list of opened buffers.
Type :bd followed by 3 buffer numbers.
Note that the list stays visible while performing step 6.
Uncomment or add the cmp.setup.cmdline(':', {}) section in the configuration.
Follow steps 2 to 6 again.
Note that the list disappears when performing step 6.

Expected behavior
The list displayed by :ls stays visible when typing the :bd command and the buffer numbers to delete.
Actual behavior
The list displayed by :ls disappears when typing the :bd command.
Additional context
Native Neovim behavior:

Nvim-cmp behavior:

Dou you know other cmdline completion plugin that supported it?
I think it's impossible.

I don't TBH. That's bad news. But at least I can continue using the plugin in the buffer and "/" commands.


NO-TICKET: update node readme

This removes the last instances of make build-system-contracts from our docs.

bors r+


ReferenceError: Can't find variable: mutableInstrumentations  before ios 12

Version
3.2.26
the same issue with early version of vue3

Steps to reproduce
just create a demo with vue-cli :vue3
What is expected?
index page loaded
What is actually happening?
black page show

Duplicate of #2457


build: android bundles pthread into libc

Add an additional flag to indicate that -lc is sufficient for pthread support and that -lpthread is not needed. This allows us to build with newer NDKs.

CC: @drodriguez @finagolfin @hyp

@swift-ci please test


Fixed code coverage report

Description
We need to re-enable cove coverage for this repo. At some point it got cancelled and stays like this for about 5-6 months.
Related Issues
Resolves #[Issue number to be closed when this PR is merged]

Check List

[ ] New functionality includes testing.
[ ] New functionality has been documented.
[ ] API changes companion pull request created.
[X] Commits are signed per the DCO using --signoff.
[ ] Public documentation issue/PR created.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@peterzhuamazon can you please help with this issue?
With these changes upload of codecov is failing with
[2024-11-06T01:12:03.492Z] ['error'] There was an error running the uploader: Error uploading to [https://codecov.io:](https://codecov.io/) Error: There was an error fetching the storage URL during POST: 429 - {"message":"Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 1303s."}

https://github.com/opensearch-project/neural-search/actions/runs/11694952553/job/32570344238?pr=975#step:6:37
I was checking your PR https://github.com/codecov/feedback/issues/525 and copied changes from https://github.com/opensearch-project/dashboards-flow-framework/pull/401 to neural-search repo.
Before this change codecov action was failing with different issue: {"message":"Repository not found"} https://github.com/opensearch-project/neural-search/actions/runs/11616264178/job/32348813055?pr=971

I added CODECOV_TOKEN to your secret now.

You need to merge this PR and check in another PR to see.

@martin-gaievski Can you confirm whether this is due to flakey tests?

@martin-gaievski Can you confirm whether this is due to flakey tests?

it's different problem, not related to test logic.

You need to merge this PR and check in another PR to see. There might be more tweaks tho.

thank you Peter, let us merge, we'll see how it goes

@peterzhuamazon it may be the case we need additional tweaking for neural search, could you please take a look?
While some of the code coverage report uploads were successful after this PR (for instance this run: https://github.com/opensearch-project/neural-search/actions/runs/11714216506/job/32683862354), for other PRs it's still failing with Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 331s. (https://github.com/opensearch-project/neural-search/actions/runs/11731912261/job/32684320733?pr=977#step:6:36).


Scores

How can I know if the scores are low, average or high? It doesn't appear in the big five. It appears only 90/120 for example.

Please it is very hurry for me this answer... because of end of degree work


Visual Studio 2015 is crashed on TypeScript repository

VS2015 is crashed when opening an empty index.ts file on TypeScript repository that has empty index.ts and tsconfig.json files.

I got this problem since yesterday. I feel this problem is related to windows update.
TypeScript Version:
1.8.30

@falsandtru do you have an activitylog %appdata%\Microsoft\VisualStudio\14.0\ActivityLog.xml

Unfortunately, that file don't have any records for the last few days.

Can you share a project... and which version of TypeScript is mentioned in Help - About?

can you check Windows Event Log eventvwr for any recent entries with source .NET runtime related to devenv?

I sent event logs to @paulvanbrenk and @vladima . Could you review that?

I already repaired VS2015 Community and reinstalled TypeScript extension, but I'm unable to recover this problem yet.

Just to clarify, you've added empty index.ts and tsconfig.json to the root of the repo as a sibling to src, scripts, tests?

Yes, this repro is simple.

Clone this TypeScript repository.
Create empty index.ts and tsconfig.json files to TypeScript repo's root directory.
Open index.ts file by double click.
VS is hanged, and will be crashed.

Can you repro?
Note: OS is Windows 7 x64

Note:

Errors will be displayed a few minutes later. Opend file index.ts is always unable to input any keys.
This problem seems only occured on TypeScript repo. Other projects work fine.

I think part of the problem is there are a ton of .ts. files in the typescript repo, which all will be made part of the editing context in VS... this looks like it creates an Out of Memory issue.
We're working on making it better, but going to close this as Duplicate since we've seen a ton of those.

In short, this crash is an accepted behavior? This usage was working correctly in a few days ago. This is the undesirable change. And please give me original issue if this is duplicate.

No, this is no expected, and we're working on mitigations, but considering the size of the TypeScript repo this is not unexpected, and currently not supported.
I would suggest opening the src/compiler folder and any test cases you're working on, and not the entire repo.

Okay, thanks for your kindness.


RATIS-1123. Support multiple DataStream clients.

See https://issues.apache.org/jira/browse/RATIS-1123

@szetszwo Thanks the patch. I have merged it.


Fix broken sorting when sorting with leading whitespace

StringUtil.splitByLines incorrectly splits strings with leading whitespace. For example,  a\n b\n c\n is split into [ a,b,c] instead of [ a, b, c].
This meant that if an IdeaVim user tried to sort lines with leading whitespace, the sorting was incorrect.
I changed the implementation from StringUtil.splitByLines to Guava's Splitter and added a unit test.

@selesse Thanks for your pull request!


Datastore example app

Needs a bit of cleanup, but this is a functional app with collaborative text editing, based on an earlier version from @vidartf

I'm experimenting with this, using a file about 590K containing a few things from Shakespeare. I started progressively deleting chunks of this file. After a few deletions (probably spanning 5k lines or so), I get an error like:

Mon Aug 05 2019 15:52:53 GMT-0700 (Pacific Daylight Time) Store ID 5 disconnected. Reason: 1009: Frame size of 32075084 bytes exceeds maximum accepted frame size

That's a frame size of 32MB. That seems a bit large considering my original file size was around 0.5MB. Is that expected?

Good question! I'm not really sure what the expected over head should be for the CRDT. But each character gets a unique ID, which appears to be a string of length 8. So that's almost an order of magnitude of overhead. Though your example has closer to two orders of magnitude for a UTF-8 encoded file. I do wonder if there is a bug in the websocket layer here -- sending patches should require less storage than the overall file.
We will definitely need to think about about some of these scalability issues:

How do we checkpoint things?
Should we not allow collaborative editing of large files?
What are the limits of the transport layer?

I played with it a bit more. I applied the following patch:
diff --git a/examples/example-datastore/src/server.ts b/examples/example-datastore/src/server.ts
index 557a83c6..96d92ec1 100644
--- a/examples/example-datastore/src/server.ts
+++ b/examples/example-datastore/src/server.ts
@@ -162,7 +162,7 @@ wsServer.on('request', request => {
       return;
     }
     let data = JSON.parse(message.utf8Data!) as WSAdapterMessages.IMessage;
-    console.debug(`Received message of type: ${data.msgType}`);
+    console.debug(`Received message of type: ${data.msgType}; ${Buffer.byteLength(message.utf8Data!).toLocaleString()} bytes`);
     let reply: WSAdapterMessages.IReplyMessage;
     switch (data.msgType) {
       case 'storeid-request':
@@ -202,8 +202,10 @@ wsServer.on('request', request => {
       default:
         return;
     }
-    console.debug(`Sending reply: ${reply.msgType}`);
-    connection.sendUTF(JSON.stringify(reply));
+
+    let replyString = JSON.stringify(reply);
+    console.debug(`Sending reply: ${reply.msgType}; ${Buffer.byteLength(replyString).toLocaleString()} bytes`);
+    connection.sendUTF(replyString);
   });

   // Handle a close event from a collaborator.

Then I put a 30k file in my paste buffer (good ol' shakespeare :). I pasted it into the document a number of times, and you can see the sizes of the patches kept increasing quite a bit each time I pasted the same 30k string. In the middle, I added one character (that's the several hundred byte message), then kept pasting. Then I deleted about half the file, then deleted the entire rest of the file. I've annotated the log below with // comments.
// paste 30k
Received message of type: transaction-broadcast; 1,268,005 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 2,109,170 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 3,267,595 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 4,376,264 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 5,125,654 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 6,509,601 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 7,615,614 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 186 bytes

// paste 30k
Received message of type: transaction-broadcast; 8,284,228 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 186 bytes

// insert one character
Received message of type: transaction-broadcast; 355 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 186 bytes

// paste 30k
Received message of type: transaction-broadcast; 4,041,473 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 5,407,557 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 186 bytes

// paste 30k
Received message of type: transaction-broadcast; 6,243,956 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 186 bytes

// paste 30k
Received message of type: transaction-broadcast; 7,560,826 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 8,001,110 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 8,843,058 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 8,893,291 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 8,960,872 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 10,262,576 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// add one character
Received message of type: transaction-broadcast; 644 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// paste 30k
Received message of type: transaction-broadcast; 11,588,272 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// Delete about half the file
Received message of type: transaction-broadcast; 71,278,174 bytes
Broadcasting transactions to: 1
Sending reply: transaction-ack; 190 bytes

// Delete the rest of the file
Received message of type: transaction-broadcast; 47,076,175 bytes

These message sizes are really concerning.
I took a file that was about 30k and put it in my paste buffer. I pasted it a few times into an empty document.

You're right, that does seem excessive (and inconsistent!). Looking into it...

If you're constantly pasting large text at the end of the file, I would expect the id overhead to continue to increase as you continue to create ids with larger dimensionality. Each dimension in an id has 48bits (which is a lot) but it's not densely populated. It's not sparsely populated either, so these patch sizes still look large to me.

@jasongrout When I perform a similar operation to you (pasting ~40k file repeatedly), I don't see nearly the increase in message size (though the overhead is still large, about 40x!)
Mon Aug 05 2019 17:19:22 GMT-0700 (Pacific Daylight Time) Connection accepted.
Received message of type: storeid-request; 89 bytes
Sending reply: storeid-reply; 148 bytes
Received message of type: history-request; 89 bytes
Sending reply: history-reply; 166 bytes
Received message of type: transaction-broadcast; 220 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,755,350 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,699,964 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,723,954 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,242 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,180 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,232 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,560,763 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 1,560,678 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 1,560,437 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 1,724,305 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,560,685 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 1,560,564 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 1,724,359 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,287 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,104 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,113 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,325 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,724,166 bytes
Sending reply: transaction-ack; 190 bytes

Outside of what may be causing this, there's certainly room for improvement wrt to id spans to handle large pastes, but we can address that later.

Also, I added a readme in this example directory:
# Phosphor Datastore example

## Build

Compile with `yarn run build:examples` in the Phosphor repo root directory.

## Run

Start the server with `node ./build/server.js`

Go to the address `http://localhost:8000` (or whatever port the server prints out that it is listening on).

If you're constantly pasting large text at the end of the file, I would expect the id overhead to continue to increase as you continue to create ids with larger dimensionality.

I was pasting text in random places inside the file.
Ian, can you try picking random places in the file to paste?

@ian-r-rose that's about more like what I would expect. You'll have at minimum 16bytes of overhead per character.

Ooh, @jasongrout I can reproduce what you see by pasting in the middle of the file, as you suggested:
^V^[[AReceived message of type: transaction-broadcast; 1,279 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,279 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 1,755,620 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 3,094,110 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 4,519,486 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 5,741,282 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 5,571,838 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 7,674,794 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 7,686,337 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 9,219,505 bytes
Sending reply: transaction-ack; 186 bytes
Received message of type: transaction-broadcast; 9,268,659 bytes
Sending reply: transaction-ack; 190 bytes
Received message of type: transaction-broadcast; 9,234,554 bytes
Sending reply: transaction-ack; 190 bytes

I quick sanity check would be to log the average length of the ids generated for the file. Each character in the id string consumes 16bits (on chrome at least).

Yes, by repeatedly pasting long blocks of text internally, it's not hard to generate some very long average character lengths (~50-100)

It sounds like we can do a lot to compress patch messages when you have ranges of text, which helps memory use in the browser as well as network bandwidth (I think at one point, the debugger stopped and said I was about to hit an out of memory error in applying a patch).
Newbie question: once the ids reach 50-100 bits, we have to deal with those large id sizes at least in that part of the file forever, right? No re-indexing?

It's not about compressing the patch messages, it's about compressing the ids into ranges. It's not exactly straightforward to implement, which is why I haven't done it yet. There's a deterministic algorithm to apply to ensure that the ranges can be split simultaneously by multiple users and still be merged out of order.

And you mean 50-100 characters, not bits, right? A single id is at minimum 16 bytes (128bits): https://github.com/phosphorjs/phosphor/blob/master/packages/datastore/src/utilities.ts#L54

@jasongrout  and I'm curious, have you run the same test on SMC?

I think the issue exposed here turned out to not really being related to the code of this PR. If so, let's leave this thread to discussing the code in the PR, and continue the load testing discussion here: https://github.com/phosphorjs/phosphor/issues/411

@jasongrout and I'm curious, have you run the same test on SMC?

Similar, but not exactly. It wasn't an issue, IIRC. I'll run a similar test and report back.
On Google Docs, again, similar but not exactly, but IIRC, the patches were around 700k no matter what for pastes.

Superseded by #425


Add bubble sort algorithm in R language

Sorry. I didn't check for other PRs before committing.
I reopened it because both #636 and #576 have code issues.

I think we should use this PR because the authors of #636 and #576 seem to have lost interest in their PRs.

Cool. Thanks @jiegillet !

Oh, and @graue70 for submitting! Good work!


YAML format in CLI

An example YAML is here https://github.com/theislab/sfaira/blob/dev/sfaira/data/dataloaders/loaders/d10_1038_s41586_020_2922_4/human_lung_2020_x_travaglini_001.yaml. Most of these can be filled as before. Download urls can be separated by data set but do not have to be (e.g. if it is not possible).
Note that

bio_sample_obs_key
individual_obs_key
tech_sample_obs_key
are new and can either be a column name, or a set of column names separated by "*", these are then assembled into unique identifiers internally.

bio_sample_obs_key
individual_obs_key
tech_sample_obs_key

But we shouldn't prompt for them since they are no mandatory, right?

No, they are not mandatory, are you only asking for mandatory fields though? I think the CLI could just go through all fields and one could just skip steps. Where is the list of mandatory fields?

Can also do that. Fine with me.


LiveAxis Axis.TIME format OSError when zooming/scrolling to epoch.

Hey!
I believe I have found a bug when using a LiveAxis with Axis.TIME ticks.
When zooming out, or scrolling through the plot, an OSError is raised. Maybe this is when the epoch time is reached?
...pglive\sources\live_axis.py", line 73, in <listcomp>
    tick_strings = [datetime.datetime.fromtimestamp(value).strftime("%H:%M:%S") for value in values]
OSError: [Errno 22] Invalid argument

If you run the example below, and drag the chart to the right, or zoom out, it reproduces the error.
from pglive.kwargs import Axis
from pglive.sources.live_plot_widget import LiveAxis, LivePlotWidget
from PyQt6.QtWidgets import QApplication

app = QApplication([])

pw = LivePlotWidget()
pw.show()
plt = pw.plotItem

# time axis
time_axis = LiveAxis("bottom", text="Datetime", **{Axis.TICK_FORMAT: Axis.TIME})
plt.setAxisItems({"bottom": time_axis})

app.exec()

Thanks for pointing this out. I released new version v0.7.5 with fix for this. Now, when the date is overflown tick is converted to +inf or -inf instead of raising an exception.

Just tested v0.7.5 and it works great - thank you!


Developer Guide

As a developer, I need to know how to install and use this utility.

I should be able to figure it out using a tool that is accepted and familiar: https://readthedocs.org/

Added a quickstart guide to suite this purpose.


Rename LICENSE to LICENSE.md

This a markdown file.

Thanks, but this is actually not a markdown document.


First tools to support

Which tools should we support firstly
@LeMinaw started a list here: https://github.com/Julien00859/pip-init/wiki/Opt-ins,-opt-outs-for-first-version
If anyone wants to add/change something to the list, it's here we discuss about it.
I think we should optout for unittest instead of pytest, because unittest is in the standard library.

I am +1 with unittest as opt-out for the same reason as Nolent : it is in the standard lib

Pretty good point, edited!
I however continue to think supporting pytest is hi-priority.

I completely agree with you, a lot of python users do prefer the pytest framework. By sticking with what's available in the standard lib or the "de-facto" standard libs (setuptools, distutils, wheel) we ensure we'll be compatible with most user environments. I can easily imagine one who doesn't know much about the python ecosystem would like to use our tool too, I'm about sure he will be happy to use pip-init "out of the box" with no other installation requirement.
Pytest is definitely going to the opt-ins! We need it.

Does black check if a code is valid ? If not i would not consider it as a linter and create a specific category for formatter.

Lgtm, edited

Should we bring sphinx as opt-in or opt-out?
Opt-out pros:

promotes usage of a documentation generation tool
it is a de-facto standard
Opt-in pros:
Sphinx is heavy
Small projects probably don't need it

Small projects probably don't need it

A project that is not worth a documentation is not worth using a namespace in pypi change my mind


Conflict with extensions param if collection name has a dot

if a dataset has a dot in its name then it conflicts with the extension param. We have some collections in SWOT with a version number including a dot.

wasn't able to reproduce this with 1.12.0:
podaac-data-downloader -c CYGNSS_L1_V2.1 -d CYGNSS_L1_V2.1 -sd 2023-04-01T00:00:00Z -ed 2023-04-20T00:00:00Z  --verbose -e .nc

if there is a specific collection, please let us know.


[Question] Hanging checks with "withChecks()"

Hi,
I'm using Checks API plugin along with Github Checks API. According to the document, I wrote this code in my pipeline script:
steps {
    withChecks('CI/Main/CheckStyle') {
        // do stuff
        exit 1 // if error occured, the check will be completed with error

        // But if everything is fine, no "COMPLETED" is published to the check, leave it forever hanging.
        // to solve this I'll have to manually do a publish
        echo 'hello'
        publishChecks(name: 'CI/Main/CheckStyle', conclusion: 'SUCCESS', summary: 'Lint passed')
    }
}

The check is successfully published, but, as described above, I'll have to manually complete a check  in my steps.
It seems the code didn't publish any checks in onSuccess on purpose.
I googled a lot for the usage of withChecks, no mention of this behavior. And examples on Github simply wrap normal steps without the manual complete.
I'm new to this, my usage could be wrong. Could someone help me with the correct usage of witchChecks? Appreciated!

Thanks @KalleOlaviNiemitalo ! That explains it.
Though this should be documented properly I think.

The pattern I'd always intended to use with this (but never got round to implementing) was to add an optional checks publisher to warnError. For e.g. running tests you can do:
withChecks('My Tests') {
    sh 'run_tests > results.xml'
    junit 'results.xml'
}

and that works fine; sometimes you have a one-shot command where you just want to report success or failure. It would be nice to extend warnError to be checks aware:
withChecks('One Shot') {
    warnError('One Shot') {
        sh 'one_shot'
    }
}

ie, have warnError report the appropriate success/failure message to the active checks context.
Alternatively get warnError to be fully responsible for doing the checks itself, so
warnError(message: 'One Shot', publishChecks: true) {
    sh 'one_shot'
}

Not sure why I never got round to doing it, but happy to take another look if people think it might be a useful pattern?

created https://github.com/jenkinsci/checks-api-plugin/issues/200 to track enhancement

Semi related pull request which helps in some cases: https://github.com/jenkinsci/checks-api-plugin/pull/254


TypeScript support

Simply put, it would be great if this library supported TypeScript typings since VueJs3 is a TypeScript first class citizen...

Typescript support is definitely in pipeline.  I will at least provide type definitions in the next releases.

As of today, is it possible to make it work with TS?

Typescript should work normally. We are talking about adding Type Definitions or even rewriting components with Typescript.

So, for Typescript user. A new major update will be released soon, written completely in Typescript and utilising many of Vue 3 new features.

I need for a real prod project to implement GoogleMap, I would love to be able to use your library, but i need TypeScript Support as my project is in Typescript. Could you please tell me when do you thing the release with TS support will be ?

Any update on typescript support? Actually I am using typescript in my project where I want to give type of mapRef
    <GMapMap
      v-if="isDataFetched"
      :center="{lat: 40, lng: -100}"
      :zoom="5"
      disable-default-u-i
      style="height: 90vh;"
      ref="mapRef"
      :options="{
        maxZoom: 22,
        restriction: {
          latLngBounds: {
            north: 85,
            south: -85,
            west: -180,
            east: 180
          },
          strictBounds: true
        },
      }"
    >
      <GMapMarker
        :key="index"
        v-for="(m, index) in markerPosition"
        :position="m.position"
        :clickable="true"
        icon="/images/movie_.png"
        @click="clickMarker(m.id)"
      />
    </GMapMap>

how to give type of mapRef while defining it
const mapRef = ref();


Custom pytest parameters are not recognized

Hi! When packaging this project for Arch Linux I ran pytest against a built (and installed to a temporary location) pydantic-core.
Unfortunately it seems, as if pytest does not recognize the custom parameters set in pyproject.toml and I have to manually sed them out of there and afterwards manually exclude the tests/benchmark/ dir:
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --benchmark-columns --benchmark-group-by group --benchmark-warmup on --benchmark-disable
  inifile: /build/python-pydantic-core/src/pydantic-core-2.3.0/pyproject.toml
  rootdir: /build/python-pydantic-core/src/pydantic-core-2.3.0

python-pydantic-core-1:2.3.0-1-x86_64-check.log
Selected Assignee: @dmontagu

Same as https://github.com/pydantic/pydantic/issues/6691 this is due to the build environment not providing pytest-benchmark. After adding it, the issues are gone!


authentication: Properly handle long domain names

Fixes #8488
This shrinks the textbox according to the domain name
in the realm creation form.

Closed in favor of #8592, which does this a nicer way.


Feature Suggestion: Inherit Home page permission when creating new page type

When creating the new page type, the default permission settings of page type is blank. Since it's blank, when you create the page with page type default permission, it would be kinda disaster.
Also, since it's completely blank, you have to enter all permission manually one by one. It's time consuming.
I had an occasion to create membership site with concrete5.

So I can suggest to add the process to fetch the current permission setting of top page (cid=1), and inherit that permission setting when you create new page type.
If people like it, I will start working on the PR (after I finished working on another 3 PRs)

I think that's reasonable.


Add create LFF window

To prevent typos, we need to create new /LFF call with help of new window that do the post in the /LFF with an button

added this feature in commit 4cfff6ac9868d509a63e292926a9b5038d3466b4


fix(vars): Add colors import to vars

Overview
Added the colors partial to _vars.scss. This prevents webpack errors when trying to import _modal.scss in a component that's trying to use the Modal component. The following is an error that was being returned:
ERROR in ./~/css-loader!./~/sass-loader!./~/carbon-components/scss/components/modal/_modal.scss
Module build failed:
$brand-01: $color__blue-51 !default;
          ^
      Undefined variable: "$color--blue-51".
      in /path/to/node_modules/carbon-components/scss/globals/scss/_vars.scss (line 12, column 12)
 @ ./~/carbon-components/scss/components/modal/_modal.scss 4:14-105

This PR fixes the dependency errors.

👍 ✅


what is the machine that you used

Can I know the ram and other configuration of the machine that you used

Sure! Here you go:

CPU: i7-11700K - ID-COOLING AURAFLOW X 240 Snow AIO
RAM: Corsair Vengeance RGB PRO SL 4x16GB DDR4 @ 3600 MHz
GPU: EVGA 3090Ti FTW3 - stock cooler
MOBO: Asus Prime Z590-P WiFi
Case: Lian Li PC-O11 white
Model was loaded from SATA SSD


Shell escape cmd echo

travis commands containing a semicolon were triggering failures. I have added shellescape on the echo commands to prevent this.

This plugin definitely needs this PR merged!

you should use JPI and be added as maintainer  :) I have solve most of the problems expresed in this PRs


error occurs when set gradient_checking = True during stage 2

File "./Moore-AnimateAnyone/src/models/mutual_self_attention.py", line 154, in
d.unsqueeze(1).repeat(1, video_length, 1, 1),
TypeError:     repeat(): argument 'repeats' must be tuple of ints, but found element of type NoneType at pos 2d.unsqueeze(1).repeat(1, video_length, 1, 1),
TypeError: repeat(): argument 'repeats' must be tuple of ints, but found element of type NoneType at pos 2
On stage 2, when I turned on the gradient_checking = True, it shows the above error.  Why is this?

Hi, did you ever solve this problem？


Changed the scheduled_messages_data to a dictionary (Hashtable)

Changed the scheduled_messages_data to a dictionary (Hashtable)
The fixes were made in web/scheduled_messages.js
Fixes #25557

Fixes:

Screenshots and screen captures:

Self-review checklist

[X] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

@aannalarsson you seem to have accidentally committed files that were generated by previous versions of; you should remove them from your PR. Check out our GitHub guide if you need help doing that.


website is showing the contents of readme file after publishing

Thank you for this template. I forked this repo and published it using Github pages. However, I am only seeing the contents of the readme file and not the actual blog site. What am I doing wrong? I plan to edit all the relevant files with my info after fixing this issue.
Any help regarding this matter will be helpful.

 You'll need a proper Hugo site first and then you can plugin any theme as a submodule or clone it.
Hope that helps.

Thank you for your reply. I will set up a Hugo site first before attempting to use a theme. Apologies if it was very basic. I am a newbie into this space so I am learning as I go along.

@rahulgadre Great! I'll go ahead and close the issue for the time being. Please reopen it if you have any more questions or if you encounter an issue related to the theme.


Osiris wont inject after new update

Title, i tried compiling and recompiling both inflame and osiris itself, wont inject

mine injects as always


Status is returning forbidden

When calling status on a vehicle, a 403/forbidden response is being returned from Ford.
A simple example:
import connectedcar from 'connected-car';

const client = connectedcar.AuthClient('9fb503e0-715b-47e8-adfd-ad4b7770f73b');

const token = await client.getAccessTokenFromCredentials({
  username: '*****',
  password: '****',
});

const refreshToken = await client.getAccessTokenFromRefreshToken(token.getRefreshToken());
const user = connectedcar.User(token.getValue());
const vehicles = await user.vehicles();

const vehicleList = []; // Array of vehicles

for (let userVehicle of vehicles) // For each user vehicle
  vehicleList.push(userVehicle['VIN']);

let currentVehicle = connectedcar.Vehicle(vehicleList[0], token.getValue());

console.log(currentVehicle);
const status = await currentVehicle.status();
console.log(status);

Ford is using a new API and is blocking requests to the old API this project is using. Fortunately, it can be fixed.

how can it be fixed @brandon-grant

is there any js package that implements the new API?

Hi all,
Working on getting this updated.

In looking around a bit, it appears that Ford is changing their API in favor of their new publicly facing api that will be released at some point in the future. I'll see what I can do to get this library patched up in the meantime.

In looking around a bit, it appears that Ford is changing their FordPass application in favor of their new publicly facing api that will be released at some point in the future. I'll see what I can do to get this library patched up in the meantime.

I've attached a down and dirty solution I put together for myself.
OAuth2Client.txt

In looking around a bit, it appears that Ford is changing their FordPass application in favor of their new publicly facing api that will be released at some point in the future. I'll see what I can do to get this library patched up in the meantime.

I've attached a down and dirty solution I put together for myself. OAuth2Client.txt

Thanks Brandon. That should help speed things up a bit.

@brandon-grant thank you very much!!
Can you share a piece of (sample) code on to start the car, for example, with your OauthClient code that you shared?

any update on this one? been following this for a while...

i just received an email from ford developers, they upgraded the API to V3, does that help the case here?


[New Feature] Remove DependencyInfoBlock for F-Droid

Describe the new feature you'd like
We find that there is a DependencyInfoBlock in your APK.
It's a Signing block added by AGP and encrypted with the Google public key so it can't be read by anyone else except Google. You can read more about it here and here.
While this was added a while ago, we were only enforcing it for new apps, and recently we started scanning updates too.
Could you please disable it with the following code?
android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

Thanks!
Describe the reason why you want to add the feature
I need this feature because ...
Describe how to implement the feature if you can
Use the interface https://docs.example.com ...
Additional context
Add any other context or screenshots about the feature request here.

Done!

Thanks!


very slow for china user access

Category

What is the current behavior?

What is the desired behavior?

Additional information

It's slow for U.S user as well. This product sucks!

already migration to another platform


Add sublime text plugin

Now that import-js has extracted the core into a standalone gem, it can be integrated more easily with additional editors. We already have emacs support (#61) and we should add sublime text support.

I think that @janpaul123 expressed interest in putting this together.


Address tokens request being retried

Type of change

[x] 🐛 Bug fix
[ ] 🌟 New feature
[ ] 🔨 Breaking change
[ ] 📖 Refactoring / dependency upgrade / documentation
[ ] other:

Packages affected

[x] @clerk/clerk-js
[ ] @clerk/clerk-react
[ ] @clerk/nextjs
[ ] @clerk/remix
[ ] @clerk/types
[ ] @clerk/themes
[ ] @clerk/localizations
[ ] @clerk/clerk-expo
[ ] @clerk/backend
[ ] @clerk/clerk-sdk-node
[x] @clerk/shared
[ ] @clerk/fastify
[ ] @clerk/chrome-extension
[ ] gatsby-plugin-clerk
[ ] build/tooling/chore

Description

[x] npm test runs as expected.
[x] npm run build runs as expected.

Only retry getToken requests with an exponential backoff if the status is not 4XX. If it is, remove the session so the automatic polling stops.

This PR has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.


Start purging linked modules from the current project directory

Right now only the modules within a linked module are purged:

/workspace/project1
/workspace/project2

cd project1 && zelda will only purge modules inside project2, this means that project1 will still have an installed project2 reference
This PR should fix that by starting the purge from the current project (project1)

3.2.0


refactor: Replace lazy-static with LazyLock

OnceLock has been stabilized in rust 1.70, but LazyLock hasn't yet.

@bjorn3 sorry let me open another PR for OneLock

I think this is a great idea. I always love getting rid of dependencies.
But this is only stabilized in 1.70, right? We're having issues building Wasmtime with 1.70 for two of our target platforms (risc-v and s390). As far as I understand, the issues we've run into will be fixed by 1.71, so I don't think we're going to try to work around the 1.70 issues.
As a result, I would like to wait on merging this until 1.71 is out. But at that point I am interested in merging this! Please remind me to look at this again once that release is out.

@jameysharp this is great! Thanks!

@howjmay if you're up for it Rust 1.71.0 is now released and we've updated CI to use it, so if you're still up for rebasing this now'd be a prime time to do so

Hi @alexcrichton ! I have rebased my PR to the lasted commit on main, but it failed for unknown reason

It looks like you've accidentally changed a submodule here, and additionally this is using #![feature(lazy_cell)] which requires nightly but Wasmtime builds with stable so I don't think that will work as well unfortunately.

Wasmtime's lazy-static dependency has since been removed in #4368 and #4383.


[Docs] Update theming

[Docs] Update theming
Zak's changes for theme updates

@zakariassoul I moved the theme changes and most of the changes from #124.


Helm dependency update ignores build number

Output of helm version:
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
also tested with client of latest stable helm (2.15.1) - same problem
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:18:23Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.8", GitCommit:"a89f8c11a5f4f132503edbc4918c98518fd504e3", GitTreeState:"clean", BuildDate:"2019-04-23T04:41:47Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
AWS KOPS
Problem:
helm dependency update ignores build number in version
Not sure if it's artifactory problem or helm issue, sorry but I don't have other repo to check.
example:
requirement.yaml:
dependencies:

name: my-app
version: "1.0.0+2"
repository: "alias:my-artifactory-helm-repo"

after helm dep up latest build number is fetched:
ls charts/:
my-app-1.0.0+4.tgz
helm fetch my-artifactory-helm-repo/my-app --version 1.0.0+2 works as expected (taking correct version)

@mattfarina according to client requests, https://github.com/helm/helm/pull/6821 is a port of a Helm 2 feature where if an exact version is produced, helm should fetch that exact version.
I get that build metadata should be ignored during a semver comparison, however should it always be ignored if the user requests a specific version? i.e. there's no semver comparison involved, just a lookup.

See also #6820.

this should be fixed in #6821 which will be available in the next release candidate. Closing as a duplicate of #6820.


Vertical slider with lazy loading not able to slide

This is a (multiple allowed):

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

Swiper Version: 6.3.3#e0b2e27621c07e789bfa91569b5676e896d18001.

I have a vertical slider with these settings:
{
        Swiper,
        ref: thumbnailSwiperRef,
        modules: [Lazy],
        preloadImages: false,
        lazy: {
            loadPrevNext: true,
            loadPrevNextAmount: 4
        },
        spaceBetween: 20,
        slidesPerView: 'auto',
        direction: 'vertical',
        touchRatio: 0.2,
        loadOnTransitionStart: true,
        updateOnWindowResize: false
    }

The .slideNext() works fine without lazy loading.
What I can gather is that the maxTranslate set is not updating when I try to get the next image, which loads in via lazy loading.
Rather it remains the height/size of the visible elements.

Here is a codepen example breaking without lazy loading:
https://codepen.io/JordanDDisch/pen/mdEeojm

@JordanDDisch  Could you provide the test code with bugs?

@JordanDDisch you forgot to wrap images with .swiper-slide

should be

see: https://codepen.io/vltansky/pen/VwjqKJP

@vltansky thanks for getting back to me and pointing that out. The example I gave you was not complete. Here is a more complete example using the react version, with lazy loading enabled. The problem this time is that lazy loading is not working at all. Images are being fetched on page load. I'm not sure if this is because of the sandbox env or my config, but there was very little documentation on lazy loading for the react version. If my config is incorrect then the documentation is not up to date for the react version.
CC: @ygj6

I tried to play with it, that's what I get:
https://codesandbox.io/s/frosty-frost-45uoh?file=/src/App.js
Is it works as you wanted @JordanDDisch?

@JordanDDisch any news?

@JordanDDisch any news?

try to update swiper with yourSwiper.update() after loading

@vltansky yea, looks like @ygj6 example works fro what I was trying to do, thanks!


'Calculated values' - Data display is different in remote and standalone modes

Affected versions: Remote, Standalone
Steps to reproduce:

Launch Ketcher (Remote).
Draw a cycle, e.g. cyclopropane
Draw a reaction arrow
Add an element, e.g. carbon (will be added as CH4)
Add an element, e.g. sulfur (draw it as H2S2)
Select 'CH4' with 'Lasso selection'
Click 'Calculated Values'
Repeat steps 1-7 in Standalone mode

Expected result: Data is displayed the same way in two modes
Actual result: Remote - All the calculated values ('Chemical Formula', 'Molecular Weight', 'Exact Mass', 'Elemental Analysis') are displayed without brackets

Standalone - 'Molecular Weight', 'Exact Mass', 'Elemental Analysis' in 'Calculated values' are displayed with brackets

Related issue - https://github.com/epam/Indigo/issues/370

With latest commit new output formatting implemented which differs from remote version, but approved by @AlexanderSavelyev

Fixed in release/2.2

release/2.2 Issue is closed as fixed


Wildcard in host

Hi all!
My issue is related on https://github.com/kubernetes-sigs/aws-alb-ingress-controller/issues/960
I've tried to use wildcard for setting the host:
  - host: 'api-*.*'
    http:
      paths:
      - path: /*
        backend:
          serviceName: api
          servicePort: 443

That regexp works in AWS (using aws console) but when I make
kubectl apply -f ...

I get the issue
The Ingress "c" is invalid: spec.rules[1].host: Invalid value: "api-*.*": a wildcard DNS-1123 subdomain must start with '*.', followed by a valid DNS subdomain, which must consist of lower case alphanumeric characters, '-' or '.' and end with an alphanumeric character (e.g. '*.example.com', regex used for validation is '\*\.[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')

Interested in this as well.
Potentially allowing to specify listener rules in annotations instead of host. We're in the process of migrating legacy workloads to EKS, and use weighted r53 DNS records to achieve no downtime traffic shifting of public facing endpoints.
The issue is that having component*.example.com complains in k8s about the DNS name not conforming to RFC spec.
As the AWS api & ALB's support this format for listener rules for host header checks, there should really be an option to define listener rules via annotations to avoid clashing with Kubernetes APIs.
As it stands, we've to either allow too broad a hostname range, or manage DNS manually which is far from ideal.
As AWS advertise alb-ingress-controller as their method of achieving ALB provisioning from k8s, their feedback / contribution would be appreciated.

/remove-lifecycle rotten

This would greatly simplify configurations...

It's forbidden by Ingress's spec. With https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/1088, we are supporting this (Note: it's not standard Ingress usage, but there is no standard Ingress nowadays..... :D)

variant A: use a real service. (conditions is matched against service name)
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: "2048-ingress"
  namespace: "2048-game"
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/conditions.service-2048: >
      [{"Field":"host-header","HostHeaderConfig":{"Values":["api-*.*"]}}]
  labels:
    app: 2048-ingress
spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: "service-2048"
              servicePort: 80

variant B: use a fake Service.(conditions is matched against service name), so the only the first path got the extra host condition(while both of them are routed to same target group for service-2048). Disclaimer: i really don't like this hack myself, but it works.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: "2048-ingress"
  namespace: "2048-game"
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/conditions.fake-service-2048: >
      [{"Field":"host-header","HostHeaderConfig":{"Values":["api-*.*"]}}]
    alb.ingress.kubernetes.io/actions.fake-service-2048: >
      {"Type":"forward","ForwardConfig":{"TargetGroups":[{"ServiceName":"service-2048","ServicePort":"80"}]}}
  labels:
    app: 2048-ingress
spec:
  rules:
    - http:
        paths:
          - path: /path1
            backend:
              serviceName: "fake-service-2048"
              servicePort: use-annotation
          - path: /path2
            backend:
              serviceName: service-2048
              servicePort: 80


Changing font type in note

I'd like to be able to change the font type in the note so that if saving a note with code, I can distinguish the code in a fixed font, while writing instructions in a Sans one.

nvALT focuses on plain text only.

Thanks for the reply.
I'll guess I'll just stick to using italics then!


Workaround for torch.sort()?

I tried to run following test script to make predictions with a opencl-trained model:
mlp:cl()
local outputs = mlp:forward(inputs[1]):exp()
local probs, idx = torch.sort( outputs, true )

but got this error message torch.ClTensor does not implement the torch.sort(), current workaround is to move the model back to CPU using mlp:float() but it quickly become rather tedious, just wondering if there's better way to do it? Maybe a pure OpenCL way of sorting?

Hey! So, looking at the cuda version, there are two implementations.  One using thrust, one without:
  if (sliceSize <= 2048) {
    // Fill `indices` (the values) with the
    // slice-relative index.
    THCudaTensor_fillSliceWithIndex(state, indices, dim);

    // We sort k/v pairs in-place; copy unsorted input to output
    THCudaTensor_copy(state, sorted, input);

    // Sort using our in-place k/v kernel that supports arbitrary
    // layout
    THCudaTensor_sortKeyValueInplace(state, sorted, indices, dim, order);
  } else {
    // Otherwise, fall back upon Thrust, which handles all other cases
    // (potentially slowly, with extra copies/memory allocations)
    sortViaThrust(state, sorted, indices, input, dim, (bool) order);
  }

https://github.com/torch/cutorch/blob/master/lib/THC/THCTensorSort.cu#L447-L462
thrust isn't available on opencl, so we'd need to implement it ourselves somehow, I mean the sort, but it looks like there is already a cuda kernel available for slices up to size 2048, that would plausibly be straigthforward to port to opencl.  To what extent would slice sizes up to 2048 meet your requirements?

Haha, fortunately this is a sentiment analysis task which only has 2 final classes (happy or sad, 1 or 2), and each batch has 10 sentences resulting in [torch.Tensor 10x2] (does this mean sorting 20 elements?), if so, 2048 should be more than enough 😆

I implemented sort, but for now it only works if you sort along the first dimension :-P  I was hoping that would be enough, but re-reading your comment, seems you probably need it to sort along the second dimension?

(actually, I'm not even sure it works for outermost dim.  i think I need to do a bit more testing/debugging)

Here's how the output looks like, then I sort it to get the final classification results by reading idx[i][1].
local outputs = mlp:forward(inputs[1]):exp()
 0.9999  0.0001
 0.0137  0.9862
 0.0002  0.9998
 0.9999  0.0001
 0.0000  1.0000
 0.0059  0.9941
 1.0000  0.0000
 0.9984  0.0015
 0.9949  0.0051
 0.0019  0.9980
[torch.FloatTensor of size 10x2]

-- then sort the outputs to get final result by reading idx
local p, idx = torch.sort( outputs, true )

Two questions:

Is there other way to get the final classification results other than exp() then sort()?

Instead of moving the whole model back to CPU, could I just do outputs:float() to move the it (which is a lot smaller) to CPU then sort it?

Instead of moving the whole model back to CPU, could I just do outputs:float() to move the it (which is a lot smaller) to CPU then sort it?

Yes :-)

Is there other way to get the final classification results other than exp() then sort()

If you want top-5, probably not.  If you want top-1, then you can use max

(by the way, not sure that you need to do :exp()?  since, exp is monotonic, so if exp(a) > exp(b), then a > b ?

Haha, actually I'm curious about exp too, was just following coursera's code sample here.
Ps. I thought the purpose of exp is to make something negative become positive?

Ps. I thought the purpose of exp is to make something negative become positive?

It has that effect, though I'm not sure that is the purpose.  max works on negative numbers too: it returns the most positive term.  So max of -2 and -1, is -1.  max of -2, 1, and -1, is 1

Yep that is reasonable doubt, it's just I saw a couple of similar examples doing it that way (a combination of exp with sort so I thought that was the formal way of doing it, would really love to know if there's any other solution? 😁

I dunno.  I always use max :-D  eg, see https://github.com/hughperkins/pytorch/blob/master/examples/luamodel/torch_model.lua#L135

hey that's nice, just verified max is indeed faster and easier than exp and sort, let alone everything could be done on GPU, thanks for pointing out the right direction!
Btw, max also rendered this issue irrelevant, please feel free to close it if you don't have the bandwidth to fix sort in opencl.

Ok great!

Note: sort is working now :-)


Page rendering is very slow

I have updated the version 2012 to 2017 even though its very slow.

Do you have any sample project to make use of pdf-annotate.js, The example they gave here works, but I couldn't able to try it out as a new project. Thanks in advance.

I changed documentId but I could not able to start a completely new project with pdf-annotate.js. Like how we should make use of it, as a npm package or as an external js file.

What error you are getting?

// import __pdfjs from 'pdfjs-dist/build/pdf';
// import PDFJSAnnotate from 'pdf-annotate';
var PDFJSAnnotate = require('pdf-annotate');

// console.log(PDFJSAnnotate.default.UI, 'pdf annotate js');
var UI = PDFJSAnnotate.default.UI;
const VIEWER = document.getElementById('viewer');
const RENDER_OPTIONS = {
    documentId: 'Deep Learning_ A Practitioner’s Approach.pdf',
    pdfDocument: null,
    scale: 1,
    rotate: 0
  };

  PDFJS.workerSrc = 'pdf.worker.js';
  let MyStoreAdapter = PDFJSAnnotate.StoreAdapter;
  PDFJSAnnotate.setStoreAdapter(MyStoreAdapter);
//   PDFJSAnnotate.setStoreAdapter(new PDFJSAnnotate.LocalStoreAdapter());

PDFJSAnnotate.default.getAnnotations();
PDFJS.getDocument(RENDER_OPTIONS.documentId).then((pdf) => {
    RENDER_OPTIONS.pdfDocument = pdf;

    let viewer = document.getElementById('viewer');
    viewer.innerHTML = '';
    NUM_PAGES = pdf.pdfInfo.numPages;
    for (let i=0; i<NUM_PAGES; i++) {
      let page = UI.createPage(i+1);
      viewer.appendChild(page);
    }

    PDFJSAnnotate.default.getAnnotations();

    UI.renderPage(1, RENDER_OPTIONS).then(([pdfPage, annotations]) => {
      let viewport = pdfPage.getViewport(RENDER_OPTIONS.scale, RENDER_OPTIONS.rotate);
      PAGE_HEIGHT = viewport.height;
    });
  });

This is what my main.js file looks like. This file will be bundled with webpack. I am using babel-loader. Even then it doesn't allows me to use import. And now the error says Uncaught TypeError: PDFJSAnnotate.setStoreAdapter is not a function.

Any idea or some example of how we can use pdf-annotate js?

Try to clone the package and use.

Yeah, I tried that and the example worked but with that, I don't know how to use it for production. So I moved on to create a new project and make use of pdf-annotate.js.

var RENDER_OPTIONS = {
    documentId: documentId,
    pdfDocument: null,
		//scale: parseFloat(localStorage.getItem(documentId + '/scale'), 10) || 1.33,
		scale: strUser,
		rotate: parseInt(localStorage.getItem(documentId + '/rotate'), 10) || 0

};
_2.default.setStoreAdapter(new _2.default.LocalStoreAdapter());
PDFJS.workerSrc = '/shared/pdf.worker.js';

give your path correctly for PDFJS.workerSrc and am getting documentId using js, In documentId you have to mention the exact path

It worked now, I changed PDFJSAnnotate.setStoreAdapter(new PDFJSAnnotate.LocalStoreAdapter()) to this PDFJSAnnotate.default.setStoreAdapter(new PDFJSAnnotate.default.LocalStoreAdapter()). But now again some other error came up, Uncaught (in promise) TypeError: PDFJS.DefaultTextLayerFactory is not a constructor this error comes from page.js:86
The text present in line no 86 is var textLayerFactory = new PDFJS.DefaultTextLayerFactory();

check whether you have add pdf_viewer.js correctly

Yeah, Thank you, I forgot to import js file in HTML. But now only one pdf page renders remaining pages are not getting rendered. And the annotation actions are not happening. Do I need to include any file for that (like pdf-annotate.js)? I included one index.js file from example the annotations are working fine and all pages are getting rendered. But my doubt is, is that correct file to include? Thanks in advance.

In you r code you are rendering only one page.. Try to render all page

	    PDFJS.getDocument(RENDER_OPTIONS.documentId).then(function (pdf) {
	        RENDER_OPTIONS.pdfDocument = pdf;
	        var viewer = document.getElementById('viewer');
	        viewer.innerHTML = '';
					NUM_PAGES = pdf.pdfInfo.numPages;

					for (var i = 0; i < NUM_PAGES; i++)
					{
							var page = UI.createPage(i + 1);

	            viewer.appendChild(page);

	        UI.renderPage(i+1, RENDER_OPTIONS).then(function (_ref) {

	            var _ref2 = _slicedToArray(_ref, 2),
	                pdfPage = _ref2[0],
	                annotations = _ref2[1];

							var viewport = pdfPage.getViewport(RENDER_OPTIONS.scale, RENDER_OPTIONS.rotate);
	            PAGE_HEIGHT = viewport.height;
							localStorage.setItem(RENDER_OPTIONS.documentId + '/HEIGHT', pdfPage.pageInfo.view[3]);
					});

				}
	        renderedPages.push(1);
	    });

Try this one  for PDFJS.getDocument function

renderedPages and slicedToArray are throwing as reference error. May I know what that is? Thank you, Actually all the pages rendered now. But I have doubt regarding which file to import in index.html to make annotations happen. I used index.js from example of this package. But I can see another file named pdf-annotate.js. Which one do I need to make use of?

I have included :

Based upon this include your files.. You should include annotate.js ..
You can hide renderedPages.push(1); in getDocument function

Can I get link for annotate.js, I do have pdf-annotate.js file but that didn't work. And I have hidden renderedPages.push(1) but slicedToArray is still there. May I know what is that. Thanks

Is this the file I need to include https://github.com/instructure/pdf-annotate.js/blob/master/dist/pdf-annotate.js ? or this https://github.com/instructure/pdf-annotate.js/blob/master/docs/index.js ?
With this https://github.com/instructure/pdf-annotate.js/blob/master/docs/index.js file I could able to annotate.

Include both the files which you said first .. Just mention the path

Okay, Thank you very much for spending your valuable time.

Glad to hear. If you find any solution to rendering the page fast means solve my issue too

Yeah sure. I will let you know if I found some solution for that.

/var/www/html/pdf/pdf/pdf-annotate.js/node_modules/create-stylesheet/index.js:2
var style = document.createElement('style');
^
ReferenceError: document is not defined
I am getting this error when I use var PDFJSAnnotate = require('pdf-annotate');


Add ember-cli blueprints for torii adapters.

@w-hat Thanks for this! Blueprints for Torii would be handy. Could you change boilerplate for the adapter to include:

open, fetch and close hooks
link in a comment to the Adapter docs: https://github.com/Vestorly/torii#adapters-in-torii

As far as a blueprint for a torii provider goes, that is the one that only needs the open hook implemented. By default it should use Ember.Object.extend({ open() { ... } });, but if you wanted to add a --base=oauth2-code option that inherits from torii/providers/oauth2-code that would be cool.
thanks!


A completed tutorial based on yours

Thanks for your kindness. You have written such a tutorial and shared your code, which encourages me to  learn it and complete the tutorial.
The new project is available at here and the online book is hosted on github page.
I have used most of your code and follow the structure of yours. I hope this tutorial will be helpful for anyone who want to learn about RISC-V emulator.

Thanks! That really helps me a lot

@siriusdemon 你的书中说尝试自己编译xv6但遇到了一个非法指令错误，我发现是由于xv6默认使用了c拓展导致的，将xv6的编译参数中加上 -march=rv64imazicsr -mabi=lp64, 另外要去掉proc.c第488行的asm volatile("wfi");，就能成功运行了


[P1] Make CAIKit API compatible with KServe predict API or evolve KServe spec to consider HF like inference API

Ref 1: https://github.com/kserve/kserve/tree/master/docs/predict-api/v2
Ref 2: https://huggingface.co/docs/api-inference/detailed_parameters

@danielezonca could you provide more details here? and add relevant labels, complexity etc.

Complexity is extremely high for this


trufflehog: 3.62.1 -> 3.63.0

Diff: https://github.com/trufflesecurity/trufflehog/compare/refs/tags/v3.62.1...v3.63.0
Changelog: https://github.com/trufflesecurity/trufflehog/releases/tag/v3.63.0
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 268467 run on x86_64-linux 1

1 package built:

trufflehog


Make an Onboarding Doc/Folder for ARGOS specifically

I would like to make a folder and documentation on onboarding for the ARGOS project specifically. This would include all necessary links like argosdb, hive, BCO portal, NCBI project page, and how to get access to HIVE, etc etc.
Not high on the list of priorities, but as we add some new volunteers I think it would be necessary.

The project will be closing so no longer applicable. Thanks


[subset] Removing CFF hints can make font illegal

There's a bug in the hintmask stripping that leaves residual bytes, which makes OTS reject the font.  Ouch.

The new --desubroutinize option works around that bug.

Closing as duplicate of https://github.com/behdad/fonttools/issues/343

@anthrotype can this note be removed?
      XXX Note: Currently there is a known bug in 'CFF ' hint stripping that
      might make the font unusable as a webfont as they will be rejected by
      OpenType Sanitizer used in common browsers. For more information see:
      https://github.com/behdad/fonttools/issues/144
      The --desubroutinize options works around that bug.

https://github.com/fonttools/fonttools/blob/master/Lib/fontTools/subset/__init__.py#L179-L183

I believe so. @behdad?

Yes!

Done https://github.com/fonttools/fonttools/commit/e69960cce06aa4e23bb5c01bfebbd270928b8421


[POC] GeoSearch

Summary
👋 This is a POC for the GeoSearch (with Google Maps for now). Take a look at the behaviour only don't look at the code it's not the point of the PR. Since we have preview with Netlify, this is a convenient way to receive feedbacks 🙂

Initially the search will refine with the IP or the given position
When the map is moved the results will be filter with the bounding box
The widget don't compute any radius automatically because (IMO) it depends a lot of the use case, you can still configure it at the instantiation.
When no results are found, we keep the same bounds & zoom that has been set with the last results found. We avoid to lost the context of the search for the user.

Again check the behaviour of the search, I will replicate the Google Maps example with Leaflet (at least).
Some example of GeoSearch:

Airbnb
Yelp
Foursquare
Booking

Not yet implemented:

clustering

Result
You can play with the GeoSearch widget on dev-novel. You need to reload the page when you switch between the stories otherwise the map is a bit lost.
Ideas of keywords for the search:

studio
cosy

Could google maps react be a peer dependency instead so that it isn't included in the build by default?

Yep, it's a huge dependency and a lot of users don't have the use case for implement a GeoSearch. But first of all we are not sure to pick Google Maps as default implementation, probably but not sure.

When moving the map around, some pins may be on the exact edge. We should probably have a bounding smaller than the actual viewport of the map, no?

The POC is great!!
Just a small thing: I noticed when that sometimes the bounds move a little too much (screenshot attached)

@bobylito Completely agree! I didn't implemented it (yet) because when I have searched for this kind of behaviour it looked like a bit difficult to do. But for the final implementation we need it.

Great POC @samouss ! :tada:
We definitely need a places widget on the other IS libraries as it complete perfectly the geo search use case.
I have some questions about the future widget itself:

do we want to embed the search as you move option inside our Geo Widget?
do we want to embed a draw option (like foursquare)?

@mthuret

do we want to embed the search as you move option inside our Geo Widget?

For the search as you move, IMO the use case is valid because the engine is really fast and the experience is not degraded. But you can provide an options for disable this behaviour. We can also invert the behaviour, disable the search as move by default and pass an options to enable it.

do we want to embed a draw option (like foursquare)?

IMO it's overkill to support this feature in the widget out of the box. You can already refine with bounding box, drawing a shape on it don't offer many benefits. Maybe we can provide an API through the connector for enable this behaviour. But I'm not really convinced by the usage.
WDYT?

@samouss I'm sorry for the misunderstanding, indeed I was talking about having the option exposed to the user of the website (like the airbnb experience).
About the draw options, I believe that can be useful when you want to let your user select a very restricted area to find a place for instance (and not programatically defined a bounding box). But agreed probably too overkill for now :).

@mthuret

@samouss I'm sorry for the misunderstanding, indeed I was talking about having the option exposed to the user of the website (like the airbnb experience).

Yes why not expose this option to the user, the experience will probably be better! 👍

Yes why not expose this option to the user, the experience will probably be better! 👍

If we're talking about adding the option to let the user draw squares of zones to refine, I have a few questions:

How much more work does it require regarding the integration with mapping library?
Does it couple instantsearch more with the mapping library?
Is it something that can be implemented in the next iteration of the widget?
Is it core to the feature?
Isn't it a new way of interacting with the map altogether?

Obviously I don't have the answers :) Let's just see if it is reasonable to add that at this stage.

@bobylito No no it was about adding the option to let the user activate (or not) the "Search as you move" directly on the map like the Airbnb component.
IMO we can keep the feature for an upcoming version.

@bobylito No no it was about adding the option to let the user activate (or not) the "Search as you move" directly on the map like the Airbnb component.
IMO we can keep the feature of drawing shape for an upcoming version.

Oh ok my bad :) 👍

I updated the PR with the Leaflet implementation, you can try it if you want. The behaviour & features are the same as Google Maps.

@mthuret I added the opportunity to let the user control the refinement strategy. You can now enable / disable the "Search as you move" directly from the widget. It's available on both implementation (GoogleMaps & Leaflet), again don't look the code the only thing that is interesting is the behaviour.

A mapbox-gl example would be cool too (my preferred map 😄). API should be pretty similar to leaflet, but different.
Is there some way where we could have people insert their own copy of the mapping API instead of depending on it

A mapbox-gl example would be cool too (my preferred map 😄). API should be pretty similar to leaflet, but different.

@Haroenv It's planned! I'll do it now 😉

Is there some way where we could have people insert their own copy of the mapping API instead of depending on it, letting them do dependency injection?

Not sure to have understood correctly. But with the GeoSearch connector that's the idea. We will deliver by default an implementation with Google Maps I think. Then the user can implement the view for any map provider.

Thanks for the POC!
I tried it, here are my remarks:

do you have an example that reuses Google Places Autocomplete instead of Algolia Places?
how do you think we could link hits and pins (AirBnB style search). Where when you click on a pin then the UI scrolls to the corresponding hit/activate it and it works both ways (click on hit open PIN). That's what many users have been looking to do with Geo search. Being able to reproduce the AirBnB experience.
following ^ a big struggle to reproduce this AirBnB experience was being able to have custom pins, with Gmaps it can be a hard task
when I switch stories from stories the map does not displays, I have to reload the page fully (maybe just a dev-novel issue)
do you plan on creating an API draft document (options, usage) for widget and connector?
did you already decide if you wanted to have a full blown widget or only a very smart connector that is easy to link to any mapping lib?

do you have an example that reuses Google Places Autocomplete instead of Algolia Places?

Nope, I don't have such example. It could be interesting to build a widget like Algolia Places but for Google Maps.

how do you think we could link hits and pins (AirBnB style search). Where when you click on a pin then the UI scrolls to the corresponding hit/activate it and it works both ways (click on hit open PIN). That's what many users have been looking to do with Geo search. Being able to reproduce the AirBnB experience.

It's definitely required for the release, I didn't put this logic inside the POC because IMO it's not restricted to the GeoSearch widget. Plus having a mechanism in order to communicate between widget is really specific to each implementation of InstantSearch.

following a big struggle to reproduce this AirBnB experience was being able to have custom pins, with Gmaps it can be a hard task

For the default widget we can provide an option for the markers customisation. In the case where the user choose the connector, it's his responsibility to customise the markers.

when I switch stories from stories the map does not displays, I have to reload the page fully (maybe just a dev-novel issue)

I think it is, I will fix it anyway when I will implement the widget.

do you plan on creating an API draft document (options, usage) for widget and connector?

Yep, it's plan! I implemented this example in order to have some feedbacks, I will make a draft of the connector API probably next week.

did you already decide if you wanted to have a full blown widget or only a very smart connector that is easy to link to any mapping lib?

The plan is to build a connector that is easy to plug to any mapping library & to build a widget with Google Maps as default implementation. During the draft process I will try to put most of the logic inside the connector. But if the API becomes too complicated to use, I will probably delegate some view logic to the renderer.

@Haroenv I have added the Mapbox example! Don't look at the ugly pin 😅 Mapbox doesn't provide a default one, I added a simple one with CSS.

Will close this one since we gathered enough feedbacks on the UI.
Thanks all of you for your precious feedbacks  👍


No hosted zone found that matches domain or hostname

Here is certbot53, a script I wrote to use this project:
#!/bin/bash

#STAGING=--staging
CERT_DIR=/etc/pound/certbot
DOMAIN=scalacourses.com
<EMAIL_ADDRESS>SCRIPT_NAME=certbot-route53.sh

if [ ! -d "$CERT_DIR/letsencrypt" ]; then sudo mkdir -p $CERT_DIR/letsencrypt; fi
sudo chmod 777 "$CERT_DIR/letsencrypt"

cd $CERT_DIR

if [ ! -f "$CERT_DIR/$SCRIPT_NAME" ]; then
  sudo curl -sL https://git.io/vylLx -o $SCRIPT_NAME
  sudo chmod a+x certbot-route53.sh
fi

./$SCRIPT_NAME \
  --agree-tos \
  --manual-public-ip-logging-ok \
  --domains $DOMAIN,www.$DOMAIN \
  --renew-by-default \
  --email $MAIL_ADDR $STAGING

PRIV_KEY="$CERT_DIR/letsencrypt/live/$DOMAIN/privkey.pem"
FULL_CHAIN="$CERT_DIR/letsencrypt/live/$DOMAIN/fullchain.pem"
COMBINED="$CERT_DIR/combined-for-pound.pem"
cat "$PRIV_KEY" "$FULL_CHAIN" | sudo tee "$COMBINED" > /dev/null

I have a Route 53 public hosted zone called scalacourses.com. and it defines entries for scalacourses.com and www.scalacourses.com. Following is output from running the script. I do not understand the error messages:

No hosted zone found that matches domain com or hostname scalacourses.com
No hosted zone found that matches domain scalacourses.com or hostname www.scalacourses.com

./$SCRIPT_NAME \
  --agree-tos \
  --manual-public-ip-logging-ok \
  --domains $DOMAIN,www.$DOMAIN \
  --renew-by-default \
  --email $MAIL_ADDR $STAGING
+ ./certbot-route53.sh --agree-tos --manual-public-ip-logging-ok --domains scalacourses.com,www.scalacourses.com --renew-by-default --email<EMAIL_ADDRESS>--staging
Saving debug log to /etc/pound/certbot/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for scalacourses.com
dns-01 challenge for www.scalacourses.com
Output from certbot-route53.sh:
No hosted zone found that matches domain com or hostname scalacourses.com

Hook command "/etc/pound/certbot/certbot-route53.sh" returned error code 1
Output from certbot-route53.sh:
No hosted zone found that matches domain scalacourses.com or hostname www.scalacourses.com

Hook command "/etc/pound/certbot/certbot-route53.sh" returned error code 1
Waiting for verification...
Cleaning up challenges
Output from certbot-route53.sh:
No hosted zone found that matches domain com or hostname scalacourses.com

Hook command "/etc/pound/certbot/certbot-route53.sh" returned error code 1
Output from certbot-route53.sh:
No hosted zone found that matches domain scalacourses.com or hostname www.scalacourses.com

Hook command "/etc/pound/certbot/certbot-route53.sh" returned error code 1
Failed authorization procedure. www.scalacourses.com (dns-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: DNS problem: NXDOMAIN looking up TXT for _acme-challenge.www.scalacourses.com, scalacourses.com (dns-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: DNS problem: NXDOMAIN looking up TXT for _acme-challenge.scalacourses.com

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: www.scalacourses.com
   Type:   connection
   Detail: DNS problem: NXDOMAIN looking up TXT for
   _acme-challenge.www.scalacourses.com

   Domain: scalacourses.com
   Type:   connection
   Detail: DNS problem: NXDOMAIN looking up TXT for
   _acme-challenge.scalacourses.com

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

I just discovered that #11 is the source of the problem.

Hello,
unfortunately, I have this exact error with both of those lines already corrected.
dns-01 challenge for <extension.example.org> Output from certbot-route53.sh: No hosted zone found that matches domain <extension.example.org> or hostname <extension.example.org>
What could this be? I have a hosted zone named (staying in this example) "example.org.".

For me, hardcoding the right hosted zone made it work this time, so there seems to be a recognition error.

Without seeing your code I have no idea. Not volunteering to spend time doing that, however.

Any progress on fixing this?  I'm running into the same thing


Timeout error when trying to install 1.8.1 via NPM

When trying to install I get this error:
Downloading release https://workers.cloudflare.com/get-npm-wrangler-binary/1.8.1/x86_64-apple-darwin
Error fetching release Request failed with status code 522
(node:10945) UnhandledPromiseRejectionWarning: Error: Request failed with status code 522

This is related to a current incident which we are addressing. You can follow along here and we will also update this issue when it is resolved.

This has been resolved. Please re-open this issue if you see any more 522 errors.


Clarify DisableAutoConfig

closes https://github.com/MicrosoftDocs/OfficeDocs-SharePoint/issues/3287
confirmed with product team and also reproduced

@adeejoseph PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


add support for inherit_defer statement

Shortly a new statement will be supported by bitbake called inherit_defer (it is a dynamic form of an inherit statement) - add support to the parser for it

I might be good to introduce a new class for it then


Adding a variation on the Install Failed Network Misconfig SL - ROSA Private Link

The only difference is the link to docs and service name.

/lgtm

/approve


From Python 3.11 the following error pops up: TypeError: Passing coroutines is forbidden, use tasks explicitly.

This issue is discussed here for instance:
https://progr.interplanety.org/en/removing-the-passing-coroutines-is-forbidden-use-tasks-explicitly-error-when-using-aioschedule-in-python-3-11/

Good job! :+1: