Update Grant-CsOnlineVoiceRoutingPolicy.md

Docs Build status updates of commit 8062863:
:clock10: Full build: the average full build time is 12 min(s) 15 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 8062863:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Grant-CsOnlineVoiceRoutingPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add missing .pod extension to EVP_PKEY_CTX_set_tls1_prf_md

The man page related to this file is not currently generated.
This should also be ported to the branch OpenSSL_1_1_0-stable.

Pushed.


Linux/Unix on the Download page

Mac OS is Unix and should be included in the Linux/Unix download section in the Git Downloads page. In fact, git can be installed on MacOS via "$port install git". Port is a BSD based, Apple approved package manager for MacOs.

hey @BracketMaster,
Thanks for reporting this. This is very similar to a previous discussion:  https://github.com/git/git-scm.com/issues/377
I think the goal of that page is not to be 100% precise, but more to group the SO in relevant and useful groups for users navigating to that page. In that reasoning, there are 3 main/major groups: Windows, Linux/Unix, and Mac OS X (that could be grouped into Linux/Unix mas has so many users that it makes sense to make it a 'top group')
So, while not 100% technical correct, I think it's the best UX decision. Any thoughts you'd like to add on this decision @peff ?

Right, I think the goal is not about deciding "what's unix", but about pointing people in the right direction. So the real question is: do people end up on the wrong page looking for information, and if so, can we point them from there to the right page?
I.e., it would make sense to me to do one or both of:

from the macOS page, mention other install mechanisms than the binary package. The main ones I know of are brew, and getting it bundled with XCode (I hadn't heard of port, but I am not a mac user, so if that's a common solution, it makes sense to mention it, too)

from the Linux/Unix page, mention macOS specifically as a platform that gets its own page. I think it's probably already there in the navbar, but it doesn't hurt to put it in the main list.

I think that may be something to consider on #1179 cc @jasonlong

Alright. Alright. I hear you. I would like to mention that Mac OS comes with the latest version of git installed as of the OS release which is yearly, as most Linux distros do the same. I figure since the target audience of git users is developers of some sort, perhaps it is appropriate to at least point them to a package manager method of installation. I can add that in the future and make a pull request?

Hey @BracketMaster, are you still interested in contributing on this through a PR? :)

Real busy rn with other stuff. But eventually yes. Thanks for asking.

I thought I'd add to the conversation just to mention that using conda is another great way to install Git, and works cross-platform, so I don't know if we want to feature that in the Downloads section...
It's also very useful to install different, isolated versions of Git, e.g. to test for bugs and fixes across different versions, although that's not what the main audience of the Downloads page does I guess.


Sbt going into sbtn by default on WSL2 Ubuntu, Ignoring scalaVersion in build.sbt

steps

install windows subsystem for linux 2 on a PC running Windows 11
use Ubuntu 22.04.2 LTS, jammy as the ubuntu version
follow the linux instructions to install coursier from this page https://get-coursier.io/docs/cli-installation
sbt verison I'm using through coursier is the latest available I believe right now after performing an update with coursier, which is 1.9.6
create some scala 3 project with a build.sbt that specifies scalaVersion to v3.3.1 with scalaVersion := "3.3.1"

problem
when I start the sbt console in wsl2 ubuntu with the sbt setup as above, it is always launching with the experimental thin client (sbtn?)
looks like this:

Additionally, when using this thin client, sbtn seems to always build my project against scala 2.12.18, which isn't anywhere in my project's configuration. I've read that sbt uses an internally set default version of scala when none is provided, but I have provided a scalaVersion in my build.sbt as described above. Since I want to use scala3 features, the compiler breaks.
I have attempted to force sbt to run in the non thin client mode by using the --server flag, but as this appears to be yet another non-standard mode that uses sockets for communication, it is preventing my application from communicating with its filesystem database.
expectation
I would have expected sbt to launch in WSL2 Ubuntu the same way it does on my Windows installation, not in the sbtn thin client. failing that, I would have expected there to be some way that I can specify that I don't want to use --client or --server mode and just want sbt to launch in a standard way. Lastly, if I had to use the thin client because it was the only way sbt would work within the WSL2 platform, I'd have expected it to pick up the scalaVersion setting in my build.sbt.
notes
I'm fairly new to using sbt as a build tool and don't have an understanding or appreciation of the nuances of these different flavors of sbt (sbtn, --server mode, ...). I am mostly just trying to get scala compilation to work within windows subsystem for linux. I'm open to alternative strategies if wsl2 isn't supported in the way I'm expecting it to be. I'm a happy camper if I can compile my project with a dotty compiler and have the running program use slick to talk to an h2db instance, its just that so far none of the configurations I've tried have allowed for all of these things to be true. Thank you and thanks for making such great software I'll keep working on learning it!

ok, I feel silly, somewhere along the line I must have set $SBT_NATIVE_CLIENT to 'true'.
egg on my face.
I am thinking of closing this out, however, I wonder if ignoring the project's scala version in the build is expected behavior for the client? If so then there is probably no reason to keep this one up.

hmm, couldn't find that setting in any of my dotfiles. well that's odd, maybe the shell gets that env var set that way through coursier or something? not really sure, didn't track it down, just added the export to the setting I wanted to my zshrc file.
I don't know what I'd suggest here. The docs for the thin client do mention this environment variable, so it was an easy find for debugging. If this setting really is automatically made by one of the tools I used for setting up my scala environment I'd suggest not have it default to the thin client unless that will behave pretty much like standard sbt.  But this 'bug' is like 90% pebkac I'm thinking now.

was there any indication of what was going on if you ran under -debug? because if not, surely we'd accept a PR that added a debug-level logging line about it


Format of input files for TruckEventsKafkaAvroSerDesApp.java

I'm looking at the TruckEventsKafkaAvroSerDesApp.java example provided in registry/examples/schema-registry/avro/src/main/java/com/hortonworks/registries/schemaregistry/examples/avro/ folder.
Looking at the java file, there are three parameters that need to be specified:
-d or --data-file
-s or --schema-file
-p or --producer-config
I am slightly confused as to the format of these files, and their extensions as well. Is this documented somewhere, if so please provide the link to it.
Is the schema-file format supposed to be: schema.registry.url=http://localhost:8081 ? What about producer-config ?
Thank you.

Closed due to inactivity.


Proposed implementation of type generation

Seems to pass...

Thanks @julienmalard!
Is there a way to achieve this by having the types generation in a separate repo? Or do they need to be in the repo they’re generated from (ie. this repo)?

They would need to be in the same repo as tsc needs access to the source code and JSDoc comments. However, it doesn't change any of the source code files (these can continue to be javascript) and simply outputs .d.ts declaration files to the dist folder at compilation time.

P.S. Alternatively, these could be configured to generate types into a separate subfolder in the dist folder.

@julienmalard is this something that could be handed off to DefiniteTyped?

@haydenyoung Probably not, since these are already included as JSDocs in the main repo. From what I understand, moving to DefinitelyTyped would require duplicating the repo, with potential syncronisation difficulties later on.
This PR just has TS compile the JSDoc comments already present in the repo to TS declaration files that anyone using orbit-db in a TypeScript project can use, but it doesn't change anything regarding the compilation process or actual JS files themselves.

After sometime trying to figure how to bring TS support here are my thoughts on this matter:
The declaration code generated through tsc with jsdoc is incomplete to say the least. The problems are two-fold:

Module design pattern used in Orbitdb does not play nicely with tsc as all it sees are functions that return objects that represent this modules. The object's members are not typed usually and the return typings for jsdoc are invalid Typescript types/interfaces, i.e.

/**
 * Creates an instance of OrbitDB.
 * @function createOrbitDB
 * @param {Object} params One or more parameters for configuring OrbitDB.
 * @param {IPFS} params.ipfs An IPFS instance.
 * @param {string} [params.id] The id of the identity to use for this OrbitDB instance.
 * @param {module:Identity|Object} [params.identity] An identity instance or an object containing an Identity Provider instance and any additional params required to create the identity using the specified provider.
 * @param {Function} [params.identity.provider] An initialized identity provider.
 * @param {module:Identities} [params.identities] An Identities system instance.
 * @param {string} [params.directory] A location for storing OrbitDB data.
 * @return {module:OrbitDB~OrbitDB} An instance of OrbitDB.
 * @throws "IPFS instance is required argument" if no IPFS instance is provided.
 * @instance
 */
 const OrbitDB = async ({ ipfs, id, identity, identities, directory } = {}) => {
 // rest of the code
 ...
 // the actual module (object)
 return {
    id,
    open,
    stop,
    ipfs,
    directory,
    keystore,
    identity,
    peerId
  }

As can be seen the return is typed as module:OrbitDB~OrbitDB, but tsc doesn't understand this since it is not valid TS. Also even if one would think TS might be smart enough to infer types, none of the members of the object are correctly typed, and even if they where I don't think this would work as tsc would pickup the return type from the function description.
This is the declaration generated from this code:
declare function OrbitDB({ ipfs, id, identity, identities, directory }?: {
    ipfs: IPFS;
    id?: string;
    identity?: any;
}): any;

As can be seen it's pretty much useless.

JSDoc documentation clashes with the solution, as it is to correctly type module members using JSDoc. For the previous example we could define a type

/**
 * @typedef {Object} OpenFnParams
 * @property {string} OpenFnParams.directory - The directory to use for this database.
 * ....etc
 */

/**
 * @typedef {( params: OpenFnParams) => import("./database.js").Database} openFn
*/

/**
 * @typedef {Object} OrbitDB
 * @property {string} OrbitDB.id - The id for this OrbitDB instance.
 * @property {import("ipfs-core").IPFS} OrbitDB.ipfs - The IPFS instance used by this OrbitDB instance.
 * @property {string} OrbitDB.directory - The directory used by this OrbitDB instance.
 * @property {import("./key-store.js").KeyStore} OrbitDB.keystore - The keystore used by this OrbitDB instance.
 * @property {import("./identities/identity.js").Identity} OrbitDB.identity - The identity used by this OrbitDB instance.
 * @property {import("@libp2p/interface-peer-id").PeerId} OrbitDB.peerId - The peerId used by this OrbitDB instance.
 * @property {{ [key: string]: import("./database.js").Database }} OrbitDB.databases - The databases used by this OrbitDB instance.
 * @property {()=>void} OrbitDB.stop - Stops OrbitDB, closing the underlying keystore and manifest store.
 * @property {openFn} OrbitDB.open - Opens a database.
 */

The generated code looks something like this:
export type OpenFnParams = {
    directory: string;
    // etc
};
export type openFn = (params: OpenFnParams) => any;
export type OrbitDB = {
    id: string;
    ipfs: import("ipfs-core").IPFS;
    directory: string;
    keystore: any; // since they were not typed well the inferred type from import is any
    identity: any; // same here, we need to also typedef these two in their source files
    peerId: import("@libp2p/interface-peer-id").PeerId;
    databases: {
        [key: string]: any;
    };
    stop: () => void;
    open: openFn;
};
// etc

The problem is that this would mess up the JSDoc documentation site, which is quite nice, but the whole module:Orbit~Whatever is JSDoc syntax which doesn't hold any type meaning but rather is just a way to structure the documentation (or that's my understanding).
What I did to generate typings is to directly define the interfaces and types one for one after generating the declaration files. This was quite painstakingly slow but once done it works nicely. See my fork or orbit which adds a types folder which is referenced from package.json to get the types from there.
This works perfectly and IMO should be the way to give TS support to orbitdb until some rewrite in TS is done at some point. I understand this last point might be controversial since the rewrite would be quite vast and maybe the main contributors prefer JS. I am not going to get into a debate over this, as long as someone is willing to do as I did here no rewrite is necessary.
I plan to do a PR so my fork with types is merged into main and orbitdb can be used in conjunction with TS. Only left writing some documentation and that's it.
What I would say should be a non-negotiable is to include typings along with the @orbit/core package and not as a separate package. Since most of the changes that are going to happen from here on the near future won't be many I think keeping parity between types and JS source is very feasible.
Any advice, recommendations, documentation, PR's or issues are very welcome on my fork here. Also, I hope this post explains well the current problems and why my proposed solution makes it work for everyone.

