AsyncDeserializer

I'm considering extending serde to deserialize (and serialize) from a futures::io::AsyncRead (and AsyncWrite). Would it be enough to make an AsyncDeserializer, or is an AsyncVisitor also needed? I don't yet fully understand what the Visitor does, but since the method signatures take a value as input (at least for primitive types) it seems that reading from IO is already complete by the time Visitors are in play.

At that point you're probably better off just writing your own async_serde crate, as it will not really share anything with serde. Afaict you'll need your own Serialize and Deserialize traits, too, as everything will need to have async functions if it ever ends up invoking a Deserializer method that could perform an async operation (like reading from AsyncRead).

Afaict you'll need your own Serialize and Deserialize traits, too

You've pinpointed why I want to do this. I recently did exactly what you're suggesting. I made a bespoke async serialization library, derive macros and all, when I learned that serde couldn't accommodate async. When it works it works great, but it will never work for any library I don't control, because Rust doesn't permit implementing foreign traits on foreign types. I learned that, yes I can add hand-written serializers to the library where I define my trait, or fall back to blocking serde, but I shouldn't have to, and it flies in the face of separation of concerns.
I'll extend serde maintaining backward compatibility so any type already using #[derive(Serialize, Deserialize)] will generate AsyncSerialize, AsyncDeserialize, and AsyncVisitor, implementations. Then AsyncSerializer and AsyncDeserializer can be implemented by libraries like serde-rs/json so that we can all use async, just like we all enjoy today with blocking IO, thanks to serde being the one true serialization library.

Ah yes, the derive macros could be used to generate async impls together with the sync ones.
While it's all possible, I don't think we'll be taking on the extra maintenance burden of having two of everything (even if the async parts can be behind a cargo feature, so only ppl using it will pay the cost).

I'll choose to take the qualification in your second paragraph as a non-zero possibility. I wouldn't make two copies of everything of course, since there should be ample opportunity for code reuse. Primitive values are reusable as is. The composite types just need a few new trait methods in another impl. Based on my still limited perspective, the most challenging and most useful aspect of the crate is producing the data model that drives macro expansion, and that would be untouched. Generation is comparatively trivial.
I have no doubts that my merge request will be considered on its merits without preconceptions when it arrives.

have no doubts that my pull request will be considered on its merits without preconceptions when it arrives.

We don't have the review capacity for more than trivial features. At the current rate you're looking at a multi year wait time before you get the first maintainer review

I understand. Until then, [patch.crates-io] in cargo.toml will work.

@coder0xff I'm curious how this is doing for you. Extending, the existing-traits to generate the async versions of everything is a great idea. I have just started looking at how to do a serde_async crate that we need internally. The motivation is likely a bit different, we're in a no_std context, and have custom heap-allocated data structures, which we can't publish, so I can't really build this as OSS, but the overall model I think is very similar.

Hi Kyle. I've been continuing my project, but not this aspect of it at the current time.


tstr with const_generics doesn't compile

I'm trying to use StrValue.  This requires enabling const_generics.  Unfortunately, when I enable that feature, tstr doesn't compile any more:
$ rustc --version
rustc 1.76.0 (07dca489a 2024-02-04)
$ cargo build
   Compiling tstr v0.2.3
error: `&'static str` is forbidden as the type of a const generic parameter
  --> /home/us/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tstr-0.2.3/src/./p.rs:40:33
   |
40 |         pub struct ___<const S: &'static str>;
   |                                 ^^^^^^^^^^^^
...
52 | declare_const_items! {}
   | ----------------------- in this macro invocation
   |
   = note: the only supported types are integers, `bool` and `char`
   = note: this error originates in the macro `declare_const_items` (in Nightly builds, run with -Z macro-backtrace for more info)
...

I'm using an empty project created by cargo init and just add the following to Cargo.toml:
tstr = { version = "0.2", features = ["const_generics"] }

I tried compiling with rustc version 1.46, which I think should be supported, but I got the same error (I had to also change the edition to 2018).  As such, I think I'm probably holding it wrong, and my request is to improve the documentation.
Thanks!

You'll need to enable the "nightly_const_generics" feature, because the "const_generics" feature is for whenever &'static str is made usable as a const parameter on stable.
The StrValue trait currently requires a nightly compiler, I don't believe there's any way to make the &'static str associated constant on stable (in a way that works for any string).

Got it, thanks!

I think I was confused, because there is also a nightly_const_generics feature so I assumed that the const_generics  feature would work with the stable compiler.


Fix pulling licenses

Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Python_PVR_Flink PreCommit

LGTM

Run Java Examples on Dataflow Runner V2

run java precommit

Run Java PreCommit

Self hosted runners are down which is blocking the checks here, I'm not going to block on that since this clearly fixes the problem


Updating the abstract - team Harkonnen

Hi @open-sci/harkonnen,
As anticipated in one of the previous lectures, you have to update the abstract you wrote and uploaded in the GitHub repository of the course with more precise and additional information derived from the study you have conducted so far (which also includes the information collected in the DMP and the protocol).
Once finalised, the abstract must be included in the research article. You have to prepare and submit it by the 25th of May, 23:59 Rome time. However, please update the abstract before writing the article and whenever you have either new or more precise information to share.
Do not hesitate to contact me in the Slack group with further questions.

Updated version of the abstract.md


antrea-controller log is continuously spammed by useless messages

Describe the bug
antrea-controller log is continuously spammed by useless messages. They are continually coming in at a rate of 10+ per second:
I0805 04:47:02.159172       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:02.732132       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:03.417037       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:11.342600       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:16.181754       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:17.391597       1 watch.go:122] The input channel had been closed, stopping process
I0805 04:47:27.006902       1 watch.go:122] The input channel had been closed, stopping process
I0805 04:47:30.360753       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:32.338171       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:36.412641       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:37.287909       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:38.284222       1 watch.go:122] The input channel had been closed, stopping process
I0805 04:47:48.921009       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:54.475259       1 watch.go:129] The context had been canceled, stopping process
I0805 04:47:54.731546       1 watch.go:129] The context had been canceled, stopping process

To Reproduce
Unknown. We are just running a basic install of antrea-controller, nothing more.
Expected
antrea-controller log shouldn't get continuously spammed by useless messages.
Actual behavior
antrea-controller log is continuously spammed by useless messages. They are continually coming in at a rate of 10+ per second.
Versions:
Please provide the following information:

Antrea version: v0.8.2
Kubernetes version: 1.15.4
Container runtime: Docker 18.6.3
Linux kernel version on the Kubernetes Nodes (uname -r): 4.19.43-coreos

Additional context
antrea-controller-c899f4ffc-bktxd.log

After some investigation, these logs are normal and expected. The Antrea apiserver uses the default value (1800s) for the MinRequestTimeout parameter:
    // If specified, long running requests such as watch will be allocated a random timeout between this value, and
    // twice this value.  Note that it is up to the request handlers to ignore or honor this timeout. In seconds.
    MinRequestTimeout int

In a large cluster, like Alex's, with almost 200 Nodes (and 3 watches per Agent), you can expect potentially 1,000 such log messages per hour at the controller.
I think the best solution is simply to reduce the verbosity of these messages so that they are not logged by default (at the controller).
I think it may be worth considering increasing the default timeout value to a couple hours to potentially reduce the load on the controller in a very large cluster. See https://stackoverflow.com/questions/33480560/kubernetes-api-server-drops-watch-connections. Every time the agent restarts, it has to sync-up again with the controller and receive relevant computed NetworkPolicy objects. Maybe 4 hours?

See also documentation for the server Config here: https://godoc.org/k8s.io/apiserver/pkg/server#Config
I confirmed it was the root cause by setting MinRequestTimeout to a much smaller value (60s) in my test cluster, which generated a lot of log messages despite the small cluster size.


refactor(tree): Optimize leaf access

Description
Work-in-progress.
Make it so accessing leaves via simple-tree does not allocate flex-tree nodes or anchors for them.
Reviewer Guidance
The review process is outlined on this wiki page.
AB#6908

Superseded by https://github.com/microsoft/FluidFramework/pull/21595


Conflict with reserved names Container, Identity & type

I am writing a YANG module for Acton and I want a class called Container and Identity but it conflicts with builtin.Container & builtin.Identity. @nordlander you said this is a bug, so I'm opening an issue! Easy to fix? I'm currently using Container_ and it's real ugly ;)

@nordlander pinging in case you wanted to take a quick peek at this one :)


Miscellaneous errors

I'm sorry to report these errors basically in a bundle: I can't seem to get a successful run of this module over my test suite, and as a result it is hard to figure out what exactly is causing these errors. If I can assist in narrowing down their triggering conditions, please simply ask.
On every start, I get:
(node:42017) Warning: Possible EventEmitter memory leak detected. 3 uncaughtException listeners added. Use emitter.setMaxListeners() to increase limit
(node:42017) Warning: Possible EventEmitter memory leak detected. 7 exit listeners added. Use emitter.setMaxListeners() to increase limit

If I set --max-parallel to 1, the first error disappears. The second error is a function of --max-parallel as well: it always seems to be 2n + 3 (where n is --max-parallel). The uncaughtException one is always 3, when it's there.
I also get:
TypeError: Cannot read property 'ended' of undefined
    at Pumpify.Writable.write (/Projects/SA/document-worker/node_modules/readable-stream/lib/_stream_writable.js:272:12)
    at ReadStream.ondata (_stream_readable.js:555:20)
    at emitOne (events.js:96:13)
    at ReadStream.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at ReadStream.Readable.push (_stream_readable.js:134:10)
    at onread (fs.js:2004:12)
    at FSReqWrap.wrapper [as oncomplete] (fs.js:681:17)

