Aws documentation 2

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/577/
Test PASSed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/578/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/579/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/580/
Test FAILed.

Jenkins, retest this please.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/581/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/582/
Test FAILed.

Jenkins, retest this please.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/583/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/584/
Test FAILed.

Jenkins, retest this please.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/585/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/586/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/587/
Test FAILed.

Jenkins, retest this please.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/588/
Test PASSed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/589/
Test FAILed.

Jenkins, retest this please.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/mango-prb/590/
Test PASSed.


WIP use fix point analysis to implement can_derive_debug

It's failing about 30 tests now and most of them is related to template. I'm also not so sure about the place to call compute_can_derive_debug in gen.
Fix: #767
r? @fitzgen

Thanks for the pull request, and welcome! The Servo team is excited to review your changes, and you should hear from @fitzgen (or someone else) soon.

Here is tests/headers/inner_template_self.hpp's test expectation diff:
--- expected: "/home/travis/build/servo/rust-bindgen/tests/expectations/tests/inner_template_self.rs"
+++ generated from: "/home/travis/build/servo/rust-bindgen/tests/headers/inner_template_self.hpp"
 /* automatically generated by rust-bindgen */

 #![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]

 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct LinkedList {
     pub next: *mut LinkedList,
     pub prev: *mut LinkedList,
 }
 impl Default for LinkedList {
     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
 }
 #[repr(C)]
-#[derive(Debug, Copy)]
+#[derive(Copy)]
 pub struct InstantiateIt {
     pub m_list: LinkedList,
 }

Pointers are always Debug, but it looks like the constrain function doesn't reflect that.

I think that should fix most of the test failures. If not, then let's look at which tests are still failing after fixing that.

After the above fix and move the consider edge a bit, it fails 15 tests now.
I'm not so sure about whether the edge I'm adding is correct or not. The next failure is
--- expected: "/Users/zzhu/Documents/rust-bindgen/tests/expectations/tests/crtp.rs"
+++ generated from: "/Users/zzhu/Documents/rust-bindgen/tests/headers/crtp.hpp"
 /* automatically generated by rust-bindgen */

 #![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]

 #[repr(C)]
 #[derive(Debug, Default, Copy, Clone)]
 pub struct Base {
     pub _address: u8,
 }
 #[repr(C)]
-#[derive(Debug, Copy)]
+#[derive(Copy)]
 pub struct Derived {
     pub _address: u8,
 }
 #[test]
 fn bindgen_test_layout_Derived() {
     assert_eq!(::std::mem::size_of::<Derived>() , 1usize , concat ! (
                "Size of: " , stringify ! ( Derived ) ));
     assert_eq! (::std::mem::align_of::<Derived>() , 1usize , concat ! (
                 "Alignment of " , stringify ! ( Derived ) ));
 }
 impl Clone for Derived {
     fn clone(&self) -> Self { *self }
 }
 impl Default for Derived {
     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
 }
 #[repr(C)]
 #[derive(Debug, Default)]
 pub struct BaseWithDestructor {
     pub _address: u8,
 }
 #[repr(C)]
-#[derive(Debug)]
 pub struct DerivedFromBaseWithDestructor {
     pub _address: u8,
 }
 #[test]
 fn bindgen_test_layout_DerivedFromBaseWithDestructor() {
     assert_eq!(::std::mem::size_of::<DerivedFromBaseWithDestructor>() , 1usize
                , concat ! (
                "Size of: " , stringify ! ( DerivedFromBaseWithDestructor ) ));
     assert_eq! (::std::mem::align_of::<DerivedFromBaseWithDestructor>() ,
                 1usize , concat ! (
                 "Alignment of " , stringify ! ( DerivedFromBaseWithDestructor
                 ) ));
 }
 impl Default for DerivedFromBaseWithDestructor {
     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
 }
 #[test]
 fn __bindgen_test_layout_Base_instantiation() {
     assert_eq!(::std::mem::size_of::<Base>() , 1usize , concat ! (
                "Size of template specialization: " , stringify ! ( Base ) ));
     assert_eq!(::std::mem::align_of::<Base>() , 1usize , concat ! (
                "Alignment of template specialization: " , stringify ! ( Base )
                ));
 }
 #[test]
 fn __bindgen_test_layout_BaseWithDestructor_instantiation() {
     assert_eq!(::std::mem::size_of::<BaseWithDestructor>() , 1usize , concat !
                (
                "Size of template specialization: " , stringify ! (
                BaseWithDestructor ) ));
     assert_eq!(::std::mem::align_of::<BaseWithDestructor>() , 1usize , concat
                ! (
                "Alignment of template specialization: " , stringify ! (
                BaseWithDestructor ) ));
 }

I'd suggest working on getting the smaller (and therefore usually simpler) test cases passing before working on larger ones. Often, the root cause of the issue will be the same in a larger test case, but easier to understand in a smaller setting that has less extra context, and then when you fix it for the small test case, the larger test case is also fixed.
It looks like template-param-usage-15.hpp is a good candidate to dig into next.
--- expected: "/home/travis/build/servo/rust-bindgen/tests/expectations/tests/template-param-usage-15.rs"