Thanks @nicocossiom for this analysis! I don't know JSDoc very well, but think that your solution seems better (though it would still entail keeping the types folder up-to-date with the source code).
Regarding typing data input into databases, should this be done at the orbit-db level, or perhaps better with a separate package (e.g., https://github.com/reseau-constellation/bohr-db) that also enforces the types at runtime? If we just check types at compile time, this could I think give a false sense of security since values that don't repect the typings could have been added to the repository before or else be received from a non-conforming peer.

@julienmalard Thanks for your rapid response. Regarding the issue of keeping up typings with the source code:
It is what it is, either

Codebase moves to TS (switch could by parts but since the source of orbit is not that big I think doing it as a whole would make more sense).
Codebase keeps JS while declaring types in JSDoc which would be very annoying but a more integrated and feasible solution.

This last one would mean that the API documentation site (api.orbitdb.org) would suffer some changes as explained in my previous comment (the whole module:Orbitdb... stuff).
To be frank I don't really understand the module thing, the functions that are typed as modules are just functions that when called return objects with methods and other members that represent these so called modules. Maybe it's because I don't understand what modules are in JSDoc terms or in JS in general (I am 22 just graduated CS and have not been really coding for that long).
I think that the short-term answer is the second one for sure. If @haadcode or @haydenyoung and the other maintainers agree I wouldn't mind transforming the manually typed .d.ts files I have and transform them into JSDoc comments inside the source code that can generate the same .d.ts files with tsc, tedious but very doable and also easier to maintain in the long term (not to mention a somewhat better development experience since IDE's do pickup on the typings provided by JSDoc).
In relation to your input about data type safety:
The compiler can only check if the data you put into the database matches the shape you described, but it cannot guarantee that the data already in the database or received from other peers has the same shape. You can even "trick" the compiler to force it to feed it the data with double assertions (data as unknown as T, T being whatever you want the compiler to think the database holds).
You can even create a database of Event<number>, close it and reopen the same database but giving the open function the typing Event<string> and TS will not complain.
This is obvious since there is no runtime checks for this and is expected behaviour. I do agree that this type of assertions can be tricky since they are neither real nor checked, and can give that "false sense of security" that you talked about.
I have to say you proposal of runtime validation with bohr-db seems awesome, I haven't had time to check it out (with code I mean) but if it does work as advertised I think this takes orbitdb to the next level. I see you have used Proxy for this which seems like a good solution, though I wonder about other peers (that do not use this Proxies) getting access to a database and manipulating. I guess this is an access controller problem, not a data validation one. Maybe an access controller can be implemented that ensures only those using a Proxy can write to a db (idk how though).
Also, the other stores you have developed seem quite interesting as well, maybe they should be integrated into the @orbitdb/core package.

Hello @nicocossiom ! I think you're right about the typing options (i.e., sticking to manual types) for as long as the orbit-db code is written in JS. I majored in agriculture and don't understand JSDoc modules completely either ! But perhaps @haadcode  or @haydenyoung could confirm. If they agree to your proposition to merge your .d.ts files, I'll close this PR as superceded.
Regarding datatypes, I agree with your examples. Thanks for your enthusiasm for bohr-db! I used a Proxy so as to only modify the Database methods of interest for runtype type checking; there isn't any way for the access controller to know if you are using a Proxy or not (and even less to know if another user did). But the Proxy does check data at both write and read time, so any invalid entries added by someone else (or even by the current user bypassing the proxy, as in the tests) will be rejected and excluded from the returned data.
Regarding the kuiper stores, if the orbit-db maintainers like them, I'd be more than happy to hand them over to the main repo. I'd also be grateful for feedback on the ordered-keyvalue store; it works for simply examples but there may be edge cases to consider more carefully.

@nicocossiom I'm happy going forward with your proposed solution. Even though it may mean maintaining, manually, type declarations using a types dir. While I'd prefer not to be managing docs manually, as you say, the changes moving forward should be minimal, I don't envisage large rewrites of functionality. And if we have to store type declarations in a dir within the orbitdb project, so be it. The community has asked for typedefs so we will ensure OrbitDB meets the expectations of the community.

To be frank I don't really understand the module thing, the functions that are typed as modules are just functions that when called return objects with methods and other members that represent these so called modules.

I think your summary is accurate. My understanding is there's nothing particularly special about modules besides some var scoping it's just a method for packaging code in discrete chunks. I would say an unclear path in multiple documentation projects has probably led to a lot of the complexities of ts/js doc generation.

Regarding the kuiper stores, if the orbit-db maintainers like them, I'd be more than happy to hand them over to the main repo. I'd also be grateful for feedback on the ordered-keyvalue store; it works for simple examples but there may be edge cases to consider more carefully.

It is worth investigation although I do like the modular nature of store packages and that they can be sourced from various locations. This keeps the main codebase simple and clean while providing a framework for pluggable storage mechanisms from various 3rd parties. Anyway, perhaps a discussion in a separate issue or on the Matrix channel.
@haadcode I'm fine moving ahead with @nicocossiom proposal if you are happy with it.
Thanks @julienmalard and @nicocossiom for all your input.

@haydenyoung Thanks; I'm happy to keep maintaining the kuiper stores as individual packages as well.

@nicocossiom thanks for this, it's a huge contribution.  Orbitdb should get a "TS" badge on npmjs.com once it's committed.
Some examples:

Javascript (no types):  https://www.npmjs.com/package/sanitize
DefinitelyTyped: https://www.npmjs.com/package/dompurify
Types in repo: https://www.npmjs.com/package/express-validator

The types should only need to change when the API changes, and it's easy for drive-by PRs to fix the types as needed.  Mostly the typing helps with tooling like vs-code.  Anyways, thank you!

Hi everyone,
We've discussed the PR with @haydenyoung as well as what our goals are here. The main hurdle we want to avoid is to add workload in developing and maintaining orbitdb (the JS implementation, this one here). We don't want to be in a situation where making changes to the JS implementation requires manual work and a dependency exists in order to keep TS related things updated. We also want to avoid complexity as much as possible.
The ideal solution here is that the types are in a separate repo, module and in a separate npm package. If this is not directly possible, the alternative would be to create a separate TS implementation.
A TS implementation would allow for this repo to be the canonical implementation and not entwined with TS. This would allow both implementations to move forward as seen best by the maintainers of each repo. If you're interested creating and maintaining a TS implementation, we'd be happy to add it to this org, publish it under the @orbitdb scope in npm and generally make it an official implementation of OrbitDB.
Let us know if you're interested and want to do that, or if you have an alternative solution that satisfies the aforementioned requirements.


HTTP FAILED: java.io.IOException: Canceled

Hi,
First of all, I would like to thank you for the great job on it :)
Since the beginnings I implemented okhttp on my app, I get this kind of message in my logcat.
It's not a crash, just a debug message present in my logcat.
I get this one:
04-08 18: 09: 45.385 8126-10529 /? D / OkHttp: <- HTTP FAILED: java.io.IOException: Canceled
And sometimes this one:
HTTP FAILED: okhttp3.internal.http2.StreamResetException: stream was reset: CANCEL
Here are the things, I have a network call on a HTTPS API and the majority of my calls are fetch without problem but sometimes, I get these message and I do not understand why. I searched on Internet, I tried everything I found but I still don't fetch the data from the API for the current call.
I use Stetho and I can see on the network calls the same message instead of the result code.
Here my dependencies used:
// Retrofit
    Compile ("com.squareup.retrofit2: adapter-rxjava: 2.2.0") {
        Exclude group: 'com.squareup.okhttp3'
    }
    Compile ("com.squareup.retrofit2: converter-gson: 2.2.0") {
        Exclude group: 'com.squareup.okhttp3'
    }

 // Network
    Compile "com.squareup.okhttp3: logging-interceptor: 3.6.0"

I use for this app RxJava (1.2.3) and RxAndroid (1.2.1)
So why for the most of my network calls I successfully fetch data and for some I do not?
How can I retry the current call which failed?
Thanks in advance.

I believe what is happening is that you unsubscribe from an observable that was created by retrofit. When this happens retrofit will call cancel on the okhttp request. I had similar error when i rotated and unsubscribe from retrofit while a network stream was still being read.
2 solutions I see are keeping the subscription alive or swallowing the exception. Your use case should dictate which works better for you.

Hum, thanks for your answer but I don't get why this happening only for a minority of the network calls.
I display a list of item and when I click on one item, I load more data from API and once everytime, I get this network issue. It's not a different call (except parameters), I don't change anything during this call (rotation or something else), I don't get it :/
When I access to the item, I made two calls, once the first one is completed I made the second. If I put or don't put my Observable in a CompositeSubscription I get the same issue. And my subscribe display data or display error to the user. But in any case the Observable goes to the onError method when the network call fail.

No action for us to take on this.


[Go] Allow access to dict builder indices