If I set --max-parallel to 3 or more, that error will occur right away, before any test runs. Otherwise it will happen at some later point in the suite, which does not seem to be clear but is dozens of tests later (so it doesn't seem to be because of a test running earlier due to increased parallelism).
Finally, there seem to be memory issues. When the latter test happens, not only are things already taking a lot longer than in the non-parallel case (3m30s vs 2m40s for the whole thing normally), but eventually this happens:
<--- Last few GCs --->

  208087 ms: Mark-sweep 1342.8 (1446.1) -> 1342.8 (1446.1) MB, 1021.6 / 0.0 ms [allocation failure] [scavenge might not succeed].
  209103 ms: Mark-sweep 1342.8 (1446.1) -> 1342.8 (1446.1) MB, 1015.5 / 0.0 ms [allocation failure] [scavenge might not succeed].
  210149 ms: Mark-sweep 1342.8 (1446.1) -> 1345.7 (1421.1) MB, 1046.0 / 0.0 ms [last resort gc].
  211208 ms: Mark-sweep 1345.7 (1421.1) -> 1349.9 (1416.1) MB, 1059.1 / 0.0 ms [last resort gc].

<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x13bd946cfb51 <JS Object>
    1: DoJoin(aka DoJoin) [native array.js:~129] [pc=0x2880e73748c2] (this=0x13bd94604381 <undefined>,w=0x13cec1576ec1 <JS Array[7]>,x=7,N=0x13bd946043c1 <true>,J=0x2a92fbfc1fd9 <String[6]\: ,\n    >,I=0x13bd946b46e1 <JS Function ConvertToString (SharedFunctionInfo 0x13bd94652dc9)>)
    2: Join(aka Join) [native array.js:180] [pc=0x2880e62eed12] (this=0x13bd94604381 <undefined>,w=0x13cec1576ec1...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [/Users/robin/.nvm/versions/node/v6.9.1/bin/node]
 2: node::FatalException(v8::Isolate*, v8::Local<v8::Value>, v8::Local<v8::Message>) [/Users/robin/.nvm/versions/node/v6.9.1/bin/node]
 3: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/Users/robin/.nvm/versions/node/v6.9.1/bin/node]
 4: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/Users/robin/.nvm/versions/node/v6.9.1/bin/node]
 5: v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*) [/Users/robin/.nvm/versions/node/v6.9.1/bin/node]
 6: 0x2880e14092a7
 7: 0x2880e73748c2
Abort trap: 6

My node is v6.10.3.

@darobin thank you for posting issue. That's kinda strange. How many test files do you have?

I have about 60. Some are pretty intense. One thing that may be related: almost all of them spawn processes at one point or another. Another potential indication: they all import a library that when constructed does (amongst other things):
    this._handleExit = once(this._handleExit.bind(this));
    process.setMaxListeners(process.getMaxListeners() + 2);
    process.on('uncaughtException', this._handleExit);
    process.on('exit', this._handleExit);

Normally this increases the maximum listeners enough to not get a warning, but it may be interacting.

@darobin  can you try mocha-parallel-tests@v2 and say if it's still a case for you?

Closing as non-answered after a week.


Add support for custom reference resolvers

This change adds support for custom reference parameters. Previously only references to the outputs of other stacks were supported. Now a parameter value may refer to a file with File: <path>. A user may also define her own custom resolver by defining a class Stacker::Resolvers::<ResolverType>Resolver and providing a hash with a single key, <ResolverType>, as the value of a parameter. The directory containing resolver definitions must be provided to stacker with the --resolvers argument.
    parameters:
      StackParam:
        Stack: OtherStack
        Output: OutputName
      FileParam:
        File: path/to/file

This is looking really interesting. I like the idea of making resolvers a documented API, so new ones can be created pulling from various sources.
Couple thoughts this brings to mind:

An approach that might make things a bit easier to manage and version is to use RubyGems to pull in other resolvers instead of file path and require. Could suggest a convention such as stacker-resolver-<name>, or similar. Then you just install the ones you need for your stacks, and the community can build and maintain them. I could see resolvers for S3 and other third-party data sources.

Another thing to consider in the API is allowing the resolver to know which region + stack is asking for the param—could certainly be added in the future, but might be a breaking change.

Another thing to consider in the API is allowing the resolver to know which region + stack is asking for the param—could certainly be added in the future, but might be a breaking change.

Resolvers actually do take the region as a constructor argument: def initialize(ref, region). We can add the stack later as a non-breaking change.

An approach that might make things a bit easier to manage and version is to use RubyGems to pull in other resolvers instead of file path and require

Agreed. Happy to rip out the path support and leave this for later if that's your preference. I don't feel strongly about the path support right now.

Updated. Removed path support to narrow the API changes involved.


Error on upload attempt to GitLab.

Hi There,
I'm using GIT LFS v.1.1.1, GIT 2.7.1 on OS X El Capitain and my origin repo is the GITLAB. When I tried to push to remote I got the follow error:
codigo git:(master) ✗ GIT_TRACE=1 git lfs push origin master
20:03:52.515030 git.c:561               trace: exec: 'git-lfs' 'push' 'origin' 'master'
20:03:52.517440 run-command.c:343       trace: run_command: 'git-lfs' 'push' 'origin' 'master'
trace git-lfs: Upload refs origin to remote [master]
trace git-lfs: run_command: git rev-list --objects master --not --remotes=origin
trace git-lfs: run_command: git cat-file --batch-check
trace git-lfs: run_command: git cat-file --batch
trace git-lfs: run_command: 'git' config -l
trace git-lfs: tq: starting 3 transfer workers
trace git-lfs: tq: running as batched queue, batch size of 100
... some prepare uploads
trace git-lfs: tq: sending batch of size 100
... some prepare uploads
trace git-lfs: ssh<EMAIL_ADDRESS>git-lfs-authenticate igormq/projeto-final-code-ufrj.git upload
trace git-lfs: ssh: upload attempted with<EMAIL_ADDRESS> Error: exit status 1
trace git-lfs: tq: sending batch of size 76
trace git-lfs: ssh<EMAIL_ADDRESS>git-lfs-authenticate igormq/projeto-final-code-ufrj.git upload
trace git-lfs: ssh: upload attempted with<EMAIL_ADDRESS> Error: exit status 1
Git LFS: (0 of 176 files) 0 B / 77.88 MB
exit status 1
exit status 1

Could anyone help me to understand what is happening?
Best regards,
Igor.

Your ssh command is erroring. Try running<EMAIL_ADDRESS>git-lfs-authenticate igormq/projeto-final-code-ufrj.git upload. It should spit out some json to STDOUT.

It is an interaction between GIT-LFS 1.1.1 and GitLab, downgrading to git-lfs 1.1.0 works around the issue for now.

Same issue with 1.1.1 and Gitlab downgrading works for now.

I've updated to git-lfs to 1.1.1 because there was a bug on  MAC (see #920), so I can't downgrading to git-lfs 1.1.0.

If someone can run ssh<EMAIL_ADDRESS>git-lfs-authenticate igormq/projeto-final-code-ufrj.git (or whatever your repo name is), that would help me out.

GitLab doesn't have git-lfs-authenticate yet, this is being tracked here. Output is therefore GitLab: Disallowed command.

Thank you @lorenz  and @technoweenie. I think i'll have to wait until the GITLAB team solve this compatibility issue. :(

@igormq Have you tried using an HTTPS remote, instead of git?

@technoweenie I've tried and it worked.


add const prop to hybrid pass

Introduced a flag -onnx-hybrid-pass-disable-class to disable any of shape-inference, canonicalization, and constant-propagation.

I had always planned to add constprop and decomposition to the hybrid pass
this PR adds constprop
for decomposition I'm not 100% sure how to do it because it's a implemented as a partial conversion, while the hybrid pass is a "plain rewrite"

@chentong319 @tungld this PR is ready for review: I introduced a flag -onnx-hybrid-pass-disable-class to disable any of shape-inference, canonicalization, and constant-propagation, and I ran RunONNXModelZoo.py -c="-O3" on this branch and saw the same 119 models pass and 33 models fail as on main

Jenkins Linux ppc64le Build #11745 [push] add const prop to hybrid... started at 15:29

Jenkins Linux s390x Build #12752 [push] add const prop to hybrid... started at 15:20

Jenkins Linux amd64 Build #12729 [push] add const prop to hybrid... started at 14:20

Jenkins Linux amd64 Build #12729 [push] add const prop to hybrid... failed after 1 hr 6 min

Jenkins Linux s390x Build #12752 [push] add const prop to hybrid... passed after 1 hr 23 min

Jenkins Linux ppc64le Build #11745 [push] add const prop to hybrid... passed after 1 hr 41 min


ISSUE

Based on the issue key documentation, it is required to create a new Issue JQL type inside the JQLBuilder.Types.JqlTypes  namespace for this issue.
The Issue fields can only be compared using string. Add an implicit cast from string to IssueExpression inside the IssueExpression class."
Adding the operators:

==, !=, <, <=, > and >= in both directions by adding them directly to the newly created class, utilizing the appropriate extension methods from the EqualityExtensions class.
IN and NOT IN by implement IJqlMembership interface

The Issue type now incorporates issueHistory, linkedIssues, votedIssues and ** watchedIssues** functions for the IN and NOT IN operators. Add they under the JQLBuilder.Types.Functions namespace.
Add the necessary fields in the JQLBuilder. The fields have to be created in the Fields class, also add the corresponding property in the Ordering class.
For this type, the rendering system needs to be enhanced by adding an additional case in the switch statement inside the JqlTypeExtensions class within the JQLBuilder.Render project. This case should specifically filter for the IssueType. Additionally, a method needs to be added inside the JqlTypeRenderer class to append strings to the StringBuilder without using double quotes.
Finally, add a test battery for the newly created type.

Manual merge into master


Add option to not create merge backup

According to https://www.gnu.org/software/gettext/manual/html_node/msgmerge-Invocation.html that should be --backup=off to the msgmerge tool.


#31 Graph Component

This PR adds graph component on home page. This was built using react-chartjs-2. I am using API_ENDPOINTS.DATA to extract data for each day. Each graph can be turn on/off.
Resolves #31

@jaideepghosh Any issues with the PR?

Hey @jaideepghosh, It's been long time, Could you please let me know if there is any issue?


pip install failed

Dear Ben:
For pip >= 10, from pip.req import parse_requirements in setup.py will import failed.
Please reference this to make fix this issue.
thanks

Problem:
The GOD DAMN CLOUD FOUNDRY can't install pylint in APP.
Remove it from requirements_setup.txt can fix this problem.
Check PR #2 and merge it.
Thanks


Fix libraries in filter.go to reflect how GCE API list filtering works currently

Biggest changes:

Regex is represented by '~' rather than 'eq'
int or bool equality is represented by "=" rather than "=="

Will only submit once I verify this works against GCE.
/assign @bowei

This change is

/close
Apparently, regex is only supported via the gcloud interface so this PR would not work for any other clients.

Reopening since these changes still help in supporting regex for local matching.


Typescript compilation with latest version

Initial checklist

