js-libp2p fails to build from master branch

js-libp2p fails to build. It is true for at least this commit: 6ac62da025b5bf20f559cf241deb0fb9020e1418
pavel@pavel-laptop ~/w/f/i/js-libp2p (master)> npm run build

><EMAIL_ADDRESS>build
> aegir build

[14:19:53] tsc [started]
src/insecure/index.ts:103:9 - error TS2416: Property 'secureOutbound' in type 'Plaintext' is not assignable to the same property in base type 'ConnectionEncrypter'.
  Type '(localId: PeerId, conn: Duplex<Uint8Array, Uint8Array, Promise<void>>, remoteId: PeerId) => Promise<SecuredConnection>' is not assignable to type '(localPeer: PeerId, connection: Duplex<Uint8Array, Uint8Array, Promise<void>>, remotePeer?: PeerId | undefined) => Promise<...>'.
    Types of parameters 'remoteId' and 'remotePeer' are incompatible.
      Type 'PeerId | undefined' is not assignable to type 'PeerId'.
        Type 'undefined' is not assignable to type 'PeerId'.

103   async secureOutbound (localId: PeerId, conn: Duplex<Uint8Array>, remoteId: PeerId): Promise<SecuredConnection> {
            ~~~~~~~~~~~~~~

test/configuration/utils.ts:18:26 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.
  Types of property 'secureOutbound' are incompatible.
    Type '(localId: PeerId, conn: Duplex<Uint8Array, Uint8Array, Promise<void>>, remoteId: PeerId) => Promise<SecuredConnection>' is not assignable to type '(localPeer: PeerId, connection: Duplex<Uint8Array, Uint8Array, Promise<void>>, remotePeer?: PeerId | undefined) => Promise<...>'.

18   connectionEncryption: [new Plaintext()]
                            ~~~~~~~~~~~~~~~

test/core/consume-peer-record.spec.ts:21:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

21         new Plaintext()
           ~~~~~~~~~~~~~~~

test/core/encryption.spec.ts:49:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

49         new Plaintext()
           ~~~~~~~~~~~~~~~

test/core/get-public-key.spec.ts:23:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

23         new Plaintext()
           ~~~~~~~~~~~~~~~

test/core/listening.node.ts:34:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

34         new Plaintext()
           ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:241:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

241         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:274:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

274         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:294:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

294         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:321:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

321         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:350:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

350         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:414:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

414         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:440:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

440         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:463:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

463         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:501:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

501         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.node.ts:537:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

537         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:351:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

351         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:383:37 - error TS2345: Argument of type '{ peerId: PeerId; transports: WebSockets[]; streamMuxers: Mplex[]; connectionEncryption: Plaintext[]; connectionManager: { maxParallelDials: number; maxDialsPerPeer: number; dialTimeout: number; }; }' is not assignable to parameter of type 'RecursivePartial<Libp2pInit>'.
  Types of property 'connectionEncryption' are incompatible.
    Type 'Plaintext[]' is not assignable to type 'RecursivePartial<ConnectionEncrypter[] | undefined>'.
      Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

383     libp2p = await createLibp2pNode(config)
                                        ~~~~~~

test/dialing/direct.spec.ts:405:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

405         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:438:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

438         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:478:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

478         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:506:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

506         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:527:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

527         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:564:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

564         new Plaintext()
            ~~~~~~~~~~~~~~~

test/dialing/direct.spec.ts:590:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

590         new Plaintext()
            ~~~~~~~~~~~~~~~

test/fetch/fetch.node.ts:25:7 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

25       new Plaintext()
         ~~~~~~~~~~~~~~~

test/insecure/compliance.spec.ts:8:11 - error TS2322: Type '() => Promise<Plaintext>' is not assignable to type '(args?: {} | undefined) => Promise<ConnectionEncrypter>'.
  Type 'Promise<Plaintext>' is not assignable to type 'Promise<ConnectionEncrypter>'.
    Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

8     async setup () {
            ~~~~~

  node_modules/@libp2p/interface-compliance-tests/dist/src/index.d.ts:2:5
    2     setup: (args?: SetupArgs) => Promise<T>;
          ~~~~~
    The expected type comes from property 'setup' which is declared here on type 'TestSetup<ConnectionEncrypter, {}>'

test/insecure/plaintext.spec.ts:31:5 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

31     plaintext = new Plaintext()
       ~~~~~~~~~

test/interop.ts:98:28 - error TS2322: Type 'Noise' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.
  Types of property 'secureOutbound' are incompatible.
    Type '(localPeer: PeerId, connection: Duplex<Uint8Array, Uint8Array, Promise<void>>, remotePeer: PeerId) => Promise<SecuredConnection>' is not assignable to type '(localPeer: PeerId, connection: Duplex<Uint8Array, Uint8Array, Promise<void>>, remotePeer?: PeerId | undefined) => Promise<...>'.
      Types of parameters 'remotePeer' and 'remotePeer' are incompatible.
        Type 'PeerId | undefined' is not assignable to type 'PeerId'.

98     connectionEncryption: [new Noise()]
                              ~~~~~~~~~~~

test/registrar/registrar.spec.ts:232:11 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

232           new Plaintext()
              ~~~~~~~~~~~~~~~

test/transports/transport-manager.spec.ts:112:30 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

112       connectionEncryption: [new Plaintext()]
                                 ~~~~~~~~~~~~~~~

test/transports/transport-manager.spec.ts:132:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

132         new Plaintext()
            ~~~~~~~~~~~~~~~

test/transports/transport-manager.spec.ts:152:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

152         new Plaintext()
            ~~~~~~~~~~~~~~~- **Version**:
<!--
Check package.json version
-->

test/upgrading/upgrader.spec.ts:69:9 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

69         new Plaintext()
           ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:86:9 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

86         new Plaintext()
           ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:146:9 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

146         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:153:9 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

153         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:277:9 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

277         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:286:9 - error TS2322: Type 'Plaintext' is not assignable to type 'ConnectionEncrypter'.

286         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:488:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

488         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:510:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

510         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:526:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

526         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:557:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

557         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:571:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

571         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:616:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

616         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:630:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

630         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:678:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

678         new Plaintext()
            ~~~~~~~~~~~~~~~

test/upgrading/upgrader.spec.ts:692:9 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

692         new Plaintext()
            ~~~~~~~~~~~~~~~

test/utils/base-options.browser.ts:20:7 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.
  Types of property 'secureOutbound' are incompatible.
    Type '(localId: PeerId, conn: Duplex<Uint8Array, Uint8Array, Promise<void>>, remoteId: PeerId) => Promise<SecuredConnection>' is not assignable to type '(localPeer: PeerId, connection: Duplex<Uint8Array, Uint8Array, Promise<void>>, remotePeer?: PeerId | undefined) => Promise<...>'.

20       new Plaintext()
         ~~~~~~~~~~~~~~~

test/utils/base-options.ts:16:7 - error TS2322: Type 'Plaintext' is not assignable to type 'RecursivePartial<ConnectionEncrypter>'.

16       new Plaintext()
         ~~~~~~~~~~~~~~~

Found 50 errors in 17 files.

Errors  Files
     1  src/insecure/index.ts:103
     1  test/configuration/utils.ts:18
     1  test/core/consume-peer-record.spec.ts:21
     1  test/core/encryption.spec.ts:49
     1  test/core/get-public-key.spec.ts:23
     1  test/core/listening.node.ts:34
    10  test/dialing/direct.node.ts:241
     9  test/dialing/direct.spec.ts:351
     1  test/fetch/fetch.node.ts:25
     1  test/insecure/compliance.spec.ts:8
     1  test/insecure/plaintext.spec.ts:31
     1  test/interop.ts:98
     1  test/registrar/registrar.spec.ts:232
     3  test/transports/transport-manager.spec.ts:112
    15  test/upgrading/upgrader.spec.ts:69
     1  test/utils/base-options.browser.ts:20
     1  test/utils/base-options.ts:16
[14:19:57] tsc [failed]
[14:19:57] → Command failed with exit code 1: tsc
Command failed with exit code 1: tsc

Platform:
Ubuntu 22.04. But same issue on 20.04 and macs

Linux pavel-laptop 5.15.0-48-generic #54-Ubuntu SMP Fri Aug 26 13:26:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Severity:
Seems to be:
Critical - System crash, application panic.
Description:
Just build the library according to instructions in repo's readme
Steps to reproduce the error:
> git clone https://github.com/libp2p/js-libp2p.git
> cd js-libp2p
> npm install
> npm run build

Seems to be present in CI jobs: https://github.com/libp2p/js-libp2p/actions/runs/3174803424/jobs/5172050698

I think having package-lock.json is a must for preventing this kind of problems. Without package-lock.json any transitive dependency update risks libp2p-js build to fail.

@folex you should delete your package-lock.json to be able to receive new package versions that would fix the build.

@mpetrunic  could you please try cloning the repo afresh and build it according to the instructions?

@coder11 sorry about that seems like there was a interface release that broke build but should be fixed by #1404


bundle: trade offs of schemes for bundle digest

The current version of the specification proposes a signature system based on
a verifiable executable, allowing agility in the calculation of cryptographic
content digests. A more stable approach would be to define a specific
algorithm for walking the container directory tree and calculating a digest.
We need to compare and contrast these approaches and identify one that can
meet the requirements.
The goal of this issue is identify the full benefits of this approach and
decide on the level flexibility we should provide in the specification. Such a
calculation would involve content in the container root, including the
filesystem and configuration.
Benefits and Cost
Let's review the features we get from digesting a container:

Provide a common digest based on the on disk container image. It should
be invariant to distribution methods. Any implementation that creates a container
distributed in any manner (tar, rsync, docker, rkt, etc.) will have a common
identifier to verify and sign.
The digest should be cryptographically secure and can be verified across
implementations. Signing the digest should be sufficient to verify that a
container root file system has not been tampered. We provide a common
base to provide pre-run verification.
Such a digest should only be used to verify after building a container
root. Such a system is not a replacement for validation of content from an
untrusted source. Ensuring trust and content integrity are left to the content
distribution system.

We need to consider the following properties of any approach to achieve these goals:

Security - Such a system needs to provide a sufficient level of security to
be useful. Content should be well-identified by its hash.
Cost - Walking a filesystem tree is slow and hashing all files is expensive
and wrecks the buffer cache. Minimizing this IO or not doing it all is
ideal. We need consider the cost against the benefits.
Stability - The digest needs to be calculated at a time when the container
layout is not changing. It also needs to be reproducible across runtime
environments.

Requirements
We can take the above to define specific requirements for the digest:

The digest will be made up of the hash of hashes of each resource in the
container.
The order of the additions to the digest should be based on the lexical sort
order of the relative container path of the resource ensuring stability under
additions and deletions.
Each resource should only be stat’ed and read once during a digesting process.
Unless specifically omitted, the digest should include the following resource types:

files
directories
hard links
soft links
character devices
block devices
named fifo/pipes
sockets

The digest of each resource must fix the following attributes:

File contents
File path relative to the container root.
Owners (uid or names?)
Groups (gid or names?)
File mode/permissions
xattr
major/minor device numbers for block/char devices
link target names for hard/soft links

The digest should be re-calculable using information about only changed
files.

The Straw Man
The specification currently proposes the following approach to provide
a common "script" location for containers to provide a digest. It is included
here for reference.
Digest
The purpose of the "digest" step is to create a stable, summary of the
content, invariant to irrelevant changes yet strong enough to avoid tampering.
The algorithm for the digest is defined by an executable file, named “digest”,
directly in the container directory. If such a file is present, it can be run
with the container path as the first argument:
$ $CONTAINER_PATH/digest $CONTAINER_PATH

The nature of this executable is not important other than that it should run
on a variety of systems with minimal dependencies. Typically, this can be a
bourne shell script. The output of the script is left to the implementation
but it is recommend that the output adhere to the following properties:

The script itself should be included in the output in some way to avoid
tampering
The output should include the content, each filesystem path relative to the
root and any other attributes that must be static for the container to
operate correctly
The output must be stable
The only constraint is that the signatures directory should be ignored to
avoid the act of signing preventing the content from being verified

The following is a naive example:
#!/usr/bin/env bash

set -e

# emit content for building a hash of the container filesystem.

content() {

	root=$1
	if [ -z "$root" ]; then
		echo "must specify root" 1>&2;
		exit 1;
	fi

	cd $root

	# emit the file paths, stat and their content hash
	find . -type f -not -path './signatures/*' -exec shasum -a256 {} \; | sort

	# emit the script itself to prevent tampering
	cat $scriptpath
}

scriptpath=$( cd $(dirname $0) ; pwd -P )/$(basename $0)

content $1 | shasum -a256

The above is still pretty naive. It does not include permissions and users and
other important aspects. This is just a demo. Part of the specification
process would be producing a rock-solid, standard version of this script. It
can be updated at any time and containers can use different versions depending
on the use case.
Goals
Let's use this issue to decide the following:

[ ] Do we all agree on the benefits of generating a common digest and signature scheme for containers at the runtime level?
[ ] Are there any benefits, trade offs or considerations missed above?
[ ] Should we provide algorithmic flexibility with a verified "script"
approach or should we define a very specific algorithm?

Given that serializing a local filesystem is (a) going to be tricky and (b) completely independent of launching containers, can it be a separate layer from the container-lifecycle stuff handled by runc and the OC spec?  Looking through the standard operations, it seems like they group by

Using a container locally (started, stopped, snapshotted?)
Authenticating an unpacked local container (not listed in the standard operations, but the point of this issue).
Transport (copied, downloaded, uploaded)

I'm not sure what “tagged” is about.  Maybe discoverability?  Maybe auth?  Anyhow, those sections pull apart pretty well, so in the spirit of building a toolbox with interchangable parts (why we have an OC project in the first place) I think we should have separate specs/tooling for each.  Then folks launching a container from a FUSE-mounted /ipfs/{container-root-multihash}/ don't have to get involved in the auth discussion, and don't have to worry about weird auth side effects tricking into the launcher or spec ;).

Another option here is to explore deferring to the operating system to provide the verification. The solution would be to provide an OS-agnostic way of providing this.
http://sourceforge.net/p/linux-ima/wiki/Home/

On Thu, Jun 25, 2015 at 01:21:25PM -0700, Stephen Day wrote:

Another option here is to explore deferring to the operating system
to provide the verification.

Once you're comfortable offloading this check to external software
(and I am), I don't think it matters to OC whether that verifier is
OS-level tooling or not.

The solution would be to provide an OS-agnostic way of providing this.

Why not just leave it to users to install a pre-create hook (if they
want one) using whichever tooling they like?  Having a list of such
pre-create hooks in a contrib/ directory would be nice, but I don't
see the need for binding this more tightly to OC than that.

http://sourceforge.net/p/linux-ima/wiki/Home/

With IPFS-FUSE or IMA you wouldn't even need the pre-create hook.  The
verification would be handled automatically per-file accessed.

ima is unlikely to be enabled in most Linux deployments because of associated performance overhead.

On Thu, Jun 25, 2015 at 02:10:25PM -0700, mjg59 wrote:

ima is unlikely to be enabled in most Linux deployments because of
associated performance overhead.

Does that matter for us?  Folks who are running it can use it to
verify their container trees.  Folks who choose to run from IPFS can
use it's hashing/signature model to verify their container trees.
Folks who want to serialize to a reproducible tarball and check an
OpenPGP signature against that tarball can do that.  Folks who just
want to trust their local filesystem can do that.  The point is that
all of these folks might want to use an OC implementation to
create/start/stop their container.  We just need to give them hooks
where they can attach any verification logic they like, and then get
out of the way.

closing in favor of the discussion in #11


Hiding column by url parameter values

Is it possible? How to get the GridContext?

Yes, for an example, see here:
http://mvcgrid.net/demo/columnvisibilitydemo?cols=Id,FirstName,LastName,StartDate
Remove one of the column names in the query string and you will see the grid update.


[BitSail][Feature] Support a simple source split coordinator.

Is your feature request related to a problem? Please describe
BitSail use SourceSplitCoordinator to assign splits to reader connectors.
In batch scenarios, the SourceSplitCoordinator usually computes all splits at first, and then make a assignment plan.
We want to implement an abstract SourceSplitCoordinator class to support  such batch scenarios.
Describe the solution you'd like
Support a simple abstract SourceSplitCoordinator class.

i will try it, please assign to me

Hi @john8628, do you have any progress or question on this issue?
Please let us know if you meet any problem.


Deploy cf-uaa-guard-service via concourse

https://github.com/cloudfoundry-community/cf-uaa-guard-service
Should be a good onboarding task. h/t @LinuxBozo

Might be of interest to @juliaelman or @rememberlenny. LMK if so!

Yep! Anything to start putting this into action.
--
Leonard Bogdonoff
rememberlenny.com | @rememberlenny

On Jan 25, 2017, at 12:43 AM, Joshua Carp<EMAIL_ADDRESS>wrote:
Might be of interest to @juliaelman or @rememberlenny. LMK if so!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks @jmcarp.
For this task, I see the following things that'll be needed

[ ] Knowledge of Concourse to get the UAA credentials for creating the UAA client.

[ ] Knowledge of the UAA and reading the docs on how to creating a client with the right scope, etc.

[ ] Knowledge of Concourse and ☁.gov to set up the deployment pipeline the cg-* way.
[ ] PRs and fly set-pipeline
[ ] Profit 😁

Worked on this with Roger today. Got a repo setup and working through getting it running on Concourse. Using the setup process to learn how to generate secrets while setting this up.

Going to hold off on deploying this in production until Monday since everyone is going to need to use Tock today to track their time. 😁 So for now I'll put it in Awaiting Acceptance and create an issue about adding assertion tests to the cg-deploy-uaa-guard-broker repo.


cloudflare_tunnel_config not applied until resaved or reapply after config change. Provider version  v4.3.0

Related to #2234 and #2233
Cloudflared logs
2023-04-10T03:23:30Z WRN No ingress rules were defined in provided config (if any) nor from the cli, cloudflared will return 503 for all incoming HTTP requests
2023-04-10T03:23:31Z WRN No ingress rules were defined in provided config (if any) nor from the cli, cloudflared will return 503 for all incoming HTTP requests
2023-04-10T03:24:10Z WRN No ingress rules were defined in provided config (if any) nor from the cli, cloudflared will return 503 for all incoming HTTP requests

Resaved via the CF GUI works, but terraform replan shows config drift.
Another workaround is to change the terraform code regarding origin_request and then apply it again.
For example, let's say your original configuration is
 origin_request {
      connect_timeout = "20s"
    # other stuff
    }

Change it to
 origin_request {
      connect_timeout = "30s"
      # other stuff
    }

Apply again, then it works. You can then change it back to your original config and apply it again. This avoids config drift.
However, either way, this is not how things should work. Any work on this will be much appreciated.
Originally posted by @algo7 in https://github.com/cloudflare/terraform-provider-cloudflare/issues/2234#issuecomment-1501349495

duplicate #2233


chore: remove JITI_ESM_RESOLVE

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[x] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
This removes using JITI_ESM_RESOLVE in CI, introduced in https://github.com/nuxt/framework/pull/3308. Would you remind me of the particular issue it was meant to solve @pi0?
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

Mirrring from discord for record:

It was estree-walker dependency. You might try removing it because another fix (prefer require over module condition) should have covered it not sure. But anyway this flag will be eventually on by default and is already on for internal jiti require calls. There was some early issues with mlly i had to disable not sure exactly what was that.

Great. I think let's keep behaviour as close to default as possible.


⚠ GitLab Server has degraded performance

In 6a8da69, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 3083 ms

Resolved: GitLab Server performance has improved in 0aa6bb7.


[snapshot] disable Pasteboard sync

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[ ] I've updated the documentation if necessary.

Motivation and Context
As pointed out by Peter Steinberger on Twitter, the Pasteboard sharing of the Simulator can cause issues during UI Tests. UIResponder.becomeFirstResponder can trigger the Pasteboard sync, which can lead to stalls.
This PR disables Pasteboard automatic sync on a system level for all launched simulators.
Description
I chose to implement this in the Snapshot::Fixes module for two reasons:

Ideally, Pasteboard automatic sharing shouldn't interfere with UI tests, but it does.
The implementation and intent of the code is very similar to the other Fixes

Testing Steps

Turn on Simulator Pasteboard Automatic Sync:
defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool true
The command defaults read com.apple.iphonesimulator PasteboardAutomaticSync should return 1.
Run fastlane snapshot
The command defaults read com.apple.iphonesimulator PasteboardAutomaticSync should return 0.

@xavierLowmiller is this enabled for scan as well or just snapshot? Should we include it as an option in scan?

I assumed that the issue only happens in UI Tests.
I didn't test what happens when becomeFirstResponder is triggered programmatically in unit tests, so if this is an issue as well, it can be easily be used in scan, too.

It does happen only for UITest, I just saw that it was implemented under snapshot and was wondering whether it only applies when capturing screenshots via snapshot or also works with UITests that are run via scan?

Oh! Obviously!
Yes, this should be in scan.
I'll look into this when I have some time 👍.


Add Graphql capability to API

As seen with the Opal project (see [1] and [2]) how GraphQL could benefit the Forklift project by bringing more flexibility, efficiency and therefore robustness to the UI and the inventory controller. It also could open up forklift-controller API architecture.
The approach is to introduce GraphQL technology in a non invasive way and therefore without impacting the existing API.
[1] https://github.com/gildub/opal
[2] https://github.com/gildub/opal-ui

The inventory controllers offers endpoints for each provider type:

/providers/vsphere
/providers/ovirt
/providers/openshift

Meanwhile Graph Query Language (GraphQL) uses its own language for requests (queries, mutations and subscriptions) only a single endpoint is usually needed.
Although initially we're more likely to add a GraphQL endpoint for each provider type, such as:

/providers/vsphere/graphql
/providers/ovirt/graphql
/providers/openshift/graphql

We might offer a single graphql endpoint where the query will indicate which type of provider the request is dealing with, for example:

/providers/vsphere/graphql: query GivenProviderTypeExample { providers { id name kind product } }
vs
/providers/gaphql: query MultiProvidersExample { vsphereProviders { id name kind product } }

I'd imagined just a single endpoint /graphql?  This seems more consistent with GraphQL paradigm.

@jortel, that would be even better.

Although this may cause you to have wonky types prefixed by provider type like: VSphereVM which seems lousy.


IMC_bug.py:Adding test-case to find kernel_Oops in IMC path

kernel OOPS is occuring when we try to cat files in IMC path.
Signed-off-by: Naveen kumar T<EMAIL_ADDRESS>

Can one of the admins verify this patch?

Sorry, didn't notice the comments until now.
For the record I don't mind having tests for specific bugs in op-test which don't belong to any of the default test suites and need to be manually invoked. Maybe we should look at putting them into some kind of containment zone rather than among the generic tests.

For the record I don't mind having tests for specific bugs in op-test which don't belong to any of the default test suites and need to be manually invoked.

We have many such tests in op-test and that's fine I guess.

Maybe we should look at putting them into some kind of containment zone rather than among the generic tests.

Yeah. Some day we should re-org test cases.
-Vasant


RAM usage does not work on Windows Subsystem Linux (WSL)

Describe Your Issue
What is happening?

ram usage indicator does not seem to work properly

Most issues are best explained with a screenshot. Please share one if you can!

Have you tried to debug or fix it?

I tried explicitly setting the POWERLEVEL9K_RAM_ELEMENTS variable but nothing changes

Environment Information
This information will help us understand your configuration.

OS: Windows 10 Home -- Version 1903, Windows Subsystem Linux
What version of ZSH are you using? You can use zsh --version to see this.
-- zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
Do you use a ZSH framework (e.g., Oh-My-ZSH, Antigen)?
-- oh-my-zsh
How did you install P9k (cloning the repo, by tarball, a package from your OS, etc.,)?
-- cloning the repo
What version of P9k are you using?
-- not sure how to check this -- did the installation (with Option 2) about a month ago
Which terminal emulator do you use?
-- wsltty

This issue was resolved on WSL2


Sanitize file name for addContentToFile and addImageToAssets

Some movies have title with illegal characters for a filename. Sanitizing the title fixes the issue.

You're welcome for your support of open source.


The performance evaluation

I tried to train the network with the released pytorch code, I did this with the recommended one, i.e. 3-1. Case (2), with the default configuration. The final classification accuracy @1 is 87.75 after 1000 epochs, which is much worse than that presented in the paper ( 96.39 with AlexNet).
I'm wondering why I get so different result, how about your testing result?
Thanks!

Sorry for the delayed response. I found that the data shuffling didn’t work with the latest version of pytorch, which is now fixed. I also uploaded multi-view images of the full set of ModelNet40 (https://data.airc.aist.go.jp/kanezaki.asako/data/modelnet40v2png_ori4.tar). The performance could be still worse than the reported ones in our paper because I used the caffe library for them. Please see https://github.com/kanezaki/rotationnet for more details. Thanks!

Do you think the performance diffference between Caffe and Pytorch is caused by pre-trained model.
As far as I know, the pre-trained AlexNet provided in pytorch is not as good as that provided in caffe.

Yes, it could be. Plus, I didn't tune the parameters (learning rate, batch size, epochs, etc.) for the pytorch codes, and that might also be the reason.


@alexcrichton Yes, exactly.

@alexcrichton Yes, exactly.
And the intrinsic would be implemented like this on the JS side (it has to be on the JS side, sadly):
function isValidUtf16String(str) {
    var i = 0;
    var len = str.length;

    while (i < len) {
        var char = str.charCodeAt(i);

        ++i;

        // Might be surrogate pair...
        if (char >= 0xD800) {
            // First half of surrogate pair
            if (char <= 0xDBFF) {
                // End of string
                if (i === len) {
                    return false;

                } else {
                    var next = str.charCodeAt(i);

                    // No second half
                    if (next < 0xDC00 || next > 0xDFFF) {
                        return false;
                    }
                }

            // Second half of surrogate pair
            } else if (char <= 0xDFFF) {
                return false;
            }
        }
    }

    return true;
}

(I loosely translated it from the DOMString spec by using some tips from the TextEncoder polyfill.)
It looks big, but it minifies quite well, and it should be extremely fast.
Originally posted by @Pauan in https://github.com/rustwasm/wasm-bindgen/issues/1348#issuecomment-477357145

er sorry I may be missing some context here, @justin3687 can you elaborate on why you opened a separate issue for this?

This is a spammer account


Presence of Dockerfile in spec-provided Templates

Context
Before opening the dev container spec, we hosted a set of dev container Templates that each included a Dockerfile and devcontainer.json. Once we opened up the spec, we moved a set of Templates to this repo, and we made some changes, including having each Template only include a devcontainer.json in the .devcontainer folder (example).
Our goal was to make things simpler: you don't need to be a Dockerfile expert to use dev containers, and dev containers can be as simple as just a devcontainer.json referencing an image. The spec also still supports using a Dockerfile, so this change didn't break existing setups using a Dockerfile.
Problem
We've started seeing feedback (example) that the lack of Dockerfile (in this repo, or when running "Add Dev Container Configuration Files" in a supporting tool like VS Code or GitHub Codespaces) is confusing, with questions such as:

Are Dockerfiles supported by the dev container spec?
Has something changed (since the previous Templates had them)?
How do I add a Dockerfile?

Potential solutions
We added a comment in the Templates to try to help clarify: / Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile. But, we'd like to discuss making this an even clearer / easier process.
There are a few ways to address this, including:

Add Dockerfiles back to Templates in this repo
Add an option to "Add Dockerfile" in the "Add Dev Container Configuration Files" command flow in supporting tools

Could be a new step in the series of quick picks, or a checkbox in an existing step

Next steps
Share this issue with the community, including existing issues and our dev container community Slack channel, to get broader feedback.

Hi @bamurtaugh , Thanks for dedicating time to this issue. I'm pretty sure that like me, many others "hardcore" devContainer fans appreciate the effort.
I want to start by saying that a Docker container is a DEV TOOL. Therefore should be geared towards developers. And that, you don't need to know all the details about containerization, groups, etc, but instead just know the basics to get you around and use the tool as such.
I understand that the intention was not to make things "too simple" or to cut off complexities, but was made to on-board users who have little to no experience with Docker. And I think it's a good move, but you are forgetting that these new devs will learn, and then will need more advanced usage of it.
DevContainers is the tech, good!, and it works!, great!. But the actual issue is, how do we help developers create their images faster, but without "segregating" the experienced and the new devs apart?
I think the trick lies in the UX (as always). Think about it, Visual Basic.Net never took off, and C# is the leader now for .Net projects. Cos it was easier? no, but because it was powerful and brought other developers who were familiar with C, C++, Java and the rest of the C family.
If we want devContainers to succeed, it needs to be powerful but, at the same time, easy to start with. That's where the "features" came and, at least for me, ruined my flow, because I often need to create new repos, for PoC or quick tests, and will always need to tweak my container. I often have to copy paste the dockerfile definition because I have my own customization that I cannot publish openly (generally customer's repos), and now I have to not only change the source, but also all the file structure to get it "back as it were".
I would love to find middle-ground of this, and if the answer is a extra check when selecting the templates to see if you want a "features" or a "raw" version, I would be happy with it.
The other problem with the "features" that seems to be shared amongst others is that, now , instead of searching for "how to add X to ubuntu", a dev would have to search "how to add X as a feature in a devcontainer" which will definitely create fragmentation of the possible answers.
The other bit about docker is that it's possible to share the dockerfile (or even dockercompose) with the service's infrastructure definition, that makes it so the developer can run almost the same infra, but locally, within the same environment as the application will be running into. This takes a lot of possible issues out, and makes things smoother.
Cheers

Like any feedback, this is all probably subjective, and just my personal opinions.
I have been helping several large teams adopt Codespaces and devcontainers. While I certainly agree that some good examples that include Dockerfile as well as docker-compose should definitely exist, in my own experience I am steering teams away from using Dockerfile. I prefer the declarative nature of using features. To speed up the build process I will usually use a dotnet or node base image and then just use features to install additional tools as opposed to using the base image and installing everything with features. I like that features can customize both the devcontainer as well as the IDE.
There will often be a small number of distro packages I need to add for something like tests that are run by the app that need these packages installed. For that, I have taken to including a shell script that is called during onCreateCommand. I prefer this approach because I have seen so many Dockerfiles that do not make any effort to reduce the number of layers that are created. I have never tried to measure the impact, but I have to assume many of these images end up being much larger than needed which presumably means they take longer to start as well as use up more of your quota for storage when using a service like Codespaces.
I have also taken to creating my own features but that only makes sense when they will be used across many devcontainers and usually is only done AFTER I have manually done it in the scope of the first devcontainer that needed it. When I am tweaking and developing within my own devcontainer I use the lifecycle scripts. onCreateCommand is an easier way to do anything one would need to do in Dockerfile and generally postStartCommand is where I will do the user-specific customizations for the devcontainer. I prefer this approach as working in a bash script(s) is easier than a Dockerfile with the additional RUN or other commands you need to deal with.
Anyway, agree that there ought to be at least one good template for Dockerfile and docker-compose provided but I otherwise think the current examples that favor the use of image and features makes sense as the default to steer people towards best practices.

favor the use of image and features makes sense as the default to steer people towards best practices.

Features are best practices? According to whom? Following that logic then is using Dockerfiles a malpraxis?

Features are best practices? According to whom? Following that logic then is using Dockerfiles a malpraxis?

I hoped to address that with my first sentence ... me.
This is all subjective. My experience, yours, whoever made the original suggestions that led to this issue. It is all subjective, there is no right answer.
I gave my reasons why I am preferring the declarative approach of using features and adding lifecycle scripts where needed. I would rather see a devcontainer.json like this:
{
  "image": "mcr.microsoft.com/devcontainers/typescript-node:16",
  "features": {
    "ghcr.io/devcontainers/features/powershell:1": {},
    "ghcr.io/devcontainers/features/go:1": {"version": "1.18"}
  },
  "customizations": {
    "vscode": {
      "extensions": ["dbaeumer.vscode-eslint", "GitHub.copilot", "ms-vscode.powershell"]
    }
  },
  "postCreateCommand": "/.devcontainer/setup.sh"
}

Then the equivalent that uses Dockerfile and a bunch of manual installation steps that need to be understood and maintained over time.
I think this is easier to understand and maintain and while it does not have to lead to smaller container images, I believe in most cases it will.
Finally, I am 100% in agreement that there ought to be templates for using a Dockerfile as well as docker-compose. There is no one size fits all. I only posted to provide @bamurtaugh with a counterpoint about the use of features in the templates.
I have not contributed to this project. If the experience of the people that are contributing leads them to believe that this is the better approach, I am inclined to agree with them.

I've never used the templates (they do not work with Enterprise accounts) so I have not spent much time looking through them.
Looking at the templates now, I do not see why this issue is even opened. There are already specific examples for Dockerfile  and Docker Compose, and some of the templates are using Dockerfiles. For example these:
https://github.com/devcontainers/templates/tree/main/src/dotnet-mssql
https://github.com/devcontainers/templates/tree/main/src/java-postgres
If someone wants to suggest that say the Javascript, Go or Dotnet templates ought to use a Dockerfile to install the language on top of a base image as opposed to using the existing images that are published, I would say that ought to be an easy to reject suggestion.
Not seeing what the issue is here or what needs to be done.

that need to be understood and maintained over time.
Features must be maintained as well. Someone has to do it anyway.

I'm not saying that "features" must go away. But just a simple checkbox (at least) to go back to the previous behavious would be a time saver.

Thank you both so much for your thoughtful feedback so far. We'll continue seeking user feedback on this topic to shape the direction of the Templates.
In the meantime, I've also started a VS Code extension that provides a code action to select an "image" property in devcontainer.json and convert it to a Dockerfile: https://marketplace.visualstudio.com/items?itemName=Brigit.devcontainer-image-convert. While this won't convert Features, it could at least save a few clicks if wanting to switch over to a Dockerfile setup.

Adding my two cents here. Along with others, I prefer using Docker for configuration when developing some apps, because it provides a way for me to modularize everything required for running the application when I deploy it to different systems like staging and production. Moving configuration from Dockerfile to VSCode Features would reduce this ease of deployment.

One of the containers I have uses "features".
Today I was in a cafe for an hour and could not do much because I didn't have internet:

I have used this container before, yesterday to be precise, so this is another issue that features might introduce.
I already turned off updates on vscode and all extensions because I have bad experiences during flights where without internet the containers try to install a pending update and will not load, even if the images are already downloaded.
I think the most important thing here is that the images should be immutable, no post-scripts, nothing that is not cached by docker.
Simplicity and reproducibility are key here.


rework Dockerfile (dependencies, distroless, non-root)

I've had this in mind for quite some time (also thanks to this PR on the original project for the inspiration!).
We disable CGO to make sure we produce static builds that can run in a "distroless" environment (that is, a minimal environment providing nothing more than ca-certificates and the like). That will reduce the final image size and reduce the attack surface of the container for those who deploy Commento that way.
We don't need to run Commento as root. That was the case before (if no user is specified, root is used by default), and this meant that on traditional Docker installations, root in the container was also root on the host, and that is not desirable or needed since there isn't any volume to mount, so the change should be painless even for existing installs.
I took the liberty to update the other images used for the build, and I reorganized the Dockerfile to make it so the main build-time variables are at the top. This makes it easier to maintain. Current version of node-sass prevents building with Node v16 (it would be nice to update to the last LTS), so let's use Node v14 for now.
Also, what do you say about publishing the Docker image in the GitHub Container Registry and link it to this repository? The current Action doesn't seem to be enabled too (the Docker Hub image hasn't been updated for quite a while).

Speaking of Container Registries, I noticed that the new Dockerfile is using gcr.io for its distroless image.
What speaks for or against using Google/Docker/GitLab/others container registries ? For pushing, and/or as for their base images.
I noticed that Docker Hub introduced some pull limits some time ago, is that also the case for other registries?

Additionally, I took the liberty of creating an issue as not to forget the node-sass frontend library upgrade, hope that was ok.

What speaks for or against using Google/Docker/GitLab/GitHub/others container registries ?

I guess it mostly depends on your ecosystem. Also Docker Hub was quite popular at the time (and is still the "default registry" in many OCI tools), Google uses its own registry internally (for instance distroless and cadvisor), GitLab might be nice if you're already working with it. I find the GitHub Container Registry particularly nice for GitHub-hosted projects since it avoids relying on additional third-parties and is well-integrated in the repository.
Worth noting that Docker Hub has an attached Notary server which helps setting up Docker Content Trust for signed images. But there's an alternative called cosign which works with any OCI registry, which is what GitHub recommends.

Thanks for the work! Think it's safe to update to Node v16, I'll try later before pushing a new commit.
Also you should only set amd64 and arm64, other architectures will result in the current errors you're having, because official images don't support them sadly.

Yup! You should also change the package visibility for the container from "private" to "public" so we can grab it. :)

