RocksDb implementation

First thanks for the great work on this!  An easier to understand, Rust based merkle tree is much needed!
I've created a simple RocksDb store implementation.  You can find it here:
cita-trie-db .
Couple thoughts on the current cita-trie implementation:

Consider renaming the DB Trait to something else (maybe KvDB).  This might reduce the chance of it clashing with other crates.  For example, I had to alias RocksDB::DB.
trie.commit() is private outside the crate.  You can call commit via trie.root(), but it might be useful to be more explicit from the API.
trie.commit() calls self.db.insert/remove.  It'd be nice to be able to batch these calls with RockDb.  Maybe the DB trait can expose a commit(...)  that would allow this.

Nice suggestion!

First thanks for the great work on this! An easier to understand, Rust based merkle tree is much needed!
I've created a simple RocksDb store implementation. You can find it here:
cita-trie-db .

Great work!

Couple thoughts on the current cita-trie implementation:

Consider renaming the DB Trait to something else (maybe KvDB).  This might reduce the chance of it clashing with other crates.  For example, I had to alias RocksDB::DB.

Yes. I think either KeyValueDB or KVDB is ok.

trie.commit() is private outside the crate.  You can call commit via trie.root(), but it might be useful to be more explicit from the API.

Agree, it's better to add more comments to for it.

trie.commit() calls self.db.insert/remove.  It'd be nice to be able to batch these calls with RockDb.  Maybe the DB trait can expose a commit(...)  that would allow this.

Agree. We have left some TODO in the code: https://github.com/cryptape/cita-trie/blob/master/src/trie.rs#L387, we will consider it soon.

First thanks for the great work on this! An easier to understand, Rust based merkle tree is much needed!
I've created a simple RocksDb store implementation. You can find it here:
cita-trie-db .
Couple thoughts on the current cita-trie implementation:

Consider renaming the DB Trait to something else (maybe KvDB).  This might reduce the chance of it clashing with other crates.  For example, I had to alias RocksDB::DB.
trie.commit() is private outside the crate.  You can call commit via trie.root(), but it might be useful to be more explicit from the API.
trie.commit() calls self.db.insert/remove.  It'd be nice to be able to batch these calls with RockDb.  Maybe the DB trait can expose a commit(...)  that would allow this.

Thank you for your great work!
Just reviewed your code, and got one question: why you return an error instead of none in the get function?
https://github.com/davebryson/cita-trie-db/blob/master/src/lib.rs#L63-L69

Thank you so much for your suggestion!

Consider renaming the DB Trait to something else (maybe KvDB). This might reduce the chance of it clashing with other crates. For example, I had to alias RocksDB::DB.

I don't think it is necessary to change it. Isn't the alias a solution to this problem?

trie.commit() calls self.db.insert/remove. It'd be nice to be able to batch these calls with RockDb. Maybe the DB trait can expose a commit(...) that would allow this.

My idea about batching is to add batch_insert and batch_remove to the DB trait and set a default implementation.
pub trait DB: Send + Sync + Debug {
    type Error: Error;

    fn get(&self, key: &[u8]) -> Result<Option<Vec<u8>>, Self::Error>;
    fn insert(&mut self, key: &[u8], value: &[u8]) -> Result<(), Self::Error>;
    fn contains(&self, key: &[u8]) -> Result<bool, Self::Error>;
    fn remove(&mut self, key: &[u8]) -> Result<(), Self::Error>;

    fn batch_insert(&mut self, keys: &[&[u8]], values: &[&[u8]]) -> Result<(), Self::Error> {
        for i in 0..keys.len() {
            self.insert(keys[i], values[i])?;
        };
        Ok(())
    }

    fn batch_remove(&mut self, keys: &[&[u8]]) -> Result<(), Self::Error> {
        for key in keys {
            self.remove(key)?;
        };
        Ok(())
    }
}

Then I will use batch_xx to replace insert and remove from commit.
Such modifications do not introduce any version compatibility issues.

Thank you so much for your suggestion!

Consider renaming the DB Trait to something else (maybe KvDB). This might reduce the chance of it clashing with other crates. For example, I had to alias RocksDB::DB.

I don't think it is necessary to change it. Isn't the alias a solution to this problem?

trie.commit() calls self.db.insert/remove. It'd be nice to be able to batch these calls with RockDb. Maybe the DB trait can expose a commit(...) that would allow this.

My idea about batching is to add batch_insert and batch_remove to the DB trait and set a default implementation.
pub trait DB: Send + Sync + Debug {
    type Error: Error;

    fn get(&self, key: &[u8]) -> Result<Option<Vec<u8>>, Self::Error>;
    fn insert(&mut self, key: &[u8], value: &[u8]) -> Result<(), Self::Error>;
    fn contains(&self, key: &[u8]) -> Result<bool, Self::Error>;
    fn remove(&mut self, key: &[u8]) -> Result<(), Self::Error>;

    fn batch_insert(&mut self, keys: &[&[u8]], values: &[&[u8]]) -> Result<(), Self::Error> {
        for i in 0..keys.len() {
            self.insert(keys[i], values[i])?;
        };
        Ok(())
    }

    fn batch_remove(&mut self, keys: &[&[u8]]) -> Result<(), Self::Error> {
        for key in keys {
            self.remove(key)?;
        };
        Ok(())
    }
}

Then I will use batch_xx to replace insert and remove from commit.
Such modifications do not introduce any version compatibility issues.

The batch is not batch_insert or batch_delete, it's batch operations, combining with insert/delete.

https://github.com/paritytech/parity-common/blob/master/kvdb/src/lib.rs#L38
https://github.com/nervosnetwork/ckb/blob/develop/db/src/batch.rs

For some KeyValueDB, there is only the batch write interface.

https://github.com/nervosnetwork/rust-rocksdb/blob/master/src/db.rs#L73

We should also support col for the write.

Yes that sounds like a good approach.
On a side note, do you have plans to add Proof support to the trie in the future?
Thanks again.

We should also support col for the write.

We don't just use it for rocksdb, I need to think about it.

On a side note, do you have plans to add Proof support to the trie in the future?

If our business needs it.
Before that, we also welcome others to help with this part of the work.

We should also support col for the write.

We don't just use it for rocksdb, I need to think about it.

col is Option type.

Consider renaming the DB Trait to something else (maybe KvDB).  This might reduce the chance of it clashing with other crates.  For example, I had to alias RocksDB::DB.

Yes. I think either KeyValueDB or KVDB is ok.

I reconsider it, and I think we should not change the DB to KeyValueDB or KVDB. The DB under the trie is something like HashMap, it's more abstract. Most of the time, this DB is a memory db. If we want to save it to some real KVDB like rocksdb, we should get all the keys from the DB, and then save it to KVDB. The trait for rocksdb or other kvdbs should be named KeyValueDB, but not for the trie.


increased cpu poll interval

This is to demonstrate making changes with git

This change was arbitrarily made to demonstrate upstream changes. It is fixed in #249


ci: refactor platform specific GHA CI

Issue #, if available:
Description of changes:
This change refactors the GitHub Actions CI to split macOS and Windows verification such that macOS tests run only when its files change and vice-versa for Windows. The benefit is reduced contention for runners when pushing platform pull requests for Windows and macOS.
Testing done:

[x] I've reviewed the guidance in CONTRIBUTING.md

License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

No pushback, let me pull this in. Happy to iterate on it more if required.


5 khz high duplex (POD5) data?

Hi,
Thanks for providing the benchmark and the data!
I wanted to download the duplex POD5 data but the link you provided does not work. Is the POD5 duplex data available anywhere?
Thanks,
Can

Hi @canfirtina
I just checked at ENA and the pod5 still has status as "Processing File"... Sorry about that but not much I can do to make that quicker.
Best regards
Rasmus


Add integration/unit tests

Try to maintain hardware/rainloop image (not dockerfile) up-to-datee (its actually not).

@arckosfr : you can now update with one-click https://github.com/hardware/rainloop/commit/e548bd3f0040f9293db3ec5c444bc7180d8fc41e :)

But it's not GPL anymore. :(

@Wonderfall : yes :( but it's a good for personal or hobby sized usage.

@Wonderfall Automatically build trigger with witch POST event ?

You can get a trigger URL/Token in the "Build Settings" tab on Docker Hub.

I rollback to community edition, thank for this idea.

I'm giving up with integration/unit tests, maybe I'll add it when this docker image will be more used by the community..


Use 'select' instead of 'pick'

This page contains 'pick' but should instead probably contain 'select'.

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

ID: 6fa26d2e-2b59-03e9-f674-12231aa958d2
Version Independent ID: 01947c90-5b11-d24d-437b-ae04032e2dc1
Content: dropdown - Microsoft Style Guide
Content Source: styleguide/a-z-word-list-term-collections/d/dropdown.md
Product: non-product-specific
GitHub Login: @pallep
Microsoft Alias: pallep

Hi @pivic and thanks for your feedback. The debate about "select," "choose," "pick" and related terms is always ongoing in the MWSG. We will add this to the backlog of considerations :)


push sbt 1.3.0-RC4 upgrade through

including re-testing all projects that failed on RC3
/cc @eed3si9n @eatkins

this is now done on 2.12 as of https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-integrate-community-build/4923/
the full list of projects that didn't work on RC4 is:

fs2
genjavadoc
scala-js
blaze
sbt-io, sbt-util, sbt-librarymanagement (very old versions)
sttp
tsec

Error details are in comments in https://github.com/scala/community-builds/blob/2.12.x/configs/community.dbuild
I'm working on pushing the change through the 2.11 and 2.13 builds.

I think sttp will pass with -Dsbt.classloader.close=false. We should probably bump the sbt pinned versions to something more recent. The tsec tests passed when I ran them locally so it may have just been a flaky test or something about the community build. The genjavadoc tests worked for me with 2.12.8 but failed in the same way the community build did with 2.13.0.

I think sttp will pass with -Dsbt.classloader.close=false

let's find out! https://github.com/scala/community-builds/pull/968

We should probably bump the sbt pinned versions to something more recent

I think the 1.3.0 release would be a good opportunity for that, but I'm hoping @eed3si9n will tackle it for me :-)

on 2.13, scala-parallel-collections weirdness: f09999ddaccdf659f3758a0bf573d90daf9d8c50


Big mlperf_log_accuracy.json is generated when running TEST01 with MultiStream mode

WG need to decide how to push this big file to github. What we got here is 5GB of data for a single file. And similar sized file will also be generated for other test if MultiStream scenario needs to be run.

@bitfort Didn't you figure out how to push big files to GitHub for MLPerf Training? What did you do?

If it comes down to the deadline, commit the md5sum of the file and we'll fix it in post.

If it comes down to the deadline, commit the md5sum of the file and we'll fix it in post.

This log is for auditing, so we still have one week to figure it out.

It shouldn't be necessary to push huge log files for audit. George is working on how to manage this.

Hi Aaron,
We're aware of this issue. You can either reduce accuracy_log_probability or I have a script that I will package with the next release that can be used to truncate the file. The inference results should be mostly duplicates given the limited performance sample count so most of it would be redundant.

Should be maybe gzip them ?