Describe the enhancement requested
I have a case where I have a mix of an external dictionary that I have indexes into and new values that I would like to append in a BinaryDictionaryBuilder. Starting with InsertDictValues while having some cost, seems negligible at the moment (although starting out with a dictionary and not caring about potential duplication would be a nice option to have), AppendIndices appears to be very expensive because of the slices it allocates (in our case about 10% of all CPU time in our query).
To combat this, it would be great to allow access to the underlying indices builder to perform optimizations like this, then it would be the caller's responsibility to make sure the dict item exists, but the cost of the slice allocation can be alleviated as well.
@zeroshade
Component(s)
Go

Already opened the PR since it was a tiny change: https://github.com/apache/arrow/pull/37417


Supporting apple cert root file path in function param gives more flexibity in program.

Supporting apple cert root file path in function param gives more flexibity in program.
Also can we upgrade  cryptography to 40.0.2 and PyJWT to 2.7.0.

Thanks for the suggestions! Do you want to open a PR?

Yes, I would love to.

Should I create a pull request from fork?

Yes

Done.


No code in response

I'm trying to do the code flow in the browser but I'm getting
No code in response

Even tho there is the code in the url.
http://localhost:3002/c/redirect?code=6alHsXjGJLvvQpxQQ0Cx8qTC7rQqN........

My callback look like this
<script src="https://cdnjs.cloudflare.com/ajax/libs/oidc-client/1.9.1/oidc-client.js"></script>
<script>
  var mgr = new Oidc.UserManager();
  mgr
    .signinRedirectCallback()
    .then(() => {
      window.location.replace("http://localhost:3002/");
    })
    .catch(error => {
      console.error(error);
    });
</script>

I found that by changing
var delimiter = useQuery ? "?" : "#";

to
var delimiter =  "?"

Solve the issue, please note that I tried using
new Oidc.UserManager({ response_mode: "query" });

this doesn't change anything.
In fact
this._settings.response_mode

is undefined.

I needed to add
{ response_mode: "query" }

Oidc.UserManager({ response_mode: "query" }
);

Documentation about that would be great.


1.0.21 wmagent version of 7683

ref #7683

All the agents are updated
https://twiki.cern.ch/twiki/bin/view/CMSPublic/CompOpsWorkflowTeamWmAgentRealeases

Thanks, Seangchan! I missed this detail that we still had very old agent releases out there that would need these patches (ScramArch list as well)


format-deps drops generateNeverlink

Executing format-deps on the dependencies.yaml file removes the generateNeverlink: True.
How to reproduce
~/.bazel-deps-cache/v0.1-9 format-deps -d "$REPO_ROOT/$DEPENDENCIES_FILE" -o
You will notice that the manually added generateNeverlink entries were dropped.

Looks like toDoc here ignores that field:
https://github.com/johnynek/bazel-deps/blob/3bed1b71bf94a62b566d6d98f119f2708b28c367/src/scala/com/github/johnynek/bazel_deps/DepsModel.scala#L683
would be an easy fix.
Do you want to send a PR?


Array passed to watcher, get error

const _ = require('underscore');

const include = _.flatten([]);

// Initialize watcher.
const watcher = chokidar.watch(include, {
  ignored: rgx,
  persistent: true,
  ignoreInitial: true,
});

I get:
TypeError: Non-string provided as watch path:
    at FSWatcher.add (/Users/alexamil/WebstormProjects/oresoftware/roodles/node_modules/chokidar/index.js:578:11)
    at Object.exports.watch (/Users/alexamil/WebstormProjects/oresoftware/roodles/node_modules/chokidar/index.js:710:33)

not sure what to say, since the docs say:
chokidar.watch('file, dir, glob, or array') // I assume array means I can pass an array of strings, etc
what might I be doing wrong? thanks

What's actually in the array? The example you're showing passes an empty array.

Right, the array is populated with string paths - but for simplicity I showed it as empty
the error says:
TypeError: Non-string provided as watch path.
This would suggest it doesn't accept arrays. If problem is the array is empty, then I would hope for an error saying "the array you passed is empty".

I'm guessing there's something illegal inside the array.

ok let met get you the actual contents

Will chokidar barf if there is more than one item in the array?
On Feb 24, 2017 4:45 PM, "Elan Shanker"<EMAIL_ADDRESS>wrote:

I'm guessing there's something illegal inside the array.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/paulmillr/chokidar/issues/582#issuecomment-282443820,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKn56JVX2rEC832-f3iDM77Xg-pnpwwMks5rf3mZgaJpZM4MK2Cf
.

Only if any of the items is not a string.
https://github.com/paulmillr/chokidar/blob/master/index.js#L577-L580


ClientRuntime.URLQueryItem typealias

### Tasks

Tracking issue for https://github.com/smithy-lang/smithy-swift/issues/561

Released with:
https://github.com/awslabs/aws-sdk-swift/releases/tag/0.35.0
https://github.com/smithy-lang/smithy-swift/releases/tag/0.40.0


Error response from daemon: open [path to file]: operation not permitted.

BUG REPORT INFORMATION
Output of docker version:
Client:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 21:22:53 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 21:22:53 2016
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 132
 Running: 0
 Paused: 0
 Stopped: 132
Images: 812
Server Version: 1.10.2
Storage Driver: overlay
 Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 4.5.0-rc6
Operating System: Debian GNU/Linux stretch/sid
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.458 GiB
Name: x
ID: N6IS:I7FC:XPXM:4SFP:FUCX:OOZH:WYWZ:IXKS:H74T:PLNL:DO6X:2PSJ

Provide additional environment details (AWS, VirtualBox, physical, etc.):
Physical laptop, with Debian 8
List the steps to reproduce the issue:
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
docker: Error response from daemon: open /var/lib/docker/overlay/b1d6ad39aae1648cfff0c7617a4c3e4a95e73c1a56aff784fcf88a40c87c83c4-init/merged/dev/console: operation not permitted.
See 'docker run --help'.

The files with wrong permission always changes:
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
docker: Error response from daemon: open /var/lib/docker/overlay/99227ae8206cdf58c80f537346192a403d053d587ee7f1caff7ab2781021a9af-init/merged/.dockerenv: operation not permitted.
See 'docker run --help'.
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
docker: Error response from daemon: open /var/lib/docker/overlay/3cffb3dc806c74423b98611b5ba8af532713bd57332a593ba337879d73478e58-init/merged/.dockerinit: operation not permitted.
See 'docker run --help'.
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
docker: Error response from daemon: open /var/lib/docker/overlay/affa6bd239356c179994854bef85559a31779cb1f8a300befd796055ddd92118-init/merged/.dockerinit: operation not permitted.
See 'docker run --help'.
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
docker: Error response from daemon: open /var/lib/docker/overlay/d6b9b2b1f469dae6d877d58330dbf0ea25a049654a9a28287bf697e3e8d9591e-init/merged/dev/console: operation not permitted.
See 'docker run --help'.
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
operation not permitted
docker: Error response from daemon: Cannot start container 0feac672d9fdf50e050b8df75db0987a01223b89c3ad2f28e5dacaa60d0a5632: [9] System error: operation not permitted.
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
operation not permitted
docker: Error response from daemon: Cannot start container 822df34e95bcb25ac595879889d80c3affac2bcc4332bd3929e1bdeaaa69c448: [9] System error: operation not permitted.
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
docker: Error response from daemon: open /var/lib/docker/overlay/13015a440aaa98764efe99fd5c2ee731e7c1519e9a1c0e1b46d05571850e99f3-init/merged/.dockerinit: operation not permitted.
See 'docker run --help'.
root@x:/var/lib/docker# docker run -i -t debian:sid /bin/bash
docker: Error response from daemon: open /var/lib/docker/overlay/350be1a152aabfe8901f26de4943e7de388d60154bbdd4fa3b05ef974492c162-init/merged/dev/console: operation not permitted.
See 'docker run --help'.
root@x:/var/lib/docker#

it may even start once in a while

Is this a fresh install, or was docker running before on this machine?

docker was running on that machine since 1.6

@onorua and you upgraded from 1.6 to 1.10, or all versions in between? Wondering if there's something that went wrong during a migration step.

Yes, all the versions where just fine... I had 1.10.0 which was working fine, then I've upgrade to 1.10.2, it was even working for some time, then I've rebooted - and the result is in the bug description ;)

I was thinking that the problem is on overlay structure, maybe something is wrong it the filesystem. So I've stopped docker daemon, moved /var/lib/docker -> /var/lib/docker.back started daemon pulled busybox image, tried to start - but no luck:(

Interesting, so it could be related to overlay, or the overlay driver. When you previously ran docker, was this on the same kernel version? I see you're on a really recent kernel, so wondering if it's caused by changes in the kernel

It is even more interesting, I've update the kernel, compiled in the overlay driver to make sure it is not due to some missing module in the kernel.
See 'docker run --help'.
root@x:/home/onorua# docker run -i -t debian:sid /bin/bash
bash: /etc/bash.bashrc: Operation not permitted
bash-4.3#
bash-4.3#
bash-4.3#
bash-4.3# exit

Which means some times it is working, some times not.
Then I decided that probably there is something about amount of images I have (I had quite a lot I would say), so I've cleaned up all the "unnamed" images, all stopped containers everything which might affect it. But still did not work.
Then I've tried to check it with empty /var/lib/docker again:
root@x:/home/onorua# systemctl stop docker
root@x:/home/onorua# mv /var/lib/docker /var/lib/docker.backup
root@x:/home/onorua# systemctl start docker
root@x:/home/onorua# docker run -i -t busybox /bin/sh
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
f810322bba2c: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:97473e34e311e6c1b3f61f2a721d038d1e5eef17d98d1353a513007cf46ca6bd
Status: Downloaded newer image for busybox:latest
docker: Error response from daemon: open /var/lib/docker/overlay/4ea00fd374b275348b51861d7215b81cc78b65dbae7f751068d3e719a6414ff0-init/merged/etc/hosts: operation not permitted.
See 'docker run --help'.

You see, at the very beginning it was working, and now when I've did the same - it doesn't any more. I run out of ideas...
One more interesting thing:
root@x:/home/onorua# docker save -o skype.image skype
Error response from daemon: unexpected EOF

the unexpected EOF could be if something went wrong during the migration from docker 1.9 to 1.10. I don't think there's a way to recover from that if that image is actually damaged

okay, I've removed everything from /var/lib/docker but it still doesn't work each second time. Can we debug it somehow to actually see what is wrong? Just let me know what to do, and I'll try my best

I have a similar issue after updating my kernel to 4.5-rc7 from 4.4.4. I'm also using the overlay driver.
docker: Error response from daemon: open /var/lib/docker/overlay/bb3879d94740c3145693cc152b1c0795a45de3c27d5f4842867618da48f51601-init/merged/dev/console: operation not permitted.