Apologies - an oversight on my part! It's now set to public and have merged the new dockerfile. The docker CI is also running so the new docker image should be published shortly :)


GeoCAT staff updates

Adding @philipc2 and myself to the team and moving several folks to the alumni section who are no longer at NCAR.
Closes #105

Thanks for catching that!  The last few being out of order threw me off.
Both lists (team and alumni) should be ordered correctly now.
I also realized we don't have this year's interns on the list (they're not listed under VAST in the staff directory so I spaced it the first time around).  Maybe we leave that for another PR?
And no rush on this at all.  I just saw the notification and figured I'd update this while I have a sec.

I also realized we don't have this year's interns on the list (they're not listed under VAST in the staff directory so I spaced it the first time around). Maybe we leave that for another PR?

Thanks for catching that as well! Yes, in a separate PR, we could add this year's interns and prior years' alumni interns. Would you be willing to put together that PR, too?

I would be happy to do that as well if we have a list of VAST interns somewhere.  I think I'm a little light on info/context otherwise.
For now I opened a corresponding issue (#108).


Not support API V3

I'm using Envoy version 1.20.7 and cannot use your repository, can I upgrade to use API v3?

[ Quoting @.***> in "[miekg/xds] Not support API V3 (Iss..." ]

I'm using Envoy version 1.20.7 and cannot use your repository, can I upgrade to
use API v3?

I will not to able to spend any time on this.
/Miek
--
Miek Gieben


Add custom option if not in list

In the single-select with search example, I'd like the ability to add a new item to the list if it's not found. Example:

Go to here: https://vue-multiselect.js.org/#sub-select-with-search
Type one not in list, e.g "Node.js"
Hit enter to submit

I guess I would need to use an event to push the new search result into the options array? Is there a single event I can use when I hit enter?
I see "SearchChange":
https://vue-multiselect.js.org/#sub-events
But that would match each query, which could result in a very large array very quickly.
I also see "Close" but it doesn't carry last search value.  What would be the light approach to this?

You would have to use @search-change to save the query and then @keyup event for enter to save the option. I've included a fiddle to show how this could be implemented:
https://jsfiddle.net/es8p2nrg/

You would have to use @search-change to save the query and then @Keyup event for enter to save the option. I've included a fiddle to show how this could be implemented:
https://jsfiddle.net/es8p2nrg/

Thanks, I'll play with that - appreciate the fiddle. Do you know if it's possible to override the "no elements found" to something like "hit enter to use this new element"?

Hey @tiagosiebler. I am not sure If I understood you correctly, but you can actually replace the content that shows up when nothing is found by utilizing the slot. In your template you can do something like this:
        <multiselect ...>
            <template v-slot:noResult>
               <!-- Your custom html content -->
            </template>
        </multiselect>

Everything within
I hope this helps you.

Hey @tiagosiebler. I am not sure If I understood you correctly, but you can actually replace the content that shows up when nothing is found by utilizing the slot. In your template you can do something like this:
        <multiselect ...>
            <template v-slot:noResult>
               <!-- Your custom html content -->
            </template>
        </multiselect>

Everything within will replace what you currently see when "nothing is found".
I hope this helps you.

This is exactly what I'm looking for - thank you!


Fix manual sidecar inject doc after 0.8 template changes

The section referencing the sidecar-injector-configmap appears to be no longer valid for 0.8 as make installgen no longer generates the configmap's manifest.
kube-inject can also be run without access to a running Kubernetes cluster. Create local copies of the injection and mesh configmap.

kubectl create -f install/kubernetes/istio-sidecar-injector-configmap-release.yaml \
    --dry-run \
    -o=jsonpath='{.data.config}' > inject-config.yaml

kubectl -n istio-system get configmap istio -o=jsonpath='{.data.mesh}' > mesh-config.yaml

The configmap approach was very useful for testing with different versions of istio-proxy params and/or different istio-proxy images than what is in the installed istioctl version.

@ayj  @sdake  -- here's the issue per our slack discussion

fixed by #1244


Excel worksheets not opening as expected

I'm trying to open an Excel worksheet using the TryOpenWorksheet method from ExcelDataReader. However, the method is continuously returning false, and failing to open the sheet. After some initial debugging, I was able to get into the OpenWorksheet method of XlsxWorkbookReader. From there, I took this screenshot:

Based on that screenshot, you can see the sheet part variable (line 219) is including a leading \ character. There's logic in place (on line 220 in the screenshot) that appears to be removing a forward slash instead. I was curious if adding similar logic to strip the backslash is possible or advisable.
Thanks!
P.S. For reference, here are 2 files - the "bad" file which has a sheet failing to open and a nearly identical "good" file that loads as expected after I open/save the "bad" file directly in Excel:
sample_file_bad.xlsx
sample_file_good.xlsx

This should be fixed in the next release. Fixed with #201


Captive Portal generate Voucher

I can generate in one Voucher Role more than 250 Vouchers.
Clicking rapidly on the "generate button".
Is this good? :)

Its not really a problem if more are generated, but may be its smart to limit the max amount a bit.
Will fix this in the next commit.


Document fragments being removed from template element in html.

I was working on a website using client side templating with handlebars. I noticed that none of my templates were working.
Turns out building the HTML with trunk caused the document fragments in template elements to disappear.
Building with/without minification, using release/debug mode did not change anything, and using verbose flag on the cli didn't give any useful information.
I have tried tracking down why this happens. From my understanding it comes  from parse_document from html5ever from the nipper dependency (Its used when creating a Document).
I am relatively new to these kind of stuff so take that information with a grain of salt, and since I am not really trusting in my findings I thought it would be better to create an issue here first in case I am overlooking something on the Trunk side.
Input:
<!DOCTYPE html>

    <template>

 Whatever I write here, gets completely removed. We are just left with a blank document fragment.

    </template>

Output:
<!DOCTYPE html>

    <template></template>

Expected result:
<!DOCTYPE html>

    <template>

 Whatever I write here, gets completely removed. We are just left with a blank document fragment.

    </template>

H, I've never worked with that. My expectation would also be that the content stays the same. It definitely needs some investigation.

Ok, so I can confirm the issue is from Document::from at:
https://github.com/trunk-rs/trunk/blob/a7f0f477bebd18f8b80fe3cb87e70a9f0b299c50/src/pipelines/html.rs#L89
Slapping a dbg! before and after does show that the template contents are removed. See the debug statements below:
[src/pipelines/html.rs:90:9] &raw_html = "<!DOCTYPE html>\n\n\n\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n\n\n  <template>\n      Hello world\n  </template>\n\n\n\n"
[src/pipelines/html.rs:92:9] target_html.html().to_string() = "<!DOCTYPE html>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n\n\n  <template></template>\n\n\n\n"

I took a look at nipper's Document, there isn't a way to do anything to the underlying parser, see docs here. Looking at the implementation it completely functional with Default::defaults's for the arguments of parse_document, so I doubt its possible to fix this while using nippers's Document.
I am not even sure this behaviour is intended from the nipper side of things, even so the maintainer hasnt checked any PR's, or issues since 2021 (to see what I mean just take a look at their issues), so I doubt there's a chance the API will get more flexible for our use case even if we create a PR and put in the work.
From what I can tell the only way this could practically be solveable is through using html5ever directly, instead of calling their wrappers from nipper. This is especially simple in Document's case since it calls a single function with default arguments for the implementation for Document::From for &str.
Looking into html5ever various tags are parsed seperately, in a sense excluded from document. I'm not exactly sure but I from what I can tell "
TLDR;
We will probably have to directly use html5ever and call our own Document struct, with different html5ever::parse_document arguments, and do some manual parsing stuff.
I will attempt to solve it using the solutions above when I have some time. During my research I also found some other problems that could cause issues in the future, I will create an issue for them once I do more research :+1: .

Maybe it's worth checking out lol_html for replacing nipper. And maybe a good first step is to isolate all functions using nipper, putting them into separate functions.

Ok, I was able to fix this in nipper. Now I guess the only thing left doing is getting a PR merged with that change.

I created a PR (https://github.com/importcjj/nipper/pull/30) … let's see how that goes.

I hope Im wrong but I heavily doubt it will be accepted.
I instead made a fork replacing, nipper with lol_html.
Replacing nipper did fix the issue.
Should I create a PR, or will we wait for https://github.com/importcjj/nipper/pull/30?

Well if you have a PR which would completely replace nipper would definitely want to check it out. I have the feeling that a lol_html replacement might make things much more complicated, as the model seem quite different. Then again, I also think that nipper isn't the best tool build on today (I saw quite some panics and usafe, and tendril, … ).
Then again, it mostly works an didn't cause issues so far. So if we can get away with a small fix, that wouldn't be bad. Still lol_html might be a good replacement.

Fixed by: https://github.com/trunk-rs/trunk/pull/743

I just checked it locally and wanted to follow up on this.
It looks like the output generated (at least for me) isn't what it should be.
<link> elements end up after the  section, and the . The self closing version is also used on the trunk.rs site on the script asset examples.

Thanks for taking a look at this. So yes, maybe it makes sense starting a new 0.20.x release cycle with a few alpha/beta/rc versions for this.

Just to be clear, I think having a "breaking change" of requiring a spec compliant HTML page is fine. But we should put it into a breaking change release (0.20.x) and add a nice little warning.

I think that's closed, but not released yet.

I'm apologize as I wasn't able to take a look into this.
Though one thing I wanted to ask is would you prefer an error or just a warning?
Detecting the error is quite simple (a single conditional), but in case we want to provide extra information things would get quite messy. I think giving a warning would make things much simpler, as the user can just check the output to see where the truncation occurs to find the script tag that is causing the issue.

Though one thing I wanted to ask is would you prefer an error or just a warning?

Personally I would prefer an error, as it might break things. And I am sure people will ignore warnings. However, I could also understand that having an --ignore-script-error (or a better name) option might make sense in case of a false positive, or a case we did not think about.


React Native

Adding support for React Native was quite trivial. Not sure if it should exist as a separate project or not.

Awesome! I'm thinking that we can use the trick from redux such as separating redux/react and redux/react-native. And then we can remove the peer dependencies of React and React-Native from Cycle-React.

Merged. So now it's cycle-react for React and cycle-react/native for React Native with no explicit peer dependencies. We may be going to put the dependency back once React 0.14 has been released. Thanks again for the PR!


solved issue and added quizes

@notsoocool  please review this

@notsoocool please review this pr

@KapuluruBhuvaneswariVspdbct why did you add the quiz?? and i have mentioned you earlier that you have to add the function in only layout.tsx file why did you added it to all the files??


Guard track construction against missing shot_key

This is a single line change (ignoring whitespace) to improve robustness when importing bundler files.  It guards against the following KeyError...
Traceback (most recent call last):
  File "/source/OpenSfM/bin/import_bundler", line 32, in <module>
    io.import_bundler(args.dataset, args.bundleout, list_file, tracks_file, reconstruction_file)
  File "/source/OpenSfM/opensfm/io.py", line 451, in import_bundler
    camera = reconstruction.shots[shot_key].camera
KeyError: 'myfile.jpg'

Great, thanks @chris-cooper !


Switch to dark mode, update tag line

Brief description
This switches to dark mode by using the built in dark mode part of the existing theme but with some small changes. It also updates the tag line and changes the buttons to a gradient instead of a flat color. The logo has also been added to the hero.

Everything looks great here except for the token supply... it's atrocious -- can we get a replacement for that before merging this?

Everything looks great here except for the token supply... it's atrocious -- can we get a replacement for that before merging this?

@sgerbino yeah - any idea who did that image? it was shared on social media a long time ago... maybe Frank? It would be cool to get one with a transparent background and have the text changed to white (might be nice to get both versions like that actually). We could use an NPM package to generate a pie chart in real time, but I don't know of any packages that do 3d ones like that with the shadow beneath it so it wouldn't look quite as good

I just noticed the sticker header image needs to be replaced, maybe just white?

I just noticed the sticker header image needs to be replaced, maybe just white?

Ok @sgerbino, updated tokenomics image and now it switches to a white logo after it's scrolled on top of the smokey navbar. I also set a max width on the hero header image so that it doesn't stretch too much.

This looks beautiful, thank you.


Waypoint: Generate Random Whole Numbers within a Range - Can pass the test with and incorrect solution

The correct solution is:
return Math.floor(Math.random() * (max-min + 1))  + min
However, I found that the waypoint can also be completed with the following incorrect solution:
return Math.floor(Math.random() * (max-min + 1))

min equals zero, so adding it makes no difference. A way to enforce the use of a more strict formula is setting min to a non zero value

A non-zero min should have been run in the test part of the waypoint

@sanspace please submit a PR. Instructions here: https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Pull-Request-Contribute
Thanks!


setBookmark with widget causes errors on mobile

Browser: Chrome 59.0 (Android)
CodeMirror: 5.28.0
Steps to reproduce:

Go to http://jsbin.com/cisajutaxu/edit?html,output on Android
Try to delete number '2' on the second line (or anything else on that line)
There is an error in the browser console (can be seen by attaching desktop Chrome)

Error:
Uncaught TypeError: Cannot read property 'line' of undefined
    at getBetween (VM43 codemirror.js:413)
    at walk (VM43 codemirror.js:8904)
    at walk (VM43 codemirror.js:8911)
    at walk (VM43 codemirror.js:8911)
    at domTextBetween (VM43 codemirror.js:8918)
    at ContentEditableInput.pollContent (VM43 codemirror.js:8761)
    at ContentEditableInput.updateFromDOM (VM43 codemirror.js:8830)
    at VM43 codemirror.js:8823

Some investigation:
I'm pretty sure it fails because https://github.com/codemirror/CodeMirror/blob/33068f96d148a129d6c12ff647a2fbb3cdb60006/src/input/ContentEditableInput.js#L424 does not expect a bookmark TextMarker -- where find just returns one Pos instead of { from, to }.

Does attached patch help?

@marijnh Yes -- seems to fix it, thanks.

Great!


New version: Unity.Unity.2022 version 2022.3.27f1

Created by 🥟 Dumplings in workflow run #4804.
Logs
Updated: 2022.3.26f1 → 2022.3.27f1
Submitting WinGet manifests

Microsoft Reviewers: Open in CodeFlow

@wingetbot run


Datepicker inside dialog with form execute NgSubmit when selected

Bug, feature request, or proposal:
Bug
What is the expected behavior?
Do not execute submit when selecting datepicker button.
What is the current behavior?
When the datepicker button is selected, the form submit is executed.
What are the steps to reproduce?
https://plnkr.co/edit/B2zJloz3J8IhRU6vWZQw
1º) Click in Launch dialog button.
2º) Click in datepicker button.
3º) The value of selectedOption will be 'Option 3' (ngSubmit value)
What is the use-case or motivation for changing an existing behavior?
When i built a dialog to insert data, this happened.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Is there anything else we should know?