+++ generated from: "/home/travis/build/servo/rust-bindgen/tests/headers/template-param-usage-15.hpp"
 /* automatically generated by rust-bindgen */

 #![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]

 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct BaseUsesT<T> {
     pub usage: *mut T,
     pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
 }
 impl <T> Default for BaseUsesT<T> {
     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct CrtpIgnoresU {
     pub _base: BaseUsesT<CrtpIgnoresU>,
     pub y: ::std::os::raw::c_int,
 }
 impl Default for CrtpIgnoresU {
     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
 }

It looks like maybe the CrtpIgnoresU doesn't realize that its template instantiation of BaseUsesT should be able to derive debug?

@photoszzt, looks like there are compilation errors with the latest commit:
error[E0432]: unresolved import `super::can_derive_debug::CantDeriveDebugAnalysis`
  --> src/ir/context.rs:13:5
   |
13 | use super::can_derive_debug::CantDeriveDebugAnalysis;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Could not find `can_derive_debug` in `super`
error[E0432]: unresolved import `super::can_derive_debug::CantDeriveDebugAnalysis`
  --> src/ir/context.rs:13:5
   |
13 | use super::can_derive_debug::CantDeriveDebugAnalysis;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Could not find `can_derive_debug` in `super`
error: aborting due to previous error

:umbrella: The latest upstream changes (presumably #823) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-servo r+

:pushpin: Commit 01c609c has been approved by fitzgen

:hourglass: Testing commit 01c609c679a7a2bb34304a29d5b2036b38b18bce with merge 8f43c93497aacd2742757f71a92e903195ca986c...

:sunny: Test successful - status-travis
Approved by: fitzgen
Pushing 8f43c93497aacd2742757f71a92e903195ca986c to master...


Errata in Ch2~Ch9

p39: 4th eq. in the note
In $ \sum_i (w_i^{{i}} x_i^{(i)} $, subscript i should be changed other character because it means sample index and remove superscript of w like: $ \sum_k (w_k x_k^{(i)} $
p59: 4th line in first code block
c='' raises an error in matplotlib 3.2, suggest replace facecolor='none'
p61: 8th line
L05_gradient-descent_slides.pdf shoud be changed L08_logistic_slides.pdf
p63: 5th line from the bottom
$ \phi(x) = 0.5 $ should be changed $ \phi(0) = 0.5 $
p94: first line, 9th line
$ 0.1 \overline{\overline{6}} $ should be changed $ 0.1 \overline{6} $
$ 0. \overline{\overline{16}} $ should be changed $ 0.1 \overline{6} $
p100: 10th line
As you know, scikit-learn now can do post-pruning with ccp_alpha
p107: In first eq.
$ x_k^{(i)}   x_k^{(j)} $ should be changed $ x_k^{(i)} - x_k^{(j)} $
p119: 16th line and 7th line from the bottom
(X[:, 0].reshape(-1, 1))) should be changed (X[:, 0].reshape(-1, 1))
In c_transf.fit_transform(X).astype(float), astype(float) is not needed.
p162: In 2nd code block
It's better that mean_overall = mean_overall.reshape(d, 1) is moved above for loop.
p173: note box
$ \sum v = \lambda v $, so $ v = \frac{1}{n} \sum_{i=1}^n a^{(i)} \phi(x^{(i)}) = \lambda \phi(X)^T a $ should be changed $ v = \sum_{i=1}^n a^{(i)} \phi(x^{(i)}) = \phi(X)^T a $
p172: last eq.
and $ \frac{1}{n} \sum_{i=1}^n a^{(i)} \phi(x^{(i)}) $ should be changed $ \sum_{i=1}^n a^{(i)} \phi(x^{(i)}) $
p228: 10th line from the bottom and last line
$ C_j (J \in {0, 1}) $ should be changed $ C_j (J \in {1, 2, 3}) $
$ 0.2 \times i_0 + 0.2 \times i_0 + 0.6 \times i_1 $ should be changed $ 0.2 \times i_0 + 0.2 \times i_0, 0.6 \times i_1 $
p266: 8th line
"previous equations" should refer to idf(t, d) not tf idf(t, d)
p273: 14th line
smooth_idf parameter does not exist in second dictionary.
p294: 3rd line under Form validation and rendering section
wtforms.readthedocs.org/en/latest should be changed wtforms.readthedocs.io
p296: the line above Adding style via CSS section
jinja.pocoo.org should be changed jinja.palletsprojects.com
p299: last line
flask.pocoo.org/docs/1.0/ shoud be changed flask.palletsprojects.com

Thanks. :)

Thanks a lot! Will incorporate it into the next ed!
Btw regarding

p59: 4th line in first code block
c='' raises an error in matplotlib 3.2, suggest replace facecolor='none'

I think they mean c="none", I think the facecolor warning is a separate warning related to the 'x' marker.

In c_transf.fit_transform(X).astype(float), astype(float) is not needed.

Inuitively, I agree with you. But removing it will results in a NumPy array of dtype=object. Might be a scikit-learn bug.

Ah.. you're right. ColumnTransformer.fit_transform() returns an array of dtype=object. An array of dtype=object is converted float64 in sklearn.utils.validation.check_array() but using astype(float) is more clear. I'm not sure this is scikit-learn bug. Thanks :)

I see, thanks for the feedback!


Labels are now numbered

[FIXED]
lines = (LABEL_PATTERN.match(line).groups() for line in f.readlines())
AttributeError: 'NoneType' object has no attribute 'groups'

The regex looks for a number followed by characters while running demos.
This issue can be resolved by numbering each label in the text file.

@googlebot I signed it!

Unfortunately, we do not support https://github.com/c-ai/edgetpuvision/, please check the https://coral.googlesource.com/edgetpuvision/ from Coral team.


chore(docs): fix migration notes

Docs Preview
Hey there! 👋 You can check your preview at https://66a119d4332b5cecf861d801--aztec-docs-dev.netlify.app


dynamic ledger authorization table lookup for endorsers

Currently, assumptions are made about the auth table stored on indy ledgers during checks for an endorser. For example, the role of an endorser will always have the authority to endorse new did (nyms) transactions. This assumption does not hold true for all indy ledgers since Indy ledgers allow customization of the auth table.
We could instead, retrieve the auth table from a ledger and encapsulate permissions logic to act accordingly. It is also worth noting if a  ledgers fee table is active, the auth table behavior can change as well.
This issue hinders multi-ledger support.

I'd like to have a discussion about this if you are interested.  What I've been thinking:

create a repo that is "aries-endorser-service" that is an endorser controller implementation.

For local dev and testing, there would be a docker-compose of an ACA-Py agent and the controller and perhaps an simple issuer for testing

Have an implementation of a controller that implements the "--auto" behaviour, so it has all the webhooks received and handled, but with no business logic for making decisions.
Have an implementation of a controller with business rules that includes a web-based UI for handling endorsement requests

If the author has never been heard of the author before or there is no "auto-approve" rule in place (see later), put the request in a queue to be handled by humans

NOTE: this might be where we consider a rules engine with a built-in interface...

Allow the human to add metadata about the author

TBD -- can metadata about the author be automagically collected before passing to the human?

Allow the human to accept/reject the request.
Provide some auto-processing options for the human to apply to future requests from the author (e.g. always ask, always approve, approve the next N requests, notify when N - X have been processed so I can decide to approve some more....)

Add support for multiple ledgers so that the endorser can approve requests for issuers to write to multiple ledgers.

This requires that the Public DID of the Endorser can be different from the Endorser DID.
Include in the request from the author the target ledger (once we have did:indy, this is automatic...)
The Endorser would have to have multiple Endorser DIDs, one per ledger the authors can use.

Note that this service can also be a Trust Registry, that might give a VC to the authors to indicate their authority to issue credentials and/or respond to requests for information about issuer DIDs about their authority to issue credentials.
We (BC Gov) think we need this such that we have one Endorser across all of BC Gov, so it is aware of all issuers in the Enterprise and serves as a central repository (Trust Registry) for BC Gov. We think this can be built relatively generically, so that it can be deployed in other organizations and tuned as needed.

Brilliant! You have put a lot more thought into this than I have, but I recognize the need. ACA-Py would still need a process for looking up the auth table and then retrieving the required signatures/fees for a transaction. Separating concerns of an endorser into an "aries-endorser-service" would make things easier to implement. @frostyfrog has put some thought into the endorser's topic as well. @frostyfrog, do you have any insights to share?

Funny that this was brought up, @dbluhm had recommended that I code up something similar to the aries-mediator-service as an endorser service. The initial goal of which is to handle endorsement requests in an automated manner. As I've been experimenting with ACA-Py to figure out Author/Endorser transactions, however, I've noticed that there are inconsistent responses from ACA-Py. Particularly when publishing SCHEMAs and CRED_DEFs. For instance, when I'm working directly against an agent with ENDORSER privileges to create a SCHEMA, I get a  SchemaSendResultSchema formatted response. However, when I work against an agent with AUTHOR privileges, I get a TxnOrSchemaSendResultSchema formatted response with the sent property being UNSET.
The inconsistent behavior means that you can't have one code path in an application that's written against ACA-Py. As soon as an agent host switches to using the Author-Endorser workflow, the code in applications that rely on certain API calls may break if they don't account for the change in behavior.


Fix JSONSchema for Embedded Objects

When embedding objects within a JSON Schema their Required field should
not be embedded within the "properties" field, but one level above with
the type information.

add unit tests to test object and array with embedded object schema
do not generate required fields within embedded object schemas
generate required fields for array items and object fields

This should fix issue #40

missed a corner case


GPU Memory requirements

Hi
Firstly thank you for releasing this amazing work. Not only is the model amazing but the code quality is excellent. Very easy to follow.
I have a question regarding GPU memory requirements for training. In the readme there's a bit of conflicting information.
We train all our models using 8 A6000 (48 GB each) GPUs. We use 8 A100 (80 GB each) for training Swin-L† OneFormer and DiNAT-L† OneFormer on COCO and all
Is it 8xA6000 (384GB) or 8xA100 (640GB)?
Additionally would it be possible to achieve good results with less, say 2xA6000 (96GB), with it just taking longer?
Many Thanks
Tom

Hi, thanks for pointing out the plausibility of confusion. We will make it more clear in a future commit.

We use 8 A100 (80 GB each) for training Swin-L† OneFormer and DiNAT-L† OneFormer on COCO.
For all other models, we use 8 A6000.

Additionally would it be possible to achieve good results with less, say 2xA6000 (96GB), with it just taking longer?

I think so if the memory is enough. You might need to tune some hyperparameters though as we provide values for training with 8 GPUs

Thanks for the response,
For anyone interested I've been able to get Convnext Large ADE20K to train on two A6000 gpus by lowering the crop size to 512x512 while still keeping the batch size at 16. I used the following config
_BASE_: ./oneformer_convnext_large_bs16_160k.yaml SOLVER:   IMS_PER_BATCH: 16   BASE_LR: 0.000025 # 8 gpu version used 0.0001 INPUT:   MIN_SIZE_TRAIN: !!python/object/apply:eval ["[int(x * 0.1 * 512) for x in range(5, 21)]"]   MIN_SIZE_TRAIN_SAMPLING: "choice"   MIN_SIZE_TEST: 512   MAX_SIZE_TRAIN: 2048   MAX_SIZE_TEST: 2048   CROP:     ENABLED: True     TYPE: "absolute"     SIZE: (512, 512)     SINGLE_CATEGORY_MAX_AREA: 1.0   COLOR_AUG_SSD: True   SIZE_DIVISIBILITY: 512  # used in dataset mapper   FORMAT: "RGB" TEST:   DETECTIONS_PER_IMAGE: 250   EVAL_PERIOD: 5000   AUG:     ENABLED: False     MIN_SIZES: [128, 256, 512, 1024, 2048, 4096]     MAX_SIZE: 4096     FLIP: True


Download task never calls back TaskEnd

OkDownload Version
v1.0.2-SNAPSHOT
Problem Describe
This code piece failed to work properly when I downloaded 2 videos(appr. 10 MB each). It starts 3 connections for each file, but one of the second file never reaches connectEnd, thus never return to taskEnd hook.
This issure could be bypassed if I set setAutoCallbackToUIThread(false) explicitly. It is still annoying. Please check it.
DownloadTask task = new DownloadTask.Builder(url, parentPath, fileName)
               .setMinIntervalMillisCallbackProcess(1000)
               .build();
task.enqueue(listener);

Log
There is the whole log from LogCat when I occur the problem(I know we can use this tool to let log more readable):
taskStart file = debdcd7621e537c95c1262348c13f951.mp4
connectTrialStart file = debdcd7621e537c95c1262348c13f951.mp4
connectTrialEnd file = debdcd7621e537c95c1262348c13f951.mp4
downloadFromBeginning file = debdcd7621e537c95c1262348c13f951.mp4
I/aaaa: connectStart file = debdcd7621e537c95c1262348c13f951.mp4
connectStart file = debdcd7621e537c95c1262348c13f951.mp4
connectStart file = debdcd7621e537c95c1262348c13f951.mp4
I/aaaa: connectEnd file = debdcd7621e537c95c1262348c13f951.mp4
I/aaaa: fetchStart file = debdcd7621e537c95c1262348c13f951.mp4
I/aaaa: connectEnd file = debdcd7621e537c95c1262348c13f951.mp4
fetchStart file = debdcd7621e537c95c1262348c13f951.mp4
I/aaaa: fetchEnd file = debdcd7621e537c95c1262348c13f951.mp4
I/aaaa: fetchEnd file = debdcd7621e537c95c1262348c13f951.mp4

I have the same issue here. progress call back is called but blocked .And no taskEnd callback.

what do you mean by "bypassed if I set setAutoCallbackToUIThread(false) explicitly." . It didn't work for me @MikeHongweiBai

Please try 1.0.5.

@rantianhua seems not working on 1.0.5.

@zxy198717 Could you provide a whole log? I can figure out the problem quickly with that.

@rantianhua Sorry, It's works.


Allow users to specify the database location.

Is your feature request related to a problem? Please describe.
Running Discord bots, for example, require that you run said bot from the same folder each time. If you were to run it from your home directory for example, a new json.sqlite file would be created there, and the bot would read an empty database. Not only can this be extremely frustrating trying to debug things from within other folders, but makes CLI applications using quick.db completely unusable.
Describe the solution you'd like
I'd like to have the ability to specify an absolute path in the require method.
Describe alternatives you've considered
I've only considered switching to a more 'proper' database tool, however for small projects, this is an amazing time saver and I'd love to continue using it.
Additional context
N/a

I made a fork a year ago with a new method that could help you:
const quickdb = require("quick.db");
quickdb.init("./custom-file.sqlite");
// quick.db methods will use the custom-file.sqlite file

I made a fork a year ago with a new method that could help you:
const quickdb = require("quick.db");
quickdb.init("./custom-file.sqlite");
// quick.db methods will use the custom-file.sqlite file

https://github.com/Androz2091/quick.db

Thanks, I'll be sure to use that! Still think this should be in the main stream due to all the issues it can create as is.

I created the pull request (#194)


load_in_4bit should be False by default.

All other libraries for language models load the model in default model quantization unless explicitly specified. https://github.com/unslothai/unsloth/blob/27fa021a7bb959a53667dd4e7cdb9598c207aa0d/unsloth/models/loader.py#L73C9-L73C21 suggests load_in_4bit is set to true even when the user doesn't explicitly asks/expects it to be. This should either be set to False or an update to the documentation should be made.
I'm willing to review any PRs for this issue.

Oh we set it to True because people might not set it, then use 16bit which might overflow on their GPU

I sort of see where you are going with that but my concern is that since its not documented well the assumption was when you explicitly specify load_in_4bit=True then the model would be setup in 4 bit. I believe that's how HF transformers, pytorch, deepspeed and all the other libraries do it. IMO the flag should either be more consistent or explicitly clear in a warning or in the documentation.

Fair points - might add a warning!


feat(cat-gateway): Purge volatile data after immutable roll forward

Description
Adds queries and logic for purgin volatile DB data.
Related Issue(s)
Closes #944
Description of Changes
Provide a clear and concise description of what the pull request changes.
Breaking Changes
Describe any breaking changes and the impact.
Screenshots
If applicable, add screenshots to help explain your changes.
Related Pull Requests
If applicable, list any related pull requests.

e.g., #1, #1

Please confirm the following checks

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream module

dont merge this yet

Just converted to draft to prevent it merging pre-maturely.
Not because its not ready for final review.


Make "homepage" optional in Cargo.toml

This tool appears to fail if the homepage field is not specified in Cargo.toml. C-METADATA, which is linked in the README, states that homepage is optional and further states:

The homepage metadata should only be set if there is a unique website for the crate other than the source repository or API documentation. Do not make homepage redundant with either the documentation or repository values. For example, serde sets homepage to https://serde.rs, a dedicated website.

Given that a lot of crates these days will just have a repository URL and not a separate homepage, I think it would be good to make homepage optional in cargo-aur (following the approach in C-METADATA). The url field in the PKGBUILD could be set to homepage or, if that is not present, documentation or, if that is not present, repository (the last being a required field per C-METADATA).
Happy to work on a PR for this if helpful.

Great suggestion. Want to give it a shot?


XEmbedding terminals and editors via xfilesctl is broken

I am on FreeBSD 14.1-RELEASE-p2.
In examples/xfilesctl you are apparently using XEmbed, for instance in edit().
This is broken for most XEmbed-conforming applications. For instance, simpleterm/st (st -w $WINDOWID) does not work at all - it is not visible. Urxvt (urxvt -embed $WINDOWID) somewhat works, but the window is never focused and does not react to font size changes properly.
SciTECO (gsciteco --xembed=$WINDOWID), which is using GtkPlug, does not work at all - nothing is visible while the process is running in the background.
The same btw. is true when using dmenu -w in prompt(), although rofi -dmenu -w $WINDOWID appears to work correctly.
It looks like the Xembed protocol is not fully implemented at the xfiles-side.

Offtopic: What's that round menu in the screenshot?

Offtopic: What's that round menu in the screenshot?

That's your pmenu...

Hi,
There are two issues here:
The first is on how embedded applications create their windows inside the embedder. X11 has this notion of visual types and color depth; and the visual/depth an application uses to draw in their windows must match the visual/depth of the window itself, otherwise a BadMatch error will occur. If the program does not manually set a window's visual/depth, it inherits the ones from its parent window.
In the case of an embedded st(1), its parent window is XFiles. XFiles uses a visual/depth with alpha/opacity channel (so the user can have a semi-transparent background by setting the XFiles.opacity X resource). St however uses X11 default' visual/depth which lacks alpha channel. A BadMatch error then occurs.
I have tested embedded st, and that is the case.
This is what stderr says on a terminal window:
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  70 (X_PolyFillRectangle)
  Serial number of failed request:  419
  Current serial number in output stream:  421

Dmenu also used to have the same problem of BadMatch visual/depth on drawing functions, but it had been fixed by this commit and should work on dmenu 5.3.
I guess other suckless applications will still cause BadMatch.
That is not a bug in XFiles side, although I think I can write a hack for that (maybe map buggy embedded applications into a proxy "dummy" window with default visual/depth, and then reparent then into XFiles actual window).
The second problem is indeed in XFiles side, and that is related to the fact that XFiles does not notify focus changes to the embedded application (which is required by the XEmbed protocol). I am working on a fix for that now.

Hi,
I sent a patch to st to fix that issue on st side: https://lists.suckless.org/hackers/2408/19158.html
With that patch, st does not inherit embedder's visual information. Rather, it uses X server's default visual information, and no BadMatch error occur while drawing stuff.
I am still working on the issue on XFiles side.

The same btw. is true when using dmenu -w in prompt()

Which version of dmenu are you using? That had been fixed in 5.3.

although rofi -dmenu -w $WINDOWID appears to work correctly

I guess that is because rofi, just like dmenu, is a "focus grabber". They do not depend on the window manager (or embedder) giving them focus. That's why you cannot focus any window while dmenu is active: it has grabbed the focus.
Btw, that's the sole reason why I have not implemented XEmbed focus reporting initially: the idea was to embed dmenu only... then i tried to embed xterm and it just works...

I sent a patch to st to fix that issue on st side: https://lists.suckless.org/hackers/2408/19158.html

Works, cool.

Which version of dmenu are you using? That had been fixed in 5.3.

I tried version 5.1 from the FreeBSD ports tree. So that explains it.

Hi,
Commit  9eba0d5 implements sending messages to the embedded applications, in particular messageing them when they get focus.  I tested with urxvt, which uses the XEMBED_FOCUS_IN message to replace the unfocused "outline-only" cursor box with the filled cursor box.
I shall work fine now.
I will test with Qt and Gtk applications (after I find an embeddable gtk/qt program).
I have not implemented much of the XEmbed protocol, as XFiles does not embed other windows as another widget among others, but as a whole window that replaces XFiles' content, so no complex focus negotiation is required.

I can confirm that it now works with Urxvt. But SciTECO still fails. :-( The Gtk version uses GtkPlug.
gvim --socketid might also be something to test. It should also be GtkPlug-based.

And no, gvim --socketid for Gtk3 also doesn't work. Behaves exactly like SciTECO. Both work with tabbed, though.
For some strange reason gvim also doesn't work in my own st fork, where I added Xembed hosting support, while SciTECO does work with it. There is some part of Xembed I also haven't implemented properly yet.

Hi,
I just tested with gvim and surf (which is also based on gtk) on commit cf2d9f8 and both are embedded fine.
I am still having some trouble in making gvim automatically focus its input field. The gvim window is focused, but not the input area.
It seems that gtk does embedding its own way. Even the XEmbed sepecification warns about gtk...

I just tested with gvim and surf (which is also based on gtk) on commit cf2d9f8 and both are embedded fine.

I suppose you also tested the Gtk3 version of gvim?

I suppose you also tested the Gtk3 version of gvim?

Yes, the GTK 3 version.

SciTECO now embeds just fine after your latest changes in cf2d9f8.


The pretrained weight of vgg

When you pre-train the vgg on ImageNet, Do you add BN or shortcut(SC)?
If you don't add it, when you  load the pretrained model on BiDet,  Will the parameters not match?

Hi! Yes, I do add the BN and shortcut when pretraining VGG on the ImageNet. In other words, the VGG used in pretraining and detection task training have the same architecture. Also, you can refer to this issue #9 for more details about VGG pretraining.

Thank you for your reply!
When you pre-train the vgg, did you also clip the relu function of some layers(like bidet)?

Yes, in the pretraining stage, we also train a binary VGG16. That is to say, the pretrained VGG16 is completely the same as the backbone VGG16 used in BiDet in terms of architecture, binarization, etc. To make it more clear, I adopt the same implementation as in BiReal-Net paper, which first trains a full-precision model, then use tanh activation to replace relu and finally use binarization activation to finetune. You can refer to their paper for more details.

Oh, I need to revise what I have said. The pretrained VGG and the backbone VGG is not completely same. Since pretraining is done in the classification task, so I use a global average pooling after the conv layers to reduce feature dimension, followed by a 1000-way fully connected layer to output class probability. And when use the pretrained VGG as backbone, we simply drop the global average pooling layer and the fully connected layer. But anyway I think you can just use the pretrained VGG weight I provided :)

Thank you very much for your timely reply! It helped me a lot!

Excuse me, When you train the binary vgg_16 in the classification task, How many training epochs have you done? What is the final training accuracy?
Because I train the vgg_16 using a different binary method now, and I find it very time consuming. I want to make sure if I need to train to the best accuracy?
Thank you very much.

@puhan123 Yes very good question. The training of VGG on ImageNet is indeed really really slow. I forgot about the exact epoch number for training. If I remember correctly, I used 4 GPUs, the batch size may be 4*64=256, and I trained for several days using Adam optimizer with initial lr=1e-3 and decayed twice to 1e-4 and 1e-5 respectively. The final Top-1 accuracy is around 65%.
Actually, I think it should be very difficult if you train the binary VGG from scratch, so I'd suggest you to adopt the training strategy as in Bi-Real-Net. Also, Adam optimizer is much better than SGD for binary neural networks. And a big batch size is useful to stabilize the training.


Fix in the settings API to handle unknown properties

This PR fixes a bug where the settings features would not work in production. This situtation occurs when new settings properties are introduced, but not yet deployed to production.
Changes

The json deserializer ignores unknown properties in the API and CLI

Checklist
Testing

[x] Tested locally?
[x] Ran quickTest all?
[x] Ran ./prime test against local Docker ReportStream container?
[ ] Downloaded a file from http://localhost:7071/api/download?
[ ] Added tests?

Specific Security-related subjects a reviewer should pay specific attention to

Does this PR introduce new endpoints?

new endpoint A
new endpoint B

Does this PR include changes in authentication and/or authorization of existing endpoints?
Does this change introduce new dependencies that need vetting?
Does this change require changes to our infrastructure?
Does logging contain sensitive data?
Does this PR include or remove any sensitive information itself?

If you answered 'yes' to any of the questions above, conduct a detailed Review that addresses at least:

What are the potential security threats and mitigations? Please list the STRIDE threats and how they are mitigated

Spoofing (faking authenticity)

Threat T, which could be achieved by A, is mitigated by M

Tampering (influence or sabotage the integrity of information, data, or system)
Repudiation (the ability to dispute the origin or originator of an action)
Information disclosure (data made available to entities who should not have it)
Denial of service (make a resource unavailable)
Elevation of Privilege (reduce restrictions that apply or gain privileges one should not have)

Have you ensured logging does not contain sensitive data?
Have you received any additional approvals needed for this change?

Process

[ ] Are there licensing issues with any new dependencies introduced?
[ ] Includes a summary of what a code reviewer should verify?
[ ] Updated the release notes?
[ ] Database changes are submitted as a separate PR?
[ ] DevOps team has been notified if PR requires ops support?

Fixes

#1916

To Be Done
Create GitHub issues to track the work remaining, if any

#issue

@jimduff-usds

Someone might submit extra new fields from a newer version of the CLI, into an older prod env, expecting those fields to take effect in production, and in fact they are silently ignored.   Is that a problem?

I think it is less of a problem than not being able to use the current CLI in production.

Is this same deserialization config option used in the env when json is pulled in from the database?   If so, then another problem is that someone updates the .kt obj structures, but forgets to update the actual json data in Prod.   This solution might hide problems, but then they pop up hours or days later when that setting gets used.

Today devs will only add fields to our structures because of this strict deserializer. For example, consider that our Hl7Configuration has two fields to control processing mode. Which should a dev use? One is deprecated and one is not, but you have to read the code comments to know. This wouldn't happen if the developer could remove fields. (I know that someone could write a migration to remove that field in the settings table json field, but this is not a trivial effort and not obvious to most people). I can't see that this is a better situation.

Another solution might be to provide better / more complete error messaging about what's going on in these version mismatch situations.

Again, it doesn't work for the removing fields situation.

As a start in that direction, note that the three settings 'set' commands have a --verbose option that at least helps to expose the data being passed from the CLI to the API. Better would be to show the user the difference in the object versions - these errors can be quite perplexing when you first encounter them.

It would be good to see a test wherein the CLI does a settings set with extra fields, missing fields.
Do you mean that ./prime test would do a few settings?


Request:Is it possible to add exponential, smallest extreme value, normal, logistic AFT models

Is it possible to add exponential, smallest extreme value, normal, logistic AFT models in later releases.
Exponential distribution is a frequently used distribution type, and other distributions are used less often.

@leavor this are possible to build quickly with the library:
https://lifelines.readthedocs.io/en/latest/jupyter_notebooks/Custom Regression Models.html
There's an example of the Exponential dist there.
I chose not to include all these as they would confuse new users (too many options for models), so I kept the most popular ones (IMO).


Get embedding not classification

Is there an implementation of this anywhere that can be used to ouput embeddings of audio using any of th epretrained models, rather than classifications, so we could use these to train our own classifiers (e.g random forests) using these embeddings? Similar to how you can easily get a 128 embedding using VGGish.

If you view the models or their outputs, there are embeddings available.


Rewrite to match other Todos

What does this PR do?
Update this todo demo to match the other todo demos:

appwrite/todo-with-react
appwrite/todo-with-vue
appwrite/todo-with-angular
appwrite/todo-with-svelte

Test Plan
Manual
Related PRs and Issues

#12

Have you read the Contributing Guidelines on issues?
Yes

@stnguyen90 really like this new version! Might need to update some statefulness so that the user stays logged into the app. Do you want to continue on this? I know it has been a few months since you added to it.


Fix interface binding for Factory.Create

When setting up bindings for Factories if you are using an
interface as type, the created TypeValuePair used concrete
type instead.
When you bind a Factory, as seen below, you expect
PrefabInstaller to recieve InterfaceClass through injection.
Container
.BindFactory<InterfaceClass, GeneratedClass, GeneratedClass.Factory>()
.FromSubContainerResolve()
.ByNewPrefab(Prefab);
However since Factory.Create( concreteObject ) method binds
concreteObject value to ConcreteType instead of Interface this
injection fails

I am not well versed in Zenject's internals that is why I am not sure if the changes I made are conflicting with anything else. This fixed the issue in my use cases.

Hey, sorry for the late response here.
I've been waiting to tackle this problem because this required some investigation.  As you suspected, there were some considerations here in terms of zenject internals that would not be obvious at first glance.
The way that Zenject matches factory arguments (and also arguments given using WithArguments) was originally made not strict by design.  This has some advantages and disadvantages, and it's tempting to change it to be strict instead, but after thinking about this, I think the best trade off is to leave it non-strict.  This avoids breaking existing code, and also has the advantage that it is more forgiving of the type you pass in, so it allows you to pass base class types and match to derived-class constructor arguments and vice versa.  One disadvantage is that there could be some false matches (for example, if you have a parameter of type object, it will always match with the first dynamic argument given) but in my experience this is fairly rare.
I was able to fix your specific problem as well, without needing to change the way zenject handles dynamic parameter passing, by making factories + subcontainers more intelligent in the way they apply dynamically provided arguments.  So your code should work now


chore: merge emqx-OTP-25.3.2 into emqx-OTP-26.1.2 and prepare to tag 26.1.2-1

The CI failures are apparently unrelated to the changes herein:

tagged OTP-26.1.2-1


Feature/fro 54 document UI

Apologies this got too big and I should've separated earlier.

Considerable updates to the document viewer page
Updates to the search results UI including slide out (does not contain the upcoming change to the drawer + pdf passages)
A lot of formatting updates

Also includes fixing a few random bugs like Justine's height issue on her small laptop screen.


gitconfig: set safe.directory = *

Allow git push to work when networked file systems with mixed
ownership are used with Gitea docker images >= 1.16.6 or Gitea
binaries running alongside git versions published after 04/2022.
There are circumstances independent of Gitea (networked file systems
with various permission systems) by which the git repositories managed
by Gitea may have mixed owners. It is not a behavior that Gitea have
control over nor is it a problem as long as the permissions for Gitea to
operate are correct. Gitea instances have been operating under these
conditions for a number of years.
It is detected as a potential security risk ( see
https://github.com/git-for-windows/git/security/advisories/GHSA-vw2c-22j4-2fh2
) by the most recent git versions. However, Gitea always runs git
commands with a current directory matching the repository on
which it operates. That makes Gitea immune from this security problem
and it is safe to ignore the mixed owner permission check.
This gitconfig modification is done on a file dedicated to the user
exclusively used by Gitea.
Fixes: #19455

Now that #19870 is merged and git 2.36.1 is included in the Gitea docker images, this can be backported to 1.16.9 and fix the issue for good.

I would like to merge #19732 because then you will not change the global configuration.

Hmm @singuliere why'd you close?
I think we should merge this simply because it is going to solve the issue in a very minimal way.

Hmm @singuliere why'd you close?
I think we should merge this simply because it is going to solve the issue in a very minimal way.

I respect @singuliere 's effort to resolve the problem. But I would against to merge this directly. My point is we should not change the git security setting globally and silence in user's machine when Gitea running and users may complaint that. Users may run Gitea in his developer machines, docker or a public rasp berry. It may results in an unsafe state of that machine. A Gitea special setting is a more suitable resolution.

Perhaps we should just add this variable to the docker builds?
Unfortunately docker has made it almost completely impossible to get ANY ownership mapping of files on docker for Windows. (This is frankly ridiculous.) It is possible as I've written on the issue but it's pretty opaque.
Users of docker on other systems can also face similar ownership problems due to filesystem misconfiguration with smbfs shares etc.
It appears too complicated to expect people to get this right and it probably doesn't really matter.
At least in this case, we don't need to rely on ownership being right if we just set safe.directory - so we should just set it but remember we can never rely on ownership because of this dumb mechanism. If we want to make configuration of Gitea simple we're forced to do this.
Docker is forcing us in to setting this because of its absolutely useless mechanism of volume mounting on Windows.


empty examples

The examples folder includes various files which turn out empty except for a TODO saying someone should write them.
The files haven't been touched in years.
Please consider removing the files without content (and add explicit issues on github or in ONE file) to make this code base a bit more approachable for new users.

Started in https://github.com/stack-of-tasks/pinocchio/pull/1878.
Feel free to open a PR directly when you see an improvement like this one.


Add iOS support

This adds iOS support, it treats iOS targets as macOS (they act the same).
I did the same for sysinfo crate.

LGTM, can you confirm this actually works on iOS (vs just compiling correctly)?

iOS applications build statically so mostly if it compiles it should contain all symbols and code required for it to work correctly.

Since I don't have an iOS test env, I can't check it myself.
If you are unable to test it as well that's fine, but it would be better to know that it does what it's supposed to do before merging 😄

We at @sunshine-protocol building native apps using Flutter and Rust, one of our projects sunshine-identity-ui has a dependency that uses this crate, but it fails to compile in iOS, I tested with current branch (by patching crates in cargo.toml file).

As of writing this comment we still have an issue get our Rust code to compile on iOS because of sysinfo, although we patched the upstream sysinfo crate the dependency that uses it still uses an old version which we also opened a PR there to solve it.

So it's okay to hold that PR for now, we could test by using a git url + branch and if it worked correctly I will inform you 😊
Thanks.

Linux/Android are similar enough that you should be able to add Android too in the same way

Hey @ohadravid we tested the app on iOS and it builds and runs with no issues see https://github.com/sunshine-protocol/sunshine-identity-ui/issues/4
also, the sysinfo crate works too.
So I guess you could merge this now 😄


Spaces in image URLs do not resolve properly

Versions

gatsby-source-prismic: 5.2.1
gatsby-plugin-prismic-previews: 5.2.1
node: 14

Reproduction

Upload an image with a space in the filename. Query for the URL and test if the URL works or is broken.
Steps to reproduce
What is expected?
The image URL works.
What is actually happening?
Spaces in the URL break decode/encode to an invalid filename.

Related: https://github.com/prismicio/prismic-gatsby/issues/486

This issue is stale and may be fixed in a recent version. Please update to the latest version and try again. If the issue continues to be a problem, please open a new issue. Thank you!
See the documentation for guides on updating to the latest versions: Gatsby + Prismic Migration Guides


Missing sample and sampleWith

@motorcycle/stream  is missing sample and sampleWith.

This has been released!


Nested layouts support

Is there a way to nest a layout inside of another? For example:
default.hsb
-- postLayoout.hbs
---- {{{body}}}

Thanks in advance.

Is this what your looking for?
https://github.com/barc/express-hbs/blob/master/example/views/layout/veggie-details.hbs
html-struct.hbs
    veggies.hbs
        veggie-details.hbs

I'm not sure if that's going to behave as I need. For example, given the following in a router callback:

router.get('/post/:id, function(req, res) {
   // gets article from db ...

   res.render('article', {
      post: article,
      layout('layouts/postLayout') // This would yield the article view in postLayoout
   }
})

Then in the article.hsb view:
{{!< defaultLayout}}
 and everything here will be inside of the defaultLayout specified above?
```html

In your example, defaultLayout will be used by order of precedence rules in the README, which would ignore layout in the context argument. The reasoning is if you put a declarative layout in a page, you probably meant to override the setting in code.

Ok, so I shouldn't specify the layout in the JS code.
I suppose it works like this:
in article.hbs
{{!< postLayout}}

 and everything here will be inside of the defaultLayout specified above?

in postLayout.hbs

This is a post

{{{body}}}

in defaultLayout.hbs

...

   {{{body}}} <- does this render postLayout with the article.hbs view in it?

Is this right?

postLayout.hbs should look like this to tell hbs it is nested within defaultLayout
{{!< defaultLayout }}

This is a post

{{{body}}}

Yes! That makes sense.
Thanks!

Guys sorry for contacting you this way but just wanted to say a huge thanks for this awesome implementation, is the most complete and elegant view engine for express. Keep up the good work!


lots o upgrades

added sound fx, fixed tie bug, increased sensitivity threshold from 60 to 40, added introductory instructions before level 4, added gallery unlock

Bug report. If you connect two Swadges, then turn one off, the one that is on gets stuck playing Joust. There's no heartbeat message during gameplay, so it never knows the other disappears. If it shakes and tries to send the 'I lost' message, joustMsgTxCbFn() is called with MSG_FAILED, but nothing happens.
At a minimum, the game should abort and go back to the menu if MSG_FAILED happens. Even better would be a heartbeat message sent every few seconds, and if three heartbeats are missed in a row, then the game aborts back to the menu.

I'd recommend having a third SFX for tie, rather than reusing the one for win

I haven't actually been able to trigger a tie game after the newest changes, it might be impossible potentially.

I got a tie, that works as expected :)


Implement flow control of gRPC stream writes.

Currently, reads from the stream are correctly handled by propagating request through the stub, but writes are not since isReady is not properly implemented. When I first implemented the streams, I didn't understand StreamWriter properly, but now I do and realize we can use onDemand for this :)
With the change, the stream is only considered ready for writes when there is a request for them. I sort of want to optimize the non-backpressure case by only doing this if isReady is called, as that's a heuristic that should generally show the caller is implementing backpressure, but it's a bit weird and for unary calls the one call to onDemand doesn't seem like a big deal.
Fixes #1037

Test failure:
com.linecorp.armeria.it.grpc.GrpcFlowControlTest > serverBackPressure FAILED
    java.lang.AssertionError:
    Expecting:
     <11>
    to be between:
     [3, 5]
        at com.linecorp.armeria.it.grpc.GrpcFlowControlTest.serverBackPressure(GrpcFlowControlTest.java:273)

Disabled the test by default, since I don't think it's possible to verify flow control reliably on the CI. The test relies on the rate of bytes transferred over the connection.

I can't make serverBackPressure() pass on my laptop which is relatively idle, although the change itself looks fine to me.

It's hard for me to be confident in the change, since the underlying flow control is a bit opaque :/ Let me know if you have any ideas how I might be able to improve the test, or of course the logic too

I think we can't test backpressure with precision because OS will always buffer the data before actually sending it to the wire. What I did in HttpServerTest is probably more reliable way to test backpressure although it takes longer time.

The change itself looks good to me, too.

Boolean flag doesn't seem to work. Switched to a counter and the test passes reliably.
diff --git a/grpc/src/main/java/com/linecorp/armeria/client/grpc/ArmeriaClientCall.java b/grpc/src/main/java/com/linecorp/armeria/client/grpc/ArmeriaClientCall.java
index e6da194d..64ccdaa2 100644
--- a/grpc/src/main/java/com/linecorp/armeria/client/grpc/ArmeriaClientCall.java
+++ b/grpc/src/main/java/com/linecorp/armeria/client/grpc/ArmeriaClientCall.java
@@ -22,6 +22,7 @@ import java.util.concurrent.CancellationException;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;

 import javax.annotation.Nullable;

@@ -72,6 +73,10 @@ class ArmeriaClientCall<I, O> extends ClientCall<I, O>

     private static final Logger logger = LoggerFactory.getLogger(ArmeriaClientCall.class);

+    @SuppressWarnings("rawtypes")
+    private static final AtomicIntegerFieldUpdater<ArmeriaClientCall> pendingMessagesUpdater =
+            AtomicIntegerFieldUpdater.newUpdater(ArmeriaClientCall.class, "pendingMessages");
+
     private final ClientRequestContext ctx;
     private final Client<HttpRequest, HttpResponse> httpClient;
     private final HttpRequestWriter req;
@@ -90,7 +95,7 @@ class ArmeriaClientCall<I, O> extends ClientCall<I, O>

     private boolean cancelCalled;

-    private volatile boolean ready = true;
+    private volatile int pendingMessages;

     ArmeriaClientCall(
             ClientRequestContext ctx,
@@ -201,17 +206,7 @@ class ArmeriaClientCall<I, O> extends ClientCall<I, O>

     @Override
     public void sendMessage(I message) {
-        if (ready) {
-            ready = false;
-            req.onDemand(() -> {
-                ready = true;
-                try {
-                    listener.onReady();
-                } catch (Throwable t) {
-                    close(Status.fromThrowable(t));
-                }
-            });
-        }
+        pendingMessagesUpdater.incrementAndGet(this);
         if (ctx.eventLoop().inEventLoop()) {
             doSendMessage(message);
         } else {
@@ -221,13 +216,22 @@ class ArmeriaClientCall<I, O> extends ClientCall<I, O>

     @Override
     public boolean isReady() {
-        return ready;
+        return pendingMessages == 0;
     }

     private void doSendMessage(I message) {
         try {
             final ByteBuf serialized = marshaller.serializeRequest(message);
             req.write(messageFramer.writePayload(serialized));
+            req.onDemand(() -> {
+                if (pendingMessagesUpdater.decrementAndGet(this) == 0) {
+                    try {
+                        listener.onReady();
+                    } catch (Throwable t) {
+                        close(Status.fromThrowable(t));
+                    }
+                }
+            });
         } catch (Throwable t) {
             cancel(null, t);
         }
diff --git a/grpc/src/main/java/com/linecorp/armeria/server/grpc/ArmeriaServerCall.java b/grpc/src/main/java/com/linecorp/armeria/server/grpc/ArmeriaServerCall.java
index bda7c82a..81cb5865 100644
--- a/grpc/src/main/java/com/linecorp/armeria/server/grpc/ArmeriaServerCall.java
+++ b/grpc/src/main/java/com/linecorp/armeria/server/grpc/ArmeriaServerCall.java
@@ -27,6 +27,7 @@ import java.io.IOException;
 import java.io.UncheckedIOException;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;

 import javax.annotation.Nullable;

@@ -86,6 +87,10 @@ class ArmeriaServerCall<I, O> extends ServerCall<I, O>

     private static final Logger logger = LoggerFactory.getLogger(ArmeriaServerCall.class);

+    @SuppressWarnings("rawtypes")
+    private static final AtomicIntegerFieldUpdater<ArmeriaServerCall> pendingMessagesUpdater =
+            AtomicIntegerFieldUpdater.newUpdater(ArmeriaServerCall.class, "pendingMessages");
+
     // Only most significant bit of a byte is set.
     @VisibleForTesting
     static final byte TRAILERS_FRAME_HEADER = (byte) (1 << 7);
@@ -126,7 +131,7 @@ class ArmeriaServerCall<I, O> extends ServerCall<I, O>
     private boolean sendHeadersCalled;
     private boolean closeCalled;

-    private volatile boolean ready = true;
+    private volatile int pendingMessages;

     ArmeriaServerCall(HttpHeaders clientHeaders,
                       MethodDescriptor<I, O> method,
@@ -223,17 +228,7 @@ class ArmeriaServerCall<I, O> extends ServerCall<I, O>

     @Override
     public void sendMessage(O message) {
-        if (ready) {
-            ready = false;
-            res.onDemand(() -> {
-                ready = true;
-                try {
-                    listener.onReady();
-                } catch (Throwable t) {
-                    close(Status.fromThrowable(t), EMPTY_METADATA);
-                }
-            });
-        }
+        pendingMessagesUpdater.incrementAndGet(this);
         if (ctx.eventLoop().inEventLoop()) {
             doSendMessage(message);
         } else {
@@ -247,6 +242,15 @@ class ArmeriaServerCall<I, O> extends ServerCall<I, O>

         try {
             res.write(messageFramer.writePayload(marshaller.serializeResponse(message)));
+            res.onDemand(() -> {
+                if (pendingMessagesUpdater.decrementAndGet(this) == 0) {
+                    try {
+                        listener.onReady();
+                    } catch (Throwable t) {
+                        close(Status.fromThrowable(t), EMPTY_METADATA);
+                    }
+                }
+            });
         } catch (RuntimeException e) {
             close(Status.fromThrowable(e), EMPTY_METADATA);
             throw e;
@@ -258,7 +262,7 @@ class ArmeriaServerCall<I, O> extends ServerCall<I, O>

     @Override
     public boolean isReady() {
-        return !closeCalled && ready;
+        return !closeCalled && pendingMessages == 0;
     }

     @Override

Thanks for debugging this and the patch! Applied it (feel free to push straight into the branch if you ever want to though :) )
Too be honest, I only half-grok why this works and the boolean didn't, and it makes the onDemand API seem very unintuitive. What do you think? Anyways, glad it's working though.

StreamWriter.onDemand() writes a Future into StreamWriter's message queue, and the Future is completed when all messages before itself are consumed by the subscriber. Because we always call onDemand() after each write(), we know exactly one message was consumed when the callback is invoked.
The problem with using a boolean flag is that the onReadyHandler we set in ClientResponseObserver.beforeStart() can reenter.  Because ready becomes true immediately after it's set to false, gRPC never sees the false flag and thus keeps calling the onReadyHandler.

Actually, this makes me think we can actually solve this problem using a boolean. :-) Gimme a sec.

Uh, actually boolean will not work if sendMessage() is called simultaneously from multiple threads. Here's the half-fix with boolean anyway:
    @Override
    public void sendMessage(I message) {
        ready = false;
        if (ctx.eventLoop().inEventLoop()) {
            doSendMessage(message);
        } else {
            ctx.eventLoop().submit(() -> doSendMessage(message));
        }
    }

    private void doSendMessage(I message) {
        try {
            final ByteBuf serialized = marshaller.serializeRequest(message);
            req.write(messageFramer.writePayload(serialized));
            req.onDemand(() -> {
                ready = true;
                try {
                    listener.onReady();
                } catch (Throwable t) {
                    close(Status.fromThrowable(t));
                }
            });
        } catch (Throwable t) {
            cancel(null, t);
        }
    }

Note that we called onDemand() after write() so that the callback is invoked only after the message is consumed. This would work only if there is only a single writer, but I guess we can't guarantee that.

So, the core of this problem is two fold:

onDemand() must be invoked after write() to have the callback invoked after the message is consumed.
When there are more than one writers simultaneously, the boolean flag will be set to true prematurely, when there are still messages left in the queue.

Thanks for the explanation! That makes sense. Personally, the isReady and setReadyHandler style of gRPC was easier to use (required no state on caller end and ready is an easier concept to grok than demand for me) so we may be able to find some inspiration there to make the API cleaner.
For project reactor, I found a method that returns the number of pending objects (basically equivalent to isReady) but didn't find a equivalent of either onDemand or setReadyHandler, wonder how they implement the concept (they have tons of methods so I'm probably just missing it...)
https://projectreactor.io/docs/core/release/api/reactor/core/publisher/EmitterProcessor.html


Modal improvement

Adding arrow keys for navigation and two new attributes for enabling a frame with title around the box.

@lnxbil
Thank you pull request.
There is one comment so if you fix it, I will merge.

Close cause no response.


Pocok.io

https://github.com/shiwaforce/pocok
Pocok will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment.
By submitting this pull request I confirm I've read and complied with the below requirements.
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.

I have read and understood the contribution guidelines

The project submitted conforms to the quality standards outlined in the contribution guidelines

Go to the contribution guidelines and read it again.

RULES (because you probably didn't read the guidelines):
Links will be tested with awesome_bot. Please make sure your URL to be listed is unique (do some search queries), otherwise put a link at the end of README.md file.

FORMAT

Use the following format: [Name](Link) - Description.
[Name] should be the title of the project
(Link) should be pointing to a GitHub repository, not to a website
Description. should end with a full stop/period
For GitHub repositories, add the name of the author with a link to its GitHub account after the description, like By [@author](GitHub account)

ORDER: The entries are in lexical order (English letter order)
LABEL (Optional): Add one of the following icons next to the project name like [Name](Link) :icon: - Description.

:heavy_dollar_sign: indicates if one needs a paying subscription to use the project.
:construction: indicates that the project is a work in progress/beta release.
:skull: indicates that the project is obsolete, but still worth mentioning it.

Hi! thanks! pocok.io is served from github pages still can not configure https for custom domain


Folder exists but can't add it to the filter

I have a folder in my vault where I keep my templater templates.  I go to the settings for the Board and type "templates" which is the name of the folder and I see nothing in the paths list.  IU can type the full folder name and the folder and subfolders are shown.  I select them and they are all added to as paths.  If I close the dialogue and reopen they are not there.
.6.0

ooh - you are right, there is some wierdness happening with the filter multiselect!  Thanks I will take a look as soon as poss

@pcause - just released 0.6.1 which (hopefully) fixes this.   Thank you so much for spotting this and raising the issue.  DO let me know if you have further problems.

doesn't fix.  same problem

well I did fix something :)  seems to be another bug lurking !! -> darn it

well I did fix something :) seems to be another bug lurking !! -> darn it

I suspect you did.  Just didn't completely fix the issue.  Thought it might be the number of paths you display is limited but even when I entered in full in the box and it accepted it, when I left settings and returned it wasn't there.

I am able to reproduce the disappearing so have a bit of debugging to do to see why it's happening.  I should probably work out how to move the offending logic into a module where I can add some unit tests for it as the code is hard to test where it is at the moment....  See if I can work out what is happening first tho!

Hi @pcause - another new version for you to try -> 0.6.2.  I think I've fixed the disappearing filter issue, so do let me know if you are still seeing it.
I wasn't too sure what you meant by the first part of the bug report:
I have a folder in my vault where I keep my templater templates. I go to the settings for the Board and type "templates" which is the name of the folder and I see nothing in the paths list.
So this may well be an issue?? If it is, could you let me know some additional details to help me reproduce: what is the directory structure you have in your vault that is not showing up and what it is you type to not see it come up.
Many thanks again - hopefully getting closer to a full fix!

Thank you - I'll leave this open and have a look into the search stuff to see how I can improve it ...with a little less urgency than fixing the other stuff as I was worried that could have led to some unexpected overwriting of filter settings which would not be good!

Hi @pcause, I've (hopefully) improved the autocomplete/search behavior - it is working better for me in my main vault so am hoping it will be for you too!  Do let me know how you get on -> version 0.6.3.
Many thanks again!

It worked for me.  I was able to enter the problematic folder name and the autocomplete presented it as an option and added it to the list.
from my POV you can close this

Fabulous - really glad it worked!  Thank you again :)

I think this issue still exists when using the plugin on iPad Mobile. No way to enter Tags options and there is NO Auto Complete. Nothing ‘sticks’!


Installation problem OS X El capitan

Hello,
I have recently installed Stacey to built my architecture website. I have used cyberduck and copied all files in web directory.Then i have changed permissions of the "cache" folder and then run my website. And it seems that there is a code problem and i don't really know what to do. Perhaps someone could help me? I thank you in advance. Best regards.Bastien

What code problem are you having?

I know how to fix this error. Are you still having this issue?

What version of Stacey are you using and what version of PHP are you using?


Update README.md

Is CREATE TABLE supported in the main repo?

Is CREATE TABLE supported in the main repo?

Yes


Hard disable favicon?

Hello. I have commented out all the favicon*s from config.toml. When I do zola serve locally the icon doesn't show. However abridge icon shows up on the browser's tab when the site is hosted on github. I had a look at head template and figured it shouldn't show if those config lines are commented out. But whatever magic zola github action does, it includes a favicon.ico in root dir, and browsers probably just show it as default? I tried creating an empty favicon.ico file in static directory: didn't work.
How can I disable this image completely?

commenting out the favicons from config.toml is the correct thing to do. You are also correct that the browsers automatically look for a favicon.ico  It is not even defined in the head.
Putting an empty favicon.ico in your static directory should have overridden the one in the theme!
If you look here: https://qrrcnaxne.github.io/favicon.ico
you can see it loads the abridge icon and not your empty one.....
I will give this a try and see what happens.

I believe you had it when you added the empty favicon.ico your browser simply already had it cashed.
If you had left your empty favicon.ico then cleared your browser cache you would have been good to go.
look here:
https://zola-themes-demos.netlify.app/
and here:
https://zola-themes-demos.netlify.app/favicon.ico
This site was made by forking your site and putting your empty icon back in place.

Wow you're right, thanks a lot! I added it back and it works in a private window. Couldn't have guessed that it was cached, lol. Thanks for the quick help!

Can also exclude them:
add this to your config.toml:
ignored_static = ["apple-touch-icon.png","banner.png","safari-pinned-tab.svg","favicon*","m*.png","android-chrome*png"]

found the answer here: https://www.getzola.org/documentation/getting-started/configuration/


1.0.3: ng-class broken on uib-accordion-group

Consider this plunkr:
http://plnkr.co/edit/oPXpvtLfP3xZtSH1YqkQ?p=preview
This:
    <uib-accordion-group heading="Static Header, initially expanded" is-open="status.isFirstOpen" is-disabled="status.isFirstDisabled" ng-class="{'bg-info': true}">

Results in div.panel having ng-class attribute:
ng-class="{'bg-info': true} panelClass || 'panel-default'"

Which looks like invalid syntax to me!

Duplicate of #4172.
In short, it is recommended to use class="{{myCustomClass}}" in this situation since uib-accordion-groupusesreplace: true` under the hood, which is the situation that Angular itself does not support ng-class usage with.

How do you access accordion status then ?
I need to have a class set when accordion is open, I have :
<uib-accordion-group
class="{{vm.getAccordionClass(status.open)}}"
But status.open is undefined.


Add support for 10, 11, 12

This is necessary if we want to be able to unplug travis.
TODO

[ ] extract the flake8 config from MQT
[ ] extract the pylint config from MQT
[ ] create a pre-commit config that uses flake8 and pylint with the above configs
[ ] create a GitHub workflow for tests (the template we have right now should be ok and work for 10, 11, 12 too)

I think this task is the last one before we can stop Travis and switch all repos to GitHub actions.
If anyone wants to help with it, this is most welcome. I'm happy to provide any guidance that would be necessary.

@carmenbianca that's great! I have started something in #117. Feel free to pick it up from there. I will not have much time to work on this myself before mid-end march, but let me know if you have any question or doubt on how to move forward.

@sbidoul I did a review and some suggestions. I'm a little lost on what specifically is missing/todo. https://github.com/OCA/l10n-italy/pull/2658 demonstrates that #117 mostly works. The test failures seem to be true positives for the maintainers to address.

mostly works

"mostly" is the keyword :)
This needs to be made to work and tested in a few representative repos.


Updated README with compatibility informations

Project is fully compatible with a STM32G431KB, this commit adds some info and includes a new paragraph with a compatibility list. Some of the controllers have been proved compatible, others are just inferred from STM documentation.
Feel free to further modify or remove bits from this PR if you don't agree with some modifications.

Thank you @rickie95 for the contribution!


Review all standard sequence names (to simpler names)

Apply the same changes to mapping and ROI fit

PC_left and PC_right are distinguishable by Image Position (Patient):

labels are left right but Image Position (Patient)[0] is positive in both (65.5 and 10.38)


UserAgent setting ignored in 2.0.0-CI00028?

I am using NuGet 2.0.0-CI00028
I set the user agent in my code like so:

However, it seems the library does not use the setting when making calls anymore:

I remember that when I was using the 1.X package the user agent was prepended to that highlighted string.
P.S. Also consider sending the user agent as set by the code, do not append any other string to it.

Let me add more background information on why custom user agents are needed - the Reddit API Wiki states:

Change your client's User-Agent string to something unique and descriptive, including the target platform, a unique application identifier, a version string, and your username as contact information

and

Many default User-Agents (like "Python/urllib" or "Java") are drastically limited to encourage unique and descriptive user-agent strings.

So any crawler that does not override that default user agent will probably end up being rate limited more than expected.

I'm pretty sure I had that fixed, can you re-test in the latest 2.0 build. 2.0 had not been pushed to NuGet for quite some time. If you want to use the latest builds of 2.0, I suggest adding the MyGet repo to your NuGet feed.

I just tried with MyGet 2.0.0-CI00047 and I am seeing the same problem :(


[V3] Implement new Concept Exercise: Objects

Getting started
Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read up on the following documents:

Rationale for v3.
The features of v3
What are concepts and how they are structured?
What are concept exercises and how they are structured?

Please also watch the following video:

The Anatomy of a Concept Exercise.

See the documentation above (general documentation), as well as How to implement a Concept Exercise in JavaScript.
Goal
The goal of this exercise is to give a simple introduction to objects as maps/dictionaries.
Concepts
The following concept page needs to be created. You can use the same content for the introduction.md of the concept and the concept exercise. No need to create different content at this point.

objects

Learning Objectives
In the concepts/introduction the student should learn about the following things and then practice them in the concept exercise.

What are objects - for now describe them as maps/dictionaries that hold key-value pairs, more advanced things will be taught later
Objects are the core building blocks in JavaScript
How to create an object literal with {} (either empty or with some initial values)
What is allowed as keys
What is allowed as values (e.g., numbers, strings etc or other objects, arrays or even functions)
How to add a key-value pair to an object, how to change the value of an existing key
How to retrieve the value (show obj["key"] and obj.key notation)
How to remove an entry
How to check a key exists in the object with hasOwnProperty
How to iterate through the keys with for ... in

Out of Scope

Prototypes and classes
"everything is an object"
this
Object destructering
null and undefined (will be introduced in the next concept exercise, including when they show up in the context of objects, it is a bit hard to tiptoe around this in this concept/exercise but the student can't learn everything at once)
new Object() / Object.create

About.md of the Concept
Here some ideas of what could be mentioned.

Pitfall: order of keys is not guaranteed, use array instead
Pitfall: setting a value to null or undefined does not delete the property, see this note
Difference between hasOwnProperty and the in operator (note that the student might not know about inheritance yet if they don't know it from another language, so try to just describe it broadly, e.g. "you will learn later that objects can be set up so they include ("inherit") properties from other objects")
Show how to retrieve properties when there are nested objects
Show how objects can be used as replacement for a switch statement since that is a very common pattern in JS and in many practice exercises
Object.keys and Object.values
Maybe more object methods like assign or freeze
Create object without "default" properties.

Prerequisites

numbers
strings
booleans
arrays

At this point, the student does not know much more than these basics. Keep that in mind when designing the exercise. See this list for details on the learning curve we are aiming for.
Exercise Idea

As a first part task 2,3 and 5 from Swift High Score Exercise could be used as a template.
Additionally add maybe 2 more tasks:

One where some parameters of different types are passed and an object is returned (to demonstrate the types in an object can different in JS).
Another task where a function accepts an object like {a: 3, b: 4, fn: someFunction} and returns the result of calling someFunction(a,b).

Help
You can choose to do this solo-style, or collaborate with multiple people on this. The suggested approach is to

First accept this issue by saying "I'd like to work on this" (you will not get a response, just go with it) and optionally request that someone works with you (and wait for a second person to accept your request).
Use this issue to write down what you need (collect reference material) and discuss, if necessary, what to write and what not to write.
Draft a PR and request the feedback from at least one other JavaScript member (you can ping the #maintaining-javascript channel in Slack).

I'll work on this.
@SleeplessByte Are you ok with the content and scope of the exercise/concept that I proposed in the issue description?

Yes, it's looking good. I really like that you also listed out the about.md content. Are you going to base it on something, or create from scratch?

(label should be on the PR :P)


Allow assists with multiple selectable actions

This PR prepares an infra for https://github.com/rust-analyzer/rust-analyzer/issues/2180 task by adding a possibility to specify multiple actions in one assist as multiple edit parameters to the applySourceChange command.
When this is done, the command opens a selection dialog, allowing the user to pick the edit to be applied.
I have no working example to test in this PR, but here's a demo of an auto import feature (a separate PR coming later for that one) using this functionality:

The PR is not that massive as it may seem: all the assist files' changes are very generic and similar.

I had to use #[allow(dead_code)] twice for methods that I'm using in the auto import assist branch to add an assist with multiple actions.
I wanted to include those metods in this PR nevertheless since they are more related to this change and showcase the API for the assist with multiple acitons.

cargo test passes for me locally on two different machines and the CI does not show the logs currently, so I have no idea what's wrong.

The CI logs load for me, there are two failing heavy tests (missing module).

TIL we have heavy tests, thank you.
I've found the way to download the logs and fix the issue.

For future reference you can enable the slow test by setting RUN_SLOW_TESTS=1 in environment variables :)

If I understand it correctly, this change would break other existing clients like the emacs integration, until they're adapted. Maybe there's a way of extending the protocol in a compatible way?

Good point. What are the compatibility guarantees RA promises to keep currently?
I have thought that there are none, since it's an experimental tool built from sources.
There are obviously ways to keep the compatibility, we can either create a new action or fiddle with the parameters of an existing one.
What if we fix the emacs client instead?
We should pass a list as a parameter now, I think it might be a one-liner fix somewhere around here:
https://github.com/rust-analyzer/rust-analyzer/blob/master/editors/emacs/ra-emacs-lsp.el#L41

What if we fix the emacs client instead?

I believe vim client(s) also support this extension. Really, we should "just" upstream our extensions for the assists into the protocol (I think the relevant disucssion is https://github.com/microsoft/language-server-protocol/issues/724)

Why doesn't returning multiple items in the reply handle this? See: https://microsoft.github.io/language-server-protocol/specifications/specification-3-15/#textDocument_codeAction

@kjeremy , do you mean returning multiple actions instead of one action with multiple edits?
I keep the auto import action case in my head and from its perspective my thoughts to go this paths are the following:

it's the same action semantically, auto import with multiple options, not many separate actions
the list of options for importing might be big for some cases and scrolling through it is not that pleasant (afaik, there are no ways to filter out the list of actions or jump to any of those via any keystrokes)

So, the current way is more like a convenient grouping, allowing the user to quickly select the needed action and then to think on the options provided by it.
Your proposal is great in a sense that it's easier to implement, another thing that concerns me there (besides the bullets above) is the AssistIds I need to come up with for those import actions.
Here's how it looks like:

Does anybody have a preference on which approach to go with?

I feel that we'll need assist groups eventually, so I'd love to add the required plumbing! But just returning, say, the first three candidates also seems fine!

@SomeoneToIgnore yes I think that's what I mean grouped by CodeActionKind (I think we can add our own too).

I'd like to continue with grouping after all the time I've put into it, but have no idea how to achieve this with the way @kjeremy proposes.
I've added the custom code action name to the action creation and to the server capabilities and to the client capabilities. but still get the non-grouped actions listed.
Did I miss anything?

I've implemented the https://github.com/rust-analyzer/rust-analyzer/pull/2716#discussion_r362348929 idea of mine, no more breaking changes in the protocol, double checked that on master with client changes only.
The https://github.com/rust-analyzer/rust-analyzer/pull/2716#discussion_r362313985 is not addressed yet, let's pick the final approach first.


v4.2.1

What's Changed
Web:

Playlist, artist and album download from web app by @oscarvx00 in #1865

Bugfixes:

check if track is a song when downloading playlists by @xnetcat in 8949b9a692c8fabac266f95f2a2a5895daaf7769
Support for manual Bandcamp and Soundcloud download. (Using like manual Youtube download in the format MusicURL|SpotifyURL) by @Piripe in #1897
Fix crash when filtering results with the --dont-filter-results argument when a provider has 0 result by @Piripe in #1897
Fixed a crash with the cache by @Piripe in #1897
Fixed matching error when downloading an album caused by track duration by @Piripe in #1897
Fixed bandcamp audio provider by @xnetcat in b1a48debc573924d100a91a47f2bc0ab741a51cc a4c6e8dcb80ab99cd62f84b80dcba0ec7a1dadde

Improvements:

use downloader settings when parsing query by @xnetcat in 0a692c7b0b0610204908c7823cd14ce078df1b6d
added more checks for sync file by @xnetcat in 5e34b216287b84daecf5b26afb6c99b57d4572ab
respect detect-formats option when using m3u option by @xnetcat in 8a8891e097480caccbda74b75f5ed1d62bb05f81
fixed/improved search term matching by @xnetcat in db11f719d7ba76451e3a7d628909277cab8ac38d

New features:

added option to save errors by @xnetcat in 920442e134292e892b762b4fdf7f69aeafc3c972
added more checks for sync file
added ability to print to stdout when using save by @xnetcat in ce2bce651d46810621ae8eb729bb816ccdd115dc
added all-user-followed-artists shortcut by @xnetcat in f9f110f61dd7bb388546bd6791da81fbb5d2077f

Misc:

updated packages by @xnetcat in f8d749048537239085d7335e24f2f87ed24402ab

Donate
help support the development and maintenance of the software ❤

Full Changelog: https://github.com/spotDL/spotify-downloader/compare/v4.2.0...v4.2.1

Excellent work!


[flutter_tools] prevent StateError when log reader is disposed

Description
Fixes https://github.com/flutter/flutter/issues/49248
Previously the AdbLogReader did async setup in the StreamController.onListen callback, specifically it would query the api version and start the adb process. If the log subscription was cancelled before this setup completed, then the log output could (haven't confirmed) get added to a closed controller, causing the above state error. This likely got worse the change to query API version since that added slightly more delay, but in theory it could have always happened.
To fix this, I've hoisted the async setup out of the log reader into a static setup method. This required changing the interface of Device.getLogReader to return a FutureOr<LogReader>. For safety's sake, I also added a closed check to the line handling method, though I don't think its possible to hit that case anymore, and I've had a heck of a time trying to test it.
At any rate, the AdbLogReader tests have been moved out of android_device_test.dart, and the level of mocking has been reduced significantly as well.

Working on a biggest testing change for this

I removed the eager initialization in startApp, since I didn't want to go back and update a bunch of test expectations. That would be easier to land once AndroidDevice testing is cleaned up a bit more, because its still kind of a mess

LGTM, you should prob wait for @zanderso's final approval.


Error with<EMAIL_ADDRESS>

I'm attempting to install a library, but I encountered an error related to the mysql2 version, which stated that the library only works with version 2.3.3. At present, mysql2 is on version 3.1.2.

What's the error you encounter?

Currently "mysql2": "^2.3.3" is defined as a peer dependency. At least with<EMAIL_ADDRESS>installing a 3.x version of mysql2 results in an ERESOLVE could not resolve error.

Should be fixed in<EMAIL_ADDRESS>


2.1 update: Visual Studio Tools for Docker with ASP.NET Core

This document is out of date, this is no longer what the "Enable Docker Support" checkbox does.  Instead, this is when you right click and Add Orchestrator support now.  Enabling docker support now just adds a Docker file and some debug settings for launching inside docker all in the *.csproj itself, so there is not seperate *.dcproj anymore with this checkbox.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d772b44a-b5f3-5a10-4ea3-4463bdcf90bb
Version Independent ID: 5847cdf8-1823-7740-6e43-030902b26ad8
Content: Visual Studio Tools for Docker with ASP.NET Core
Content Source: aspnetcore/host-and-deploy/docker/visual-studio-tools-for-docker.md
Product: aspnet-core
GitHub Login: @spboyer
Microsoft Alias: scaddie

@AceHack  thanks for pointing that out. I'll get it scheduled for an update.
Related #5631

I'm also having problems getting this to work. I get exceptions with the default VS settings. Not sure if this is a docs issue, but docs for the new 2.1 would help. Before 2.1 this worked without problems.
Use Case which does not work for me:
Add docker to existing project - standard MVC Web API
Create a docker image (cmdline)
create a tag from this image (cmdline)
deploy to Docker Hub
I think you're doing an excellent job, and would be grateful if you could find time to improve this.
Greetings Damien

@AceHack Thank you for bringing this to our attention. The feature has changed as of VS 2017 15.8. I'm working on the doc updates now.


Fix input argument indexing error

This patch fixes an error with the indexing of un-initialized arguments when initialized arguments are present. There is no guarantee that the initialized arguments are at the beginning of the list of arguments.
This patch also adds error messages when unranked tensors are encountered during the shape inference pass.
A new flag was added to the onnx-mlir compiler to emit code before any pass (such as shape inference) is run over the initial ONNX Dialect code.

@doru1004 I'm curious what is your use case for EmitONNXBasic ?

@doru1004 I'm curious what is your use case for EmitONNXBasic ?

This emits the ONNX dialect code before any pass is run. This is for inspecting the model source code that contains operations unsupported by the passes.


Improve devex when using @waku/core without @waku/create

This is a change request
Problem
@waku/create was created as a way to provide good easy default for new users of Waku.
A developer wanting to use js-waku can start with @waku/create to get an app running fast.
However, when it comes to bundle size and dependency optimisation, one may not want to rely on the good default of @waku/create and add few lines of code to end up with a smaller package.
This is what the store-js example https://github.com/waku-org/js-waku-examples/blob/master/examples/store-js/index.html attempt to demonstrate, by initializing a Waku with, and only with, the store protocol.
However, it currently rely on @waku/create to initiate libp2p with good defaults:
https://github.com/waku-org/js-waku-examples/blob/671767400a64de886f47d90162ecb937dbe7f21b/examples/store-js/index.html#L17
If you check the network tab of your browser going to https://examples.waku.org/store-js you'll notice the following index.js files being downloaded:

@waku/create: 2.77 MB
@waku/core: 1.27MB

Enabling a developer to not use core would be a great gain (do not this include libp2p so the gain may mainly due to not downloading other deps).
Proposed Solutions
Ideally, a user should be able to only depend on @waku/core and libp2p to build the js-store example with a bootstrap peer discovery mechanism.
Not sure if the libp2p setup should be left to the developer (very verbose) or segregated within or outside the @waku/create package.
Out of Scope
Optimising of bundle and size tracked with #579.

Note: Maybe this example is not properly setup for the task as no bundler is used.
The point of this issue/example is to prove that @waku/create is a "good defaults" helpers but is not mandatory to use @waku/core when a developer wants to optimize for size and dependencies.
It may be more appropriate to move the store-js example to a package manager + bundler project form and review the bundle output and size once done.
Then, further decisions can be made to improve the @waku/create API.


Why version 0.1.48 have released without darwin x64?

@Halfi github errored. I will restart the release.


Schema annotations

Reading the README I have not found a way to define schemas with custom annotations
Currently I extend my JSON Schemas to annotate a property as "sensitive", so I know which fields have privacy concerns, like, it should not be appear in logs and/or it can be affected by user privacy laws.
I do not mean adding the "sensitive" property to a Schema property, but just store any random key-value combo. That will open the door to similar ideas. Since they are non standard, it can be safely ignored by tools depending on Zod and not increase the maintenance burden.

@colinhacks is there any appetite for something like this?


Refactor namespaces

Landed in https://github.com/metarhia/impress/commit/59f3aec7f543ca49501b8e882ab6567a3a3c5f04, https://github.com/metarhia/impress/commit/93b9220aee0e2ca4f9d77d3a5cbd6dfed69c572f and https://github.com/metarhia/impress/commit/d7ba6097756755817039bdab0a2ad51892b64853


Microsoft.AspNetCore.App framework should use rollForward=LatestPatch

The Microsoft.AspNetCore.App framework should correctly specify the compatibility version range for its dependency on Microsoft.NETCore.App framework. The expectation is that the same major.minor version will be used (with roll forward to latest patch applied). Currently the framework doesn't specify anything other than the minimum version. That means the defaults are used which are that any version with the same major is compatible. So for example 3.0.0 ASP.NET currently declares it's compatible with 3.1.0 NETCore.App.
As discussed offline that is not the intent. The framework should be changed to specify that it expects the same major.minor. To do that the .runtimeconfig.json of the framework should specify rollForward: "LatestPatch" - which means only the same major.minor version is compatible.
See https://github.com/dotnet/core-setup/issues/5870#issuecomment-496210183 for discussion of potential impact and what are the scenarios (component hosting being the major one).

@natemcmaster @dagood

@vitek-karas This is completed. How can we test this end to end?

I usually "mock" this": xcopy install the version with the changes (the whole runtime, so NETCoreApp and ASPNetCore) into some folder. Then go to the shared folder and copy the NETCoreApp and make it a 3.1 version. Then write an app (ASP.NET) which prints out the location of corelib (to verify where the framework came from).
On its own it should report the lower 3.0 version.
Now manually edit the .runtimeconfig.json of the app and add rollForward: LatestMinor to it. And run it again. If your change is good, you should see it using 3.0 still. If it didn't work, you should get the 3.1 version (you can double check by manually removing the rollForward: LatestPatch from the ASP.NET runtimeconfig and rerun, you should get 3.1 now).
If there's a place I can get the ASP.NET framework with this change, I can give it a try myself if you want.


Area2D's monitorable property does not seem to work when being set back to true

Godot version:
3.0.2-stable
OS/device including version:
Windows 10
Issue description:
When switching an Area2D's monitorable property to false, and then back to true, it continues to act as if it's set to false.

Minimal reproduction
minimal.zip
The code is pretty much lifted from my actual project but in a simpler form.
Use the arrow keys to switch the disabled triggers (red) to enabled (blue). When one is enabled, all other triggers are set to disabled. When a trigger is enabled, the monitorable trigger is set to false and the opposite for the disabled triggers.

Confirmed, facing the same issue here.

I can confirm that this is still an issue in the latest version. Has anyone found a workaround?

I can confirm this with 3.0.6-stable on linux and windows.

For those who do not want to download the zip, here's my own minimalist project that makes it easy to see the bug.
Just hit Right once, hit Space twice, move around. No signal is sent anymore.
You can re-enable the signal by messing around, but I could not find a sure way to do it. Looks kinda random.
Note that monitoring appears to work just fine, the issue is with monitorable.
Scene.gd
extends Node

func _ready():
	$Area2D_A.connect('area_entered', self, 'on_area_a_entered')

func on_area_a_entered(area):
	prints('Area A entered', area)

func _input(event):
	if event.is_action_pressed('ui_right'):
		$Area2D_A.position.x += 20
	if event.is_action_pressed('ui_left'):
		$Area2D_A.position.x -= 20
	if event.is_action_pressed('ui_accept'):
		$Area2D_B.monitorable = ! $Area2D_B.monitorable
		prints("$Area2D_B.monitorable", $Area2D_B.monitorable)

Scene.tscn
[gd_scene load_steps=3 format=2]

[ext_resource path="res://Scene.gd" type="Script" id=1]

[sub_resource type="RectangleShape2D" id=1]

custom_solver_bias = 0.0
extents = Vector2( 10, 10 )

[node name="Node" type="Node" index="0"]

script = ExtResource( 1 )

[node name="Area2D_A" type="Area2D" parent="." index="0"]

position = Vector2( 507.05, 295.665 )
input_pickable = true
gravity_vec = Vector2( 0, 1 )
gravity = 98.0
linear_damp = 0.1
angular_damp = 1.0
audio_bus_override = false
audio_bus_name = "Master"

[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D_A" index="0"]

shape = SubResource( 1 )

[node name="Area2D_B" type="Area2D" parent="." index="1"]

position = Vector2( 543.095, 303.911 )
input_pickable = true
gravity_vec = Vector2( 0, 1 )
gravity = 98.0
linear_damp = 0.1
angular_damp = 1.0
audio_bus_override = false
audio_bus_name = "Master"

[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D_B" index="0"]

shape = SubResource( 1 )

@AsixJin
Another workaround is to procedurally remove/add the Area2D from/to the scene tree, but it may yield unwanted side effects (such as signals, _ready, etc.), and it is slow.


⚠ ClamAV has degraded performance

In a944c9c, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 223 ms

Resolved: ClamAV performance has improved in 6695382.


Plots in Paper

Hi,
Thank you very much indeed for sharing the codes of this excellent work.
However, I'm quite interested in Figs 3-5 shown in the paper, I cannot find any related code in the repo.
Would you please kindly share the codes of reproducing these figures or give me some explanations about them?
Best,
Yang

Done


Fixed BitmapFontLoader tests failing on Windows

Description of change
Fixed the two tests that failed on windows in BitmapFontLoader. I think the code itself is self-explanatory so I don't really have much more to say. I am confident the change in dirname method should be safe because backslashes are not allowed in a URL, so shouldn't ever break any existing code, and even though they're allowed in unix's filenames afaik no one ever does it.
Pre-Merge Checklist

[X] Lint process passed (npm run lint)
[X] Tests passed (npm run test)

And the console output when running tests on my machine.

Thank you!


test openjdk - do not merge

just wanted to see if tests passed with openjdk. Build time is already long as it is, so not including for now.


Update 0008-02-01-scRNA.md

changes jpeg to png to address some font issues also a typo fix or two

please hold off on merging this - still testing


refactor: move other examples to the consulting repository

Issue
We agreed on moving all examples besides the simple example into the consulting repository.
Description
This PR is removing:

process-example
gateway-example
schema-client-example

Updates in the pom.xml of the examples module as well as its readme
Checklist

Code is easy to understand
No obvious errors or bugs
CI/CD Pipelines did run successfully
Tests were implemented
Documentation was created

I just noticed that the examples pom and the simple-examples pom have a wrong description. As we are not using this description and the example is nothing someone wants to get as a maven dependency we can remove these.

Good catch @rami-nk! Just updated it. I am going to squash and merge now. Thanks for your review!