Once I rolled back to linux 4.4.4 the issue was gone

Thanks @BlackIkeEagle; based on the above this sounds like a kernel issue to me; I'll label it as that for now, but any input is appreciated

Same here, I've just upgraded to 4.5.0 final yesterday from mainline (Ubuntu 15.10) and now I'm getting this at the beginning of our build:
ERROR: Service 'base' failed to build: open /var/lib/docker/overlay/09ea86c423444f73de0962d9feb1dd59e68a3d9d598d97e11b5d1ca37769e9ff-init/merged/dev/console: operation not permitted
So, it might indeed be something new in the kernel that Docker needs to handle, or a kernel bug...

Same here:
First time i revealed this issue on 4.4.1 kernel, latest working version is 4.4.0

Fixed in 4.4.6 here (debian linux kernel).
A few overlay (ovl) fixes went in upstream. Here they did the job.

@prahal could you point a patch?

This LKML thread might be helpful: https://lkml.org/lkml/2016/3/10/682

I have similar problem on (.../merged/.dockerinit: operation not permitted) with kernel 4.5 while everything works as expected when I only switch it to 4.4.5. Docker version 1.10.3.

According to: https://lkml.org/lkml/2016/3/14/274 there is a patch present. I've checked and it was not merged into mainline yet. There is nothing docker can do about it. For some reason overlayfs on ext4 treated by kernel as "encrypted" volume in new kernels.

This could only happen if the EXT4_ENCRYPT_FL flag is set.  (I assume
you weren't actually trying to use ext4 encryption.)  The flag can't
be set using the FS_IOC_SETFLAGS ioctl.  It can only be set using
EXT4_IOC_SET_ENCRYPTION_POLICY.

So, I'm going to close this for now, as patch is on the way.

Thanks for the heads-up @onorua!

I confirm that the issue is not reproducible in kernel 4.5.2 anymore

I can confirm that upgrading to linux-image-amd64 4.5.0-2-amd64 (now in testing) on Debian fixes the issue.


NullReferenceException:in Xamarin forms (iOS)

Error Log:
{System.NullReferenceException: Object reference not set to an instance of an object
at Xamarin.RangeSlider.Forms.RangeSliderRenderer.OnElementPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs e) [0x0031a] in <69b22edaf90846f898d4e87ca8cc9844>:0

when to come back from that slider page this error will be arise.
I am using Xamarin Forms (V 4.0) , Package (v 1.0.1) test in Iphone Xr iOS 12.2)

Do you have a sample app which reproduces the problem?

@hirenvyas I had same issue in Xamarin.Forms 4, because Control can be null.
I solved it by ovverriding RangeSliderRenderer.OnElementPropertyChanged method.
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
	if (Control == null)
	{
		return;
	}

	base.OnElementPropertyChanged(sender, e);
}

I have also created pull request #160 for this issue.

Deployed in v1.0.2
Thanks @alxlnk


Support retrying on a different cluster

Retry producer can be configured to use a different cluster but retry consumer cannot. (shares the consumer with the original one)
While this is saves resources in most cases, it prevents enabling retry feature on a cluster you can't freely create topics on.

Yeah.. I know few users who've tried to do that and turns out it can't.
While the needs of this feature is totally understandable, as currently decaton uses one consumer to consume both the original topic and the retry topic, separating consumer instance for these will be non-trivial change.
As a workaround, I think you can create and run a decaton subscription for the retry topic besides the original subscription that consumes the original topic and produces retry tasks to the another touchable cluster. Would it be inconvenient?

if retry is configured, it will start a consumer on the wrong cluster; and the update metadata request will last forever due to #118

Ugh, that's true. Then solution here would be either one of:

Decaton supports retry topic in a different cluster or
#118  + option to disable retry "consumer" in a subscription


Philio PSR03-B remote needs compat flags to interview correctly and be usable

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?
NO, my problem is NOT within Home Assistant or the ZWave JS integration
Is your problem within ZWaveJS2MQTT?
NO, my problem is NOT within ZWaveJS2MQTT
Checklist

[X] I have checked the troubleshooting section and my problem is not described there.

[X] I have read the changelog and my problem was not mentioned there.

Describe the bug
What causes the bug?
As far as I can tell, the device is just a little dumb during interview, and poorly implemented by only using Basic CC Set.
What do you observe?
These remotes are 'scene controllers' with two operating modes, one is Simple AV Control, and the second, 'Lighting control', which sends a Basic Set command to devices in each button's respective association group (groups 2-9 for buttons 1-8 respectively). As the former isn't implemented the only useful method is the latter.
I've noticed two issues with the lighting group/basic set mode.
I'm trying to use the remotes as generic remotes that Home Assistant can respond to button presses with.
By adding the controller to each association group 2-9, and setting each 'Lighting Group x: Basic Set Value' config value to a different number, then each button press simply sends a different number Basic CC Set to the controller. This is the only effective way to use these remotes with a controller as far as I can gather.
Issue 1 - when these remotes are interviewed, they fail to report support for Basic CC. In the logs I see eg. -

2022-04-20T04:17:03.888Z CNTRLR [Node 013] Interviewing Basic...
2022-04-20T04:17:03.888Z CNTRLR » [Node 013] querying Basic CC state...
...snip...
2022-04-20T04:17:04.966Z CNTRLR [Node 013] Timed out while waiting for a response from the node (ZW0201)
2022-04-20T04:17:04.967Z CNTRLR [Node 013] No response to Basic Get command, assuming the node does not suppor
t Basic CC...

The remotes seem to go to sleep before answering Basic support. They always need two wakes to complete interview.
When this happens, things don't seem to populate through correctly end to end, ie. the number.remote_name_basic entity in Home Assistant never gets populated or updated. In zwavejs2mqtt when I press a button for the first time, a 'Basic v0' value section appears with the correct updates to currentValue, but things still don't flow through to HA.
I accidentally discovered that the remotes do successfully report Basic CC support if I happen to be repeatedly pressing any of the remote buttons during interview, I suppose that keeps the remote awake at just the right moment. Forcing support for Basic in the device compat seems to work around the quirk though.
Issue 2 - is the fact that the device only ever uses Basic CC Set for its functionality. Given these get handled as reports they're hard to handle in HA. Setting treatBasicSetAsEvent: true in compat to trigger events instead allows the device to work easily as a remote.
What did you expect to happen?
Device reports its functions successfully, and can be used as a remote as intended
Steps to reproduce the behavior:

Interview remote node
Wake up remote with its wake button combo. It starts interviewing but stops and sleeps again. It always requires two wakes to complete interview
Basic CC won't be discovered properly, resulting in it not reporting to HA
Interview remote node again, waking twice as before but mash normal remote buttons repeatedly throughout.
Basic CC will be discovered properly. Button presses can be automated on now by watching the Basic currentValue, but pressing the same button in a row won't be possible. Needs events instead.

Device information
https://devices.zwave-js.io/?jumpTo=0x013c:0x0008:0x001d:0.0
Manufacturer: Philio
Model name: PSR03-B
Node ID in your network: 13, 14, 15, 16
I believe the PSR03-A will probably need the same workarounds, it's a two button version of the same thing, but don't have one to test. (PSR03-C won't though, it's only a panic button)
How are you using node-zwave-js?

[ ] zwavejs2mqtt Docker image (latest)
[ ] zwavejs2mqtt Docker image (dev)
[ ] zwavejs2mqtt Docker manually built (please specify branches)
[ ] ioBroker.zwave2 adapter (please specify version)
[X] HomeAssistant zwave_js integration  (please specify version)
[ ] pkg
[ ] node-red-contrib-zwave-js (please specify version, double click node to find out)
[ ] Manually built from GitHub (please specify branch)
[X] Other (please describe)

Which branches or versions?
version:
I use Z-Wave JS to MQTT community addon (currently 0.38.0 using the below) as driver to the Z-Wave JS HA integration
zwavejs2mqtt 6.7.2
zwave-js 9.0.2
Did you change anything?
yes (please describe)
If yes, what did you change?
I've added compat flags to a device override file to test the fixes and they work well:
        "compat": {
                "treatBasicSetAsEvent": true,
                "commandClasses": {
                        "add": {
                                // The device times out when interviewing and doesn't correctly
                                // report it supports Basic CC, so ensure it gets added
                                "0x20": {
                                        "isSupported": true,
                                        "version": 1
                                }
                        }
                }
        },

Did this work before?
No, it never worked anywhere
If yes, where did it work?
No response
Attach Driver Logfile
zwavejs_2022-04-20.log normal interview and a few button presses
zwavejs_2022-04-20-mashing.log interview while mashing buttons
zwavejs_2022-04-20-compat.log after adding compat flags and a few button presses

Can you test again with just treatBasicSetAsEvent set to true?
This flag should force-add support for the Basic CC and prevent it from being removed during the interview (like in your log snippet above).

Gotcha.
Yep, it seems to all work well with only treatBasicSetAsEvent: true

@zwave-js-bot add compat flag to 0x013c:0x0008:0x001d
// The device uses Basic Set to indicate pressed buttons in Lighting Control Mode
"treatBasicSetAsEvent": true

Looking at the manual I'm assuming the -A variant works the same way.
@zwave-js-bot add compat flag to 0x013c:0x0008:0x0026
// The device uses Basic Set to indicate pressed buttons in Lighting Control Mode
"treatBasicSetAsEvent": true


Organization of lattice element parameters.

There is the question as to how to organize lattice element parameters. I propose a hierarchical structure (much like OpenPMD). At the top level there can be groups like MagMultipole, ElecMultipole, RF, Bend, Alignment, etc. All names should be case sensitive.  My inclination is to use Upper camel case for top level names.
A dot . (alternatively this could be a slash /) can be used as a separator between levels. For example, Bend.angle, Bend.e1, RF.frequency, etc. My inclination is to use lower case for the second level names.
There may be parameters that are so unique that there are no other parameters to naturally group them with. In this case, these parameters can be left ungrouped. Examples may be the element length and the element name. The length could be represented by L, length or some such and the name by Name or name.
Thoughts?

I like it. I would vote for the dot rather than slash.


E-Mail Address Validation on https://www.rohannagar.com/jmail/ broken

E-Mail Address Validation on https://www.rohannagar.com/jmail/ seems broken, even<EMAIL_ADDRESS>gives The email address is invalid.

Thanks for opening this issue! You are correct that the website is broken. I have a backend API that was deployed on Heroku, and it appears that the Heroku free tier is now gone, so my server is down.
I will need to set up a new one on AWS or something similar. Will prioritize this work.