This is fixed in master https://github.com/angular/material2/pull/4531

Closing as a duplicate of https://github.com/angular/material2/issues/4530.


Update perform-a-forced-manual-failover-of-an-availability-group-sql-…

…server.md
Corrected spelling of INITIALIZING at line 52.

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

@AbhiAgarwal192, PRs can't be submitted to the Live repo. They have to be submitted to Master or a release branch. Thanks.


SSR support

Would be possible to provide SSR support?
Thanks!

What do you mean by providing SSR support? In which case would you need this to work to render something on the server side?
I understand this polyfill is only needed for the browser because it's a CSS feature that only "starts its action" when there's some scroll event
Can you please provide some scenario where you need this SSR support for this polyfill?

My specific case is using gatsy, I found using this component broke the build, my guess is because of the usage of the window object.

The latest version shouldn’t break the SSR process, please try it out

But it does

Any update on this? Much needed fix for all static site generators and SSR apps.

if (process.browser) {
const Sticky = require('stickyfilljs');
Sticky.add(...);
}

@samburgers
Or, in case of using GatsbyJS, example configuration could be:
// gatsby-browser.js
export function onClientEntry() {
  window.Stickyfill = Stickyfill;
}

// in pages/index.js, for example
stickyfill = node => {
  if (node && typeof window !== 'undefined' && window.Stickyfill) {
    window.Stickyfill.add(node);
  }
};