I'm fine with that as well

I recommend we suggest everyone do it the same way - and that way be to truncate the file to fixed length. Even zipped, it's going to be hundreds of megabytes.

got it. I think normal github repo has a 100GB limit. There is git lfs but we'd need to set this up and eventually pay.
Maybe a combination ? As long its in the script ...

Hi @guschmue / @DilipSequeira, for the TEST01 Part IV "Truncate logs to reduce accuracy log file size in preparation for uploading  bash ./truncate_log.sh <accuracy_log_file> " what should the number of samples to use?

@georgelyuan?

Assuming one line per sample, I think 10000 samples would be reasonable.
For SSD-Large, 1000 is fine given the size of the returned results.

Hi Itay,
Accuracy logs should be the same size as for submission. Is that not the case?

I get much bigger files. This email thread is about big accuracy logs and
you also have a script to reduce the size  truncate_log.sh
Am I missing something?
On Thu, Oct 17, 2019 at 9:53 AM georgelyuan<EMAIL_ADDRESS>wrote:

Hi Itay,
Accuracy logs should be the same size as for submission. Is that not the
case?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mlperf/inference/issues/508?email_source=notifications&email_token=ABTRU3HX7YCPYYAIU7RDYJLQPCJ63A5CNFSM4I7QPKA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBQZHXY#issuecomment-543265759,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABTRU3GRFLDKNAHVDNYSVULQPCJ63ANCNFSM4I7QPKAQ
.

I know, for Test03 they are the same size. Still seems unnecessary to me
but as you wish I can push them. Note that the audits multiply the size of
the total git by more than 2 - is that what we want?
On Thu, Oct 17, 2019 at 11:32 AM AARON ZHONG<EMAIL_ADDRESS>wrote:

I get much bigger files. This email thread is about big accuracy logs and
you also have a script to reduce the size truncate_log.sh Am I missing
something?
… <#m_-4444235873797806669_>
On Thu, Oct 17, 2019 at 9:53 AM georgelyuan @.***> wrote: Hi Itay,
Accuracy logs should be the same size as for submission. Is that not the
case? — You are receiving this because you commented. Reply to this email
directly, view it on GitHub <#508
https://github.com/mlperf/inference/issues/508?email_source=notifications&email_token=ABTRU3HX7YCPYYAIU7RDYJLQPCJ63A5CNFSM4I7QPKA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBQZHXY#issuecomment-543265759>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABTRU3GRFLDKNAHVDNYSVULQPCJ63ANCNFSM4I7QPKAQ
.
If MultiStream.samples_per_query remains the same as your submission, then
the accuracy log of your accuracy run of TEST03 should be the same as the
one in your submission. If you find the big log after your performance run
of TEST03, this means you have run the test with TEST01 audit.config.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mlperf/inference/issues/508?email_source=notifications&email_token=ABTRU3CHBMOIAMOXYBUQCSTQPCVUHA5CNFSM4I7QPKA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBRC24Q#issuecomment-543305074,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABTRU3HHYWI4UPBSWHVMZPDQPCVUHANCNFSM4I7QPKAQ
.

@guschmue Would this be an issue for our repo?

I get much bigger files. This email thread is about big accuracy logs and you also have a script to reduce the size truncate_log.sh Am I missing something?
…
On Thu, Oct 17, 2019 at 9:53 AM georgelyuan @.***> wrote: Hi Itay, Accuracy logs should be the same size as for submission. Is that not the case? — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#508?email_source=notifications&email_token=ABTRU3HX7YCPYYAIU7RDYJLQPCJ63A5CNFSM4I7QPKA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBQZHXY#issuecomment-543265759>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABTRU3GRFLDKNAHVDNYSVULQPCJ63ANCNFSM4I7QPKAQ .

Truncating for TEST01 is fine, but I didn't think it would be necessary for TEST03.


Update netperf to MIT licensed version

Update netperf to MIT licensed version
Create a _preXXXX ebuild that references the latest commit in the github repo from netperf, which is MIT licensed.
How to use
[ describe what reviewers need to do in order to validate this PR ]
Testing done
Build tested.

[ ] Changelog entries added in the respective changelog/ directory (user-facing change, bug fix, security fix, update)
[ ] Inspected CI output for image differences: /boot and /usr size, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.

I know we said we'd probably drop it, but I've submitted an upstream Gentoo fix for this anyway.


fix: Solve Registry path in the datahub-mae-consumer

Hi there!
It seems that the new registry path in the mae-consumer is pointing to the wrong directory?
If I compare it with the docker-compose file the value is the proposed one.
https://github.com/linkedin/datahub/blob/master/docker/datahub-mae-consumer/env/docker.env#L13

Closing it in favor of #14 .


IOS 13.7 Crash, First I input chinese in TextField, then open Native IOS keyword

Steps to Reproduce

Flutter SDK:1.22.6
IOS:13.7

Input chinese in TextField
Back to Native ViewControl
click ios UITextfield，then the app crash.

Expected results:
Actual results:

  -[NSConcreteMapTable updateEditingClient:withState:]: unrecognized selector sent to instance 0x11ab34bb0