Thank you very much! 👍

@PascalSchumacher I have created a new backend for the JMail API on AWS, and updated the website. The online validation should be working again now.
Thank you for your patience!

Thank you very much! 👍


Add Shift + Click shortcut for glider

On Ctrl + Click, insert a glider centered on the target cell. On Shift + Click, insert a pulsar. This sounds like a fun idea. Might work the best on a empty board, but we can also look into keeping it general. There are crates to pull in the listening functions for key presses in JavaScript, but we can also just do it completely in JavaScript (easier), because the toggle_cell method is exposed to the WASM glue layer by design.

We'll limit the keyboard shortcuts to the glider pattern for now, because the pulsar is hard to catch on mobile and takes up a lot of space on the grid. Once the grid is variable height and width, we may want to look into it again.


Doesn't run on OpenBSD

What I did:
$ git clone https://github.com/hypatia-engine/hypatia.git
$ cd hypatia
$ git checkout -b develop origin/develop
$ cd demo
$ python2.7 game.py

Then I get this
Traceback (most recent call last):
  File "game.py", line 35, in <module>
    scene = game.Scene.from_tmx_resource('debug')
  File "/usr/local/lib/python2.7/site-packages/hypatia/game.py", line 269, in from_tmx_resource
    human_player = cls.create_human_player(tmx.player_start_position)
  File "/usr/local/lib/python2.7/site-packages/hypatia/game.py", line 239, in create_human_player
    hat = animations.Walkabout('hat')
  File "/usr/local/lib/python2.7/site-packages/hypatia/animations.py", line 335, in __init__
    resource = util.Resource('walkabouts', directory)
  File "/usr/local/lib/python2.7/site-packages/hypatia/util.py", line 72, in __init__
    with zipfile.ZipFile(zip_path) as zip_file:
  File "/usr/local/lib/python2.7/zipfile.py", line 756, in __init__
    self.fp = open(file, modeDict[mode])
IOError: [Errno 2] No such file or directory: 'resources/walkabouts/hat.zip'

I think this problem is more general than OpenBSD. I believe I have seen this error while testing on my Windows machine. I have another computer to test things out, which will help me rule something out.
It shouldn't even be requesting hat.zip... if you look at 239 in game.py in the develop branch, it's definitely not hat = animations.Walkabout('hat').

Closing this. Problem was on my end. I still had the older version of hypatia installed. Removed it and installed this one cleanly and it works fine.


Port to main: Change TxBuilder so it has access to the whole TxBodyContent instead …

…of just the inputs.
Add some utility functions to index into mints and withdrawls.

ping


Toast or Alert Controllers throw an error when user is offline

Bug Report
Ionic version:

[x] 4.0
Current behavior:

Toast or Alert controllers cannot be used when there is not connectivity. I want to display a toast message when the user goes offline:
public async showOffline() {
const toast: any = await this.toastCtrl.create({
  message: "You are OFFLINE",
  duration: 5000
});
await toast.present();

}
This works fine online but as soon as I got offline I get an error.
This happens in the browser.
Expected behavior:

Toast message is displayed in the browser.
Steps to reproduce:

Create a method to display toast:
public async showOffline() {
const toast: any = await this.toastCtrl.create({
  message: "You are OFFLINE",
  duration: 5000
});
await toast.present();

}
Detect when user is offline:
this.connectionService.monitor().subscribe(isConnected => {
this.log.debug("isConnected", isConnected);
if (!isConnected) {
this.alertService.showOffline();
this.online = false;
} else {
this.online = true;
}
});
I'm using this package: ng-connection-service
Related code:

this.connectionService.monitor().subscribe(isConnected => {
this.log.debug("isConnected", isConnected);
if (!isConnected) {
this.alertService.showOffline();
this.online = false;
} else {
this.online = true;
}
});
.....
public async showOffline() {
const toast: any = await this.toastCtrl.create({
  message: "You are OFFLINE",
  duration: 5000
});
await toast.present();

}
Other information:

Stack trace:
13:27:55,919 EMPOWER isConnected [false]
bootstrap:145 GET http://localhost:8100/0.js net::ERR_INTERNET_DISCONNECTED
requireEnsure @ bootstrap:145
webpackAsyncContext @ ..entry.js$ include: .entry.js$ namespace object:810
o @ ionic.core.js:6
t.s @ ionic.core.js:9
lt @ ionic.core.js:9
(anonymous) @ ionic.core.js:9
v @ ionic.core.js:9
(anonymous) @ ionic.core.js:9
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391
onInvoke @ core.js:17289
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:390
push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:150
(anonymous) @ zone.js:889
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:423
onInvokeTask @ core.js:17280
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:422
push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:195
drainMicroTaskQueue @ zone.js:601
push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:502
invokeTask @ zone.js:1744
globalZoneAwareCallback @ zone.js:1770
bootstrap:145 GET http://localhost:8100/158.js net::ERR_INTERNET_DISCONNECTED
requireEnsure @ bootstrap:145
webpackAsyncContext @ ..entry.js$ include: .entry.js$ namespace object:810
o @ ionic.core.js:6
t.s @ ionic.core.js:9
lt @ ionic.core.js:9
(anonymous) @ ionic.core.js:9
v @ ionic.core.js:9
(anonymous) @ ionic.core.js:9
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391
onInvoke @ core.js:17289
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:390
push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:150
(anonymous) @ zone.js:889
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:423
onInvokeTask @ core.js:17280
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:422
push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:195
drainMicroTaskQueue @ zone.js:601
push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:502
invokeTask @ zone.js:1744
globalZoneAwareCallback @ zone.js:1770
core.js:15714 ERROR Error: Uncaught (in promise): Error: Loading chunk 0 failed.
(error: http://localhost:8100/0.js)
Error: Loading chunk 0 failed.
(error: http://localhost:8100/0.js)
at HTMLScriptElement.onScriptComplete (bootstrap:133)
at HTMLScriptElement.wrapFn (zone.js:1332)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
at Object.onInvokeTask (core.js:17280)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
at ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (zone.js:498)
at invokeTask (zone.js:1744)
at HTMLScriptElement.globalZoneAwareCallback (zone.js:1770)
at HTMLScriptElement.onScriptComplete (bootstrap:133)
at HTMLScriptElement.wrapFn (zone.js:1332)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
at Object.onInvokeTask (core.js:17280)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
at ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (zone.js:498)
at invokeTask (zone.js:1744)
at HTMLScriptElement.globalZoneAwareCallback (zone.js:1770)
at resolvePromise (zone.js:831)
at resolvePromise (zone.js:788)
at zone.js:892
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
at Object.onInvokeTask (core.js:17280)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
at drainMicroTaskQueue (zone.js:601)
at ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (zone.js:502)
at invokeTask (zone.js:1744)
Ionic info:

Ionic:
ionic (Ionic CLI)             : 4.10.1 (/usr/local/lib/node_modules/ionic)
Ionic Framework               : @ionic/angular 4.0.0
@angular-devkit/build-angular : 0.12.4
@angular-devkit/schematics    : 7.2.4
@angular/cli                  : 7.2.4
@ionic/angular-toolkit        : 1.3.0
System:
NodeJS : v8.11.4 (/usr/bin/node)
npm    : 6.7.0
OS     : Linux 4.19

Same problem here, did you manage to fix it?
I have the Toast on a Service and call the public method to show the toast from one component.

This issue happens only when you are offline, my guess is that is an issue with most of the Ionic controllers and may be related to lazy loading.

Thanks for the issue! If this is still an issue in latest, could you provide a repository or a minimal amount of easy to follow steps to reproduce? Thanks!

@brandyscarney  the code in the description is the minimal amount, it is quite easy to reproduce. It is described in the ticket

Just ran into this.  Seems like it is caused by trying to use Ionic components in error messages/dialogs when there are network failures.  That triggers the error because Ionic can't reach over the network to dynamically load the component.
Is there any way to force Ionic to load a subset of it's components early so we can use Ionic for network error messages?

I am running into a similar error. I want to achieve the same functionality, but I don't get an error message. this.toastController.create() simply does not return a promise.

The cause of the problem is that toast is lazy loaded and it's not called until after you've disconnected, if you're testing this with livereload you'll definitely experience this issue.  If you want to confirm this, trigger a toast event from the same controller prior to switching offline.
I don't know how to NOT lazy load a component — any help would be appreciated.

I am also running into a similar issue. Whenever I try to use the AlertController / Component without an internet connection it raises me an error. I have tested with emulators and devices, and the error still persists.
Is there any update on this issue? Or any other way that we could bypass this problem? I know we could use the native javascript 'alert' function, but is not the same as the one Ionic provides.
Best regards,
Bruna.

@brurubio I haven't found a way around it.  What I have started doing is removing Ionic controllers and components as much as possible from our PWA.  In the case of Alerts, I am replacing it with code that uses Angular Material since that will keep working in offline.  I have also had to remove all usage of ion-icon from our code base because it has the same issue.  I am replacing those with mat-icon with embedded svgs.  Definitely a pain, but it is the only way I see right now to ensure a PWA can keep working when the network fails for a bit.

Any updates on this? Like others mentioned, I am also having this issue when using the ToastController to display a network unavailable message when offline. If it helps any, I am using Capacitor's Network API to detect if offline. Thanks.

@jasonruesch my work around was to have toast show a message when the app starts up. That way the toastController is loaded. When I go offline it loads properly no problem.

I used a similar workaround as @pvandrunen but creating a toast to present without presenting it successfully loads the toast controller for when the app goes offline.

In your controller's constructor, add:
  constructor(public toastController: ToastController) {
    // HACK: fix toast not presented when offline, due to lazy loading the toast controller.
    // Can be removed once #17450 is resolved: https://github.com/ionic-team/ionic/issues/17450
    this.toastController.create({ animated: false }).then(t => { t.present(); t.dismiss(); });
  }

present() -> dismiss() is faster than duration: 1, and with no animated, it's not visible at all..
@raparri01  create() alone is not enough, still one chunk missing.

I have the same issue. Any update, please? Please see the full error here with Ionic 4.6.2
https://stackoverflow.com/questions/57164430/ionic-4-and-toaster-with-network-capacitor-is-not-working-pwa-app-offline

@oori Thanks it works.

Thanks for the issue. All Ionic components are lazy loaded to improve initial render time. If you need to account for offline network conditions, you should consider preloading the components needed by placing them inside of ion-app (with a display: none).
Example of a preloaded toast: https://codepen.io/liamdebeasi/pen/pojZqWX
Example of a non-preloaded toast: https://codepen.io/liamdebeasi/pen/ZEbjVXE
In each example, try loading the CodePen then turning Wi-Fi off and clicking the "Show Toast" button. In the non-preloaded example you should get an error, but in the pre-loaded example the toast should display properly.
I am going to close this as this is not a bug in Ionic Framework. Thanks!

@liamdebeasi This is awesome. Thanks!


Add inline tables support to the toml parser

Description:
Inline table should be able to read as a table arrays.
[[platform.java11.dependency]]
path = "/user/sameera/libs/toml4j.jar"
artifactId = "toml4j"
version = "0.7.2"
groupId = "com.moandjiezana.toml"

[platform.java11]
dependency = [{path = "/user/sameera/libs/toml4j.jar", artifactId = "toml4j", version = "0.7.2", groupId = "com.moandjiezana.toml"}]

Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Need this for new Dependecies.toml implemantation:
[[package]]
org = "ballerinax"
name = "covid19"
version = "0.7.0"
scope = "testOnly"
transitive = true  # default value is false
repository = "local"
dependencies = [
	{org = “ballerina”, name = “http”},
	{org = “ballerina”, name = “io”}
]

Above PR adds the inline table support for the toml parser. However for Dependencies.toml design we need to make sure that line does not exceed one line because its discouraged by toml spec.
From toml spec
https://toml.io/en/v1.0.0#inline-table

Inline tables are intended to appear on a single line. A terminating comma (also called trailing comma) is not permitted after the last key/value pair in an inline table. No newlines are allowed between the curly braces unless they are valid within a value. Even so, it is strongly discouraged to break an inline table onto multiples lines. If you find yourself gripped with this desire, it means you should be using standard tables.


UpVer: 1.0.1

What needs occurred
also refer to an issue
What you changed (What reviewers have to see)
list them ALL
also refer an issue of development declaration
Description
Write something reviewers may be difficult to understand without explanation
Check list

[ ] Code styles confirmed
[ ] Test confirmed

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

Comparison is base (5bcc4c0) 93.39% compared to head (9fad74a) 93.39%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##              dev      #69   +/-   ##
=======================================
  Coverage   93.39%   93.39%
=======================================
  Files          27       27
  Lines         666      666
=======================================
  Hits          622      622
  Misses         44       44

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


Fix fluentd-gcp image

To keep fluentd 0.12

This change is

@igorpeshansky Could you please take a look?

@crassirostris Looks fine, but I'm curious as to what didn't work with fluentd 0.14... Are you running into https://github.com/fluent/fluentd/issues/1555, or are there other issues?

@igorpeshansky @type and a change in one of the filter plugins broke our config and this patch is required for a cherry-pick into an old release

Ah, makes sense, thanks. LGTM, then. :shipit:

Thanks!

@igorpeshansky BTW, version with 0.14 has a larger memory footprint. Where 0.12 works without any issues, 0.14 gets OOM-killed


Session ID could be guessable

I notice here: https://github.com/adonisjs/adonis-framework/blob/c523b591bacb578057506214afdf4e4bdcd3f4ab/src/Session/SessionManager/index.js#L278 you are using uuid.v1 which is unique but could be guessable.
Would it make more sense to use v4 which is more randomized and thus unguessable? It may have a slightly higher chance of collision, but will still never happen.
https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_.28date-time_.26_MAC_address.29

@nrempel Are there are any downsides on a guessable session id?

If an attacker creates a a cookie with a guessed session id, could that give the attacker access to a user's account (the owner of the session)?

No the value of the cookie matters, which is encrypted and signed with a SALT.. so getting the value right is difficult.
When cookie's values are tampered, they return null

That is the case with the cookie driver (where information is stored in the cookie).
But in the case of the File driver (or a Redis driver in the future), it simply uses the sessionId to lookup the data from the stored session.
For example: https://github.com/adonisjs/adonis-framework/blob/c523b591bacb578057506214afdf4e4bdcd3f4ab/src/Session/Drivers/File/index.js#L102
Unless I'm missing something. Thanks for taking the time to look at this!

Yeah in that case the session id itself get's signed and encrypted before it is sent to the browser.

Ok, I see now that the sessionId is signed just the same.
https://github.com/adonisjs/adonis-framework/blob/c523b591bacb578057506214afdf4e4bdcd3f4ab/src/Session/SessionManager/index.js#L43
Thanks again.


Check support for correct Python version in ms5837.py

It has some trailing 'l's on lines 183 and 184 which are not supported by Python 3.6.
On lines 4, 86, 93, and 97, it has Python 2 style print statements.
Should check which Python version is actually used by ROS, and fix the above if needed.

ROS Kinetic uses Python 2.7, so there is no need for Python 3 compatability.
See REP3.


Get Data from the Internet

URL of codelab:
https://developer.android.com/codelabs/basic-android-kotlin-compose-getting-data-internet?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-5-pathway-1%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-getting-data-internet#7
Specify the language of the codelab if it is not English:
In which task and step of the codelab can this issue be found?
8
Describe the problem
Following the instructions in the step, upon attempting to run the application, it crashed with the following (root cause) exception:
Caused by: kotlinx.serialization.SerializationException: Serializer for class 'MarsPhoto' is not found. Please ensure that class is marked as '@Serializable' and that the serialization compiler plugin is applied. at kotlinx.serialization.internal.PlatformKt.serializerNotRegistered(Platform.kt:31) at kotlinx.serialization.SerializersKt__SerializersJvmKt.serializer(SerializersJvm.kt:77) at kotlinx.serialization.SerializersKt.serializer(Unknown Source:1) at kotlinx.serialization.SerializersKt__SerializersJvmKt.serializerByJavaTypeImpl$SerializersKt__SerializersJvmKt(SerializersJvm.kt:113) at kotlinx.serialization.SerializersKt__SerializersJvmKt.serializer(SerializersJvm.kt:76) at kotlinx.serialization.SerializersKt.serializer(Unknown Source:1) at com.jakewharton.retrofit2.converter.kotlinx.serialization.Serializer.serializer(Serializer.kt:21) at com.jakewharton.retrofit2.converter.kotlinx.serialization.Factory.responseBodyConverter(Factory.kt:26) at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:362) at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:345) at retrofit2.HttpServiceMethod.createResponseConverter(HttpServiceMethod.java:124) ... 240 more
Steps to reproduce?
Not applicable.
Versions
Android Studio version:
2023.2.1 Patch 2
API version of the emulator:
33
Additional information
Include screenshots if they would be useful in clarifying the problem.
Really not sure if this is me or just some weird combination of versions or something else - I'm sure it worked for you when you wrote the course.  I did some searching and wiggled around this issue by including the plugin at the project level, as well as the (as per your instruction) module level.  HTH.  (Apologies if this ends up wasting your time.)

Hey, closing this as the issue has gone away with some lib upgrades.  I think specifically this stopped happening when I upgraded to 1.9.10 of org.jetbrains.kotlin.plugin.serialization.  Sorry for the bum steer.


WEC-Eng.zip: tokens_number incorrect for several mentions

Hi Alon,
just wanted to let you know that the tokens_number field is incorrect for several mentions in the train and test splits of WEC-ENG.zip. Below is a list of all mentions where the mention_head token is not part of the tokens referenced by tokens_number (i.e. len([i for i in tokens_number if mention_context[i] == mention_head]) == 0). It looks like a problem with sentence tokenization.
train

mention_id
tokens_str
tokens_number
tokens_str_detokenized

24667
22. July attacks in 2011
[2, 3]
22 .

69138
2019 Kerrang! Awards
[5, 6, 7]
2019 Kerrang !

69139
Kerrang! Awards
[7, 8]
Kerrang !

69140
Kerrang! Award
[130, 131]
Kerrang !

69142
2019 Kerrang! Awards
[62, 63, 64]
2019 Kerrang !

69143
Kerrang! Awards
[114, 115]
Kerrang !

69144
Kerrang! Award
[6, 7]
Kerrang !

69145
2019 Kerrang! Awards
[102, 103, 104]
2019 Kerrang !

69146
Kerrang! Awards
[16, 17]
Kerrang !

69147
Kerrang! Award
[244, 245]
Kerrang !

69148
Kerrang! Award
[318, 319]
Kerrang !

69149
2019 Kerrang!  Live in Istanbul
[58, 59, 60]
Girl Power !

105432
Girl Power! Live in Istanbul
[102, 103, 104]
Girl Power !

105433
Girl Power! Live in Istanbul
[188, 189, 190]
Girl Power !

105436
Girl Power! Live in Istanbul
[61, 62, 63]
Girl Power !

112575
Kerrang! Awards
[95, 96]
Kerrang !

112576
Kerrang! Awards 2012
[125, 126]
Kerrang !

112577
Kerrang! Awards 2012
[232, 233]
Kerrang !

119763
Radio Disney Live! 2001 World Tour
[48, 49, 50, 51]
Radio Disney Live !

119764
Radio Disney Live! 2001 World Tour
[116, 117, 118, 119]
Radio Disney Live !

119948
2009 Premios Oye! Awards
[429, 430, 431, 432]
2009 Premios Oye !

124830
Kerrang! Awards 2007
[47, 48]
Kerrang !

124831
Kerrang! Awards 2007
[144, 145]
Kerrang !

test

mention_id
tokens_str
tokens_number
tokens_str_detokenized

102441
Oops!... I Did It Again Tour
[9, 10]
Oops !

102444
Oops!... I Did It Again Tour
[725, 726]
Oops !

102445
Oops!... I Did It Again Tour
[61, 62]
Oops !

102450
Oops!... I Did It Again Tour
[8, 9]
Oops !

tokens_str_detokenized is the output of " ".join(mention_context[i] for i in tokens_number).