[X] I read the support docs
[X] I read the contributing guide
[X] I agree to follow the code of conduct
[X] I searched issues and couldn’t find anything (or linked relevant results below)

Affected packages and versions
1.0.7
Link to runnable example
No response
Steps to reproduce
Install the latest version
Expected behavior
It should run fine there should not be any issues while building the project
Actual behavior
I had some dependency issues so I deleted the yarn.lock file and re-installed everything, but some of the packages depend internally on this package, and since deleting yarn.lock file caused the internal packages to go to the latest version in this case from 1.0.1 to 1.0.7 and it started to fail the build of the project. Here are the errors I am getting.
"../../node_modules/micromark-extension-gfm-footnote/index.d.ts(5,8): error TS1005: ',' expected.\n" +
    "../../node_modules/micromark-extension-gfm-footnote/index.d.ts(6,8): error TS1005: ',' expected.\n" +
    "../../node_modules/micromark-extension-gfm-strikethrough/index.d.ts(2,32): error TS1005: ',' expected

While I know this is a bit cryptic but since you released the 1.0.7 just today can you check why its happening?
The dependency which is causing the issue:
remark-gfm@3.0.1#micromark-extension-gfm<EMAIL_ADDRESS>Runtime
Node v14
Package manager
yarn v1
OS
macOS
Build and bundle tools
Webpack

My guess is you have an ancient typescript version. What's it? Please update that

I have fairly latest one, I am using 4.2.4

Latest TypeScript is version 5

Yeah, I know and I am not saying I have the latest one I am saying I have the fairly latest one.
@wooorm which version should I be using if 4.2.4 is not compatible?

I understand you now.
I was getting confused by the use of "fairly latest" which is a contradiction.
"latest" is only the most recent, "fairly" is not the most recent.

version should I be using if 4.2.4 is not compatible?

This package, and most of unified is tested against TypeScript 5, try that first.
https://github.com/micromark/micromark-extension-gfm-strikethrough/blob/b8c00a3164ee6e0dbadf65e8e14f6137e0345a07/package.json#L62
That said, the specific feature you are seeing an error on was added in TypeScript 4.5 https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#type-modifiers-on-import-names
You could upgrade to that, if you aren't ready to make a major upgrade.

Adding on, TypeScript 4.5 was release 2 years ago https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/
TypeScript 4.2 is rather outdated.

I think it’s good to follow the DefinitelyTyped support window of 2 years. TypeScript 4.3 is being dropped this month.