Hi,
any update on this? Our SSR app also ran into this bug, when we started using react-sticky-fill (which internally uses stickyfill: https://github.com/gyorgygutai/react-sticky-fill/blob/master/lib/components/ReactStickyfill.js).
Thanks to everyone involved solving this issue in advance!

I tried to use stickyfill with react hooks, but it didn't work.

Hey, I made a quick PR to add SSR support by switching the output bundle to UMD. If there is anything missing in my PR and this issue is still relevant for anyone I can make all the required updates to make it good to merge.
https://github.com/wilddeer/stickyfill/pull/118

Hi,
solution for Nuxt.js (Vue.js)
mounted() {
  import('stickyfilljs').then(module => {
    module.default.add(el);  // el - your DOM element
  });
}

Hi,
solution for Nuxt.js (Vue.js)
mounted() {
  import('stickyfilljs').then(module => {
    module.default.add(el);  // el - your DOM element
  });
}

This concept of doing a dynamic import when the component mounts also works in gatsby


inhibit regexp interpretation ?

Is there a way to desactivate regexp ? I search often "+ qqc" and really don't want to learn new escape characters to avoid the "+" to be interpreted. In nano you could cancel regexp interpretation, but I wonder for nano. If the option is possible, it's really hard to find.

I have added a -l flag to the replace command which will make it use a literal expression instead of a regex.
So for example, use replace "+ qqc" "..." -l.

In this version "Version: 1.3.3 Commit hash: a02ae3c Compiled on September 28, 2017", "replace "+ qqc" "..." -1" doesn't work. Says Invalid replace flag -1
Plus, is it really a lack of functionality, there not being a "replace" action for keybindings ? I hope I am just too bind to see it ?  You'll have to either compile from source or use a nightly binary tonight, or wait until I release version 1.3.4 which will probably be fairly soon.
About the replace action keybinding: there is no binding for the replace command by default, but I already told you how to can easily implement it yourself with Lua code in #921. Just put the code from there in the ~/.config/micro/init.lua file and the replace command will be bound to CtrlH.

tried both l and 1. But, sorry, I hadn't seen yet the other answer, and I didn't get. French here, bad at foreign languages. Thanks.

It’s no problem. I appreciate you taking the time to report bugs or make suggestions.
If you use the -l flag on the nightly it should interpret the search string literally.


DashManifest playback results in IndexOutOfBoundsException

Version
Media3 1.2.1
More version details
No response
Devices that reproduce the issue
Bravia 4K GB(and other Bravia TVs) - Android versions 9-12
Hopper Plus - Android 11
Various other smart TVs - Android version 9-12
Google Chromecast TV - Android 12
Galaxy S20 FE 5G - Android 13
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
No response
Reproduction steps
Cannot reproduce, crash logs in Crashlytics
Expected result
Expect to play Dash manifest without crashes, even if there is an error
Actual result
Dash playback crashes on some devices
Fatal Exception: java.lang.IndexOutOfBoundsException: Index: 12, Size: 9
at java.util.ArrayList.get(ArrayList.java:437)
at androidx.media3.exoplayer.dash.manifest.DashManifest.getPeriod(DashManifest.java:128)
at androidx.media3.exoplayer.dash.DashMediaPeriod.(DashMediaPeriod.java:158)
at androidx.media3.exoplayer.dash.DashMediaSource.createPeriod(DashMediaSource.java:609)
at androidx.media3.exoplayer.source.MaskingMediaPeriod.createPeriod(MaskingMediaPeriod.java:131)
at androidx.media3.exoplayer.source.MaskingMediaSource.onChildSourceInfoRefreshed(MaskingMediaSource.java:213)
at androidx.media3.exoplayer.source.WrappingMediaSource.onChildSourceInfoRefreshed(WrappingMediaSource.java:154)
at androidx.media3.exoplayer.source.WrappingMediaSource.onChildSourceInfoRefreshed(WrappingMediaSource.java:49)
at androidx.media3.exoplayer.source.CompositeMediaSource.lambda$prepareChildSource$0(CompositeMediaSource.java:117)
at androidx.media3.exoplayer.source.BaseMediaSource.refreshSourceInfo(BaseMediaSource.java:90)
at androidx.media3.exoplayer.dash.DashMediaSource.processManifest(DashMediaSource.java:971)
at androidx.media3.exoplayer.dash.DashMediaSource.onUtcTimestampResolutionError(DashMediaSource.java:905)
at androidx.media3.exoplayer.dash.DashMediaSource.access$600(DashMediaSource.java:100)
at androidx.media3.exoplayer.dash.DashMediaSource$1.onInitializationFailed(DashMediaSource.java:892)
at androidx.media3.exoplayer.util.SntpClient$NtpTimeCallback.onLoadError(SntpClient.java:344)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.handleMessage(Loader.java:494)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
Media
DRM protected private media
Bug Report

[ ] You will email the zip file produced by adb bugreport to<EMAIL_ADDRESS>after filing this issue.

We fixed https://github.com/google/ExoPlayer/issues/10838 in Media3 1.2.0, which looks very similar. So just to double-check - you are seeing this on version Media3 1.2.1?

I found the likely reason for this issue that still exists even after the linked bug was fixed.  The linked issue only fixed it for immediate player.prepare() calls after an exception. But with the new playback attempt happens at a later point, this problem can still happen.

Hi @tonihei , sorry for the late response but yes we are on 1.2.1.
I see you found a new possible cause, thank you for looking into this!

The commits above should this the issue I believe (will be released with 1.4.0-alpha02). If you are seeing it again after this release, please let us know.


trouble creating ply file

Hello,
I am having trouble in creating a ply file from a zdf file.
this is my code:
import numpy as np
import zivid  # using version <IP_ADDRESS>.7.0
import struct

app = zivid.Application()

filename_zdf = 'shot_20190828-135107.zdf'

print(f"Reading {filename_zdf} point cloud")

frame = zivid.Frame(filename_zdf)
print(frame)
point_cloud = frame.get_point_cloud().to_array()
print(point_cloud)

# frame.save('new_ply_shot.ply') # this creates an empty file with ply headers:
# ply
# format binary_little_endian 1.0
# comment Zivid Point Cloud
# element vertex

with open('new_ply_file.ply', "wb") as file_pointer:
    line = "ply\n"
    file_pointer.write(line.encode("utf-8"))
    line = "format binary_little_endian 1.0\n"
    file_pointer.write(line.encode("utf-8"))
    line = "element vertex %d\n"
    file_pointer.write(line.encode("utf-8") % point_cloud.shape[0])
    line = "property float x\n"
    file_pointer.write(line.encode("utf-8"))
    line = "property float y\n"
    file_pointer.write(line.encode("utf-8"))
    line = "property float z\n"
    file_pointer.write(line.encode("utf-8"))
    line = "property uchar red\n"
    file_pointer.write(line.encode("utf-8"))
    line = "property uchar green\n"
    file_pointer.write(line.encode("utf-8"))
    line = "property uchar blue\n"
    file_pointer.write(line.encode("utf-8"))
    line = "end_header\n"
    file_pointer.write(line.encode("utf-8"))

    for i in range(len(point_cloud)):
        data = struct.pack(
            "<fffBBB",
            point_cloud[i, 0],
            point_cloud[i, 1],
            point_cloud[i, 2],
            np.uint8(point_cloud[i, 3]),
            np.uint8(point_cloud[i, 4]),
            np.uint8(point_cloud[i, 5]),
        )

        file_pointer.write(data)

and this is the output:
Reading shot_20190828-135107.zdf point cloud
{ Settings: Settings:
  Bidirectional: no
  BlueBalance: 1.080994
  Brightness: 1.000000
  ExposureTime: 8333
  Filters:
    Contrast:
      Enabled: yes
      Threshold: 5.000000
    Gaussian:
      Enabled: no
      Sigma: 1.500000
    Outlier:
      Enabled: yes
      Threshold: 5.000000
    Reflection:
      Enabled: no
    Saturated:
      Enabled: yes
  Gain: 2.000000
  Iris: 22
  RedBalance: 1.709000, CameraState: CameraState:
  Available: no
  Connected: yes
  Live: no
  Temperature:
    DMD: 31.625000
    General: 32.375000
    LED: 30.483894
    Lens: 32.375000
    PCB: 39.125000, FrameInfo: FrameInfo:
  SoftwareVersion:
    ZividAPI:
      Comments: NA
      FileDescription: ZividAPI
      FileVersion: NA
      ProductVersion: NA
    ZividCameraFile:
      Comments: NA
      FileDescription: ZividCameraFile
      FileVersion: NA
      ProductVersion: NA
    ZividCameraToshibaTeli:
      Comments: NA
      FileDescription: ZividCameraToshibaTeli
      FileVersion: NA
      ProductVersion: NA
    ZividStudio:
      Comments: NA
      FileDescription: ZividStudio
      FileVersion: NA
      ProductVersion: NA
  TimeStamp: 2019-08-28 13:51:08 }
[[(       nan,        nan,       nan, 13.6565    , 49, 40, 15, 255)
  (       nan,        nan,       nan,  9.939818  , 49, 41, 16, 255)
  (       nan,        nan,       nan, 13.546217  , 50, 40, 16, 255) ...
  (       nan,        nan,       nan,  0.5477225 ,  9, 15, 10, 255)
  (       nan,        nan,       nan,  0.44721356,  9, 14, 10, 255)
  (       nan,        nan,       nan,  0.89442724,  9, 15, 11, 255)]
 [(       nan,        nan,       nan,  9.471008  , 50, 41, 16, 255)
  (       nan,        nan,       nan,  3.8340578 , 49, 40, 16, 255)
  (-436.47256, -262.30704, 1204.7329,  9.762172  , 50, 41, 16, 255) ...
  (       nan,        nan,       nan,  0.83666   ,  9, 15, 11, 255)
  (       nan,        nan,       nan,  0.8944271 ,  8, 15, 10, 255)
  (       nan,        nan,       nan,  0.44721356,  9, 15, 11, 255)]
 [(       nan,        nan,       nan, 13.953494  , 50, 40, 16, 255)
  (-437.44824, -262.16626, 1206.1522, 10.8074045 , 49, 39, 15, 255)
  (-436.78793, -262.0335 , 1206.5846, 13.516656  , 51, 41, 17, 255) ...
  (       nan,        nan,       nan,  0.5477226 ,  9, 16, 11, 255)
  (       nan,        nan,       nan,  0.5477226 ,  9, 15, 10, 255)
  (       nan,        nan,       nan,  1.1401755 ,  8, 15, 10, 255)]
 ...
 [(       nan,        nan,       nan,  1.        , 13, 17, 11, 255)
  (       nan,        nan,       nan,  0.83666   , 13, 17, 12, 255)
  (       nan,        nan,       nan,  0.4472136 , 13, 18, 12, 255) ...
  (       nan,        nan,       nan,  0.83666   ,  8, 12,  9, 255)
  (       nan,        nan,       nan,  0.5477226 ,  7, 12,  8, 255)
  (       nan,        nan,       nan,  0.70710677,  7, 11,  8, 255)]
 [(       nan,        nan,       nan,  0.44721356, 13, 16, 11, 255)
  (       nan,        nan,       nan,  0.83666   , 13, 17, 11, 255)
  (       nan,        nan,       nan,  0.5477226 , 13, 17, 11, 255) ...
  (       nan,        nan,       nan,  0.4472136 ,  8, 12,  8, 255)
  (       nan,        nan,       nan,  0.5477225 ,  8, 12,  8, 255)
  (       nan,        nan,       nan,  0.8944271 ,  8, 12,  7, 255)]
 [(       nan,        nan,       nan,  0.83666   , 11, 15,  9, 255)
  (       nan,        nan,       nan,  1.1401755 , 12, 16, 11, 255)
  (       nan,        nan,       nan,  0.8944272 , 12, 17, 11, 255) ...
  (       nan,        nan,       nan,  1.095445  ,  8, 12,  9, 255)
  (       nan,        nan,       nan,  0.44721356,  8, 12,  8, 255)
  (       nan,        nan,       nan,  0.70710677,  6, 11,  7, 255)]]
Traceback (most recent call last):
  File "/home/xtcdev/DEV/defectnet/venv/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3319, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-fae442df4333>", line 1, in <module>
    runfile('/home/xtcdev/DEV/defectnet/ZDF_processorv02.py', wdir='/home/xtcdev/DEV/defectnet')
  File "/snap/pycharm-professional/173/plugins/python/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "/snap/pycharm-professional/173/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/home/xtcdev/DEV/defectnet/ZDF_processorv02.py", line 52, in <module>
    np.uint8(point_cloud[i, 3]),
ValueError: Can't cast from structure to non-structure, except if the structure only has a single field.

Hi @pbermell,
Looks like you tried frame.save('new_ply_shot.ply'), which is what we do in convert_zdf.py. First of all I'm curious why you get an empty output. If you can share your shot_20190828-135107.zdf then I can try it on my PC.
Then it looks like you've reverted to the method of zdf_2_ply_without_zivid.py (which we actually plan to deprecate). You're missing a few steps however. Most importantly, in the .zdf we have a 7th value in the point cloud (Contrast, in addition to XYZ and RGB). The .ply should have that, so you have to deal with that somehow. Maybe it's sufficient to change indexing to:
            point_cloud[i, 2],
# Contrast is located at point_cloud[i, 3]
            np.uint8(point_cloud[i, 4]),
            np.uint8(point_cloud[i, 5]),
            np.uint8(point_cloud[i, 6]),

However, I'd rather recommend you fully use zdf_2_ply_without_zivid.py.

hi @torbsorb
shot_20190828-135107.zdf  is a 20 Mb file and it  can be opened using zivid studio.
if you have a place where to upload the file I can do it.
on the other hand, the content of the empty file looks like this:f
ply
format binary_little_endian 1.0
comment Zivid Point Cloud
element vertex

Indeed I had tried to play with the indexing before as you recommended but I get the same error.
any further ideas?
pablo

Did you try zdf_2_ply_without_zivid.py?
Can you share your files with https://wetransfer.com/?

It all works now using zdf_2_ply_without_zivid.py
thanks and sorry to waste your time.

Glad we could help!


Please update the docker hyperledger/besu registry

It currently has version 20.10.0 from 3 months ago
New permissioning system (released Dec 16, 2020) requires 20.10.1+
It would be nice to have 20.10.4

Hi,
This has been fixed in #36
Cheers


Refactored _ripple.less

Simplified the selector while refactoring code

Issue: 657

Great work thank you!
@all-contributors please add @bhavika24 for code


Fundamental debate: Dot after last method statement? (Yes!)

It makes me cry if my methods do not always end with a dot unless the last statement is a return node ... 😢

The arguments know to me are as follows:

pro: there is always an implicit ^ self at the end of methods. We introduce a separator on a last statement that is not a return to demonstrate this.
con: the above is not that obvious for the uninitiated and thus may appear arbitrary as there is no distinction between return statements and other statements in most other languages
con/pro: blocks are difficult here. Following the logic that we introduce the separator because there is an invisible return following we do not place a dot in a block's last statement. If we follow the logic that only a return statement is not terminated by a dot, we should place a dot after a block's last statement.

Personally, I currently always omit dots for last statements, on both methods and blocks. The dot, for me, acts as a separator between visible statements.
I, however, do not have a very strong opinion here. I would leave the issue open for a bit for other people to voice their opinions and see if we can find a consensus on what should be adopted.

con/pro: blocks are difficult here. Following the logic that we introduce the separator because there is an invisible return following we do not place a dot in a block's last statement. If we follow the logic that only a return statement is not terminated by a dot, we should place a dot after a block's last statement.

My logic is a bit different here: There should be always exactly one dot, and if we consistently use a dot after each statement, this rule will always be satisfied, for instance:
initializeFoo

	foo := myArray at: 1 ifAbsent: [self error].

(By the way, this also matches common interpunctuation rules for quotations from British "logical" English or also German grammar. For American English, however, things are more complicated, so their grammar might be a worse reference ... 😅)

@tom95 Here is another argument for PRO:

When appending a new statement/group of statements to a method, the previous line does not need to be edited. This 1) saves you time because you only need to edit one line (and if you use #acceptWithPrettyPrint #22, you will never need to add the last dot manually again) and 2) gives a chance to make the diffs for Monticello/Squit cleaner.


Build using .NET 6.0.300 public

Description of Change
Only install publicly released bits.

/azp run


PartitionKey.None.GetHashCode() throws an ArgumentNullException

Describe the bug
With the latest Microsoft.Azure.Cosmos (v3.42.0), calling Microsoft.Azure.Cosmos.PartitionKey.None.GetHashCode() throws a NullReferenceException.
To Reproduce
Call Microsoft.Azure.Cosmos.PartitionKey.None.GetHashCode():
using Microsoft.Azure.Cosmos;

namespace PartitionKeyNullRef;

internal class Program
{
    static void Main(string[] args)
    {
        PartitionKey.None.GetHashCode();
    }
}

Expected behavior
I do not expect an exception to be thrown.
Actual behavior
A NullReferenceException is thrown:
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'source')
   at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable`1 source, TAccumulate seed, Func`3 func)
   at Microsoft.Azure.Documents.Routing.PartitionKeyInternal.GetHashCode()
   at Microsoft.Azure.Cosmos.PartitionKey.GetHashCode()
   at PartitionKeyNullRef.Program.Main(String[] args) in C:\Users\Chris\source\repos\PartitionKeyNullRef\PartitionKeyNullRef\Program.cs:line 9