Quick fix for the mentions above; a mapping from mention_id to fixed tokens_number:
{
    "24667": [2, 3, 4, 5, 6, 7],
    "69138": [5, 6, 7, 8],
    "69139": [7, 8, 9],
    "69140": [130, 131, 132],
    "69142": [62, 63, 64, 65],
    "69143": [114, 115, 116],
    "69144": [6, 7, 8],
    "69145": [102, 103, 104, 105],
    "69146": [16, 17, 18],
    "69147": [244, 245, 246],
    "69148": [318, 319, 320],
    "69149": [110, 111, 112, 113],
    "95589": [48, 49, 50, 51, 52, 53],
    "95592": [6, 7, 8, 9, 10, 11],
    "95601": [142, 143, 144, 145, 146, 147],
    "95603": [11, 12, 13, 14, 15, 16],
    "105430": [58, 59, 60, 61, 62, 63],
    "105432": [102, 103, 104, 105, 106, 107],
    "105433": [188, 189, 190, 191, 192, 193],
    "105436": [61, 62, 63, 64, 65, 66],
    "112575": [95, 96, 97],
    "112576": [125, 126, 127, 128],
    "112577": [232, 233, 234, 235],
    "119763": [48, 49, 50, 51, 52, 53, 54],
    "119764": [116, 117, 118, 119, 120, 121, 122],
    "119948": [429, 430, 431, 432, 433],
    "124830": [47, 48, 49, 50],
    "124831": [144, 145, 146, 147],
    "102441": [9, 10, 11, 12, 13, 14, 15, 16],
    "102444": [725, 726, 727, 728, 729, 730, 731, 732],
    "102445": [61, 62, 63, 64, 65, 66, 67, 68],
    "102450": [8, 9, 10, 11, 12, 13, 14, 15]
}

Hi @mbugert,
Thank you for letting me know! and also for sending the repaired tokens.
I will update once fixed.

Hi @mbugert, I've fixed the issue, fix was needed only in files, code for generation WEC was find (issue was due to python conversion for "event-coref" project and using a different python tokenizer).
Thanks again for opening this issue.


School roster: Add minimal download CSV button