(null)
((
    0 CoreFoundation 0x000000018246d358 C89C0E79-E3BA-397B-84AB-0B884D980499 + 1250136
    1 libobjc.A.dylib 0x0000000182182cc0 objc_exception_throw + 60
    2 CoreFoundation 0x000000018236c110 C89C0E79-E3BA-397B-84AB-0B884D980499 + 196880
    3 CoreFoundation 0x0000000182471b20 C89C0E79-E3BA-397B-84AB-0B884D980499 + 1268512
    4 CoreFoundation 0x0000000182473e10 _CF_forwarding_prep_0 + 96
    5 Flutter 0x000000010540e994 Flutter + 125332
    6 UIKitCore 0x000000018683f23c 5DD890FA-0422-3D82-8796-34AE0E2211A2 + 13730364
    7 UIKitCore 0x0000000186843664 5DD890FA-0422-3D82-8796-34AE0E2211A2 + 13747812
    8 UIKitCore 0x000000018684457c 5DD890FA-0422-3D82-8796-34AE0E2211A2 + 13751676
    9 CoreFoundation 0x00000001823c5824 C89C0E79-E3BA-397B-84AB-0B884D980499 + 563236

-[__NSCFType updateEditingClient:withState:]: unrecognized selector sent to instance 0x14fdc35c0
(null)
((
    0 CoreFoundation 0x000000018246d358 C89C0E79-E3BA-397B-84AB-0B884D980499 + 1250136
    1 libobjc.A.dylib 0x0000000182182cc0 objc_exception_throw + 60
    2 CoreFoundation 0x000000018236c110 C89C0E79-E3BA-397B-84AB-0B884D980499 + 196880
    3 CoreFoundation 0x0000000182471b20 C89C0E79-E3BA-397B-84AB-0B884D980499 + 1268512
    4 CoreFoundation 0x0000000182473e10 _CF_forwarding_prep_0 + 96
    5 Flutter 0x00000001093ee994 Flutter + 125332

-[_UIZoomEdgeFeedbackGenerator updateEditingClient:withState:]: unrecognized selector sent to instance 0x13bd63fa0
(null)
((
    0 CoreFoundation 0x000000018246d358 C89C0E79-E3BA-397B-84AB-0B884D980499 + 1250136
    1 libobjc.A.dylib 0x0000000182182cc0 objc_exception_throw + 60
    2 CoreFoundation 0x000000018236c110 C89C0E79-E3BA-397B-84AB-0B884D980499 + 196880
    3 CoreFoundation 0x0000000182471b20 C89C0E79-E3BA-397B-84AB-0B884D980499 + 1268512
    4 CoreFoundation 0x0000000182473e10 _CF_forwarding_prep_0 + 96
    5 Flutter 0x0000000105b02994 Flutter + 125332

Hi @alen252
The steps to reproduce are not clear, I tried to reproduce on iOS 13.7 with Chinese input and switching between the native app, no crash
Please provide clear steps to reproduce the issue.
Can you please provide your flutter doctor -v your flutter run --verbose and a complete reproducible minimal code sample
Thank you

Hi @alen252
The steps to reproduce are not clear, I tried to reproduce on iOS 13.7 with Chinese input and switching between the native app, no crash
Please provide clear steps to reproduce the issue.
Can you please provide your flutter doctor -v your flutter run --verbose and a complete reproducible minimal code sample
Thank you

Hi @alen252
The steps to reproduce are not clear, I tried to reproduce on iOS 13.7 with Chinese input and switching between the native app, no crash
Please provide clear steps to reproduce the issue.
Can you please provide your flutter doctor -v your flutter run --verbose and a complete reproducible minimal code sample
Thank you

phone：IPhone 11
ios：13.7
1 In Flutter Widget, click on TextField，then change to chinese input， input some Chinese.
2 Back to native app, click on UITextfield
3 The app crash. The crash heap are different every time. The similar heap info is "unrecognized selector sent to instance XXX"
Now I back to flutter version 1.17.1.There is no this issue in 1.17.1

Hi @alen252
You're probably talking about AddToApp, I tried to reproduce this issue in add2app as well with iOS 13.7 on the latest stable. Can't see any crash.
Preview
https://user-images.githubusercontent.com/48603081/106714985-96cef980-6622-11eb-9194-d5ef54661707.mov

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.6, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 1.22.6 at /Users/tahatesser/Code/flutter_stable
    • Framework revision 9b2d32b605 (11 days ago), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.4)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0

[✓] Connected device (1 available)
    • iPhone 11 (mobile) • 7BD067D8-050F-47ED-96A8-862DFF47618F • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-7 (simulator)

! Doctor found issues in 1 category.

Since the issue assigned, I will just label it for now.
Thank you

Hi @alen252
You're probably talking about AddToApp, I tried to reproduce this issue in add2app as well with iOS 13.7 on the latest stable. Can't see any crash.
Preview
Screen.Recording.2021-02-03.at.1.19.47.PM.mov
flutter doctor -v
Since the issue is assigned, I will just label it for now.
Thank you

Steps are:
First of all, limit the length of the TextField, and then TextField input Chinese, and then delete Chinese, try a few times will crash

Your add2app is run on simulator? It is happen in my app on iphone 11. My flutter version is 1.17.1 now, so i don't send the "flutter doctor -v".

I also encountered the same issue，in iOS 11.x and iOS 13.x, flutter version is 1.22.1  (not simulator)

@TahaTesser thanks for adding the tags!
@alen252 @hahaChaoRen could you confirm your projects have add2app, and provide a minimal repro?
It looks like one of the cases where a FlutterViewController outlived its FlutterEngine?

Alternatively, you can simply create a new FlutterViewController with only a FlutterDartProject. That FlutterViewController will internally manage its own instance of a FlutterEngine, but will not guarantee survival of the engine beyond the life of the ViewController.

A similar issue I closed is also using add2app, I wasn't able to reproduce it on iOS 13.7, iOS 13.2 or iOS 14.4

A similar issue I closed is also using add2app, I wasn't able to reproduce it on iOS 13.7, iOS 13.2 or iOS 14.4

@TahaTesser thanks for adding the tags!
@alen252 @hahaChaoRen could you confirm your projects have add2app, and provide a minimal repro?
It looks like one of the cases where a FlutterViewController outlived its FlutterEngine?

Alternatively, you can simply create a new FlutterViewController with only a FlutterDartProject. That FlutterViewController will internally manage its own instance of a FlutterEngine, but will not guarantee survival of the engine beyond the life of the ViewController.

I  cannot  understand the add2app accurately.I don't have a minimal repro.My case is add the result build by "flutter build ios" in my native ios project.

I have only one app one FlutterViewController with only a FlutterDartProject.

@TahaTesser thanks for adding the tags!
@alen252 @hahaChaoRen could you confirm your projects have add2app, and provide a minimal repro?
It looks like one of the cases where a FlutterViewController outlived its FlutterEngine?

Alternatively, you can simply create a new FlutterViewController with only a FlutterDartProject. That FlutterViewController will internally manage its own instance of a FlutterEngine, but will not guarantee survival of the engine beyond the life of the ViewController.

I cannot understand the add2app accurately.I don't have a minimal repro.My case is add the result build by "flutter build ios" in my native ios project.

add2app means that add flutter project (as a module) to iOS project;
add2app类似以module的形式集成到iOS工程中；

Is there a temporary solution.

Hi @alen252
You're probably talking about AddToApp, I tried to reproduce this issue in add2app as well with iOS 13.7 on the latest stable. Can't see any crash.
Preview
Screen.Recording.2021-02-03.at.1.19.47.PM.mov
flutter doctor -v
Since the issue is assigned, I will just label it for now.
Thank you

Could you please try it in device ? I think there's some different between device and simulator. In addition, make sure that iOS version is iOS 13.7.  Thanks

Hi @alen252
You're probably talking about AddToApp, I tried to reproduce this issue in add2app as well with iOS 13.7 on the latest stable. Can't see any crash.
Preview
Screen.Recording.2021-02-03.at.1.19.47.PM.mov
flutter doctor -v
Since the issue is assigned, I will just label it for now.
Thank you

Could you please try it in device ? I think there's some different between device and simulator. In addition, make sure that iOS version is iOS 13.7. Thanks

My problem happened in device. And the  iOS version is 13.7.

Hi @alen252
You're probably talking about AddToApp, I tried to reproduce this issue in add2app as well with iOS 13.7 on the latest stable. Can't see any crash.
Preview
Screen.Recording.2021-02-03.at.1.19.47.PM.mov
flutter doctor -v
Since the issue is assigned, I will just label it for now.
Thank you

I have the same problem. Is there a solution?
phone：IPhone 8
ios：13.3
1 In Flutter Widget, click on TextField，then change to chinese input， input some Chinese.
2 Back to native app, click on UITextfield.
3 The app crash.
If the input is in English, it will not crash.

I've found the cause of the crash：
When inputting in the input box in the engine, a FlutterTextInputView will be added to the window,
When the engine is destroyed, the FlutterTextInputView is not released,
When the native textfield gets the focus, the system will first call the get focus method of the FlutterTextInputView to judge that a "textInputDelegate" in the FlutterTextInputView points to the destroyed engine address, resulting in a wild pointer error.
(for the time being, I don't know why only the system input method of IOS 13 will go to the proxy method when it gets the focus.)
The deeper reason is that the engine uses MRC and does not leave the related delegate object empty when releasing. The official should consider investigating the memory leak related problems.

I've found the cause of the crash：
When inputting in the input box in the engine, a FlutterTextInputView will be added to the window,
When the engine is destroyed, the FlutterTextInputView is not released,
When the native textfield gets the focus, the system will first call the get focus method of the FlutterTextInputView to judge that a "textInputDelegate" in the FlutterTextInputView points to the destroyed engine address, resulting in a wild pointer error.
(I don't know why only the system input method of IOS 13 will go to the proxy method when it gets the focus.)
The deeper reason is that the engine uses MRC and does not leave the related delegate object empty when releasing. The official should consider investigating the memory leak related problems.
A feasible solution is to remove the FlutterTextInputView from the window in the deinit method of the flutter page：
for view in (UIApplication.shared.keyWindow?.subviews ?? []) { if view.description.contains("FlutterTextInputView") { view.removeFromSuperview() } }

The feasible solution is work for me! Thanks！Do you use this feasible solution in your project?
这个解决办法可行，谢谢！你们项目是通过这个临时修改方案进行规避的吗？

I've found the cause of the crash：
When inputting in the input box in the engine, a FlutterTextInputView will be added to the window,
When the engine is destroyed, the FlutterTextInputView is not released,
When the native textfield gets the focus, the system will first call the get focus method of the FlutterTextInputView to judge that a "textInputDelegate" in the FlutterTextInputView points to the destroyed engine address, resulting in a wild pointer error.
(I don't know why only the system input method of IOS 13 will go to the proxy method when it gets the focus.)
The deeper reason is that the engine uses MRC and does not leave the related delegate object empty when releasing. The official should consider investigating the memory leak related problems.
A feasible solution is to remove the FlutterTextInputView from the window in the deinit method of the flutter page：
for view in (UIApplication.shared.keyWindow?.subviews ?? []) { if view.description.contains("FlutterTextInputView") { view.removeFromSuperview() } }

The feasible solution is work for me! Thanks！Do you use this feasible solution in your project?
这个解决办法可行，谢谢！你们项目是通过这个临时修改方案进行规避的吗？

Yes.

Hi @alen252
You're probably talking about AddToApp, I tried to reproduce this issue in add2app as well with iOS 13.7 on the latest stable. Can't see any crash.
Preview
Screen.Recording.2021-02-03.at.1.19.47.PM.mov
flutter doctor -v
Since the issue is assigned, I will just label it for now.
Thank you

Could you please try it in device ? I think there's some different between device and simulator. In addition, make sure that iOS version is iOS 13.7. Thanks

My problem happened in device. And the iOS version is 13.7.

There is a feasible solution provided by @gzhongcheng. Then I found that FlutterTextInputView define several delegate properties which used 'assign' defined. I think this is reason why cause crush. It should use 'weak' to state delegate pointer, so that when delegate Object dealloc , the delegate pointer will be set nil.

Any one can try https://github.com/flutter/engine/pull/25070? 😄


Resolve APK Artifact Download

Time Tracking:
https://api.codemagic.io/artifacts/01044934-0dc9-49d6-b36d-74affbc97a22/c0177b0f-3d28-42fa-96f5-6d63aa4ee91f/app-release.apk
For some users, a not authorized message displays. For others, a URL not found displays.

CI/CD settings updated. Artifacts are now saved for a longer period of time, which should resolve this issue.


Plumbery deploy won't succeed to pass the prepare step

Hi,
Trying to deploy 3 Ubuntu 14 VM on Dimension Data MCP EU6, the steps build + configure + start follow well. But after, I encounter a recurrent failure with  the prepare command.
python -m plumbery -d fittings.yaml deploy
The libcloud script is successfully pushed to the server but not executed on any of the 3 VMs

/root/prepare.cloud-init.sh exists
/var/cloud No log file are created

So far the workaround found is to run the prepare.cloud-init.sh manually and reboot the server after.
The fittings.yaml file used for this example:
fittings.zip
Thanks,
Romain K

Hello Romain, I could take your fittings plan and run it without problem from macOs in 10 minutes or so. Reboot of servers took place nicely, and I have been able to connect over ssh afterwards to check the logs, etc. In other terms: I could not reproduce the problem that you are describing from my workstation.
What operating system are you using to run plumbery please? Maybe this could give me a better clue on where to find a solution for you. Thanks

Hi Bernard,
I'm working on a Windows 10 Enterprise 64 bit and using plumbery 1.0.4 with Python 2.7.6
Here is the end of the trace I have for each server deployed. It looks this is linked to VMware Tools:
00:44:52 - preparing remote install of cloud-init
00:44:52 - preparing reboot to trigger cloud-init
00:44:52 - node is reachable at '<IP_ADDRESS>'
00:44:53 Connected (version 2.0, client OpenSSH_6.6.1p1)
00:44:53 Authentication (password) successful!
00:44:53 - put meta-data
00:44:53 [chan 0] Opened sftp connection (server version 3)
00:44:54 [chan 0] sftp session closed.
00:44:54 - put user-data
00:44:54 [chan 1] Opened sftp connection (server version 3)
00:44:56 [chan 1] sftp session closed.
00:44:56 - run prepare.cloud-init.sh
00:44:56 [chan 2] Opened sftp connection (server version 3)
00:44:56 [chan 2] sftp session closed.
00:44:58 - reboot node
00:44:58 - unable to reboot node
00:44:58 VM_TOOLS_INVALID_STATUS: API Operation REBOOT_SERVER is not allowed at present - VMware Tools is not running on the Server. Please start VMware Tools, and try again.
However, I see there is a log file fo vmware that says VMWare tools were successfully installed.
/var/log/vmware-tools-upgrader.log
Romain

ok, thanks for the comprehensive information. I will check the code to see if plumbery could loop in such situation.

God news, this was put to code trunk some time ago. This is why I could not reproduce the issue from my workstation. Code will be released to PyPi with the next version of plumbery.

Romain, a brand new package has been pushed to PyPi. Would you mind to upgrade plumbery and to check if this fixes your issue please?
pip install plumbery --upgrade
python -m plumbery -v
Last command should display 17.5.22, which is the label of the new version.
Thanks for your feed-back

Hi Bernard,
First thank you for the upgrade of the Plumbery version.
Now running the deploy command reaches the end without any issue. Althought the plumbery logs show the script is ran, it seems prepare.cloud-init.sh is not really executed since cloud-init is not installed on the VM when I try to call it.
16:00:05 Authentication (password) successful!
16:00:05 - put meta-data
16:00:06 [chan 0] Opened sftp connection (server version 3)
16:00:07 [chan 0] sftp session closed.
16:00:07 - put user-data
16:00:07 [chan 1] Opened sftp connection (server version 3)
16:00:08 [chan 1] sftp session closed.
16:00:08 - run prepare.cloud-init.sh
16:00:08 [chan 2] Opened sftp connection (server version 3)
16:00:08 [chan 2] sftp session closed.
16:00:10 - reboot node
Manual reboot won't help, I still have to run the prepare.cloud-init.sh first.
Best regards,


Error naming a floder

Brief description of your issue
I was creating a new package
console paste
PS C:\Users\tbmag\Downloads> .\wingetcreate.exe new https://download.sublimetext.com/sublime_text_build_4138_x64_setup.exe
Downloading and parsing: https://download.sublimetext.com/sublime_text_build_4138_x64_setup.exe...
The architecture detected from the binary might be different than what is specified in the installer URL for the following installer(s):

Using architecture detected from URL (X64), overriding architecture detected from binary (X86)
https://download.sublimetext.com/sublime_text_build_4138_x64_setup.exe

This tool will walk you through a series of questions to help you create your package manifest.

For information about the restrictions for each field, visit https://github.com/microsoft/winget-cli/blob/master/doc/ManifestSpecv1.0.md

Press ENTER to submit the value for each question including accepting the (default) value.

Please enter values for the following fields:
The package unique identifier |e.g. Microsoft.VisualStudio|
 [PackageIdentifier] value is:  SublimeHQ.SublimeText.4.Dev
The package version |e.g. <IP_ADDRESS>|
 [PackageVersion] value is: <IP_ADDRESS>3800
The package meta-data default locale |e.g. en-US|
 [DefaultLocale] value is: en-US

Additional metadata needed for installer from https://download.sublimetext.com/sublime_text_build_4138_x64_setup.exe
The installer target architecture
 [Architecture] value is: X64
The publisher name |e.g. Microsoft|
 [Publisher] value is: Sublime HQ Pty Ltd
The package name |e.g. Visual Studio|
 [PackageName] value is: Sublime Text (Dev)
The package license |e.g. MIT License|
 [License] value is: Proprietary
The short package description
 [ShortDescription] value is: Sublime is a sophisticated cross-platform text editor for code, markup and prose.

 Would you like to modify the optional default locale fields?: No
 Would you like to modify the optional installer fields?: No

Generating a preview of your manifests...
Version manifest preview:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.2.0.schema.json

PackageIdentifier: ' SublimeHQ.SublimeText.4.Dev'
PackageVersion: <IP_ADDRESS>3800
DefaultLocale: en-US
ManifestType: version
ManifestVersion: 1.2.0

Installer manifest preview:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.2.0.schema.json

PackageIdentifier: ' SublimeHQ.SublimeText.4.Dev'
PackageVersion: <IP_ADDRESS>3800
Installers:
- Architecture: x64
  InstallerType: inno
  InstallerUrl: https://download.sublimetext.com/sublime_text_build_4138_x64_setup.exe
  InstallerSha256:<PHONE_NUMBER>75526D4010F2520E45D523871AA5A093B1DE7D52A46265B2496CB5
ManifestType: installer
ManifestVersion: 1.2.0

Default locale manifest preview:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.2.0.schema.json

PackageIdentifier: ' SublimeHQ.SublimeText.4.Dev'
PackageVersion: <IP_ADDRESS>3800
PackageLocale: en-US
Publisher: Sublime HQ Pty Ltd
PackageName: Sublime Text (Dev)
License: Proprietary
Copyright: ''
ShortDescription: Sublime is a sophisticated cross-platform text editor for code, markup and prose.
ManifestType: defaultLocale
ManifestVersion: 1.2.0

Manifest validation succeeded: False
Manifest Error: Schema validation failed.
Error context: <root>[PackageIdentifier] Description: Failed to match regex specified by 'pattern' constraint.
Error context: <root> Description: Failed to validate against schema associated with property name 'PackageIdentifier'.
 File:  SublimeHQ.SublimeText.4.Dev.installer.yaml
Manifest Error: Schema validation failed.
Error context: <root>[PackageIdentifier] Description: Failed to match regex specified by 'pattern' constraint.
Error context: <root> Description: Failed to validate against schema associated with property name 'PackageIdentifier'.
 File:  SublimeHQ.SublimeText.4.Dev.locale.en-US.yaml
Manifest Error: Schema validation failed.
Error context: <root>[PackageIdentifier] Description: Failed to match regex specified by 'pattern' constraint.
Error context: <root> Description: Failed to validate against schema associated with property name 'PackageIdentifier'.
 File:  SublimeHQ.SublimeText.4.Dev.yaml

 Would you like to make changes to this manifest?: No

Manifest saved to C:\Users\tbmag\Downloads\manifests\ \ SublimeHQ\SublimeText\4\Dev\<IP_ADDRESS>3800

Skipping pull request submission...

Steps to reproduce
...
Expected behavior
........
Actual behavior

error in validation

the folder with the first letter of the dev name is a non-name folder

it should be an s...
inside there is this folder

But if I open it this appears

Tring to open the folder with the terminal:

Powershell didn't see it
cmd

Environment
Windows Package Manager v1.3.2691
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22623.746
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.18.2691.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale
PS C:\Users\tbmag\Downloads>

Looks like this is because the Package Identifier is preceded by a space

It's possible to implement a chcek?

@TheBossMagnus, sorry you encountered this issue. Looks like because of the extra space in front, the creation of folders got messed up. I will work on a fix so that the extra spaces are trimmed.


chore: remove unnecessary scripts

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add linuxbrew to the readme

You can use linuxbrew to install awless from the same tap as macOS.

Nope, you can't. It still compiles it for darwin. :(

Pull Request Test Coverage Report for Build 1338

0 of 0   changed or added relevant lines in 0 files are covered.
8 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.01%) to 41.798%

Files with Coverage Reduction
New Missed Lines
%

aws/fetch/manual_fetchers.go
8
73.87%

Totals

Change from base Build 1337:
0.01%

Covered Lines:
20323

Relevant Lines:
48622

💛  - Coveralls


Functionality proposal

This week I'm fighting with spam and hosting hack by WP site on our shared host. The damage is files all across the TB sites and I managed to mitigate some of the damage with this module.
It found the edited index.php files but it does not search in every directory.
Can you extend the functionality of the core updater to look for index.php files in the directories and where it's not needed to list it under Obsolite files section?
Also we had lots of files consieled in modules - can we search for known modules by TB and their files too? This will be little bit tricky because they will get updated but the SQL will not be processed.
Best regards,
Rado

This probably boils down to https://github.com/thirtybees/thirtybees/issues/592 ... which plans to remove all these index.php files in favor of testing proper access restrictions in .htaccess or it's Nginx counterpart.

To summerize my issue with this WP hack on other site.
We had few files injected deep in img directory of TB so it would be impossible for me manually to find and erase them. I was abe to keep it under control with TB core updater which removed most of the infected files (replaced them with the originals) but I had to get support from the host which installed ImunifyAV and it removed every instance of the hack.
Probably it will be better to remove all index files (where they are not needed) if this is possible. This will close few issues like my case I believe where a bot reinfected thw whole host again and again using them.

Eeek. You installed snake oil (a common term used for antivirus among hackers).
thirtybees.com had this problem as well. Eventually it was solved by a) updating WordPress and b) grepping for this injected code across all files. It's always the exactly same string. Repeating b) a couple of times over several days eventually got rid of the problem.

I have no experience of server AV soft and I have no optinions about it but it seemed it did the trick and removed the infection. Which is what I needed because I have no SSH so I can't use grep or other tactics of finding those encripted files.
Neverthless your work also helped me solve my issue.


drivers: entropy: stm32: fix RNG clock source with all MSI frequencies

Take account of all possible configured MSI frequencies when configuring
PLLSAI1 with MSI input to get the 48 MHz output clock.
If MSI input frequency is too low to obtain 48 MHz output, the highest
output frequency is chosen to be used by RNG: such solution should be
valid when USB is not used.
Signed-off-by: Giancarlo Stasi<EMAIL_ADDRESS>

@giansta, do you plan to continue this PR?

@giansta, do you plan to continue this PR?

@giansta, do you plan to continue this PR?

Yes, it's in my queue. In next days I'll restart with it, splitting a couple of minor changes in other PRs, as you proposed, and proposing a solution.

@giansta, do you plan to continue this PR?

Yes, it's in my queue. In next days I'll restart with it, splitting a couple of minor changes in other PRs, as you proposed, and proposing a solution.

Changes have been rebased starting from original issue: the PLLSAI1 configuration was working for the default case of MSI @ 4 Mhz, while it was looping forever waiting for PLLSA1 ready flag in case of MSI @ 48 MHz, because output PLL48M2CLK was programmed @ 576 MHz.
A couple of minor changes are going to be proposed in dedicated PRs, as suggested.
Besides that, another change would be needed adding a new Kconfig entry (e.g. "48 MHz clock source selection" in "Device Drivers - Hardware Clock Controller Support - STM32 Reset & Clock Control") to enable changing the source clocl for RNG & USB.
I would like to proceed with this in this PR, extending entropy_stm32_rng_init_l4(), yet I would like to know your point of view.
Finally, we have a workaround for the issue we had with generation of continuous interrupts that I mentioned above. We would like to discuss it, maybe the best way is to open an issue, isn't it?

Finally, we have a workaround for the issue we had with generation of continuous interrupts that I mentioned above. We would like to discuss it, maybe the best way is to open an issue, isn't it?

Sure, it's easier to split unrelated topics to keep track of what is fixed and what remains to be.

A small change has been proposed in dedicated PR #3337.
When testing another small change for which I was thinking to create another PR, I discovered that with my new hardware and a more mature application that I could systematically reproduce the issue that my colleagues found time ago only on some boards in non clear circumstances.
Basically, when exiting from Stop 2 mode, we had continuous CEIS interrupts.
My "small change" wanted to clear interrupt flags in CEIS and SEIS cases, but I was neglecting the RM unclear statement "the application should check that the RNG clock is configured correctly". On the other end, workaround was un-configuring/re-configuring the entropy clocks when the event queue was full was full/empty below threshold.
Now I could verify that the workaround can be avoided if the clocks are re-configured all the times we find CEIS=1. The two function calls in this case are entropy_stm32_rng_init_l4() that re-configures the clocks and resets CECS and LL_RNG_ClearFlag_CEIS() that resets CEIS only. Without both calls our system couldn't run and watchdog fired.
Unknown facts:

When removing entropy_stm32_rng_init_l4() call: in this case CEIS is reset and CECS is set, I don't see RNG interrupts but the system is blocked in some way and watchdog fires.
Not sure about the exact cause that triggers CECS=1 when exiting Stop 2 mode.

In any case, our system cannot work only with the 1st commit of this PR, the second is needed as well.
Finally, these changes are L4-specific. I don't know exactly how to manage the other families and I cannot test them.
Another change still to make, mentioned above: new Kconfig entry to change the source clock for RNG & USB.

I believe that this PR is ready to be reviewed, isn't it?

@giansta - is this pr moving forward still?

@giansta - is this pr moving forward still?

Yes, I'm working on it. I'm fixing my app to work with latest main branch and then try to fix RNG driver using the clock control tree, as suggested. I need few days, having an extended weekend.

@giansta - is this still moving forward?

@giansta - is this still moving forward?

In the last two weeks I hoped to work on this, but I was too busy. In following two weeks I'm out, I foresee to be back on this on September 2nd half.

@giansta - are you able to complete this soon?


ResolvedConfig interface

Description
ResolvedConfig is currently defined as a type, but it should be an interface.
Unlike with UserConfig, this means declaration merging cannot be taken advantage of by plugin developers. As a TypeScript developer, this makes typing resolved plugin options unnecessarily difficult. Sharing those options with other plugin developers is not possible without declaration merging, or alternatively, cumbersome and possibly out-of-date patches.
Suggested solution
// packages/vite/src/node/config.ts

interface ResolvedConfig extends Readonly<
  Omit<
    UserConfig,
    | 'assetsInclude'
    | 'build'
    | 'css'
    | 'optimizeDeps'
    | 'plugins'
    | 'worker'
  > & PluginHookUtils
> {
    readonly appType: AppType
    readonly assetsInclude(file: string): boolean
    readonly base: string
    readonly build: ResolvedBuildOptions
    readonly cacheDir: string
    readonly command: 'build' | 'serve'
    readonly configFile: string | undefined
    readonly configFileDependencies: string[]
    readonly createResolver(
      options?: Partial<InternalResolveOptions>
    ): ResolveFn
    readonly css: ResolvedCSSOptions
    readonly env: Record<string, any>
    readonly envDir: string
    readonly esbuild: ESBuildOptions | false
    readonly experimental: ExperimentalOptions
    readonly inlineConfig: InlineConfig
    readonly isProduction: boolean
    readonly isWorker: boolean
    readonly logger: Logger
    readonly mainConfig: ResolvedConfig | null
    readonly mode: string
    readonly optimizeDeps: DepOptimizationOptions
    readonly packageCache: PackageCache
    readonly plugins: readonly Plugin[]
    readonly preview: ResolvedPreviewOptions
    readonly publicDir: string
    readonly rawBase: string
    readonly resolve: Required<ResolveOptions> & { alias: Alias[] }
    readonly root: string
    readonly server: ResolvedServerOptions
    readonly ssr: ResolvedSSROptions
    readonly worker: ResolvedWorkerOptions
}

Alternative
No response
Additional context
The documentation gives the impression ResolvedConfig is an interface. Given the docs, I wasn't sure if this should be a feature request or bug report :sweat_smile:
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

still looking for this fix.

If there's no breaking changes to switching to an interface, I think it'll be nice to do so. I personally tend to prefer interface but it looks like the source code now has a mix of interface and type, so it's not very consistent to side towards a pattern.


soldeer update doesn't update

Run:
soldeer install forge-std~1.9.1
soldeer update

Doesn't update to 1.9.2:
🦌 Running soldeer update 🦌

Dependency forge-std-1.9.1 downloaded!
The dependency forge-std-1.9.1 was unzipped!
Writing forge-std~1.9.1 to the lock file.

Also:
It would be convenient to have soldeer install dependency (without ~version) install the latest version.

soldeer update was supposed to be like a clean install, might need to be refactored to update to latest.
there is another issue for install without dependency:
https://github.com/mario-eth/soldeer/issues/103
please comment there to keep track.

I'm working on refactoring the update command to update the deps


Heatmap: hide genera containing "fake genus" in their name

Seem to be called "ad hoc" now.
After discussion with @boris-dimitrov, decided not hide these but instead provide a tooltip with an explanation of what it means.
Boris, can you provide a explanation and a condition of how to identify these cases?

Tooltip:   'Due to a data import issue, the various species of this genus cannot be grouped together at the genus level.  While we work to fix this bug, each affected species will appear by itself in a separate "ad hoc genus" bucket.  The species level counts are still correct, and other genera are unaffected.'
My personal advice:   Do not bother trying to explain to the user in detail what each of our bugs could mean.   Just make sure the bug is reported so we can fix it.

In report_helper.rb, search for "Ad hoc bucket" and note the comment on the function where that appears, and then the function that calls that function.  You will see that such occurrences are aggreagated and logged as a warning:
Rails.logger.warn "Missing taxon_counts for genus ids #{missing_genera.to_a} corresponding to taxon ids #{taxids_with_missing_genera.to_a}." unless missing_genera.empty?

That would be the appropriate place raise an airbrake alert.


Bulk redirect example is missing a trailing slash

Which Cloudflare product does this pertain to?
Pages
Existing documentation URL(s)
https://developers.cloudflare.com/pages/how-to/www-redirect/
https://developers.cloudflare.com/pages/how-to/media/create_a_new_bulk_redirect_list.png
Section that requires update
The image (create_a_new_bulk_redirect_list.png) at step 7 of the list that shows the parameters to use when a new bulk redirect.
What needs to change?
I think that the Target URL in the image should include a trailing slash, eg https://example.com/, because otherwise the redirect seems to drop any path suffix on redirect, and only redirects to the root of the site.
How should it change?
Add a trailing slash to the Target URL in the image, eg https://example.com/.
Additional information
If you follow the instructions per the current image, a request to www.example.com/foo will redirect to https://example.com, when the desired behaviour should be a redirect to https://example.com/foo instead.

Bulk redirects should work without trailing slashes now, since it was identified as a bug and fixed:
https://community.cloudflare.com/t/bulk-redirects-preserve-path-not-including-paths/432163/11?u=erisa
Can you confirm this is the case for you?

Hi Erisa - I can't see what's behind that link, but if have the need to do another redirect, I'll test it that way for sure. Thanks!

No worries - if it was a bug that's now fixed, and the docs should work as they originally were, should I just close this off?

Yep it was determined this was a bug that should now be fixed - it should be safe to close this


compress/gzip: avoid setting MTIME if Header.ModTime is zero

The gzip writer always writes the ModTime regardless of what the value is.
In most instances, the ModTime is the zero value because the user did not care what value to use. When the zero value is converted to a Unix timestamp, it's value is -62135596800, which cannot even be encoded into the gzip format since the MTIME field is a uint32.
The logic for gzip.go should only write the MTIME field if !Header.ModTime.IsZero().
This issue came up in http://golang.org/cl/32260
\cc @rsc

Yes, we should definitely fix this. :-)


Error install Postgres 11 on Amazon AMI

I'm currently trying to upgrade the database for one of my apps running on Amazon Cloud9.  When trying to install Postgres 11, I get the following error:
Error: Package: pgdg-redhat-repo-42.0-4.noarch (/pgdg-centos11-11-2.noarch)
           Requires: /etc/redhat-release
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

I thought I found a solution through this Stack Overflow question, but I wasn't able to use any of the techniques there.

I've resolved this by linking a non-AMI instance to my Cloud9 account.


feat: create LN address entry in db

Describe the changes you have made in this PR
The basis is to save the LN address to the DB. This would allow for saving contact info, autofilling payment recipients, etc. One approach as done here is to create a contacts table to allow for adding further fields to contacts if desired later on, and adding a contactId to the payments table. Would love to hear feedback on this approach.
Link this PR to an issue [optional]
(Partly) Fixes #1965
Type of change

feat: New feature (non-breaking change which adds functionality)

How has this been tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist

[x] My code follows the style guidelines of this project and performed a self-review of my own code
[x] New and existing tests pass locally with my changes
[x] I checked if I need to make corresponding changes to the documentation (and made those changes if needed)

"Saving address" will follow in a new PR, right?

Yeah, I was thinking to iron out the schema first and then add the methods to add / delete / etc.

The schema makes sense to me 👍 I think though that those contact-related changes should be merged as one "atomic" PR since we don't want to do client-side database migrations for features that are yet to be developed. (feel free to continue work in here or base other PR on this branch)

Yeah, that makes sense... would it make sense to have a feature branch then?

Isn't this branch already a feature branch? What's the difference between the feature branch and this one? 🤔

Isn't this branch already a feature branch? What's the difference between the feature branch and this one? 🤔

The only difference would be, that we would have already agreed on these changes here and merge those into the feature branch. So theoretically we wouldn't need to discuss when we want to merge the feature branch in the end.
But yeah, can be done either way.

Perhaps I'm misunderstanding, but the feature branch on this PR is a branch on my local fork, but the new one is on the Alby repo, so I'm assuming PRs against the latter will be easier to review / have the tests run / etc.

I don't think that should really matter where you develop this feature. 🤔 Do you have problems with reviews / tests in this fork?

Already created https://github.com/getAlby/lightning-browser-extension/tree/feat/1965_contacts and let @alex-klyuev know yesterday. Use whatever you prefer I guess. We can collect changes here or there.


It seems cache is not working

Hello!
I'm trying to add the possibility to activate or deactiva the cache in my program, but when I deactivate it, it seems is still working:
-(void) setImageURL:(NSString*)newImageURL {
    NSURL *url = [NSURL URLWithString:newImageURL];
    NSUserDefaults* userDefaults=[NSUserDefaults standardUserDefaults];
    BOOL dontUseCache=[userDefaults boolForKey:@"dontUseCache"];
    NSURLRequestCachePolicy cachePolicy=dontUseCache?     NSURLRequestReloadIgnoringLocalCacheData:NSURLRequestReturnCacheDataElseLoad;
    NSURLRequest* urlRequest=[NSURLRequest requestWithURL:url cachePolicy:cachePolicy timeoutInterval:kAFNetworkingTimeoutInterval];
    [self.imageImageView setImageWithURLRequest:urlRequest placeholderImage:nil
                                        success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
                                            //NSLog(@"Block request success");
                                            self.imageImageView.image=image;
                                            self.imageImageView.alpha=0;
                                            [UIView beginAnimations:nil context:nil];
                                            [UIView setAnimationDuration:kIconDownloadedAnimationDuration];
                                            self.imageImageView.alpha=1;
                                            [UIView commitAnimations];
                                        }
                                        failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){
                                            NSString* errorMessage=[NSString stringWithFormat:@"Request failed. %@", error.localizedDescription];
                                            NSLog(@"Block request failed. %@", errorMessage);
                                            self.imageImageView.image =[UIImage<EMAIL_ADDRESS>                                            self.imageImageView.alpha=0;
                                            [UIView beginAnimations:nil context:nil];
                                            [UIView setAnimationDuration:kIconDownloadedAnimationDuration];
                                            self.imageImageView.alpha=1;
                                            [UIView commitAnimations];
                                        }];
}

Do you see anything strange in the way I activate/deactivate the cache?
Thanks.

Hi Ricardo,
Thanks so much for opening this issue. As it turns out, this is actually a bug in AFImageRequestOperation. The cacheing logic there is checking for a NSURLCacheStoragePolicy, when it should be checking NSURLRequestCachePolicy.
Thinking through the full implications of this bug, I'm having a crisis of faith about the relative utility of AFImageCache, if it can't respect cache policies correctly... (if anyone else has thoughts about this, I'm all ears).
Once that gets sorted out, I promise that we'll have AFNetworking respecting those cacheing directives.

By the way, as you can see in my code, when I load an image I apply a smooth animation, the problem is that when image is cached, your UIImageView+AFNetworking category, firstly loads the image in the UIImageView AND AFTER that, success block is called.
In my opinion this is not a good behavior, just because perhaps developer wants an animation when is loaded, my case is an example.
2 solutions, convert success block in 2 blocks (successWithCache and successWithoutCache), but too much code, better a parameter in success block, something like BOOL isImageCached.
And of course remove from this file:
https://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking/UIImageView+AFNetworking.m
The line 94:
self.image = cachedImage;
The key is:
if (cachedImage) {
self.image = cachedImage;
self.af_imageRequestOperation = nil;
    if (success) {
        success(nil, nil, cachedImage);
    }
} else {

You are loading an image inmediately and after that, calling success and passing the same image as a parameter.
In my opinion you can improve your library design using having into account these suggestions.

@mponton It's been a while since I've thought about the necessity of AFImageCache, but it was motivated by performance considerations. For one, it should be a good deal faster than NSURLCache, since it bypasses the request process. Moreover, for new users who don't know about NSURLCache, it offers a default cacheing mechanism for them.
That said, looking at it now, I'm not entirely convinced about its necessity either. It definitely speeds up UIImageView loading, enabling table view scrolling to be seamless, but perhaps it should be private, then... I dunno, I'll have to mull over this one.
@Ricardo1980 A fade-in animation might be appropriate for the initial load of an image, but I doubt that it'd be a good default to animate every time an image comes on the screen. Keeping that in mind, if you still want to have this behavior, you could always either 1) create your own category method on UIImageView or 2) use AFImageRequestOperation.

It does shortcut a lot of the URL request logic.
Maybe then it would simply be better if it was not enabled/disable by NSURLRequestCachePolicy (well, currently NSURLCacheStoragePolicy) but simply with its own flag/enum.
The use of the NSURLRequest cachePolicy argument to decide if caching is enabled or not may make your life more complicated (how should you deal with NSURLRequestUseProtocolCachePolicy and NSURLRequestReloadRevalidatingCacheData for example?).
Another alternative (that would break backward compatibility though, but then, so would its complete removal) is to force the user to specify a cacheName to enable AFImageCache and if nil, rely on NSURLCache.
In any case, AFNetworking is a fantastic framework. Thanks for the great work.

So here's my current thinking:
AFImageCache is indeed useful in that offers built-in, zero-configuration image cacheing that is a fair bit faster than simply relying on an NSURLCache (which has to be configured in order to work). However, because of its tight-coupled with AFImageRequestOperation, it flouts the URL loading contract in cases where a cache policy is specified.
As such, here are the steps I propose:

Remove AFImageCache from the public API, and move it into the private implementation of the UIImageView category.
Shift the logic to cache images from the image request to the UIImageView category. Assume that images should always be cached to be loaded later in the image view, but offer a way to prevent that behavior (I'm thinking a flag passed into -requestImageWithURL:...)

Thoughts?

Its more or less what I ended up doing on my side (with added logic to support the ETag header) . I think this will serve most people. I say go for it.

So y'all know: AFImageCache will be removed from the public API in the 0.9 release of AFNetworking. This branch will be merged into the release branch, and eventually into master. Cheers!


Kube test network : Pods can not resolve external DNS host names

Pods running in the Kubernetes Test Network are no longer able to resolve external DNS entries.  E.g.:
Setup:

Set up a new Linux host
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples/test-network-k8s
./network kind

Resolve a local DNS host / pod (OK):
root@hexapody1:~# kubectl apply -f https://k8s.io/examples/admin/dns/dnsutils.yaml
pod/dnsutils created
root@hexapody1:~# kubectl exec -i -t dnsutils -- nslookup kubernetes.default
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

Name:	kubernetes.default.svc.cluster.local
Address: <IP_ADDRESS>

Resolve an external DNS host name (FAILS):
root@hexapody1:~# kubectl exec -i -t dnsutils -- nslookup www.ibm.com
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

** server can't find www.ibm.com.fyre.ibm.com: SERVFAIL

command terminated with exit code 1

This is caused by KIND Issue #2326.
Recently we enabled the IPVS proxy routing feature for the Kubernetes Test Network, in part to expose additional options for load balancing a set of gateway peers behind a shared service / DNS alias.  Unfortunately this tickled a bug in the way KIND proxies DNS lookups through the Docker network, causing external lookups to fail.
Fix this issue by :

revert IPVS -> IPTABLES routing when bootstrapping the KIND cluster.
Update the Fabric Deployment Guide with additional instructions for IPVS Service Routing.
Document the route_localnet=1 workaround, for KIND environments validating IPVS:

# Workaround https://github.com/kubernetes-sigs/kind/issues/2326
for node in $(kind get nodes); do
  docker exec "$node" sysctl net.ipv4.conf.all.route_localnet=1
done

I've confirmed the above workaround re-enables DNS.
@denyeart @mbwhite cc:

Fixed in PR #729


Improve region outline with mixed tabs and spaces

I have this working satisfactory for my use case.  It is possible to still have tabs and spaces not properly align, but seems to be mostly an edge case in practice.
I don't know where you would want the new functions I added to calculate spacing?
Let me know what you think.

Thanks a lot!


Feature/maxtries transaction opts

closing in favor of upstream PR: https://github.com/gagliardetto/solana-go/pull/59


Sidekiq 6.5 Compatibility issue (should be a quick fix)

in /gems/ruby-2.7.5/gems/sidekiq-6.5.8/lib/sidekiq/fetch.rb
sidekiq have introduced this line
34:     if @strictly_ordered_queues
35:        @queues.uniq!
36:        @queues << {timeout: TIMEOUT}
37:     end
This is causing
in /gems/sidekiq-queue-pause-0.1.0/lib/sidekiq-queue-pause.rb
71:    Sidekiq::QueuePause.paused?(q.gsub('queue:', ''), Sidekiq::QueuePause.process_key)
because the queues array now has a hash as the last item of the queue
Any chance this could be fixed?

        if q.class.name == "String"
            q != Sidekiq::BasicFetch::TIMEOUT &&
              Sidekiq::QueuePause.paused?(q.gsub('queue:', ''), Sidekiq::QueuePause.process_key)
          end
        end

Seems to fix the issue

First of all, sorry for the long delay and thank you for the issue. It is fixed and released as 0.1.1.


Feat spin bottle added

Signed-off-by: Chaitanya K<EMAIL_ADDRESS>

Loved the new feature! 💙💙
Great job @taanii 🥇


fix the additional residual computation when passing residual criterion

In #981, splitting the criterion for iteration and the residual check when users only pass the iteration criterion.
However, it will compute the residual norm from the solution in the iteration update when users pass the residual check.
It fixes the issue by only computing the residual from the solution in the finalized ste

@upsj good idea.
failed test in https://gitlab.com/ginkgo-project/ginkgo-public-ci/-/pipelines/831036678
Expected equality of these values:
  count_occurrance(out.str(), "make_residual_norm")
    Which is: 5
  3

three iteration:
two additional residual norm (0th and 1st) in the develop.
2nd iteration does not have it because it exits the iteration check in criterion combine (not due to splitting in IR)

I need to change stream logger to profilerhook summary because MSVC does not contain enough function infomation.
MSVC: class gko::detail::RegisteredOperation<class <lambda_0ccdc7866f99fbdf308616cae4f60c00> >
others with cxxabi demangle: gko::detail::RegisteredOperation<gko::stop::residual_norm::(anonymous namespace)::make_residual_norm<gko::matrix::Dense<double> const*&, gko::matrix::Dense<double>*, double&, unsigned char&, bool&, gko::array<gko::stopping_status>*&, gko::array<bool>*, bool*, bool*&>(gko::matrix::Dense<double> const*&, gko::matrix::Dense<double>*&&, double&, unsigned char&, bool&, gko::array<gko::stopping_status>*&, gko::array<bool>*&&, bool*&&, bool*&)::{lambda(auto:1)#1}>
other without cxxabie demangle: N3gko6detail19RegisteredOperationIZNS_4stop13residual_norm12_GLOBAL__N_118make_residual_normIJRPKNS_6matrix5DenseIdEEPS8_RdRhRbRPNS_5arrayINS_15stopping_statusEEEPNSG_IbEEPbRSN_EEEDaDpOT_EUlT_E_EE,0x7ffe591e4c60
MSVC does not have information for the operation, so I can not


Update sips extension

Description
This PR fixes a bug where the "Convert Images" command fails for image paths containing dots.
In the original implementation, if the image path is,  for example, ~/foo.bar/baz.png, the output path incorrectly becomes ~/foobar/baz.xxx instead of ~/foo.bar/baz.xxx.
I manually tested the fix against the following cases:

jpg -> png
svg -> jpg
webp -> svg
webp -> jpg
pdf -> jpg

Screencast
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

It looks good to me @nakaakist, could you add a changelog entry too?
@SKaplanOfficial do you want to check this out?

@pernielsentikaer Thank you for the review. I updated the changelog.

Looks good to me, thanks for the contribution!


Read messaging one by one

Issue
Currently, we are using Microsoft IoT hub for telemetries, for processing the messaging we are using Microsoft.Azure.EventHubs. it is doing quite well. After reading and processing each message, this library updates the IoT hub regarding the status of the message.
Now I am looking for the same functionality in the mosquito. Is it possible to tell the mosquito that the following message has been processed to remove this one from the queue and send the next one? Actually mosquito is sending all the traffic in one go that is doing the problem in the DB connection pool. For example, if there are 50 machines that are sending data after each minute separately, I mean each machine sending data separately after one minute. it means 50 messages are generated in each minute and published against the specific topic. I just want to read one by one each message.
I hope you get my point

to my understanding MQTT does not have a sequence token or similar so you can not resume consuming / get the next.
I would advice to pump all msgs from mqtt through kafka as kafka has sequence tokens and so on.

I close this because I assume that the question is properly answered.


fix (maker/taker-ui): short/long offers were flipped

When the maker is long and provides a long price, then it's an offer to go short from the taker's perspective with the long price provided by the maker being the short price for the taker🤯.
Men, we really need to change this... everytime I'm looking at this it breaks my brain 😅
resolves #2774
Signed-off-by: Philipp Hoenisch<EMAIL_ADDRESS>

Note that https://github.com/itchysats/itchysats/pull/2764/files was always flipped like this. We are moving this flip into the projection now. We have to be careful that this is then correct for the consumers.
Prior to https://github.com/itchysats/itchysats/pull/2764/files the projection API always exposed the position of the maker and the taker UI flipped this.
I am happy to change this to the API always exposing one's "own" position, but we have to ensure that this is correctly consumed by all consumers. I think it is, because only the taker UI needed the flip and the own position should represent that correctly.

Thanks for your comment @da-kami : this really makes me want to change the whole model: https://github.com/itchysats/itchysats/issues/2786

closing this as this problem was proably introduced in https://github.com/itchysats/itchysats/pull/2764


Omit Description heading if only has parameterlist

fix #117

This fixes about 60 instances of the problem in the Beast project, such as this method page and this overload page.

Closing pull request in favor of a separate one that additionally fixes #109


marker in phyton to build 3d graphics

how do i install "marker"?

What are you trying to do with this tool and 3d graphics?


full script

Thank you for the awesome project. Could you provide a full script to me (mamarasulovsardor@gmail.com), I would like to do some experiment.
Thanks

If possible, I am requesting full script too<EMAIL_ADDRESS>Thank you very much)

also, to me too please<EMAIL_ADDRESS>

Hi all,
I appreciate your interest in my paper. The training code will be published soon after the hold release.


Draft of explanation of Advanced search: Morphology

2. Advanced search: Morphology
In advanced search, it is possible to search for constructions that contain slots and anchors restricted by certain morphological categories. In the search window, the morphological tags are listed in alphabetical order. The table below offers an overview of these tags as a system. Here, we list the tags in full, and provide corresponding abbreviations that appear in the search window in parenthesis ().

Case
Gender
Number
Person

-Nominative (Nom)
- Masculine (M)
- Singular (Sg)
- First person (1)

-Genitive (Gen)
- Feminine (F)
- Plural (Pl)
- Second person (2)

-Partitive genitive (Gen2)
- Neuter (N)

- Third person (3)

-Dative (Dat)

-Accusative (Acc)

-Instrumental (Ins)

-Locative (Loc)

Aspect
Mood
Tense

- Perfective (Pfv)
- Imperative (Imp)
- Past (Pst)

- Imperfective (Ipfv)
- Subjunctive (Sbjv)
- Present (Prs)

- Future (Fut)

Lexical parts of speech
Lexical parts of speech
Functional parts of speech

- Noun not forming an NP (Noun)
- Verb:
- Preposition (Prep)

- Adjective (Adj)
** Auxiliary (Aux)
- Conjunction:

- Numeral:
** Bare (Bare)
** Coordinating conjunction (Cconj)

** Collective numeral (NumColl)
** Copula (Cop)
** Subordinating conjunction (Sconj)

** Cardinal numeral (NumCrd)
** Converb (Cnv)
- Interjection (Intj)

** Ordinal numeral (NumOrd)
** Infinitive (Inf)
Syntactic units

- Pronoun:
** Active participle (PtcpAct)
- Clause (Cl)

** Demonstrative pronoun (PronDem)
** Passive participle (PtcpPass)
- Noun phrase (NP)

** Interrogative/relative pronoun (PronInt)
** Verb not forming a VP (Verb)
- Prepositional phrase (PP)

** Personal pronoun (PronPers)
- Adverb (Adv)
- Verb phrase (VP)

** Possessive pronoun (PronPoss)
- Predicative (Pred)
- Any phrasal unit (XP)

Other

- Comparative (Cmp)

- Short form of an adjective or a participle (Short)

I am not skilled enough in Markdown to fix the equal width for columns, to make it nice-looking. I used ** to mark sublists, because I do not forma this properly. For example, Numeral is just a heading, and the Collective numeral (NumColl), Cardinal numeral (NumCrd), Ordinal numeral (NumOrd) are the types of Numeral and are tags that appear in the search window. Also, if you think that this very ugly, maybe we can make this visualisation in PowerPoint and insert a snapshot in the html?

It is also possible to merge Table 1 and Table 2 into a single table like this:

Case
Gender
Number
Person

-Nominative (Nom)
- Masculine (M)
- Singular (Sg)
- First person (1)

-Genitive (Gen)
- Feminine (F)
- Plural (Pl)
- Second person (2)

-Partitive genitive (Gen2)
- Neuter (N)

- Third person (3)

-Dative (Dat)
Aspect
Mood
Tense

-Accusative (Acc)
- Perfective (Pfv)
- Imperative (Imp)
- Past (Pst)

-Instrumental (Ins)
- Imperfective (Ipfv)
- Subjunctive (Sbjv)
- Present (Prs)

-Locative (Loc)

- Future (Fut)

This is how it could look like (drawn now in Ppt):

or

or

And the table for grammatical classes (parts of speech & syntactic units would look like this). The terms with dots are the tags, others are headings. Too advanced to format this in -Markdown for me.

This is how it could look like (drawn now in Ppt):

or

or

I like the second option, visually.

And the table for grammatical classes (parts of speech & syntactic units would look like this). The terms with dots are the tags, others are headings. Too advanced to format this in -Markdown for me.

Looks fine. Predicative can go just after the Verb section since its functions are closer to the Verb

Just want to add that if Markdown is not flexible enough, it does not have to be Markdown. It can also be HTML styled with CSS. And my understanding is that this is not something that needs to be fixed in the data repository but rather in the app? If yes, then it should be moved to https://github.com/constructicon/russian/issues?

Yes, this is true. I have put this here because I thought I should get it done myself, but apparently I cannot unless we insert the images prepared in pdf.


Check types of algorithm inputs and outputs.

@domenic says ECMAScript just did something like this.

https://github.com/tc39/ecma262/pull/545 in progress

I'd like something like it in Bikeshed, as it's implicitly what I'm doing in a lot of specs anyway.
It doesn't look like the patch @domenic referenced actually landed in the ecma repo; did y'all go in a different direction?

FWIW, some kind of type checking (even something as small as counting the number of arguments) would have prevented me from making the refactoring mistake in https://github.com/w3c/webappsec-csp/pull/105#discussion_r74672732.

So my big challenge here is designing something that isn't just invisible metadata that can get obsolete and disconnected from the text.
Hmm. Thinking out loud:

Start with an algorithm container (something with algorithm attribute).
Requires a <dfn> of type "dfn" or "abstract-op", annotated as the algorithm name. If there's only one such dfn Bikeshed assumes it's the name?
Input args are denoted by <var>, with some annotation that they're an argument. Maybe <var algo-arg>. Provide a shorthand element to make this more obvious, like <argument>, that gets translated into a <var> for you? Arg name is the text content.
Allow specifying that an argument is optional.
The spider then extracts this information, producing an algorithm data structure with a name, zero or more required arguments, and zero or more optional arguments.

Then, on the calling side:

Use some simple inline annotation - ? Again, maybe provide a custom element for this.  Wrap some text in this so that it includes the algorithm name and args.
Within this, annotate an  as the algorithm name. If there's only one  with "dfn" or "abstract-op" type, assume that's the name.
Assume that vars in the call are arguments? Maybe require an annotation, and again let <argument> be used to just desugar to a <var>.
If the arg name is unknown, throw an error. If any argument name is unknown, throw an error.  If not all required args are provided, throw an error. In the error I can summarize the required algorithm shape.

Typing can come later, but this will at least give us basic variable annotations. It'll detect algo changes and missing arguments.

That looks mostly good. We also need to be able to write things like <algo-call>foo the bar with a <param>baz</param> of <var>quux</var></algo-call> where the parameter and argument have different names.

Yeah, that's what I'm intending by talking about how you'd have to opt-in the <var>s that denote parameters from the ones that are reffing values from elsewhere.

Want.

use case:
webauthn algorithm that returns an algorithm to credential management: https://w3c.github.io/webauthn/#createCredential
associated credential managment PR: https://github.com/w3c/webappsec-credential-management/pull/100

@camillelamy mentioned that this would be useful for her team's work.
In talking to @tabatkins about how to make it happen, he described the following list of sub-tasks:

[ ] defining a markup model for declaring algo args, along with types, and adding BS syntax making it ergonomic,
[ ] adding WebRef scraping for this info,
[ ] adding Bikeshed digestion of this info into a data file,
[ ] defining a markup model for invoking algos with args, and adding BS syntax to make it ergonomic,
[ ] checking invocations against the definitions we've obtained

+1 as an interested user here!


run strip_whitespace before length checks on strings

As per the zen of pydantic, we guarantee the output type, rather guarantee to check the output type.
Also check other such changes are done before checks on strings.

Hey, I would like to work on this issue. Could you point me towards the directory that this issue is referring to? It would help me a ton in getting started.

From what I understand so far, is the issue around here? https://github.com/pydantic/pydantic-core/blob/0e6a09b97822e0930ae60f8e2953302d0afe857f/src/validators/string.rs#L95

Yes.

gotcha tysm for confirming!

This is just github and git, nothing special to this repo. Before contributing to other's repos, best if you get familiar with these tools first.
In this case, you need to:

fork the repo (using the button in the top right on the home page of the repo)
clone your fork using git
change branch to a new branch named something like fix-strip_whitespace-ordering
make the changes
push your code to github
go to the home page of this repo and you should be prompted to create a pull request using your branch

Ok so I managed to create my own fork, branch in that fork, then I have pushed my changes to that branch on git. I fixed one of the test logic issue that arose due to me changing the order of strip_whitespace before the length checks, but I am not sure how to fix the broken tests that are checking to match with regex patterns.
The specific tests I referring to validates this: ({'strip_whitespace': True, 'pattern': r'\d+$'}, 'foobar 123 ', Err("String should match pattern '\\d+$'")),. This hypothetically should still work with the change in strip_whitespace order since 'foobar 123' will just become 'foobar123', which should still fail the  pattern check. However, for some reason the regex is matching and not throwing the desired error.
I've been trying to see the value of &self.pattern before the pattern check by printing/logging self.pattern_str before the pattern check code: https://github.com/huyta55/pydantic-core/blob/b1602dae88e1e3a53755b440a07c618fe059ebc0/src/validators/string.rs#L109 but it would not print or log in pytest for some reason, even though the test is failing.
Do you have any idea as to why the test inputs would all the sudden be passing the regex check? or how to get the value of the pattern being compared to show up in the terminal when the test fails?

Pytest doesn't print output unless either the test fails or you add -s. Please read the docs or use Google.
The regex only has an end bound, not a start bound ^.

#264
I created a PR for my proposes changes to solve this issue.

closed by #264


Dependabot Alerts enterprise-level REST API

Summary
You will be able to view your Dependabot alerts in an enterprise-scoped list via the REST API. This new endpoint will supplement repository-level and organization-level endpoints.
Intended Outcome
No response
How will it work?
No response

🚢 This has shipped to dotcom: https://github.blog/changelog/2022-11-01-dependabot-alerts-enterprise-level-rest-api
Leaving open to track for GHES release!

This is now available on GHES 3.8: https://github.blog/2023-03-07-github-enterprise-server-3-8-is-now-generally-available/


[FEATURE] Add the TYPO3 version to the CI matrix

I'd like to get this PR merged next and appreciate a review and merge. Thanks! :heart:

Can you please rebase it?

Rebased and repushed.


Build errors with latest Angular CLI

Hello,
first of all, thanks for this great project!
I use the latest Angular CLI (v1.0.0) in one of my projects and can't make a production build with the current version of ng2-semantic-ui. Using --prod and/or --aot fails with these errors:
ERROR in ng:///home/mvcoding/Entwicklung/Projekte/angular-test/node_modules/ng2-semantic-ui/components/checkbox/checkbox.d.ts.SuiCheckbox.html (3,130): Property 'checked' is private and only accessible within class 'SuiCheckbox'.
/home/mvcoding/Entwicklung/Projekte/angular-test/src/$$_gendir/node_modules/ng2-semantic-ui/components/checkbox/checkbox.ngfactory.ts (1,1): Property 'checked' is private and only accessible within class 'SuiCheckbox'.
ng:///home/mvcoding/Entwicklung/Projekte/angular-test/node_modules/ng2-semantic-ui/components/checkbox/checkbox.d.ts.SuiCheckbox.html (3,39): Property 'checkedAttribute' is private and only accessible within class 'SuiCheckbox'.
ng:///home/mvcoding/Entwicklung/Projekte/angular-test/node_modules/ng2-semantic-ui/components/checkbox/checkbox.d.ts.SuiCheckbox.html (3,58): Property 'isDisabledAttribute' is private and only accessible within class 'SuiCheckbox'.

ERROR in ng:///home/mvcoding/Entwicklung/Projekte/angular-test/node_modules/ng2-semantic-ui/components/checkbox/radiobutton.d.ts.SuiRadioButton.html (9,8): Property 'currentValue' is private and only accessible within class 'SuiRadioButton'.
/home/mvcoding/Entwicklung/Projekte/angular-test/src/$$_gendir/node_modules/ng2-semantic-ui/components/checkbox/radiobutton.ngfactory.ts (1,1): Property 'checked' is private and only accessible within class 'SuiRadioButton'.
ng:///home/mvcoding/Entwicklung/Projekte/angular-test/node_modules/ng2-semantic-ui/components/checkbox/radiobutton.d.ts.SuiRadioButton.html (5,8): Property 'checkedAttribute' is private and only accessible within class 'SuiRadioButton'.
ng:///home/mvcoding/Entwicklung/Projekte/angular-test/node_modules/ng2-semantic-ui/components/checkbox/radiobutton.d.ts.SuiRadioButton.html (6,8): Property 'isDisabledAttribute' is private and only accessible within class 'SuiRadioButton'.

ERROR in /home/mvcoding/Entwicklung/Projekte/angular-test/src/$$_gendir/node_modules/ng2-semantic-ui/components/message/message.ngfactory.ts (1,1): Property 'isDismissed' is private and only accessible within class 'SuiMessage'.

ERROR in /home/mvcoding/Entwicklung/Projekte/angular-test/src/$$_gendir/node_modules/ng2-semantic-ui/components/progress/progress.ngfactory.ts (1,1): Property 'percentage' is private and only accessible within class 'SuiProgress'.

ERROR in /home/mvcoding/Entwicklung/Projekte/angular-test/src/$$_gendir/node_modules/ng2-semantic-ui/components/rating/rating.ngfactory.ts (1,1): Property 'icons' is private and only accessible within class 'SuiRating'.

ERROR in ng:///home/mvcoding/Entwicklung/Projekte/angular-test/node_modules/ng2-semantic-ui/components/select/multi-select.d.ts.SuiMultiSelect.html (7,1): Property 'selectedOption' does not exist on type 'SuiMultiSelect<any, any>'.

package.json deps are:
"dependencies": {
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "core-js": "^2.4.1",
    "ng2-semantic-ui": "^0.6.1",
    "rxjs": "^5.1.0",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "@angular/cli": "^1.0.0",
    "@angular/compiler-cli": "^4.0.0",
    "@types/jasmine": "2.5.38",
    "@types/node": "~6.0.60",
    "codelyzer": "~2.0.0",
    "jasmine-core": "~2.5.2",
    "jasmine-spec-reporter": "~3.2.0",
    "karma": "~1.4.1",
    "karma-chrome-launcher": "~2.0.0",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^0.2.0",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.0",
    "ts-node": "~2.0.0",
    "tslint": "~4.5.0",
    "typescript": "~2.2.0"
  }

I happened to me today. I did the following and it started working. Hopefully it could work for you,

Use the command ncu (npm-check-updates)
In case it shows any updates then ncu -u to update the package.json with latest versions
Delete you node_modukes folder
npm install

.
Then try to compile your app 👍

Hey mani,
thanks for the tip! I tried it right now but sadly there are still the same compile errors.

@mvcoding I'm sorry mate. I am currently using systemjs and its working well for me.
Also i am working on migrating my application to angular-cli. I will see if i get the same errors. I am running towards a release deadline here.

I've just released a fix for this issue, and have tested it on a blank Angular CLI project, so let me know if you still have problems.
To update to 0.6.2, run
$ npm update ng2-semantic-ui

to get the latest version.

Thanks Edward,
all the errors are gone now and building finishes successfully.

@edcarroll This is a bonus fix for me as I'm in the process of converting my app to angular cli

Awesome! let me know if you run into any problems 😄


Custom pagination interface?

Thanks for the amazing work you've done.
I want to use the paginator but my API doesn't respond with the expected payload described in the documentation:
{
  "perPage": 10,
  "lastPage": "10",
  "currentPage": "3",
  "data": [...]
}

Is there a way of prescribing a custom payload response or writing some kind of adapter without having to update the API itself?

Maybe you can pipe the request and transform your response format to the expected one

Like @twittwer said. (edited it to add the map operator). Thanks.

Just an idea: maybe you can pipe the request and transform your response format to the expected one
Sample: { pageSize, totalPages, pageNumber, response }
this.pagination$ = this.paginatorRef.pageChanges.pipe(
       switchMap(( page ) => {
         const req = () => this.contactsService.getPage({
           page,
           perPage: 10
         }).pipe(map(res => ({
            perPage: res.pageSize,
            lastPage: res.totalPages,
            currentPage: res.pageNumber,
            data: res.response,
         })));
         return this.paginator.getPage(req);
       })
     );

hi @NetanelBasal
How to avoid to save the whole response including pagination meta in the store?

Ok get it. by using conf.skipWrite.


Trying to replicate a curl POST with request

my curl post request is the following:
curl
-A 'Chrome/42.0.2311.135'
-H "Content-Type: application/json"
-X POST
-d '3y|true|GS'
http://www.nasdaq.com/symbol/gs/historical

I am trying to replicate this with request:
var options = {
	method: 'POST',
	url: 'http://www.nasdaq.com/symbol/gs/historical',
	headers: {
		'Content-Type': 'application/json',
		'User-Agent': 'Chrome/42.0.2311.135'
	},
	data: '5d|true|GS'
}
request(options, function(err, resp, body) {
		if (err) {
			console.log(err);
		} else {
			console.log(resp.statusCode)
			console.log(body);
		}
	})

And instead of the data that the curl script would send me, I get a statusCode 301 and the head and body of a redirect page. What is wrong with my request request? Thx

Use the form option to send the application/x-www-form-urlencoded content type. For application/json use the json option. If you want to pass some string use the body key.
Take a look at the docs here https://github.com/request/request#requestoptions-callback

I think my problem is that it follows the redirect by default, so to unable this, I tried to put in followRedirect: false but it did not work.
For info, this is what node debug logs me:
REQUEST { method: 'POST',
  url: 'http://www.nasdaq.com/symbol/GS/historical',
  headers:
   { 'Content-Type': 'application/json',
     'User-Agent': 'Chrome/42.0.2311.135' },
  body: '5d|true|GS',
  followRedirect: false,
  callback: [Function] }
REQUEST make request http://www.nasdaq.com/symbol/GS/historical
REQUEST onRequestResponse http://www.nasdaq.com/symbol/GS/historical 301 { 'content-type': 'text/html; charset=UTF-8',
  location: 'http://www.nasdaq.com/symbol/gs/historical',
  'content-length': '165',
  expires: 'Tue, 23 Jun 2015 06:25:18 GMT',
  'cache-control': 'max-age=0, no-cache, no-store',
  pragma: 'no-cache',
  date: 'Tue, 23 Jun 2015 06:25:18 GMT',
  connection: 'keep-alive',
  'set-cookie': [ 'NSC_W.TJUFEFGFOEFS.OBTEBR.80=ffffffffc3a08e0e45525d5f4f58455e445a4a423660;expires=Tue, 23-Jun-2015 06:35:18 GMT;path=/;httponly' ] }
REQUEST redirect http://www.nasdaq.com/symbol/gs/historical
REQUEST finish init function http://www.nasdaq.com/symbol/GS/historical
REQUEST response end http://www.nasdaq.com/symbol/GS/historical 301 { 'content-type': 'text/html; charset=UTF-8',
  location: 'http://www.nasdaq.com/symbol/gs/historical',
  'content-length': '165',
  expires: 'Tue, 23 Jun 2015 06:25:18 GMT',
  'cache-control': 'max-age=0, no-cache, no-store',
  pragma: 'no-cache',
  date: 'Tue, 23 Jun 2015 06:25:18 GMT',
  connection: 'keep-alive',
  'set-cookie': [ 'NSC_W.TJUFEFGFOEFS.OBTEBR.80=ffffffffc3a08e0e45525d5f4f58455e445a4a423660;expires=Tue, 23-Jun-2015 06:35:18 GMT;path=/;httponly' ] }
REQUEST end event http://www.nasdaq.com/symbol/GS/historical
REQUEST has body http://www.nasdaq.com/symbol/GS/historical 165
REQUEST emitting complete http://www.nasdaq.com/symbol/GS/historical
301
<title>Document Moved</title>

Object Moved
This document may be found here

compared to what curl prints me:
$ curl -v -A 'Chrome/42.0.2311.135' -H 'Content-Type:application/json' -X POST -d '5d|true|GS' http://www.nasdaq.com/symbol/gs/historical
* Adding handle: conn: 0x4c2e58
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x4c2e58) send_pipe: 1, recv_pipe: 0
* About to connect() to www.nasdaq.com port 80 (#0)
*   Trying <IP_ADDRESS>...
* Connected to www.nasdaq.com (<IP_ADDRESS>) port 80 (#0)
> POST /symbol/gs/historical HTTP/1.1
> User-Agent: Chrome/42.0.2311.135
> Host: www.nasdaq.com
> Accept: */*
> Content-Type:application/json
> Content-Length: 10
>
* upload completely sent off: 10 out of 10 bytes
< HTTP/1.1 200 OK
< Content-Type: application/octet-stream; charset=utf-8
< content-disposition: attachment; filename=HistoricalQuotes.csv
< Content-Length: 464
< Expires: Tue, 23 Jun 2015 06:26:31 GMT
< Cache-Control: max-age=0, no-cache, no-store
< Pragma: no-cache
< Date: Tue, 23 Jun 2015 06:26:31 GMT
< Connection: keep-alive
< Set-Cookie: NSC_W.TJUFEFGFOEFS.OBTEBR.80=ffffffffc3a08e3345525d5f4f58455e445a4a423660;expires=Tue, 23-Jun-2015 06:36:31 GMT;path=/;httponly
<
"date","close","volume","open","high","low"
"16:00","216.51","2,000,472","215.10","216.81","215"
"2015/06/22","216.5100","2005879.0000","215.0600","216.8100","215.0000"
"2015/06/19","213.1900","4106508.0000","214.1200","215.0000","213.1900"
"2015/06/18","214.6000","2167088.0000","213.4500","215.0100","212.0100"
"2015/06/17","212.9300","1778162.0000","213.5900","214.5000","212.5710"
"2015/06/16","213.5600","1953185.0000","211.8500","213.5700","211.1300"
* Connection #0 to host www.nasdaq.com left intact

// curl -v -A 'Chrome/42.0.2311.135' -H 'Content-Type:application/json'
//  -X POST -d '5d|true|GS' http://www.nasdaq.com/symbol/gs/historical

request({
  uri:'http://www.nasdaq.com/symbol/gs/historical',
  method:'POST',
  headers:{
    'Content-Type': 'application/json',
    'User-Agent': 'Chrome/42.0.2311.135'
  },
  body:'5d|true|GS'
}, function (err, res, body) {
  if (err) console.log(err)
  console.log(body)
})

Seems to be working for me, I get this result:
"date","close","volume","open","high","low"
"16:00","216.51","2,000,472","215.10","216.81","215"
"2015/06/22","216.5100","2005879.0000","215.0600","216.8100","215.0000"
"2015/06/19","213.1900","4106508.0000","214.1200","215.0000","213.1900"
"2015/06/18","214.6000","2167088.0000","213.4500","215.0100","212.0100"
"2015/06/17","212.9300","1778162.0000","213.5900","214.5000","212.5710"
"2015/06/16","213.5600","1953185.0000","211.8500","213.5700","211.1300"

Thanks for your patience, you are right, it seems to be a problem of encoding the URL on my side.
Thanks for your help.