@csdahlberg is this a regression observed with latest package version?
Also can you please share some context on the usecase and impact of this issue.

This does not appear to be a regression -- I see the same behavior with v3.0.0 (the oldest version of this library on NuGet).
I was using PartitionKey.None in some unit tests, and it ended up being used as a key in a dictionary, at which point the exception was thrown. It was not a big problem for me in this case (PartitionKey.Null works fine for my current needs), but since GetHashCode should not throw exceptions, it was still unexpected.

PartitionKey.None supposed to be a virtual representation and it will manifest based on ContainerProperties (Parittioned/non-partitioned) into PartitionKey.Empty or PartitionKey.Undefined
        internal PartitionKeyInternal NonePartitionKeyValue
        {
            get
            {
                if (this.PartitionKey.Paths.Count == 0 || this.PartitionKey.IsSystemKey.GetValueOrDefault(false))
                {
                    return PartitionKeyInternal.Empty;
                }
                else
                {
                    return PartitionKeyInternal.Undefined;
                }
            }
        }

GetHashCode is not used explicitly used in the implementation and can be delegated to the base type.
@ramarag thoughts?

Next direct package refresh will have the fix.

It is fixed and released


added code-cov coverage

Codecov Report

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

@@           Coverage Diff           @@
##             main       #9   +/-   ##
=======================================
  Coverage        ?   85.44%