Who is this PR for?
New Bedford MS folks
What problem does this PR fix?
We added this back in 2016 in a particular format as the first way to export to PowerBI, and then removed it in December 2016.  We noticed in January 2018 that it wasn't here anymore, but didn't take action since no one was missing it :)  I think we didn't immediately re-add it since the old way we used in Healey originally wasn't fast enough for a larger school like Normandin.  This past June (#2507) I optimized how this works for a districtwide list, but that was only for project leads so includes things like student address and race that we'd want to scrub from an export on the overview page.
What does this PR do?
This adds CSV download, deferred to user action.  We'll deploy and see if it works well enough with large schools, or whether we need to swap to the server side.  This doesn't download the exact same data as is shown in the UI; this PR is just aimed at seeing if this works well enough with larger schools.
Also separately updates the server-side export (only exposed to project leads) to use a safelist rather than grabbing all fields on the model.
Screenshot (if adding a client-side feature)

Checklists
Which features or pages does this PR touch?

[x] School Overview

Does this PR use tests to help verify we can deploy these changes quickly and confidently?

[x] Included specs for changes

selfie


Key Vault mgmt commands

Key Vault create
$ az keyvault create --help

Command
    az keyvault create

Arguments
    --location -l          [Required]: Location.
    --name -n              [Required]: The primary resource name.
    --resource-group -g    [Required]: Name of resource group.
    --enabled-for-deployment         : Property to specify whether Azure Virtual Machines are
                                       permitted to retrieve certificates stored as secrets from the
                                       key vault.
    --enabled-for-disk-encryption    : Property to specify whether Azure Disk Encryption is
                                       permitted to retrieve secrets from the vault and unwrap keys.
    --enabled-for-template-deployment: Property to specify whether Azure Resource Manager is
                                       permitted to retrieve secrets from the key vault.
    --no-self-perms                  : If specified, don't add permissions for the current user in
                                       the new vault.
    --sku                            : SKU details.  Allowed values: premium, standard.  Default:
                                       standard.
    --tags

Key Vault list
$ az keyvault list --help

Command
    az keyvault list

Arguments
    --resource-group -g: Name of resource group.

Key Vault show
$ az keyvault show --help

Command
    az keyvault show

Arguments
    --ids              : ID of resource.
    --name -n          : The primary resource name.
    --resource-group -g: Name of resource group.

Key Vault delete
$ az keyvault delete --help

Command
    az keyvault delete

Arguments
    --ids              : ID of resource.
    --name -n          : The primary resource name.
    --resource-group -g: Name of resource group.

Key Vault update
$ az keyvault update --help

Command
    az keyvault update

Arguments
    --add              : Add an object to a list of objects by specifying a path and key value
                         pairs.  Example: --add property.list key=<value>.
    --ids              : ID of resource.
    --name -n          : The primary resource name.
    --remove           : Remove a property or an element from a list.  Example: --remove
                         property.list <index>.
    --resource-group -g: Name of resource group.
    --set              : Update an object by specifying a property path and value to set.  Example:
                         --set property1.property2=value.

Key Vault set policy
$ az keyvault set-policy  --help

Command
    az keyvault set-policy

Arguments
    --ids              : ID of resource.
    --name -n          : The primary resource name.
    --object-id        : A GUID that identifies the principal that will receive permissions.
    --perms-to-keys    : Permissions to keys.
    --perms-to-secrets : Permissions to secrets.
    --resource-group -g: Name of resource group.
    --spn              : Name of a service principal that will receive permissions.
    --upn              : Name of a user principal that will receive permissions.

Key Vault delete policy
$ az keyvault delete-policy  --help

Command
    az keyvault delete-policy

Arguments
    --ids              : ID of resource.
    --name -n          : The primary resource name.
    --object-id        : A GUID that identifies the principal that will receive permissions.
    --resource-group -g: Name of resource group.
    --spn              : Name of a service principal that will receive permissions.
    --upn              : Name of a user principal that will receive permissions.

Looking at the help output, there are some params that need help text. For example, I don't what on earth 'no-self-perms' is supposed to be. From the code it looks like it relates to the KeyVault permissions.

:clock1:

I've added more help text and updated the description for the PR to indicate the new help.

In reply to: 239268298 [](ancestors = 239268298)

@tjprescott Feedback addressed

LGTM. feel free to merge after have service principle and live id scenario tested.


Simplify output for nested chalk tags

Currently, nested chalk tags in a template reset and re‑specify everything, instead of just what needs to be modified for that level of nesting.
Code
chalk`{red  red {bold  red & bold } red again }`

Expected result:
\e[31m red \e[1m red & bold \e[22m red again \e[39m

Actual result:
\e[31m red \e[39m\e[31m\e[1m red & bold \e[22m\e[39m\e[31m red again \e[39m

See also:

https://github.com/mdn/browser-compat-data/pull/4265

Yes, that would be ideal, but it's not a big problem as the visual output is still correct.

There's somewhat a reason for this; dim and bold have the same exit code and thus added some complexity to the implementation IIRC.
Be careful that this doesn't slow everything down.

There's somewhat a reason for this; dim and bold have the same exit code and thus added some complexity to the implementation IIRC.
Be careful that this doesn't slow everything down.

@sindresorhus Is the issue still open?

⬇

⬆

I think this should be closed. Across all the terminal emulators that exist, with all of the different IDEs and whatnot that also try to implement this (jetbrains software, vscode, etc.) I think trying to be clever about this stuff is only going to hurt performance and break more people.
Further, I've yet to come across a case where the extra few bytes were really detrimental to performance or even on-the-wire sizes (and where completely disabling styled output wasn't also an option).
Thoughts @sindresorhus?

I agree. It's simply not worth the added complexity and risk of breakage.


Cannot deploy launchpad-100 if not the owner of subscription

I was classic service administrator, but not owner of subscription. Was getting permission error on tfstate storage account, which was fixed by adding roles as owner in subscription.  A validation script to develop for validating the pre-requisite in subscription before creating the launchpad.

@singh-rahul Even being an owner I'm getting an error too. Any idea how to solve this ?
Error: Error checking for existence of existing Container "tfstate" (Account "boqsstlevel0yodgp" / Resource Group "boqs-rg-launchpad-tfstates-yodgp"): containers.Client#GetProperties: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="AuthorizationPermissionMismatch" Message="This request is not authorized to perform this operation using this permission.\nRequestId:93b64880-301e-0042-5bf2-8c24b6000000\nTime:2020-09-17T12:58:24.3992341Z"

@xpillons The other reason could be datetime synchronization in Docker desktop on Windows machine. Try synchronizing the time in WSL with this command -  "sudo hwclock -s"

I was not in the ower role group while being an owner of the sub. I added myself the owner role and I can deploy now.


Add full examples of the events as sent by the POC

Reason for PR:
I wanted to include the full event examples we have from the POC so one can see the structure of an event when reading the spec.
Drawback with solution:
I am not sure though that the placing is good so please come with suggestions of where they should be placed.
Signed of by: Mattias Linnér<EMAIL_ADDRESS>

I would like to have a more settled discussion on top-level attributes vs. stuff inside data.

Thanks @m-linner-ericsson for this. Based on the discussion on in the WG, we are going to change the implementation.
Perhaps we could convert these to tables with example values instead?


Oren-Nayar roughness parametrization is not sufficiently clear

We say:

But the Oren-Nayar model  actually involves a parameter $\sigma$ which parametrizes the roughness, and we don't say exactly how this is related to the roughness parameter in our model.
I suggest we follow the approach from Mitsuba here:
        /* Conversion from Beckmann-style RMS roughness to
           Oren-Nayar-style slope-area variance. The factor
           of 1/sqrt(2) was found to be a perfect fit up
           to extreme roughness values (>.5), after which
           the match is not as good anymore */

        const Float conversionFactor = 1 / std::sqrt((Float) 2);

        Float sigma = m_alpha->eval(bRec.its).average()
            * conversionFactor;

So to be precise, we take
$$ \sigma = r/\sqrt{2} $$
where $r$ is the base_roughness in $[0,1]$. This is the scheme used in Arnold for example. If there are no objections, we can just specify the same relationship in OpenPBR.

Another good reference point for implementations of Oren-Nayar Diffuse is Open Shading Language, which is often followed by other shading languages when they need a standard reference.
Here's the language that we use to describe this in the various MaterialX implementations of Oren-Nayar Diffuse:

Based on the OSL implementation of Oren-Nayar diffuse, which is in turn based on https://mimosa-pudica.net/improved-oren-nayar.html.

https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/libraries/pbrlib/genglsl/lib/mx_microfacet_diffuse.glsl#L3

Arnold uses the model from that blog post too, but with the mapping described, rather than the one from the blog post which is:
$$\sigma = \pi r \ .$$
With that mapping, we found:

"The impact of this to the user is that only the portion diffuse_roughness in [0, 0.2] corresponds to a realistic Beckmann surface. For 80% of the parameter range, the model basically produces a nonlinear change in brightness that doesn't correspond to the underlying physics of the spiky surface and doesn't really buy the user anything but an unwanted change in diffuse color they need to correct for."

Hence the switch to $\sigma = r/\sqrt{2}$.
It seems like some more investigation is needed here to verify the best mapping. Also, I'm a bit uncomfortable using a non-peer-reviewed blog post as the source for the model (OK in an internal implementation perhaps, but not in a public specification), even though the results might be good. Maybe there is something equivalent in the published literature?

Here's the way that Open Shading Language references the blog post, with a clarification about which of the two implementations in the post is used:
// Simplified math from: "A tiny improvement of Oren-Nayar reflectance model"
// by Yasuhiro Fujii
// http://mimosa-pudica.net/improved-oren-nayar.html
// NOTE: This is using the math to match the original ON model, not the tweak
// proposed in the text which is a slightly different BRDF
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/35820fc99b3ad285308ce3ad0389ef84469ce929/src/testrender/shading.cpp#L472
So far, I'm not aware of any more formal way to reference this implementation, but I'd love to hear from others if they know one.

Just a few pertinent slides re. Oren-Nayar and its roughness parameter s vs. GGX+Smith and its α from Earl Hammon, Jr. in PBR Diffuse Lighting for GGX+Smith Microsurfaces

Is it out of the question at this point to consider alternative diffuse models that would mesh naturally with GGX?

Is it out of the question at this point to consider alternative diffuse models that would mesh naturally with GGX?

Indeed, we're discussing some such alternative models on Slack, with Eugene d'Eon. (His model is based on a generalization of Smith model beyond heightfield to a model of a "porous" medium with 3d structure, as far I understand).
From my point of view, the traditional Oren-Nayar model is not bad visually (and fairly simple and efficient, which is a plus), though it does suffer from some subtle artifacts and not-so-subtle darkening, both of which can be fixed though with some simple modifications (e.g. building on model of Fujii mentioned above).


Develop

Add standard EOF analysis for numpy.ndarray, pandas.DdataFrame and xarray.DataArray.

Codecov Report

Merging #2 (e9077a2) into main (36870ea) will increase coverage by 23.65%.
The diff coverage is 83.80%.

@@             Coverage Diff             @@
##             main       #2       +/-   ##
===========================================
+ Coverage   57.74%   81.40%   +23.65%
===========================================
  Files           5       15       +10
  Lines          71      371      +300
===========================================
+ Hits           41      302      +261
- Misses         30       69       +39

Impacted Files
Coverage Δ

xeofs/models/__init__.py
100.00% <ø> (ø)

xeofs/models/_eof_base.py
60.71% <0.00%> (ø)

xeofs/models/eof.py
48.14% <28.57%> (ø)

xeofs/xarray/eof.py
34.28% <34.28%> (ø)

xeofs/pandas/eof.py
36.36% <36.36%> (ø)

tests/models/test_array_transformer.py
100.00% <100.00%> (ø)

tests/models/test_eof.py
100.00% <100.00%> (ø)

tests/pandas/test_dataframe_transformer.py
100.00% <100.00%> (ø)

tests/xarray/test_dataarray_transformer.py
100.00% <100.00%> (ø)

xeofs/__init__.py
100.00% <100.00%> (ø)

... and 5 more

Continue to review full report at Codecov.

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


Add FAQ entry reg. what to do when the user is getting the "Überprüfen Sie die Gültigkeit Ihrer Zertifikate." notification

Where to find the issue
n/a
Describe the issue
There are many users on Twitter asking for what to do when they get the soon expiring notification for their certificates. The problem is not that the app shows that the certificate is expiring soon, but that the user does not know what the app means with "Gültigkeit ihrer Zertifikate". See https://twitter.com/fimedien/status/1527240307540123649?s=21&t=5ZyLNMDh7-BsnKm1DUcu0A, https://twitter.com/micwim/status/1527174192344584192?s=21&t=5ZyLNMDh7-BsnKm1DUcu0A & https://twitter.com/silkezie/status/1527165089933148160?s=21&t=5ZyLNMDh7-BsnKm1DUcu0A.
 Was bedeutet das?"
Additional information
I will (for sure) help the currently affected users on Twitter, however, I guess this question will arise more often in the next time, so it definitely makes sense to add a FAQ entry.
I could provide a PR, but I think this should be done by the team.

Internal Tracking ID: EXPOSUREAPP-12829

@Ein-Tim Stand by, we are preparing a FAQ. Thanks.

PR https://github.com/corona-warn-app/cwa-website/pull/2904

https://www.coronawarn.app/en/faq/results/#dcc_replacement_howto says:

so I guess the current advice is to wait (for CWA 2.23, which is not explicitly named).

Closing as implemented, see @MikeMcC399's comment above.


Training an Agent to play Chess using Different Algorithms

I want to be able to train a model on the Chess game environment using different Algorithms to compare and test performance as part of my research and experimentation for my extended essay.
I need some assistance and guidance as to how (and if) I can implement the PSRO_rn model (playing against itself in a competitive multi-agent scenario) and the A2C playing against a random opponent, to train these models, and save the models as well for later use.

I need some assistance and guidance as to how (and if) I can implement the PSRO_rn model (playing against itself in a competitive multi-agent scenario)

I'm quite sure that we do not have PSRO_{rn} implemented... @PaulFMMuller, can you confirm?

and the A2C playing against a random opponent, to train these models, and save the models as well for later use.

There are some examples of how to run policy gradients in here: https://github.com/deepmind/open_spiel/blob/master/open_spiel/python/algorithms/policy_gradient_test.py. E.g. you can replace one of the agents with a random agent in the list constructed on line 43. You will want to use a loss="a2c" (take a look at policy_gradient.py for documentation on the PG parameters).
Saving and reloading models is not something we many examples of in the code base, but should be doable in the usual way with Tensorflow. (Best bet is to look up some examples)
Hope this helps, let us know if you have any other questions!

Hi there !
We do have support for both PSRO_N and PSRO_rN - a fact we probably should underline more !
To run these, run PSRO with rectifier='rectified' (This will train each training strategy only against strategies it beats) and training_strategy_selector='rectified' (This will select all strategies with selection probability > 0 as starting point for training)
Hope this helps !
Paul

Thank you for your assistance; however, I am new to Open Spiel as a whole and I am completely unclear on how to actually use the framework and environments to train an agent (basic stuff).
Also @PaulFMMuller by setting rectifier='rectified' will this essentially place them in a competitive environment with each other? or does the model learn this itself while running.

Ah! ok, probably the best place to start before looking at any code is the paper: https://arxiv.org/abs/1908.09453. This will help provide some context on formalisms and lingo.
I gave a tutorial recently, it mostly covered just the basic API, but also useful: http://mlanctot.info/open_spiel-tutorial-kuleuven-mar11-2020.pdf
But probably the best advice if you want to know how to train agents is to look delve into the code; i.e. through and start playing with the examples, here: https://github.com/deepmind/open_spiel/tree/master/open_spiel/python/examples . E.g. there is a psro_v2_example.py, rl_example.py, single_agent_catch.py, breakthrough_dqn.py, tic_tac_toe_dqn_vs_qlearner.py, etc. If you don't find what you need in that examples directory, the tests are often good places to look because they often have simple example uses (such as the policy_gradient_test.py I pointed you to above).

I thought that the python examples provided used pre-trained models? (do correct me if I am wrong)
Also when I tried to run the breakthrough_dqn.py file it didn't work with the player parameters I provided to it.

No I don't think there are any that use pre-trained models as we are not storing any in the repos. The examples are intended to show example usage.
breakthrough_dqn.py may be out of date, we have not used it in a while. What's the error?

breakthrough_dqn.py still works on my end. Can you tell me what error you are getting?
Did you try an unsupported parameter? The supported ones are documented here: https://github.com/deepmind/open_spiel/blob/master/open_spiel/games/breakthrough.h (rows and columns)

Ah yes, I was using an unsupported parameter. I was trying to run it the same way mcts.py was run in the example as I was unclear as to how to use the file.
How do I go about training a model then? Could you provide any guidance?

How can I run the PSRO_rn model on breakthrough?

Have you looked at psro_v2_example?
You can run PSRO classic on chess using this command:
python3 python/examples/psro_v2_example.py --game_name=chess --meta_strategy_method=prd --oracle_type=DQN

You will need to comment out lines 277-288 because chess is too large to run exploitability.
There are lots of setting to play with. I strongly recommend going through the cose to understand what is goin on under the hood.
It may have trouble with small feed forward nets. If so, try something larger or use conv nets.

Also just moticed that the default learning rate for dqn is 0.01, that is likely too high for chess. Try 0.0001. You will almost certainly need to play with those, the defaults were tuned for small poker games.

Closing this for now since it's not an outstanding issue, but feel free to keep using the thread to ask questions!


Add cucumber documentation for class_spy and instance_spy

It's a short leap to guess that class_spy and class_double exist because double -> spy, however it would still be nice to have official cucumber documentation for this.

Hello @soulcutter. i'd be interested in contributing for this issue. can you give me some more info about it?

:wave: @LuanGB We have class level variants of our spys, but they are undocumented within our cucumber features (in features) which power our relish docs https://relishapp.com/rspec/rspec-mocks/v/3-9

Is this closed?
If not I would like to gain context over this.

This isn't closed, this issue is about improved documention for class_spys in the cucumber documentation.


[MM-49641] - System console setting to disable channel autocomplete

Summary
System console setting to disable channel autocomplete
API PR https://github.com/mattermost/mattermost-server/pull/22353
Demo video
https://www.loom.com/share/5b23a1494f234cc6a538c4af1aec873b
Fixes https://github.com/mattermost/mattermost-server/issues/22068
Release note
Adds system console setting to enable/disable channel autocomplete

Hello @gitstart,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

/e2e-test

Successfully triggered E2E testing!
GitLab pipeline | Test dashboard

Thanks! I'm going to close this one then


EKIRJASTO-108 Improve contrast in tab bar

What's this do?

User can see the icons and text in the tab bar more easily

the contrast was increased in tab bar
the selected tab stands out more clearly from the non-selected tabs

The appearance of both tab bar item icons and tab bar item titles were updated

only color changes were made, such as replacing the green icons with grey ones

Why are we doing this?

To improve app's accessibility and visual appearance

How should this be tested?

Test E-kirjasto app with device's normal and dark mode

New PR#78 replaces this PR.


ERR_SSL_CLIENT_AUTH_CERT_NEEDED

Hello!
I make request to https:########################
and get error
ERR_SSL_CLIENT_AUTH_CERT_NEEDED
In VisualStudio2015 i make this request and get good responce.
Thanks
Versions
App: <IP_ADDRESS>-stable
Chrome: 50.0.2661.94
Platform: Windows (10)
Steps to reproduce

I believe is Duplicate of #621

This is fixed by https://github.com/jarrodek/ChromeRestClient/commit/89973b258fe80f0bcc33814111917d6ef272617c