Thank you, guys, thank you @ChristianMurphy I upgraded to typescript version 4.5.5 it fixed my problem, but now onto fixing material-ui issues :(


Require "least privilege" (maybe at higher levels)

Via email I got the following idea:

"The application should enforce the use of least privilege.
That is, by default the application
should run as an unprivileged user, if root/admin access is not required.  And
users should be warned, if not outright prevented, from running the
application with administrator access it doesn't need.

I'm a fan of least privilege; we require that people know about it in
criterion [know_secure_design].
We haven't added this as a criterion because it's difficult to word exactly
what "least privilege" means in a lot of cases.  Just avoiding root/admin
access is often not enough (https://xkcd.com/1200/), yet trying to implement
sandboxes within a user space can be difficult and has its own problems.
Suggestions on how to word this would be welcome.
Maybe we can at least require what's above, that is:

"By default the application SHOULD run as an unprivileged user, if root/admin access is not required."

While this doesn't cover all cases, it's a start.

(the original suggestion was mine)
The problem is that "least privilege" means different things to different types of applications.  Needlessly using or encouraging root access is the most clear-cut example, but there are many others.
Maybe a more detailed, nuanced entry:
The application should run with "least privilege" by default, and documentation should encourage least privilege modes.  Examples of "least privilege" include:

The application should not require root/administrator access to operate unless it is intended to help manage or operate the system.
If the application does not require root/administrator access for normal operation, it should install as an unprivileged user by default, and documentation should encourage running as an unprivileged user.
Installation should not require relaxing permissions on files and directories which do not belong to the application.
The application should not require creating files or directories which are world-writable.

Obviously we'd need some fine-tuning there, but you can see what I'm getting at.  Personally, I'd like to make non-privileged-user operation mandatory, that is, the application should actively prevent running it as administrator if it doesn't need administrator permissions.  But I know that's not common practice, sadly.

I definitely see where you're getting at.  Fine-tuning will be tricky:

A lot (probably the majority) of software aren't applications, they're libraries.  How do we handle that?  The first cut says "application" - but I don't thing s/application/software/ will work.
I'm not sure how to understand this list for client-side Javascript.
I don't know that "install as an unprivileged user by default" is necessarily a good idea; in a traditional app, installing as root means that non-admin users can't edit the program later.  So I'd drop that part.

More generally, I see least privilege as a general idealized principle - but that makes it hard to create a list of "how to do it".  Especially since there's always a way you could divide privilege further.  But maybe I'm being too pessimistic - can the nuanced entry be tweaked to handle these issues?

Yes, it's easier to create a list of bad practices than recommendations.  For example, a networked userspace application which runs as "root" is just a bad idea.  As is a library which requires a directory in your homedir to be set chmod 777.   I think one could write a least-priv guide for JS, but it would be completely different that one for a networked server application.

I really love the idea, but I can't see how to turn this into a clear criterion.  It's more of a mindset than a clear criterion, which makes this very hard.  I don't think the tweaks solve the problem.  In particular, I don't mind a few examples of "do not X", but a long list of "do nots" doesn't really solve the problem.
I'm closing this, because I don't think we're any closer to specific text that gets there.  Thanks for the comment, though!

Hmmm.  It really bothers me to not have this even mentioned as a criterion, since IRL, unnecessary privilege grants are among the top-three causes of public exploits, and is probably the biggest issue today in mobile development.  Omitting it from the criteria kinda leaves a big gaping hole.
Can we get some security geeks who are better at putting these things into words?

@jberkus - I am one of those "security geeks".  We already requiring knowing about least-privilege.  The problem with making it a criterion is that it's a mindset, not a clear specific criterion that's easy to test.  There are always some programs that need certain privileges, so you can't say "never use privilege X".  And you can't say "never have any excess privileges", because the effort of eliminating all possible privileges is often so complicated that the complexity creates vulnerabilities.  As a principle it's great - I emphasize & teach it - but we need to turn this into an actionable criterion.
I'll reopen.  I would love to have a "least privilege" criterion, but we need to find a way to create a criterion that's really workable.

Ah, ok, I didn't realize the "know about least privilege" was in.
Hmmmm ...
"Have a development or packaging process designed to remove or restrict privileges not required for operation"?
That is, instead of making the outcome requirements, require developers to have a process to implement least privilege?  Since anything outcome-based needs to be different for each environment?
Making the process a requirement would also deal with the "any excess privileges" issue; we're not looking for perfect least privilege, we're looking for reasonable least privilege.

In a lot of cases the "packaging process" is just a way to ship the bytes, e.g., typical language-level package managers like npm (JavaScript), cargo (Rust), bundler (Ruby), etc.  it can't really do that.
I still like the goal, but don't see an easy way to turn it into something specific. I'm not sure we're getting any closer to actionable text.

I really really want to have some sort of "least privilege" criterion, but we are no closer to finding a real criterion.  We do require that people know the principle.  I'm going to close this for now.  If someone has more specific text to start with, we can work that then.


nga module

Excuse me, where can I find the nga code?

Hello,
The "nga" code you're looking for can be found at this line in the decode_seg.py file. If you need further clarification or have additional questions, feel free to ask.
Best,


Add variant to SchemeHeaderTransformation to set scheme based on upstream transport

Description:
With an additional field in SchemeHeaderTransformation use_upstream_scheme, the Router HTTP filter will use the upstream transport socket's protocol to set the scheme.
Examples:

client --HTTP--> envoy --HTTPS--> server:  :scheme == https
client --HTTPS--> envoy --HTTP--> server: :scheme == http

Implementation:
Add an optional boolean to HttpConnectionManagerConfig and set scheme to host->transportSocketFactory().implementsSecureTransport() if that boolean is defined and is true
Relevant Links:

PR removed deprecated field envoy.reloadable_features.preserve_downstream_scheme
Mitigation for this issue no longer applies
Affects requests to C# grpc servers as demonstrated in this issue

Seems reasonable to me. @ggreenway

I can try and give this a shot

I also think this is reasonable and I'm interested in using it.
If needed I can assist in the code changes

Briefly took a deeper look and believe toggling this option is better in the Router HTTP Filter (e.g. a new field upstream_override_scheme = true). I've come to two alternatives closer aligned to the title of this request, but I'm not a fan of either:

Pass the SchemeHeaderTransformation config to the Router filter. This may already exist indirectly, but I'm relatively new to the codebase (my understanding is that the HTTP filters only have access to the callbacks configured by the HTTPConnectionManager). The con is where the config is defined is decoupled from where it is implemented (the Router filter).
Add the SchemeHeaderTransformation config as a field for the Router filter's configuration. The con is it may make configuring the HTTPConnectionManager more confusing as setting use_upstream_scheme there would be meaningless there. Some configuration validation could solve this con.

Thoughts? This is also my first time looking into the actual source code of the proxy instead of writing extensions so I might be completely off.

I agree that the router filter is the place where it makes most sense to have the option.
Although, given the presence of the other scheme-related options in the ConnectionManager, I think it is fine to add the new field in the ConnectionManager instead.

Makes sense. In my draft PRs, I added a field use_transport_scheme in scheme_header_transformation because I thought there might be a use-case where someone wants to use the client transport to set the scheme as well; e.g.:
client --https but scheme == http--> envoy --scheme + xfp = https--> server but I feel uncomfortable about this as coupling the two configs in different locations may restrict future variants. I can attempt to make a PR with an explicit bool in the Router filter when I have the time.


Disable the analyzer checks

These are (much like the lint checks) not intended to be enabled as errors.

This is my mistake by the way: When I split lintChecks and analyzerChecks into separate categories, I should have recommended this in the public release notes.


[csrng/checklist] D1 signoff for csrng

Updated checklist and prj files for reflect D1 status.
Signed-off-by: Mark Branstad<EMAIL_ADDRESS>

lgtm

Woohoo, another IP block at D1 level! Thanks!

Yippee :)

Apologies for late comment but I have reviewed CSRNG docs (again today along with EDN for its D1 PR) and they more than meet the 90% threshold.  As noted by Tim, almost any remaining opens require input from labs.


Spring - Remove Intermediate Poms

Remove intermediate pom files which could cause problems. To fix issues #12869 and #12868.

/azp run java - spring - ci

/azp run java - core - ci

/azp run java - core - ci

/azp run java - aggregate-reports


Fix lints and flow errors for v0.10

This is a collection of flow and lint fixes that came up when testing the 0.10.0-stable branch internally.
I'm not completely sure why they don't show up when we run eslint and flow locally or in CI.
Hopefully nothing controversial, and in a couple of cases they are short-term fixes to accomodate supporting two APIs until we release 0.11.0. More info in each commit message.

Going to land this so we can keep moving - ideally will come back and deal with linting inconsistencies later.


Unattended Update

When a user has installed modules from an untrusted repository such as the PowerShell Gallery, running Update-Module will raise a confirmation dialog again. Effectively, this prevents users from being able to unattendedly update their existing (and already approved) modules.
The only way to deal with the confirmation currently is:

Change the trust level and make PowerShell Gallery trusted: since this would affect installation of new modules as well, it would introduce security issues.
Use the parameter -Force: since this would also reinstall any up-to-date module, this would introduce new issues and network traffic

Would it be possible to add a parameter to just skip confirmation? There should be a way for users to update their modules unattendedly and make sure they are always up-to-date.
Or is there any other recommended best practice how to keep installed modules up-to-date without manual interaction?

Not sure I understand the functional difference between -Force and e.g. -SkipConfirmation in this context. Since the usage of -Force is not persisted, aren't you doing exactly the same with skipping confirmation?

-Force skipts confirmation and also reinstalls all modules (if I understand correctly). This is taken from the help: "If the module is already installed, Force reinstalls the module."
So when you do a full update using -Force, you would see no confirmations (yay!) but you would also re-install all modules that are up-to-date. There is no reason why we would want to reinstall modules that are perfectly fine. We are looking for a way to frequently and automated check for updates, so most likely in most scenarios all updates would be up-to-date, and in this scenario -Force would reinstall them all each time.
In fact, since -Force  has always been part of this cmdlet, adding a parameter .e.g. -SkipConfirm  would essentially be just a "milder" form of -Force and shouldn't introduce any new security concerns. After all, a user would still actively confirm that it is ok to install, albeit not interactively but by using the new parameter.

Indeed, the -Force parameters has two roles

Re-Install a module when there is no reason to "update"
When there is a reason the "update" accept the untrusted repository. This is also where different warning show up

I would argue that the problem is with mixing scopes and I'm not sure if new parameter would make things simpler or not. Because you are not sure on which scope of -Force you are acting on. In my opinion, confirming  to install from an untrusted repository should not be bypassed because we trust the publisher. But then, the -Force is already mixing things.

When I tested this, it seems that Windows PowerShell 5 skips if the version in the repo is already installed and PowerShell 7  re-installs even without -force
It seems to me the desire here is to say

This repo is still not trusted. I have validated one module from and will consider updates to that module to be trusted, but I don't want to trust anything else in the repo.
If the version installed is the current one in the repo (trusted or untrusted), don't re-install the same version.

This is possible but needs work  Get-Module -listavailable gives all versions - we can discover the latest installed version,  then find if there is a newer version, and if so we can install that.
Get-module -ListAvailable  | Group-object -property 'name' | Foreach-object {
    $version = ($_.group | measure-object -maximum -property version).maximum
    find-module $_.name | where-object  -property version -gt $version
}  | update-module -force

To @Sarafian's comment.
By established custom  -Force does two things

"Don't stop when the operation can be carried out , even if the circumstances would normally cause it to be skipped with a warning or error" - for example overwriting something
"Act as -Confirm:$false" because specifying $false for a switch is not considered to be discoverable. My own code uses a common pattern that allows user to specify both -confirm and -force (you can't put common parameters into parameter sets to prevent this) and -force will take precedence - the logic goes if ($force -or -$pscmdlet.shouldProcess())  so when force is specified the shouldProcess() is not evaluated.

I think in this case -Confirm:$false should prevent the prompt, but not force an overwrite - although see  my opening comment that I seem to be getting overwrites on V7.

This is a very interesting scenario...some solutions we have discussed, that would be great to get feedback on, especially since we are trying to decouple the confusing force behaviors of v2:

A parameter available on Update (and potentially on install) that is something like -SkipTrustCheck in order to avoid the check at an individual update call (we currently are not using the -Force parameter, and have introduced a -ReInstall parameter, so we could also call this -Force)
Ability tot configure repositories trust at the update vs install level, for example always trust updates, never trust installs
One related solution we have discussed is the ability to configure trust at the publisher or namespace level, in addition to the repository level, for example you may not want to trust the PowerShell Gallery as a whole but you may want to trust all modules
(verifiably) published by Azure PowerShell

I believe that the original reason behind the default lack of trust, even for the gallery is the scripting nature of powershell, same as with the requirement for signed scripts execution . With the maturity of PowerShell I think it is a realy a good idea to implement the 3rd bullert

One related solution we have discussed is the ability to configure trust at the publisher or namespace level, in addition to the repository level, for example you may not want to trust the PowerShell Gallery as a whole but you may want to trust all modules
(verifiably) published by Azure PowerShell

With that in mind, you don't have to differentiate between install and update of a module because you implicitly trust version of the module.

Instead of -SkipTrustCheck I'd rather it just match Install-PSResource with a -TrustRepository parameter if we're going to add any parameter to do this. On the other hand one could argue that Update-PSResource shouldn't use the trusted repository check in the first place since you had to trust the repository in order to install the resource.

@SydneyhSmith has this issue been resolved now that TrustRepository parameter exists?

@SydneyhSmith has this issue been resolved now that TrustRepository parameter exists?

Yep-- good catch


mpv.rb: add binary

The binary is a full-featured CLI app. The app bundle around it is just a simple wrapper and they encourage direct usage of the binary.

i don't know if i would call it encouraging but from https://github.com/mpv-player/mpv/commit/a5b97104cff358beebdb7ed1e96f7ab441295afa (fixed https://github.com/mpv-player/mpv/issues/2061) onwards the binary in the bundle will behave like the binary without the bundle. so i can only recommend using the binary in the bundle from 0.25 or that commit onwards.

Thank you for the input, @Akemi! Welcome.

i can only recommend using the binary in the bundle from 0.25 or that commit onwards.

Duly noted. I hope we can upgrade soon to 0.25, so that should not be a problem.


JoinStringArray is called before it is defined

Might be because JoinStringArray is defined in Northstar.CustomServers whereas it's being called from Northstar.Custom. Is one loaded before the other and therefore causing this?
idk

this is on current commit on main btw, not current release

Not sure how you got that error, it's working fine for me on master branch

yeah idk either i just re-downloaded the same commit and its working fine now?
weird


Decompose I18n::Backend::Base#localize

It allows to customise directives without overwriting whole localize method

Thanks for the contribution!
Could you please demonstrate a use case of this feature?

I believe it's a matter of extension format types.

something like
module TranslatedZoneName
  private
  def translate_format(locale, format, object)
    super.gsub(
      '%O',
      (object.respond_to?(:time_zone) ? I18n.t(:"timezones.#{object.time_zone.name}",
                                              locale: locale, default: object.time_zone.name) : '')
    )
  end
end
I18n::Backend::Base.prepend TranslatedZoneName

(does not tested. just as an expample)

Ok, thanks. Seems like a good addition to me.
Can you please write a test for this?

Looks like this would be a good fix for #210.

I believe that there is no need to test something. I didn't change behaviour, split method though. And looks like it is not good practice to test private methods, it's better to test interface and i suppose it's already done. Maybe I don't understand somethig. Could you please explain than?

Hi @radar, so how do you think? could we merge or you still think I should write some tests on it?

@corlinus I think it's fine to merge without them. I can't work out a way to write tests myself.

Thanks for your contribution!


 I run my app with webpack (1.13.1).
Here is my use of clappr:
var options = {
        source: videoUrl,
        parentId: "#player",
        height: (containerWidth * (1/this.ratio)) + "px",
        width: "100%",
        hlsjsConfig: {
             xhrSetup: (xhr) => {
                   xhr.withCredentials = true;
             }
        }
};
this._player = new Clappr.Player(options);

I have'nt recursive call in my code.
Do you have any idea to fix that ?

@Kornflexx does the log points to where this happened?

The code is minified :/, it's point here :
       {
            key: "readBits",
            value: function(t) {
                var e = Math.min(this.bitsAvailable, t)
                  , n = this.word >>> 32 - e;
                return t > 32 && o.logger.error("Cannot read more than 32 bits at a time"),
                this.bitsAvailable -= e,
                this.bitsAvailable > 0 ? this.word <<= e : this.bytesAvailable > 0 && this.loadWord(),
                e = t - e,
                e > 0 ? n << e | this.readBits(e) : n
            }
        },


themes property default value not working, error received instead

Hi,
if u not set the themes property:
@Tailor(themes: ['light', 'dark'])
just type this:
@Tailor
you will receive the following error message and the tailor file not generated:
type 'Null' is not a subtype of type 'List<dynamic>' in type cast
regards

I am having the same problem :/

Hey, sorry for the inconvenience, to temporarily use the branch with the fix add the following to your pubspec.yaml
dev_dependencies:
  theme_tailor:
    git:
      url: https://github.com/Iteo/theme_tailor.git
      path: packages/theme_tailor
      ref: fix/#35


RuntimeError: CUDA error: invalid device function

Hi, I tried to run MonoFlex Code at pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1
but I got these error logs:
`[2021-07-26 09:43:56,528] monoflex.trainer INFO: Start training
Traceback (most recent call last):
File "tools/plain_train_net.py", line 160, in
args=(args,),
File "/home/yuhan/MonoFlex/engine/launch.py", line 54, in launch
daemon=False,
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 171, in spawn
while not spawn_context.join():
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 118, in join
raise Exception(msg)
Exception:
-- Process 1 terminated with the following error:
Traceback (most recent call last):
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 19, in _wrap
fn(i, *args)
File "/home/yuhan/MonoFlex/engine/launch.py", line 89, in distributed_worker
main_func(*args)
File "/home/yuhan/MonoFlex/tools/plain_train_net.py", line 139, in main
train(cfg, model, device, distributed)
File "/home/yuhan/MonoFlex/tools/plain_train_net.py", line 83, in train
arguments,
File "/home/yuhan/MonoFlex/engine/trainer.py", line 109, in do_train
loss_dict, log_loss_dict = model(images, targets)
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/parallel/distributed.py", line 447, in forward
output = self.module(*inputs[0], **kwargs[0])
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/home/yuhan/MonoFlex/model/detector.py", line 34, in forward
loss_dict, log_loss_dict = self.heads(features, targets)
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/home/yuhan/MonoFlex/model/head/detector_head.py", line 18, in forward
x = self.predictor(features, targets)
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/home/yuhan/MonoFlex/model/head/detector_predictor.py", line 125, in forward
feature_cls = self.class_head:-1
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/modules/container.py", line 100, in forward
input = module(input)
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/inplace_abn/abn.py", line 247, in forward
self.activation_param,
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/inplace_abn/functions.py", line 249, in inplace_abn
None,
File "/home/yuhan/anaconda3/envs/monoflex/lib/python3.7/site-packages/inplace_abn/functions.py", line 107, in forward
count = count.to(dtype=var.dtype)
RuntimeError: CUDA error: invalid device function`
Do you have any idea to fix this ? Thank you !

I'm exactly the same as you, how did you solve it in the end?


Lib navball improvements

This should resolve the point I raised in issue #121

Could you also make ves default to ship? That sounds like a very sane default for the parameter, likely what most users would use it for anyway.

I also did default ves to ship where possible and updated the documentation to reflect that.

Ready for merge after that small formatting change.


on_save_failed callback needed

simle example: login resource with only POST route
class LoginResource < JSONAPI::Resource
  model_name 'LoginForm'
  attributes :login, :password
end

class User < ActiveRecord::Base
  MAX_ATTEMPTS = 5

  def max_attempts_reached?
    self.attempts >= MAX_ATTEMPTS
  end

  def increment_attempts!
    self.increment!(:attempts)
  end
end

class LoginForm
  include ActiveModel::Model
  attr_accessor :login, :password

  validates_presence_of :login, :password
  validate do
    if user && user.max_attempts_reached?
      errors.add(:base, :too_many_login_attempts)
    elsif user.nil? || user.password != password
      errors.add(:base, :login_or_password_invalid)
    end
  end

  def user
    @user ||= User.find_by(login: login)
  end

  def _save
    user.touch(:last_login_at)
  end
end

it will be good to have possibility to increment attempts when login was failed
how can i do this?
Operations for create/update/destroy are wrapped in transaction
we need a callback outside of transaction with access to resource

You could override the create method on the controller, allow the error to propagate up and then update the login count.
Another option would be to make a LoginAttemptResource and serialize that instead of an error. You could use it to communicate the remaining attempts and the time they could try again as well as the token.

the idea is to return 422 with error in response and do something in callback


Split out sequence index (crai) from /sequence route.

Issue or current state
The sequence endpoint will return either an entire cram file, a subset of a cram file, or an entire crai file.
Which it returns depends on the presence of an index parameter.
https://github.com/statgen/bravo_api/blob/9e43f4b52eaebdb88eda643c0f5c272294623b9b/bravo_api/api.py#L471-L481
This caused more cognitive overhead when reading the code and reasoning about how to get a cram and corresponding crai.
This make for a more complex return as the cram file should probably be streamed if X-SENDFILE is not available while the crai file is expected to be small enough to use send_file without regard to the fronting HTTP server capabilities.
Resolved when
Two endpoints exist /sequence and /sequence_index.
Both take the same params, so the arg map can be reused.
Notes
Use class werkzeug.datastructures.Range returned from request.range to parse range tuples instead of regex approach.

Digging into the underlying sequences.get_cram call, it turns out the entire file is read into memory.
So the advantage of streaming the file, avoiding loading large files into memory, is already lost.
Just use a simple response for now and create a feature request to more efficiently serve our crams if/when it becomes an issue.

Close by #ef7a9ec87fde3906194fb90097096bf1bfeaf92c

Closed by #ef7a9ec87fde3906194fb90097096bf1bfeaf92c

Closed by ef7a9ec87fde3906194fb90097096bf1bfeaf92c


Fix cuda spoof

Far better fidelity simulation of numpy records in cudasim mode. Essentially, just flips everything to getitem if in kernels, unless a getitem exists. A few little whitespace fixes too.

:(

Well this is fun. Like whack-a-mole.

Some notes on Numba CI...
The Numba test suite causes CI systems a lot of grief:

It's huge, 9000+ tests.
In part because of 1. and that compilers are pretty involved, the test suite takes a long time to run.
There's sections of the test suite that are deliberately designed to stress systems almost to the point of failure (tests which concurrently compile and execute with threads and fork processes etc).
The combination of things that Numba has to test well exceeds the capacity of any public CI system, (Python versions x NumPy versions x Operating systems x Architectures x feature libraries (e.g. SVML) x threading backends (e.g. OpenMP, TBB)) and then there's CUDA and ROCm too and all their version variants.

As a result of the above, public CI is implemented as follows:

The combination of OS x Python x NumPy x Various Features in the testing matrix is designed to give a good indicative result for whether "this PR is probably ok".
When CI runs it:

Looks for files that contain tests that have been altered by the proposed change and runs these on the whole testing matrix.
Runs a subset of the test suite on each part of the testing matrix. i.e. slice the test suite up by the number of combinations in the testing matrix and each combination runs one chunk. This is done for speed, because public CI cannot cope with the load else.

The Numba project also has its own private build and test farm which actually exercises all the combinations on real hardware. If a PR is changing CUDA or ROCm code (which cannot be tested on Public CI as there's no hardware) or it is making changes to something that the core developers consider risky, then it will also be run on the Numba farm just to make sure!

In my estimation there's no risk to the core CUDA code as the only bits that are changing are tests and simulator.

Thank you, @stuartarchibald, for sharing how your CI works! It's very impressive :)

Completely agree wrt burninating this weird behavior. However, think it should be supported for now, as is very handy for development on kernels of unusual size.

This looks good to me.

Thanks for the fixes. Looks good to me. Other reviewers happy?
Buildfarm ID: numba_smoketest_cuda_37.

Buildfarm passed.

I'm happy :-)

Thanks for confirming @gmarkall, marking for merge.


[full-ci] chore: update reva to 2.26.1

Description
Enhancement: Bump reva to 2.26.1

Enhancement cs3org/reva#4897: Fix remaining quota calculation

Related Issue

Fixes <issue_link>

Motivation and Context

How Has This Been Tested?

test environment:
test case 1:
test case 2:
...

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

CI is red. quota.properties.state is exceeded

CI is red. quota.properties.state is exceeded

We have a change in the quota behavior.
@butonic @kobergj  can you help?

@kobergj can you take a this? I'm deep in registry stuff.


No option te re-enable

I accidentally disabled hack bgrt but i cant seem to re-enable it

Use "Install" again.


use valid 'IS' operator for sqlserver dialect, fixes #239

my proposal for fixing #239, new side effect is that explicit error will be returned when trying to construct query with IS / IS NOT operator other than for NULL value as RHS
Also, seems like support of boolean data type is a common "problem", AFAIK Oracle also does not have support for boolean, so explicit specification of it on dialect level looks good.

@doug-martin any chance to merge this?


Add Dongwook Kim to grad students

Added (1) dongwook.jpeg, (2)dongwook-kim.qmd, and revised yuchen-lu.qmd

Awesome, thanks @hydkim


extend test timeout for windows

Since we have to use single process in notebook on Windows, some operations take longer time.
For example , the below takes 10 more minutes.
https://github.com/fastai/fastai/blob/master/nbs/14_callback.schedule.ipynb

@jph00  fastai/fastai#3198 depends on this PR

Could you please add a #slow comment to the top of any cell that takes too long in Windows, or see if you can change it to run more quickly? (e.g. the above example you provide looks to be just an integration test, so it's fine to be marked slow - or alternatively a smaller dataset could be used)

More info:

Linux 12 core 2.2GHz CPU, 2 1080Ti, 53 seconds to complete 14_callback.schdule.ipynb
Windows 4 K80, CPU 2.6GHz, 804 seconds to complete 14_callback.schdule.ipynb

reduce time by adding #slow


Only error out if there's a system level error

Essentially, we should only prevent the server from starting if there's a core error in the config git repo.

Once hooks are added, this will be obsolete - it shouldn't be possible to push a broken config, so it's acceptable to error out on any config errors.


Warning: BackAndroid is deprecated.  Please use BackHandler instead.

Version
Tell us which versions you are using:

react-native-router-flux v3.38.0
react-native v0.44.0

Expected behaviour
There should no such warning message say Warning: BackAndroid is deprecated.  Please use BackHandler instead.
Actual behaviour
there is warning message say Warning: BackAndroid is deprecated.  Please use BackHandler instead.  and caused by code in react-native-router-flux/src/Router.js
Steps to reproduce

open app integrated with rnrf
navigate to some view through Actions.xxxxxx
or press hardware back button.
the warning message would be shown at bottom of the screen.

Same here:
Version
Tell us which versions you are using:

react-native-router-flux v3.38.0
react-native v0.44.0
react 16.0.0-alpha.6

Have any good news for this issue?

@kesha-antonov has already created a PR for this: https://github.com/aksonov/react-native-router-flux/pull/1819

so am I,I guess the react-native 0.44 has conflict with react-native-router-flux,for i saw a demo used r-n-r-f with  0.38 version of  the react-native run well.

0.42version， rectify

Same issue here. Also, getting an additional warning:
View.propTypes has been deprecated and will be removed in a future version of ReactNative. Use ViewPropTypes instead.
Version:
react-native-router-flux v3.38.0 (v3.38.1 still has the Dimension error)
react-native v0.44.0
react 16.0.0-alpha.6

Still got the problem on 3.39.1 with RN 0.43.4.
Hope it will be fixed soon !

Still got the problem.
react-native-router-flux: 3.39.1
react-native: 0.44
react: 16.0.0-alpha.6

Still getting the warning.

I have fixed that manually,
Edit /node_modules/react-native-router-flux/src/Router.js
Find and replace each "BackAndroid" with "BackHandler" with the following lines:

Line 13
Line 55
Line 64

Final updated code should be like this:
import { BackHandler } from 'react-native';
  componentDidMount() {     BackHandler.addEventListener('hardwareBackPress', this.handleBackAndroid);   }
 componentWillUnmount() {     BackHandler.removeEventListener('hardwareBackPress', this.handleBackAndroid);   }
I hope this will help you 👍


Tflite for micro kernel does not have conv2d?

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No.
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue  happens on mobile device: No.
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): from master
Python version: 3.5.2
Bazel version (if compiling from source): 0.15.0
GCC/Compiler version (if compiling from source): 4.8
CUDA/cuDNN version: on CPU
GPU model and memory: on CPU

Describe the current behavior
I'm trying to figure out how to use Tflite for microcontroller, I know it's relatively new to the users. I notice that in the kernel folder, there is only the depth wise conv2d kernel. Does this mean models defined with tf.nn.conv2d won't fit into this framework? Is this part currently under developing or I just simply missed something? Thanks in advance.

So far, I've gone through the micro_speech example. I know the model is defined with tf.nn.conv2d. model defined in this file.
I'm curious about how does tflite for micro run through this model even without a conv2d kernel defined?

I'm actually working on my own network. It's a CNN with RGB images as input. It contains regular conv2d layers just like most CNNs do. I wish to know how can I add this kernel into the micro interpreter. Would appreciate it if someone could point me to the correct way. Thanks!

@petewarden Could you please give some idea on this? Thanks!

Nagging Assignee @petewarden: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Sorry for the slow response! We are working on adding more operations (like Conv2D), and hope to have them in soon, but we'd also welcome contributions. I'll be working on some documentation around porting ops, but that isn't ready yet either.

If you guys can have a quick guide of how to do it, I can start to add my own kernels. That would be great! Thanks for your reply!

I'd be interested in this functionality as well. Any updates @petewarden, or is there a guide for contributing kernels, per @TF-Deve's question?


Implement app parsing with the new system

@bd82 (@deepu105 too as you've followed the thread) At this point, I'll implement the app parsing myself to get to know the new system and, hopefully, release right after some tests.
I may ask you some newbie questions, sorry in advance! =)

Hi @MathieuAA  Feel free to ask newbie questions 😄
Some of those can lead to improvements in the library 👍
What is the "App parsing"? is it part of the JDL grammar or a separate grammar?
The reason I'm asking is because I will have some holidays this weekend so
I plan on trying to migrate the existing grammar (just grammar, no AST building).
So I am trying to understand if we will have merge conflicts...

I've taken the time to read everything you've added and I noticed there's no "path" for app declaration in the parser.js file. I think I'll get a good grip on the new system if I implement it myself and try to make it work. That means implementing it in the ast_builder.js file too.
This is a more complex work than what I've been used to do with PegJS, but I feel almost "overpowered" by what your awesome library allows me to do.

I'm going to start today (or tonight more precisely...) and create a branch

I noticed there's no "path" for app declaration

O.k.  so you are implementing a subset of the grammar to get a deeper understanding of
the entire end to end flow. This is great.
I don't think it will seriously conflict with my attempt to migrate the grammar.

Nice =)

This is a more complex work than what I've been used to do with PegJS, but I feel almost "overpowered" by what your awesome library allows me to do.

Thanks 😄 .
I don't think the actual work is much more complex, rather it split up into more distinct phases.
The architecture is indeed more complex though...
If you believe it is over complicated for JDL requirements it is possible to also embed actions in the grammar as is done with pegjs.
Imho the main advantage for embedding is performance which is not relevant in JDL use case
as the input JDL files do not appear to be huge and Chevrotain is very fast even with separation of the semantics (via CST/Parse-Tree).

@bd82 I've found some backward-compatibility issues with your PoC, I'm working on fixing them:

[X] the comma is optional when declaring fields

entity A {
  field1 String
  field2 Integer
}

[X] there shouldn't be any comma between validations

entity A {
  field1 String require minlength(42)
}

[X] (not a backward-compat issue, but still) the underscore shouldn't ever be a possible starting symbol for a name (I don't want to encourage bad habits)
[ ] Find some more

There may be conflicts with your work and mine...

Hi @MathieuAA
My computer crashed while writing an in depth response, which I will recreate later.
For now lets share our work via PRs to reduce merge difficulty.

My latest work will be available here.
https://github.com/jhipster/jhipster-core/pull/151

#151 should include all the grammar except the ApplicationDecl.
I am sure there are mistakes 😄, but if you could review this and merge we can continue in improving the implementation...
These are to my understanding the big issues which we need to resolve:

[ ] Whitespace sensitivity of the existing grammar.
[ ] Handling restrictions on the names of different constructs.
[ ] Quality - ensuring 100% compatibility with the old implementation.

I will add in depth details on each topic (probably later today).

I'll review everything right now

Handling restrictions on the names of different constructs.

This is my main issue with the new system

Whitespace sensitivity of the existing grammar.
The current grammar has some special rules around whitespace.
It is mandatory is some places while in others there are limitations on the kind of whitespace that can be used (without line terminators).

Example1
Example2
Example3

What this means is that the whole handling of whitespace is very inconsistent.
Some places a single whitespace is required, other places require one or more whitespaces
while others disallow a line terminator.
The new implementation POC completely ignores whitespaces, but this raises the questions:

What was the original reason for the special treatment of whitespaces?
Was Whitespace ever used to disambiguite some choices in the grammar?

It is possible to maintain the old whitespace handling using Chevrotain, but it really is a "grammar smell"
which makes the implementation verbose, slow not to mention the syntax inconsistent so I would recommend attempting to use a whitespace insensitive grammar.

Yeah, it could have been cleaned up....
The important parts are:

whitespaces are not required except for some obvious things (tell me I've made a mistake)

entity Something // a whitespace after the keyword, and/or before the value

entity SomethingElse { // the whitespace after the entity name is not mandatory
  field1 String required maxlength(42) // the indentation is not important, space is the main delimiter
  // the comma is not needed, one could have a comma after each new line
  // the newline finishes the field declaration here, or a comma could
}

// between relationship and the value: whitespace needed
// between the value and the left curly: optional
relationship OneToOne {
  A{b} to B{A} // or A{ b } etc.
}

dto A,B,C // or dto A,     B, C
dto all except A // at least one whitespace char is needed here

Handling restrictions on the names of different constructs.
When using a separate tokenizer phase it is not possible to apply restrictions on Identifier names when
those Identifiers has common prefixes and we are lacking the current grammar context information
as the lexing and parsing are distinct phases.
The new implementation POC merges all the possible forms of names into a single syntactic construct.
This does not mean that the constraints on the different identifiers cannot be applied.
Just that they will be applied at a different stage, instead of being syntactic constraints
they will become semantic constraints. For example imagine this code
class person {
   private _age:number
   public age() {
      return _age
   }
}

// error access private member! this is not a syntactic check
var x = new Person()._age

Quality - ensuring 100% compatibility with the old implementation.

Hopefully the existing test suite will take care of much of it.
Advanced testing could be done by generating JDL inputs randomly and testing that the output of the existing parser and the new one are identical.

This is a bit complex to implement...

There is an open question if we are willing to accept micro breaking changes if that simplifies / cleans up the implementation/grammar?

For example if we encounter issues with sensitive whitespace handling.

Handling restrictions on the names of different constructs

Yes. Just pointing out that having a single regex for names seems weird. For instance, users will have the option to add project paths to their definition (really useful for microservices) and I have trouble making the very simple regex [^\n]+ work.

Quality - ensuring 100% compatibility with the old implementation

Random generation is not a good idea, as you've rightly pointed out that it's a bit complex to implement, and nobody knows if the generated parser by PegJS is 100% bug free (I've had some in the past).
For micro breaking changes, it depends. I'd rather cherry-pick the acceptable ones myself.

Yes. Just pointing out that having a single regex for names seems weird.

A single Token for identifiers is how most programing languages do it.
Including ECMAScript.

https://tc39.github.io/ecma262/#sec-names-and-keywords

Granted JDL is not a programing language...

For instance, users will have the option to add project paths to their definition (really useful for microservices) and I have trouble making the very simple regex [^\n]+ work.

I have found what you meant by project path:

https://github.com/jhipster/jhipster-core/blob/master/lib/dsl/grammar.txt#L156

This cannot be naively implemented with a distinct lexing phase because we are missing
the parser's context that says:

In grammar rule ApplicationDecl after consuming PATH token "eat all chars until newline".

But could probably be implemented using Lexer Modes.
as we can translate the condition to an equivalent lexer state:

After lexing PATH token "eat everything until newline".

The problem is that this free style text allowed inside the grammar is exactly (imho)
the kind of grammar smell discussed above (whitespace sensitivity).

"\r" is also a valid line terminator in JDL, but the application path grammar
only uses "\n" to figure out when the free form path has ended.

Inconsistency as some application properties now require a newline and some do not.
(I did not test these examples, but 90% sure they are correct).

 // valid
application {
   config {
      baseName toto
      packageName com.mathieu.sample
      path ../../toto
   }
 }

 // valid
application {
   config {
      // 2 props same line
      baseName toto  packageName com.mathieu.sample
      path ../../toto
   }
 }

  // invalid
 application {
    config {
        packageName com.mathieu.sample
       //  2 props same line cannot work when following "path"
       path ../../toto baseName toto
    }
  }

  // invalid
 application {
    config {
      // same line curly braces cannot follow "path" property but can follow "baseName" property
       path ../../toto }
  }

For micro breaking changes, it depends. I'd rather cherry-pick the acceptable ones myself.

Great, that is the intent, being willing to consider micro breaking changes
for the long term health of the grammar.

Btw to avoid regExps such as [^\n] the general solution is to wrap the text in some delimiters
For example as a string literal:

"../../toto"

The only language that allows free style inputs I am aware of is YAML.
And that is part of the reason why it is so difficult to parse which causes the tooling for it to be very very bad.

See https://github.com/jhipster/jhipster-core/pull/155 for implementing a multiMode lexer for
the [^\n] regExp.

Are the keywords reserved in JDL?
In other words is the following valid?
// the enum is called enum...
enum enum {
    AAA, BBB, CCC
}

There should be a validation of that inside the project (I intend to do
it after the app generation and the new system are done). Plus, it will
fail when the generator generates the files.
On 09/10/2017 17:56, Shahar Soel wrote:

Are the keywords reserved in JDL?
In other words is the following valid?
|// the enum is called enum... enum enum { AAA, BBB, CCC } |
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jhipster/jhipster-core/issues/149#issuecomment-335201019,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACoDZTOD4m91oENiYchwQogG_9XUmG29ks5sqkJBgaJpZM4PrByv.

Yes all java reserved keywords are reserved for JDL as well

Yes all java reserved keywords are reserved for JDL as well

What about none Java JDL keywords?
application {
  config {
    // can application be used as an Identifier even though it is a keyword is JDL?
    baseName application
  }
}

Here is the implemented grammar syntax diagrams so far (as in PR #154)

Here are all the current reserved keywords and I guess we could make the JDL keywords like application, entity, relationship etc reserved as well if needed

Here where? 😄
Missing link?

https://github.com/jhipster/jhipster-core/blob/master/lib/core/jhipster/reserved_keywords.js
Damn I thought i pasted it

Thanks @deepu105
Seems like a great many reserved words.
I will try to create a PR which maintains the behavior of the existing pegjs parser.
I think that something like "baseName application" will work in the existing pegjs parser.

It wouldn't surprise me, I didn't implement it before your POC.

@MathieuAA Let me know if any help is needed with the application grammar part.
Once that is done we will have an initial grammar we can start testing real existing JDL sources on.

@bd82 my priority right now is to release some fixes/improvements (v1.3.6 yesterday & v1.3.7 for tonight). I'll resume work on the app generation front right after.

@MathieuAA Should I try converting the Application grammar part myself?
I could do so, but I'm wary of the main developers of this repo not being familiar enough with the technology used...

@bd82 Hi, no that's okay. It isn't the lack of familiarity with the parsing system that causes me not to commit everyday, I just don't have much time with to spare with this project and JHipster UML (and other things I'm always avoiding to do but sometimes can't). I'll hopefully have more time this week-end.

I'm closing this as the "Release is coming" soon.


Only one visualization can have availability level set

we can select a viz. to choose an availability level


OLS-429: add queryFilters support

Description
Add queryFilters support for OLSConfig CRD.
Type of change

[ ] Refactor
[x] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Closes https://issues.redhat.com/browse/OLS-429

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] PR has passed all pre-merge test jobs.
[x] If it is a core feature, I have added thorough tests.

Testing

Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

/lgtm
Please address @raptorsun 's comment.

/lgtm
/approve


Build a more ergonomic way to copy families from previous years

Problems with the Current System:

Requires requires knowing which year that family last participated
Linking from a year other than the latest could fork the history
Not part of the regular "Add Family" flow

you're more than welcome to use what we got to improve


ReoGrid - Binding model in practice

I create a project ReoGrid.Mvvm which is a class library for the ReoGrid.Wpf binding model. I hope it could help people who work in MVVM model in WPF with ReoGrid.
Here is demo for book information to demonstrate the use of ReoGrid.Mvvm. The complete source code is in the project ReoGrid.Mvvm.Demo.

1. create a new WPF project.
2. insatll ReoGrid.Mvvm
Install-Package ReoGrid.Mvvm

3. create a book model
[WorksheetAttribute(Title = "Books")]
public class Book: IRecordModel
{
    [ColumnHeader(Index = 10, IsVisible = false)]
    public int Id { get; set; }

    [ColumnHeader(Index = 20, Text = "Name", Width = 150)]
    public string Title { get; set; }

    [ColumnHeader(Index = 30)]
    public string Author { get; set; }

    [ColumnHeader(Index = 35, Text = "Type")]
    public BindingType BindingType { get; set; }

    [ColumnHeader(Index = 36, Text = "OnSale")]
    public bool IsOnSale { get; set; }

    [NumberFormat(DecimalPlaces = 2)]
    [ColumnHeader(Index = 40)]
    public decimal Price { get; set; }

    [DateTimeFormat( CultureName = "en-US")]
    [ColumnHeader(Index = 45, Text = "Publish Date", Width = 200)]
    public DateTime Pubdate { get; set; }

    public int RowIndex { get; set; }
}

(1) Model must implement the interface IRecordModel.
IRecordModel has only one property RowIndex, You don't need to do anything with it.
**(2) WorksheetAttribute is used to specify the worksheet name. **
It's optional, class name would be set as the worksheet name if it's not set.
(3) in ColumnHeader Attribute, Index must be specified. others are optional.
(4) DateTimeFormat DateTimeFormat are not recommended for use for now.
These features are not well implemented in ReoGrid. OR I have some misunderstand.
4. in ViewModel file:
4.1 create two fields
private ObservableCollection<IRecordModel> _Books;
private WorksheetModel _WorksheetModel;

4.2 init them
_Books = new ObservableCollection<IRecordModel>();
for (int i = 0; i < 10; i++)
{
    Book book = new Book();
    book.Id = i;
    book.Title = string.Format("Title {0}", i);
    book.Author = string.Format("Author {0}", i);
    book.BindingType = BindingType.Hardback;
    book.IsOnSale = true;
    book.Price = (decimal)(i * 10.1);
    book.Pubdate = DateTime.Now;
    _Books.Add(book);
}
// reoGridControl is the ReoGridControl control instance
_WorksheetModel = new WorksheetModel(reoGridControl, typeof(Book), _Books);
//If you want to check the validity of the input variables, you can implement the function.
_WorksheetModel.OnBeforeChangeRecord += WorksheetModel_OnBeforeChangeRecord;

4.3 implement the WorksheetModel_OnBeforeChangeRecord
private bool? WorksheetModel_OnBeforeChangeRecord(IRecordModel record, System.Reflection.PropertyInfo propertyInfo, object newProperyValue)
{
    if (propertyInfo.Name.Equals("Price"))
    {
        decimal price = Convert.ToDecimal(newProperyValue);
        if (price > 100m) //assume the max price is 100
        {
            MessageBox.Show("Max price is 100.", "Alert", MessageBoxButton.OK, MessageBoxImage.Warning);
            return true; // cancel the change
        }
    }

    return null;
}

4.4 add delete move or edit the model
// add a book
int count = _Books.Count;
Book book = new Book();
book.Id = count;
book.Title = string.Format("Title {0}", count);
book.Author = string.Format("Author {0}", count);
book.BindingType = BindingType.Hardback;
book.IsOnSale = true;
book.Price = (decimal)(count * 10.11) > 100m ? 100m :(decimal)(count * 10.11);
book.Pubdate = DateTime.Now;
_Books.Add(book);

// remove a book
if (_Books.Count > 0)
{
    _Books.RemoveAt(_Books.Count - 1);
}

// move a book
if (_Books.Count > 2)
{
    _Books.Move(0, _Books.Count - 1);
}

// edit a book
(_Books[0] as Book).Price = new Random(DateTime.Now.Millisecond).Next(1,100);
_WorksheetModel.UpadteRecord(_Books[0]); // invoke UpadteRecord after editing one record.

Hi, nicely done!


Release 6.0.0-rc.1 - Old import is not working anymore, should update example adapt to new version

Describe the bug
The old import of V5xx is not working with release 6.0.0-rc.1
To Reproduce
Steps to reproduce the behavior:

From Agora version 5.1.0
Upgrade to 6.0.0-rc.1
The code with old import occurs errors as image

A lot of old params and api name changed. Example, old version which i was using "getScreenShareHelper", don't know what is using with new version.

Expected behavior
Have docs to update the change from V5xx to V6xx
Desktop (please complete the following information):

OS: macos

Update: Should update by manual, API params change alot.

The version 6.x is the major update and introduce some break changes,  you can check the release note for more detail https://docs.agora.io/en/video-call-4.x/migration_guide_flutter_ng?platform=Flutter.
The import should be import 'package:agora_rtc_engine/agora_rtc_engine.dart', the getScreenShareHelper is no longer needed cause the version > 6.0.0 support multiple streams by default, you can check our example for reference
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/tree/main/example/lib/examples/advanced

@littleGnAl
Try example build, error when targeting is web
../../flutter/.pub-cache/hosted/pub.dartlang.org/iris_event-1.2.0/lib/iris_event.dart:1:8: Error: Not found: 'dart:ffi'
import 'dart:ffi' as ffi;
^
../lib/src/impl/api_caller.dart:3:8: Error: Not found: 'dart:ffi'
import 'dart:ffi' as ffi;
^
../../flutter/.pub-cache/hosted/pub.dartlang.org/iris_event-1.2.0/lib/src/native_iris_event_bindings.dart:4:8: Error: Not found: 'dart:ffi'
import 'dart:ffi' as ffi;

@ThangD Can you try 6.0.0-rc.2?

@littleGnAl
I tried with 6.0.0-rc.2
Error still occurs with web build.
Btw, i also get this exception, could you pls help to know how to ovewcome?
flutter: #0      _ApiCallExecutor.requestPort (package:agora_rtc_engine/src/impl/api_caller.dart)
#1      _ApiCallExecutor.callIrisApiWithUin8ListAsync (package:agora_rtc_engine/src/impl/api_caller.dart:280:5)
#2      ApiCaller.callIrisApiWithUin8ListAsync (package:agora_rtc_engine/src/impl/api_caller.dart:99:10)
#3      ApiCaller.callIrisApi (package:agora_rtc_engine/src/impl/api_caller.dart:107:12)
#4      RtcEngineImpl.initialize (package:agora_rtc_engine/src/impl/agora_rtc_engine_impl.dart:275:21)

flutter: LateInitializationError: Field 'requestPort' has not been initialized.

I'm so sorry that the web support on 6.x is still WIP.

@littleGnAl Thank you for your information.
How about this one? i sometime got this exception.
Btw, i also get this exception, could you pls help to know how to ovewcome?
flutter: #0 _ApiCallExecutor.requestPort (package:agora_rtc_engine/src/impl/api_caller.dart)
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/1 _ApiCallExecutor.callIrisApiWithUin8ListAsync (package:agora_rtc_engine/src/impl/api_caller.dart:280:5)
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/2 ApiCaller.callIrisApiWithUin8ListAsync (package:agora_rtc_engine/src/impl/api_caller.dart:99:10)
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/3 ApiCaller.callIrisApi (package:agora_rtc_engine/src/impl/api_caller.dart:107:12)
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/4 RtcEngineImpl.initialize (package:agora_rtc_engine/src/impl/agora_rtc_engine_impl.dart:275:21)
flutter: LateInitializationError: Field 'requestPort' has not been initialized.

Do you know how to reproduce this error? It seems that you call any API before the RtcEngine.initialize so cause this error.

@littleGnAl with sharing screen, how the remote user view the screen? I tried with uid but not success
AgoraVideoView(
controller: VideoViewController(
rtcEngine: _engine,
canvas: const VideoCanvas(
uid: 'uid',
sourceType: VideoSourceType.videoSourceScreen,
),
))

Please check the example for reference https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/blob/main/example/lib/examples/advanced/screen_sharing/screen_sharing.dart

You should call joinChannelEx  to push the screen share stream to the remote users.
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/blob/e4a76ff35809703b5094d5e26f380924d11684c0/example/lib/examples/advanced/screen_sharing/screen_sharing.dart#L104

Yes, i was. I also tried with example.

The join channel button will push the camera/screen sharing stream to the remote.

What is the uid will we using?

The uid 0 means local stream (camera or screen sharing), not 0 means remote user stream, maybe you can check the basic example to see how it works first
https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/blob/main/example/lib/examples/basic/join_channel_video/join_channel_video.dart

yes, i understand it. I tried with uid (not use 0) which is not working with example.

Can you try start screen sharing then join channel in the example, and view the stream on the web demo see if works or not
https://webdemo.agora.io/basicVideoCall/index.html

@littleGnAl Do we have any events for others know the screen share is STOP? In the old release, when STOPING screen, the uid of screen sharing is OFFLINE. Thank you.


auto flag_RGB in preprocessing macro

the pre-processing macro would automatically detect if the image to pre-process is RGB.
With the previous macro version, if one just executes it without inspecting it, the flag_RGB is 1 by default which results in a not super intuitive error message with grayscale images, which I assume is the most common use case.
This PR would prevent this error.

Nice! Thank you very much


Key "copy" option should provide feedback when clicked

Currently, there's no feedback when the "Copy" option for keys is clicked. It would be nice to show some confirmation like what we have for the URL copy button.

Dup of #1027


Object-like syntax

In relation to #4, would it be better to support a variant of make which takes second argument as a Js.Dict whose keys are classnames & values are booleans?
let classes = Js.Dict.fromList([("a", true), ("b", false)]);
Cn.make(["one", "two"], classes);

or just a list of tuples:
let classes = [("a", true), ("b", false)];
Cn.make(["one", "two"], classes);

Can you elaborate on use cases and why Cn.ifTrue doesn’t work for you?

Sorry for being unclear. What I really meant was providing another API with some function like makeWithDict which accepts a dictionary object.
Cn.ifTrue definitely works and I am not saying we should change it.

@tejasbubane It's definitely possible by introducing Cn.dict:
Cn.make([
  dict->Cn.dict,
  // ...
])

But I'm wondering what use-cases you have in mind? I've been writing Reason for more than 3 years I think and never felt a need in putting things in Js.Dict. Interop maybe?
Don't get me wrong, I would happily add this bit to the api. I'm just not a big fan of adding things for the sake of adding things.

I just meant to have an alternate syntax. But keeping things minimal also makes sense. Thanks.


collapsable menus (e.g. SQL and settings menus) on homepage inaccessible to screen readers

I'm blind and I can't get these menus to work at all in either of my two Windows screen readers, JAWS (my primary screen reader) or NVDA. Pressing enter on the buttons does nothing. I had to use a link on another page to get to the SQL Labs part of the interface that I wanted. I was trying to use this site running Superset: https://superset.wmcloud.org/superset/welcome/

This seems to be an issue with the Ant Design framework. The "SQL" menu is not accessible for keyboard navigation either. The tab targets for keyboard navigation are the Superset logo, the "Dashboards" button, "Charts" button, "Dataset" button, and then it goes to the "Recents" disclosure widget. Manually selecting the "SQL" button and hitting return does nothing.
The menu items of the SQL submenu are not present in the DOM either, so there is no way for a screen reader to access them, at least not until after the submenu has been expanded (which, when that does not work, is not possible at all).

Hi all... just wondering if there are any volunteers for this one. We'd love to see more volunteers on the Accessibility project.


Optional attributes' values are not cleared

Hello,
we are running a python application that receives json messages, parse it according to the given dict using ParseDict , serialize it SerializeToString and send it.
# encode.py
            payload = ParseDict(data, data_t_v1())
            raw_payload = payload.SerializeToString()

This what we have in proto file:
//data.proto
syntax = "proto2";

message data_t_v1 {
	required uint32 id = 1;
	optional uint32 offset = 2;
	optional uint32 multiplier = 3;
	optional uint32 mask = 4;
}

However, I have an issue concerning the values of optional attributes. Here is what happens:
1- sending the message with the optional values
data = {
   "id": 1,
   "offset": 2,
   "multiplier":10,
   "mask":<PHONE_NUMBER>
}

2- sending the same message without the optional values
data = {
   "id": 1
}

The issue happens here: ParseDict is returning a dict with the optional attributes having the old value that I set in step 1.
I would like to know if there is a way to clear old optional values when they are not set.
Thanks in advance. and Please let me know if you need additional information

This does not sound like a nanopb issue. You may have better luck asking in whatever project the ParseDict function belongs to.

@PetteriAimonen sure I will, Thanks for your quick reply!


Dependency injection ordering

This updates the main DI code to run the startup code in a stable order, with DotNetNuke.* and DNN.* assemblies first.
Fixes #3335

Thanks for the review @mitchelsellers, it ended up not working 100% (my OrderBy at the end negated the OrderBy for the types).  I also rearranged it a little bit.  I moved the AddWebApi call into its own Startup class that implements IDnnStartup, and have the rest of the DI initialization in its own class.

Love this and the other one for the propmt command, now the question is, is we get a 9.6.3 out, should we hold this to 9.7.0 ? @bdukes @mitchelsellers  ?

@valadas As much as this is an "enhancement" it could also be flagged as a bit of a bug, so it should go in 9.6.3 in my opinion

Closing this since it is included in #3932


Support Image Discovery in Helm Charts

Is your feature request related to a problem? Please describe.
As a Zarf package developer, I want Zarf to be able to discover the images needed by a helm chart automagically.
Describe the solution you'd like
Now that https://github.com/helm/community/pull/215 is merged, having Zarf be able to discover and include the images needed for the helm chart via the Annotations defined would enable Helm packages to be built more easily.
Describe alternatives you've considered
Rendering the chart and other value file searching.  See the HIP for considerations of these approaches.
Additional context

@runyontr that looks like it will be part of Helm 4 as it stands currently.  Are there any plans to have ppl adopt in Helm 3 or should we block this on Helm 4 release?

The annotation was accepted as is, but the top level Chart property won't be available until Helm 4.
Proposal is to add support for the annotation now, and add support for the property when helm 4 is supported by Zarf

I guess my concern/confusion is we use the Helm SDK, so won't we be blocked until those fields are identified in the Helm version we are using or am I missing something?

@runyontr @jeff-mccoy Helm uses milestones for their roadmap https://github.com/helm/helm/milestones
I don't see anything around 4 here.
@runyontr It sounds like you want us to write code to support the annotation and do what Helm 4 will do?  Or am I like @jeff-mccoy missing something?


Fibonacci Search

implemented the Fibonacci Search Algorithm

fibonacci-search.zip

Please be aware that 1985 people are receiving these emails.

Travis is not happy. Can you fix it?


Does react-native-keyboard-aware-scroll-view work with focus on next input?

Congrats on the great library that helps with getting out of keyboardAwareView which simply doesnt work and has no documentation to explain that this is the case. This package here should be core.
What im trying to achieve is a use case i imagine would most commonly used with react-native-keyboard-aware-scroll-view. This would be, onSubmitEditing focus on the next field.
Unfortunately the approached i used doesnt seem to work with this package, it seems to jump to the bottom and then focus properly on the TextInput field. Any ideas as to why this might be happening or any alternative suggestions to achieve the same thing? The code used looks like this
                <TextInput
                    value={name}
                    onChangeText={e => onChange("name", e)}
                    onSubmitEditing={() => { this.textInput2.focus(); }}
                    blurOnSubmit={false}
                />
                <TextInput
                    value={surname}
                    onChangeText={e => onChange("surname", e)}
                    inputRef={(input) => {
                        this.textInput2 = input
                    }}
                    onSubmitEditing={() => { this.textInput3.focus(); }}
                    blurOnSubmit={false}
                />

Thanks a lot

Seems to a known issue. Depending on your props configuration for KeyboardAwareScrollView, there are several suggestions found here.
https://github.com/APSL/react-native-keyboard-aware-scroll-view/issues/217

I am having a similar issue. On one of my forms, autoscroll to the next focused input stop working altogether.

I have the same issue, setting focus to next input with the onSubmitEditing doesnt autoscroll into view

Hi Team,
Any update on this issue ?

i too am still facing this

I have faced same issue. I fixed it to add props to KeyboardAwareScrollView
**keyboardOpeningTime={0}
enableResetScrollToCoords={false}**

And this props to TextInput
**blurOnSubmit={ false }**

Still facing the same issue, Any update on this thread?

I have faced same issue. I fixed it by adding these props to KeyboardAwareScrollView
keyboardOpeningTime={0}
enableResetScrollToCoords={false}

And this props to TextInput blurOnSubmit={ false }

Just tested this, looks like the only thing you actually need is to control the blurOnSubmit on your Input components.


Update secure_http.go

Coverage remained the same at 55.924% when pulling f7649bb6c90e64f571c23896d4e246b8db456390 on xusss-patch-2 into 70cac045d50d96b12ce4b4a64a958f01a02f10eb on master.


deep

作者您好，我有两个问题想向您咨询。1、请问您这个稀疏度可以自己设置吗？如果可以，具体应该怎么设置呢？  2、我看到只有使用了softdeep算法的代码，没有使用deep算法的代码，若调用deep算法，那nc参数应该怎么设置呢？非常感谢您的回答

Hi! I added an example for how to use the DEEPR optimizer. nc is the number of connections so you can with a specific connectivity in mind (for the sparse parameters) i.e. 0.1 just calculate nc as nc = 0.1*sum(p.numel() for p in sparse_params). Other than DEEPR currently only supports a global constraint on the number of connections. I still have to implement a way to add local (matrix wise) contraints to the number of connections. I can do that sometime this week. I feel like there is still some issue with my DEEPR implementation as I could'nt get great results with it yet. If you find the issue pls let me know :) I recommend to also have a look at the original implementation by the papers authors.

我明白啦，非常感谢您的回答

您好，打扰啦，我还有一个问题想问您，您怎么来对比该算法效果是否好呢？是否需要跟没有使用deep算法的进行对比；如果不想用deep算法，是怎么切换的呢，是优化器换成SGD优化器吗？

好的，我明白了，很感谢您回答我的问题