=======================================
  Files           ?       18
  Lines           ?     1821
  Branches        ?        0
=======================================
  Hits            ?     1556
  Misses          ?      265
  Partials        ?        0

Continue to review full report at Codecov.

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


validMatches is not working for Github login

Using validMatches to restrict user emails is not working.

Is it possible that the user has an empty email?
I've added (as for Jingo 1.5.0) a new emptyEmailMatches authorization parameter. Set it to false so that the user won't validate.

Actually, the user has multiple linked emails seems to have problem. User with one email is okay.

Hi,
yes, this problem has already been raised some time ago and there is nothing much I can do. Maybe I should write it down in the README.


Adding @islands/prism module break site generation

[x] I have read the troubleshooting section before opening an issue.
[x] I have tried upgrading iles and vite.

Description 📖
Tested on a fresh project after a clean init. When activating the @islands/prism module in the iles.config.ts and adding an mdx file with some code in it, it fails with a [plugin:iles:mdx:compile] Cannot handle unknown node raw error.
Reproduction 🐞
Tested with this repo: https://github.com/YuukanOO/iles-app
$ npm init iles@next
$ cd iles-app
$ npm install

Add  @islands/prism in the modules section on the iles.config.ts and a sample .mdx file with code in it:
---
title: Testing PrismJS
category: tips
---

Hehe

```js
const a = 5;

Three backticks are there but it doesn't seem to work in Github editor :/

$ npm run dev

Dependencies Info
Run npx iles info and pnpm list (or npm list) and provide the output:
iles v0.7.32 vite v2.8.6

<EMAIL_ADDRESS>/Users/julien/Documents/Sources/tmp/iles-app
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>

Logs 📜

Output
18:33:13 [vite] Internal server error: Cannot handle unknown node `raw`
  Plugin: iles:mdx:compile
  File: /Users/julien/Documents/Sources/tmp/iles-app/src/pages/something.mdx
      at Object.unknown (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/hast-util-to-estree/index.js:155:9)
      at Object.one [as handle] (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/zwitch/index.js:52:17)
      at all (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/hast-util-to-estree/index.js:583:28)
      at Object.root (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/hast-util-to-estree/index.js:508:20)
      at Object.one [as handle] (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/zwitch/index.js:52:17)
      at toEstree (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/hast-util-to-estree/index.js:119:24)
      at file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/xdm/lib/plugin/rehype-recma.js:15:20
      at wrapped (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/trough/index.js:115:27)
      at next (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/trough/index.js:65:23)
      at done (file:///Users/julien/Documents/Sources/tmp/iles-app/node_modules/trough/index.js:148:7)

Screenshots 📷

Hi Julien, thanks for reporting and providing a reproduction! 😃
Released a fix in<EMAIL_ADDRESS>You can run npm update to bump that package, which should fix the error.

Nice! Thanks for being so fast! 😉


Improve digit counting methods

Currently we use binary search tree to figure out the number of digits in a number. Looks like in the case of std::uint32_t we could covert to log calculation with a >15% speedup. I expect similar speedups for uint64_t and __uint128_t where it is more desparately needed.
Closes: #643

Benchmarks showed improvement for the operation, but when run inside the decimal benchmarks it caused decimal32 to slow down by greater than a factor of 2. Continuing to investigate with uint64_t since that has many more operations in the search tree.

Improvements for uint64_t were inconclusive, but using the same method for computing log on uint128_t yielded an about 8% improvement.

Replaced by different method in: https://github.com/cppalliance/decimal/pull/647


Nicer readme

Code snippets formatting.
Scene component options sorted, easier to read.

LGTM

LGTM, thank you @r0b1n.


[hi] Added content/hi/docs/concepts/architecture/garbage-collection.md

Issue Number #39548
Localized en/docs/concepts/architecture/garbage-collection.md in hindi language :)

@akash-kumar-saw , Thanks for the translation , but Note these points before push your next PR-

Check output from english to hindi translator tools as most of the tools can provide translation but sometimes they can not provide right phrases of the paragraph or sentences, words may be misplaced many times .

Don't translate values inside these tags (<>).

Before you submit another commit, take a minute to inspect/review the changes specially for localisation.

Hi @akash-kumar-saw, Before you change term_id under glossary_definition, check here, if it's term_id is available in English use it in the original format.

Hi @akash-kumar-saw , avilable to change the review by @dipesh-rawat ?

/remove-lifecycle stale

/area localization


Footnote numbers now take up half a column

I recently upgraded from Elegant 1.3 to 5.3.  When footnotes are typeset in html, the footnote number now takes up half a column.  See the restructured text code fragment below and a screen shot of the html output.  I do not know if this footnote typesetting is a bug or if you intended this behavior.   I think the footnote number should be just a few characters wide, like before.  Can you suggest a way to recover the prior behavior?
A paper I want to cite [#Garner2004jun]_.

.. [#Garner2004jun] Garner, S. R.; Kuehn, S.; Dawlaty, J. M.; Jenkins, N. E. & Marohn, J. A. "Force-Gradient Detected Nuclear Magnetic Resonance", *Appl. Phys. Lett.*, **2004**, *84*, 5091 - 5093 [`10.1063/1.1762700 <http://dx.doi.org/10.1063/1.1762700>`__].

I'm using 'next' branch and in markdown I get them like this:
https://iranzo.io/blog/2008/04/20/Logical-volume-manager-LVM/
It works fine on both for HTML, but for RST it shows similar setup like you've
With RST:
I've manually reverted my local copy to 1.3:

As reference, with version 3..1 t here was already this new behavior: