can we use 'bigtable-hbase-1.x-hadoop' in non-hadoop environment

Hi, google,
when reading this  https://cloud.google.com/bigtable/docs/release-notes
it said:

The HBase client for Java now provides three Maven artifacts:

bigtable-hbase-1.x: Use this artifact for standalone applications where you control your dependencies.
bigtable-hbase-1.x-hadoop: Use this artifact for Hadoop environments.
bigtable-hbase-1.x-shaded: Use this artifact for environments other than Hadoop that require older versions of the HBase client for Java's dependencies, such as protobuf and Guava.
my question, can we use "bigtable-hbase-1.x-hadoop" in our own standalone application?
we try to use one same version for all our apps both running standalone and in hadoop env, thx
also,  here https://mvnrepository.com/artifact/com.google.cloud.bigtable/bigtable-hbase-1.x-hadoop/1.0.0-pre3
it said

Bigtable connector compatible with HBase 1.x. It most of its dependencies (hbase & grpc). Its mainly intended to be used by dataflow 1.x to avoid version conflicts with grpc & protobuf. Prefer to use bigtable-hbase-1.x.

so is the "bigtable-hbase-1.x-hadoop" mainly to be used in dataflow 1.x?
If we are running dataproc with spark, is using 'bigtable-hbase-1.x' a better way?
Thanks.

also, does the latest 'com.google.cloud.bigtable:bigtable-hbase-1.x:1.0.0-pre3' has any grpc conflicts with any other google library of previous version?
I have other google library dependencies on datastore, bigquery, gcs of some early version,
if this '1.0.0-pre3' requires other google library to be the latest one, it will be a huge version upgrade for us.
or, is there a compatible matrix of across all google libraries of gcs/bigtable/bigquery/datastore/...?
thanks
below is the exception I got after upgrading the version

Caused by: java.lang.NoSuchMethodError: com.google.auth.oauth2.GoogleCredentials.getApplicationDefault(Lcom/google/auth/http/HttpTransportFactory;)Lcom/google/auth/oauth2/GoogleCredentials;
at com.google.cloud.bigtable.config.CredentialFactory.getApplicationDefaultCredential(CredentialFactory.java:217)
at com.google.cloud.bigtable.config.CredentialFactory.getCredentials(CredentialFactory.java:121)
at com.google.cloud.bigtable.grpc.io.CredentialInterceptorCache.getCredentialsInterceptor(CredentialInterceptorCache.java:95)
at com.google.cloud.bigtable.grpc.BigtableSession.(BigtableSession.java:253)
at org.apache.hadoop.hbase.client.AbstractBigtableConnection.(AbstractBigtableConnection.java:143)
at com.google.cloud.bigtable.hbase1_x.BigtableConnection.(BigtableConnection.java:58)

Short answer: You can definitely use the 1.x-hadoop artifact outside of hadoop, and that will be a quick fix to get you around the problem in comment 2.
The main difference between 1.x-hadoop and the 1.x artifact relates to package renaming.  The 1.x is pretty straightforward in terms of dependencies.  The 1.x-hadoop includes all of the dependencies, like the ApplicationsCredentials, in an uber-jar under relocated package names.
We don't currently have a compatibility matrix.  Can you give us a bit more info around which versions of other clients you are using?  A pom.xml would be awesome to help us find the root of the inconsistency.

our current google related dependency
`compile 'com.google.guava:guava:19.0'
compile ("com.google.apis:google-api-services-storage:v1-rev92-1.22.0") {
exclude group:  'com.google.guava'
exclude group: 'io.netty', module: 'netty-tcnative-boringssl-static'
}
compile ("com.google.apis:google-api-services-bigquery:v2-rev330-1.22.0") {
exclude group:  'com.google.guava'
exclude group: 'io.netty', module: 'netty-tcnative-boringssl-static'
}
compile ("com.google.apis:google-api-services-pubsub:v1-rev14-1.22.0") {
exclude group:  'com.google.guava'
exclude group: 'io.netty', module: 'netty-tcnative-boringssl-static'
}
 compile 'com.google.http-client:google-http-client-protobuf:1.22.0'`

Mixing bigtable-hbase-1.x-hadoop with other google clients will create the same headaches as mixing other google clients with hadoop-client. The underlying issue is that hadoop adds old versions of protobuf & guava to your dependency tree which will break modern grpc library dependencies.
If you got the other google clients running in hadoop, then adding bigtable-hbase-1.x-hadoop should not break anything. The only caveat is that in pre3, all google clients have to use netty 4.1.8.Final and tcnative 1.1.33.Fork26. This limitation will be removed in pre4, which will shade tcnative in bigtable-hbase-1.x.-hadoop, allowing bigtable-hbase-1.x-hadoop to coexist with any version of netty.

do you have any idea of pre4 release date?

I'll aim for early next week.  We have a couple of minor touch ups for a new feature (Tracing via Google Cloud Tracing) that I'd like to complete before the release..

try to understand @igorbernstein2 's words, it's kind of confusing to me for below two parts?
will it break or not when I have 'bigtable-hbase-1.x-hadoop' and other google library running in both hadoop and non-hadoop env?

Mixing bigtable-hbase-1.x-hadoop with other google clients will create the same headaches as mixing other google clients with hadoop-client. The underlying issue is that hadoop adds old versions of protobuf & guava to your dependency tree which will break modern grpc library dependencies.

If you got the other google clients running in hadoop, then adding bigtable-hbase-1.x-hadoop should not break anything.

Main issue that I see in the dependencies that you listed is that
google-http-client-protobuf depends on protobuf-java 2.6.1. While bigtable-hbase-1.x-hadoop depends on hbase-client that in turn depends on protobuf-java-2.5.0. The issue lies in the version differences between hbase-client and the other google libraries and is unrelated to bigtable-hbase-1.x-hadoop.
If you've successfully solved that issue (by using google-http-client-protobuf in a hadoop environment), then there is no obvious reason why bigtable-hbase-1.x-hadoop would break your environment.

so 'protobuf-java 2.6.1' and  'protobuf-java-2.5.0' are not compatible?

I'm not sure to be honest, this is something that you would need to test.  Protobuf did not adopt semantic versioning until 3.0. I know that messages compiled with protobuf 2.4 are incompatible with protobuf 2.5 runtime, and the public api for Bytestrings changed between versions 2.6 & 2.7.
Are you currently using  com.google.http-client:google-http-client-protobuf:1.22.0 in a hadoop environment? If so, then you shouldn't have any issues.

Thanks. I just excluded it from the hadoop env.
do you think this two will be compatible or not?
com.google.cloud.bigtable:bigtable-hbase-1.x:1.0.0-pre3'
com.google.http-client:google-http-client-protobuf:1.22.0

I don't think so.  From this pom.xml file, it looks like  com.google.http-client:google-http-client-protobuf:1.22.0 uses protobuf 2.6.1.  You'll have to use the bigtable-hbase-1.x-hadoop artifact to make everything work properly.


Bluetooth: Controller: Add tx power defines nrf54LX and nrf54HX

Due to publicizing the controllers nRF54L15 and nRF54H20, and as part of the effort to include needed commits from the private fork, the controllers previously lived off of, to the main fork, this PR introduces Tx Power defines for nrf54Lx and nrf54Hx series controllers.
Note: I combined the two commits, as there is really no sense in having two of them if so few is edited. As we don't keep the history from next commits, this is better in my opinion.

Renamed it, as I had internal names in branch name. See https://github.com/zephyrproject-rtos/zephyr/pull/68766 for new PR.


could you support %I64d %I64u like msvc done?

vs and gcc recognise %ld to be 32bit and 64bit. "%lld" to be 64bit.
To cross platform we aways use int32_t int64_t, so we  have to use PRI64d. It's disgusting.

Hello @superzmy ,
You may have noticed Marco has not been active in this repository for over 2 years... so, you may want to consider opening this issue against my fork, which integrates numerous bug fixes and some accuracy improvement.


[google_maps_flutter] fixes to web controller and test file

I fixed code issues in running the web integration in the controller and the google_maps_flutter_web/example/integration_test/google_maps_plugin_test.dart file
Also changed the packages/google_maps_flutter/google_maps_flutter/pubspec.yaml to properly run the dev environment for the web version
These fixes were done here so hopefully the main PR https://github.com/flutter/packages/pull/3257  is approved faster
Fixed issues:

Code didn't run on web version because of code typos referencing the wrong variable name
Fixed an issue in the test of a misplace semicolon
Now the web integration boots and runs properly

Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
[ ] I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
[ ] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

So sorry I didn't see this until just now. Is this still an issue? I don't think this causes any errors in the PR checks.

I just checked the main errors have also been fixed in the original repo, the only change this PR would add is adding the
google_maps_flutter_web to the dependency_overrides in the file
packages/google_maps_flutter/google_maps_flutter/pubspec.yaml
And that is only needed for local testing of the web implementation.
So, this could be merged without problems while this is still in the testing phase.


Sponge 1.2.4-B15 Not creating config files.

I've followed the instructions to install GD, it's creating a folder named as ``lib" inside "config/griefdefender" however there is nothing named as "global.conf" what should i do?

Github issues are not meant for support. Also 1.2.4-B15 is a very old build.


have Makefile run latexdiff

done in #61

I tried testing this as part of my code review of #61, but realized I can't until that PR is merged. So, I'll rename this issue to "Test latexdiff" or something.


"mem" and "gpu" weights are not transferable

Saving LSTM weights for a model trained in "mem" optimized mode and then trying to load them in a rebuild of the same model but in "gpu" optimized mode yields the following error.
Layer #6 (named "r1a" in the current model) was found to correspond to layer r1a in the save file. However the new layer r1a expects 3 weights, but the saved weights have 9 elements.
I can see why it's the case and why patching it would be a bit of a hassle but it's rather inconvenient.
Please make sure that the boxes below are checked before you submit your issue. Thank you!

[x ] Check that you are up-to-date with the master branch of Keras. You can update with:
pip install git+git://github.com/fchollet/keras.git --upgrade --no-deps

[ x] If running on Theano, check that you are up-to-date with the master branch of Theano. You can update with:
pip install git+git://github.com/Theano/Theano.git --upgrade --no-deps

[ ] Provide a link to a GitHub Gist of a Python script that can reproduce your issue (or just copy the script here if it is short).

That's by design (or rather, necessity) and there are no plans to fix it. "Fixing" it can only done in a way that would deteriorate runtime performance (weight matrix concatenation).

Is runtime performance during weight loading/saving a critical aspect?


lodash support with local storage

It looks like the memoize function checks to see if underscore is installed and uses that. Unfortunately, lodash while faster in most other functions actually runs the promise. I was able to get around the issue by saving your default memoize function and based on an opts property I added it will revert the memoize function back to the one you have in the code. So I know that is the issue, I am just going to shut off local storage for my use case for now and if I get more time I will try and do a pull request that fixed the issue.

It should just check for the global _ which works for lodash too. I actually used lodash while testing an existing implementation of memoize.
What exactly are you seeing?

the problem only seems to present itself when you choose local storage. I have 4 $http get service requests that I setup using promiseCache and set them all to use localstorage. Then I have another another promise exposed that does a $q.all for all the services. When I don't use localstorage I get a single call the first time to each service then no other calls to the individual services each additional time like expected. If I turn on local storage option for each of the service requests I get 4 http requests the first time AND each additional time using the code that is currently published on bower. When i change the code manually so that I use the default memoize function rather than the one in lodash it functions completely normally by calling the first time only and all subsequent calls come from the local storage cache. I also logged out all of the events and as all the same log messages come out in both cases, the unmodified code simply calls the 4 service calls every single time even though it gets the data from localstorage and logs the active event.

The proof of concept I tried out was to use name the anonymous function that is the default memoize function and revert to that when I passed a new opts property I called overrideMemoize which set the memoize function back to that default function. Ideally, you would want to set this option one time like on a provider in the app config or something.

Can you PR and add a failing test so I can understand more? I'll try and look myself too

It looks like tests fail when using lodash >= 3.0.0. Investigating more

I just removed the logic to try and use a different implementation of memoize. Should fix your issue.
Thanks

Thanks so much for your help with this so quickly


feat(concurrency): write commit transaction

This change is

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

Project coverage is 77.40%. Comparing base (6b87bdc) to head (5df0f37).
Report is 2 commits behind head on meship/blockifier/thin_revalidate.

Additional details and impacted files
@@                          Coverage Diff                          @@
##           meship/blockifier/thin_revalidate    #1843      +/-   ##
=====================================================================
+ Coverage                              77.39%   77.40%   +0.01%
=====================================================================
  Files                                     60       60
  Lines                                   8556     8561       +5
  Branches                                8556     8561       +5
=====================================================================
+ Hits                                    6622     6627       +5
  Misses                                  1494     1494
  Partials                                 440      440

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

crates/blockifier/src/concurrency/worker_logic.rs line 24 at r3 (raw file):

// Therefore we need to check that the value read by the transaction is still valid.
// This function is relevant for transactions that read the sequencer balance before the fee
// transfer

Suggestion:
// Checks that the sequencer balance reads made by a given transaction are still valid.
// All transactions update the sequencer balance only when they are committed.
// These changes are not visible to other transactions during execution and validation.
// Therefore, revalidation of these reads is needed before committing a transaction.

crates/blockifier/src/concurrency/worker_logic.rs line 20 at r6 (raw file):

pub fn try_commit_transaction<S: StateReader>(
    versioned_state: &mut ThreadSafeVersionedState<S>,
    tx_index: &TxIndex,

TxIndex is usize, so no need to borrow it.
Suggestion:
    tx_index: TxIndex,

crates/blockifier/src/concurrency/worker_logic.rs line 67 at r7 (raw file):

            let sequencer_balance_high = versioned_state
                .pin_version(tx_index)
                .get_storage_at(tx_context.fee_token_address(), sequencer_balance_key_high);

This makes three times we call the method pin_version. Each such invocation creates a new versioned state proxy.
Wouldn't it be better to have let mut pinned_versioned_state = versioned_state.pin_version(tx_index) and thus only use this method once?
Code quote:
            let sequencer_balance_low = versioned_state
                .pin_version(tx_index)
                .get_storage_at(tx_context.fee_token_address(), sequencer_balance_key_low);
            let sequencer_balance_high = versioned_state
                .pin_version(tx_index)
                .get_storage_at(tx_context.fee_token_address(), sequencer_balance_key_high);

crates/blockifier/src/concurrency/worker_logic.rs line 89 at r7 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Can you please explain the following? Why is it needed?

Doesn't it update the sequencer balance in storage?

crates/blockifier/src/concurrency/worker_logic.rs line 89 at r7 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Can you please explain the following? Why is it needed?

Doesn't it update the sequencer balance in storage?

crates/blockifier/src/concurrency/worker_logic.rs line 36 at r6 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Note- we will create transactional state for each transaction needs to be re-executed (we apply the writes at the end).
Consider creating it only in that case (validation failed).

If not, we should probably maintain a single transactional state for all commits in the same worker loop iteration.

WDYM? each transaction has its own writes that are needed to be "flushed" to the versioned state.

I mean that if the same thread commits many transactions one after the other, we might be able to keep using the same transactional state as long as there are more transactions that can be committed.

crates/blockifier/src/concurrency/worker_logic.rs line 31 at r12 (raw file):

}

pub fn try_commit_transaction<S: StateReader>(

Actually, we should make it try_commit to be consistent with other names in the concurrency module.

crates/blockifier/src/concurrency/worker_logic.rs line 36 at r6 (raw file):
Previously, noaov1 (Noa Oved) wrote…
?

Nevermind, creating the transactional state is probably not a big deal.

crates/blockifier/src/concurrency/worker_logic.rs line 31 at r12 (raw file):
Previously, noaov1 (Noa Oved) wrote…
I think that the try_commit method will run try_commit_tx (after running the scheduler try_commit, meaning, after catching the commit lock and verifying the relevant transaction status). WDYT?

Okay

crates/blockifier/src/concurrency/worker_logic.rs line 44 at r6 (raw file):
Previously, meship-starkware (Meshi Peled) wrote…
Sorry, please ignore the last note. It was a draft that I published by accident.

What about adding another validation after the execution?

crates/blockifier/src/concurrency/worker_logic.rs line 50 at r14 (raw file):

    let tx_versioned_state = versioned_state.pin_version(tx_index);

    // Fisrt, re-validate the transaction.

Suggestion:
    // First, re-validate the transaction.

crates/blockifier/src/concurrency/worker_logic.rs line 122 at r17 (raw file):

    if result_tx_info.is_err() {
        return Ok(true);
    }

I think the error is confusing because it is unrelated to concurrency, so we need to add a comment that explains the context.
Suggestion:
    if result_tx_info.is_err() {
        // Transaction reverted and successfully committed.
        return Ok(true);
    }

crates/blockifier/src/concurrency/worker_logic.rs line 129 at r19 (raw file):
Previously, meship-starkware (Meshi Peled) wrote…
I am not sure it was the best way to change the concurrency mode, but it worked. It might be problematic to ask for &mut self.

Looks fine to me.

crates/blockifier/src/concurrency/worker_logic.rs line 27 at r25 (raw file):

use crate::transaction::transactions::ExecutableTransaction;

const EXECUTION_OUTPUTS_UNWRAP_ERROR: &str = "execution task outpust should not be None.";

Suggestion:
const EXECUTION_OUTPUTS_UNWRAP_ERROR: &str = "Execution task outputs should not be None.";

crates/blockifier/src/concurrency/worker_logic.rs line 186 at r25 (raw file):

            let tx_info =
                result_tx_info.as_mut().expect("Transaction info should not be an error here.");

Suggestion:
                result_tx_info.as_mut().expect("Transaction info should not be an error here - rejected transactions pay no fee.");

crates/blockifier/src/concurrency/worker_logic.rs line 141 at r25 (raw file):

        let read_set =
            &execution_task_outputs.as_ref().expect(EXECUTION_OUTPUTS_UNWRAP_ERROR).reads;

Would it make sense to add a method get_read_set and a method get_tx_execution_info that accept a tx_index and both lock the mutex and return the relevant value (ref for read_set mut for execution_info)?
This would make it a bit more readable and take care of managing the locks (i.e., we won't need drop).
@noaov1 what do you think?
Suggestion:
        let read_set =
            &execution_task_outputs.as_ref().expect(EXECUTION_OUTPUTS_UNWRAP_ERROR).reads;`

crates/blockifier/src/concurrency/worker_logic.rs line 209 at r25 (raw file):

                    sequencer_balance_key_low,
                    sequencer_balance_value_high,
                    sequencer_balance_value_low,

First low then high - to be consistent with other functions used here (also, the low key has a lower address, so it makes sense it would come first).
Suggestion:
                    sequencer_balance_key_low,
                    sequencer_balance_key_high,
                    sequencer_balance_value_low,
                    sequencer_balance_value_high,

crates/blockifier/src/concurrency/worker_logic.rs line 141 at r25 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Why would it avoid the drop?

I suggested the method will also take the lock on the mutex, so once the method ends the lock goes out of scope and gets dropped automatically.

crates/blockifier/src/concurrency/worker_logic.rs line 148 at r27 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Not good. It is shared between all the threads.
Two options:

Run in concurrency mode (need to fix call info and sequencer balance)
Add a parameter to the execute_tx method that affect the (local) block context.

Why would the concurrency_mode change in the worker logic? Shouldn't it be set in the executor?

crates/blockifier/src/concurrency/worker_logic.rs line 155 at r27 (raw file):

                &mut execution_task_outputs.as_mut().expect(EXECUTION_OUTPUTS_UNWRAP_ERROR).result;
            if result_tx_info.is_err() {
                // Transaction rejected.

I think the distinction here is important. Failed could mean either rejected or reverted. This flow is only reached when the transaction is rejected, not when it is reverted, so why not be explicit about it in the comment?

crates/blockifier/src/concurrency/worker_logic.rs line 141 at r25 (raw file):
Previously, noaov1 (Noa Oved) wrote…
Can we release the lock while still holding a (mutable) reference to it?

We can't... :facepalm:

crates/blockifier/src/concurrency/worker_logic.rs line 155 at r27 (raw file):
Previously, noaov1 (Noa Oved) wrote…
I am not familiar with associating reverted with failed. I think that failed is more explicit, but it's just a suggestion.
What does it mean rejected?

Rejected means the transaction failed __validate__, so we are not going to charge fee for it nor include it in a block. Reverted means the transaction failed during __execute__, so we are going to charge fee and include it in a block. "Failed" could mean either of the two, but in this flow we don't include reverted transactions, only rejected.

crates/blockifier/src/concurrency/worker_logic.rs line 148 at r27 (raw file):
Previously, meship-starkware (Meshi Peled) wrote…
The reason we want to change the concurrency mode here is to avoid fixing the call info and sequencer balance after re-execution. I think we should go for option 1 now and many rethink it later.

Option 1 simply means we need to not return at the end of this scope right?
Just move on to the final part of this method where we update the sequencer balance?
If so, it sounds good.


Document effects of setting ClassAndModuleChildren

My team at work were discussing whether to disable Style/ClassAndModuleChildren in our codebase. They weren't aware of the functional effect of different nesting styles and I was surprised that the cop didn't explain it either.
This PR provides a reference for people considering changing the EnforcedStyle of this cop.
Caveat: I'm not sure whether this documentation is better in ruby-style-guide. I suspect it isn't, because style-guide prefers to link out to explanations, so I'm submitting it here first.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] ~Commit message starts with [Fix #issue-number] (if the related issue exists).~
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] ~Added tests.~
[x] ~Added an entry to the Changelog if the new code introduces user-observable changes. See [changelog entry format]~(../blob/master/CONTRIBUTING.md#changelog-entry-format).
[x] All tests are passing.
[x] The new code doesn't generate RuboCop offenses.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Updated cop documentation with rake generate_cops_documentation (required only when you've added a new cop or changed the configuration/documentation of an existing cop).

It seems to me something like this belongs to the style guide and should simple be referred by this cop. See https://github.com/bbatsov/ruby-style-guide/pull/639 Your examples look better, so feel free to fire a PR there.


move cloud commands under spin cloud

Going forward, it would be nice to move cloud related commands under the spin cloud command.
$ spin login -> spin cloud login
$ spin deploy -> spin cloud deploy
For convenience, we should leave aliases for spin login and spin deploy but all other cloud related commands should be added under spin cloud.

we should leave aliases for spin login and spin deploy

Slight technical blocker... I cannot create an alias from spin deploy to spin cloud deploy.
Clap has a feature called replace, but it is marked unstable behind the unstable-replace flag. There is no support for this flag in clap-derive, which we use for aliasing commands in the Spin CLI. It sounds like the replace feature is expected to be removed in the future, but the last time it saw any activity was in 2021.
How should we proceed?

We could leave the Deploy and Login subcommand enum variants (hidden if desired), with the variants having the same payloads as the matching Cloud commands?  It will be duplication rather than true aliasing, but nobody would know... (I hope)
(We will need to be sneakier than this when cloud becomes a plugin, but we'll likely be figuring out clap sorcery at that point anyway, e.g. to make cloud appear in help text.)

That seems like a possible solution. Calling spin deploy won't actually point you to spin cloud deploy, but close enough. 🤷🏼
Okay, I've marked those commands as hidden, so now you see this with spin help:
><> ./target/release/spin help
spin 0.8.0 (fd67c3d 2023-02-14)
The Spin CLI

USAGE:
    spin <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    add          Scaffold a new component into an existing application
    bindle       Commands for publishing applications as bindles
    build        Build the Spin application
    cloud        Commands for publishing applications to Fermyon Cloud
    help         Print this message or the help of the given subcommand(s)
    new          Scaffold a new application based on a template
    plugins      Install/uninstall Spin plugins
    registry     Commands for working with OCI registries to distribute applications. The set of
                     commands for OCI is EXPERIMENTAL, and may change in future versions of Spin.
                     Currently, the OCI commands are reusing the credentials from
                     ~/.docker/config.json to authenticate to registries
    templates    Commands for working with WebAssembly component templates
    up           Start the Spin application


Performance test against toml-rs

The cargo team is concerned about negatively impacting cargos performance in switching to toml_edit.  Specifically, they are concerned about parsing large dependency trees.
It is unclear how much impact toml-rs has on the whole operation and how much would be solved by

Storing immutable Cargo.toml files in binary
Moving strings in cargo to smol_str or kstring

But we should at least be able to say how we compare with the same API (#129)

[x] #129
[x] Identify test cases to compare toml_edit, #129, and toml-rs
[ ] Bring performance in line with toml-rs

We take about twice as long, with the base API.  with the easy API, we take even longer.
Ideas

Build up a table before inserting, rather than looking up the table on each key-value
Dig through parser, looking for unneeded allocations
kstring or something like it
change our hash function

My plan is to write up a bench for cargo to see how it performs in a more real-world use case and work with others on setting an acceptable performance target. I'll then look at holistic performance improvements, like using a String type in cargo and toml_edit with small-string optimization or caching parsed results for immutable Cargo.tomls (ie in the registry) in a more optimizable format, like json or cbor.
https://github.com/rust-lang/cargo/issues/9935 is relevant for the benchmark

I've done small-string optimization for formatting and keys and various other improvements and brought parse time on a medium Cargo.toml from 250us to 200us.
Potential next steps

Switch parsers (I saw a lot of overhead from combine)
Do small string optimization for values (hesitant to do this)

I guess I'm stuck with the above plan of moving from micro-benchmark to real-world resolver benchmarks.

We've now dropped from the original 250us to 180us.  Still a good distance to the goal of 120us.
combine's Errors::merge is one of our biggest time sinks that seems "easy" to cut.  Easy because technically, we have no user-facing errors and we shouldn't need to call this at all.  However, what it takes to get combine to recognize that is another thing.

Current breakdown for running my example, without printing

30% of time is spent in process startup (included since it skews the other percentages)
10% of time is spent copying strings (unaligned copies due to small-string optimization)
1.34% of time is spent in std::str::from_utf8 (I was paranoid and didn't use from_utf8_unchecked in some places when switching to a byte parser, looks small enough to not be worth analyzing)
8% of time is malloc
1.5% of time is realloc
7.8% of time is spent in a combine call Errors::merge (which includes calling into malloc and realloc)

Looks like the only options for dropping the Errors::merge overhead
From what I understand, this mostly comes from choice trying multiple parsers and returning their failures.  Once a parser "commits" (default behavior), it no longer does merging  If we use attempt, the parser doesn't commit.

Replace choice with dispatch

This can really much up the grammar and break abstractions because the dispatch call needs to have knowledge of what the underlying parsers
This is a game of whack-a-mole

Find ways to remove attempt

This is hard
This is a game of whack-a-mole

Create a custom stream (rather than combine::easy) that still gives good errors but doesn't cost so much

Biggest risk but biggest potential pay off since its a fix once and it applies everywhere

Switch to nom since it doesn't have these weird cases

This would also make profiling easier because costs would be associated with functions, rather than combinators returned by those functions
A decent amount of work (1-2 days)
A bit uglier because they rely on functions more (no impl Parser for tuples, much fewer functions on Parser)

Another option I considered is rewriting parser entirely using a recursive descent as done toml-rs. That's also a decent amount of work, but we'd gain more control this way in both error messages and overhead.

Yes, its good to call that one out. I had originally dismissed it because I assume it'll be a significant amount of work to rewrite from scratch or even to figure out how to reuse parts of toml-rs with format-preserving.

Also, one thing I've appreciated about toml_edit is its easy to map the code to the ABNF.  at least toml-rs doesn't maintain that.  Unsure how difficult it would be if we started completely from scratch

Benchmarks came in around 5% slower.  Still acceptable for cargo


Make some dev dependencies more specific

Problem
Some of the dev dependencies weren't specific enough. I'd make a change to package.json, the dependency solve would change, the lockfiles would update, then the build would break. Then I'd revert the change to package.json but because the lockfiles had already updated and they specified versions of the dependencies that didn't work, the build would still be broken.
Solution
Make the problematic dependency constraints more specific so the lockfile stops updating to invalid states

Also reasonable to me, for some reason utop is always decreasing so this leads to problems.


test(dm): uncomment a test after tidb-tools update dependency

What problem does this PR solve?

Issue Number: close #xxx
What is changed and how it works?
Check List
Tests

No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
 `None`.

/test ?

/test dm-integration-test

/cherry-pick release-7.1

/cherry-pick release-6.5


Blank Screen After passing the Column to ListView.builder

When I'm trying to wrap the main_screen.dart scaffold body argument to the column/Row widget But only the App Bar Title is showing. Not the Body argument of the Scaffold. I want to add the some other widget in the column/Row view this is why it is essential for me. Please describe how to resolve this issue. I tried wrapping it with container then column/Row but nothing works.
lib.zip

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so it's always better to open new issues and reference related issues.


Implement unstructured watcher and list for khjob CRDs

The unstructed watcher merged in PR #581 fixed crashes related to users saving invalid khcheck configurations.  We should extend this durability to khjob resources as well.

closing as this is done. and 2.3.0 release is out!


Right Click on Dragged Component show option of copy paste

Right Click on Dragged Component show option of copy paste
example in wordpress elementor CMS have following features

This seems like a good workaround while we wait for #123


Remote Xcode app build fails - Error code 65

I'm trying to build my Capacitor app which uses the QRScanner plugin. If I build locally, everything works just fine. But now I set up a CI process. The QRScanner plugin causes the remote build to fail with the error code 65.
Here are the logs:
The following build commands failed:
CompileSwift normal armv7 path-to-plugin/QRScanner.swift
CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compiler
CompileSwift normal arm64 path-to-plugin/QRScanner.swift
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
(4 failures)
##[error]Error: /usr/bin/xcodebuild failed with return code: 65

P.S. I'm using the latest version(2.6.0) of the plugin

Same problem here. Im using Visual Studio 2017 on PC and XCode 9.4.1 on High Sierra Mac. Logs says that SWIFT_VERSION must be set appropiately, or sort of message.

@FranciscoLeuro I had this issue before too. You need to set the Swift version to 3.3. Are you also using Capacitor? There is now an option to set the Swift version in the capacitor.config.json file:
"ios": {
    "cordovaSwiftVersion": "3.3"
}

But that doesn't solve my issue...

Did anyone found a solutions to this problem??

We had the same problem here, any solution?

Same problem here. Also with other Capacitor plugins. No updates for this problem?


Update Blog Post “2020-05-shifting-the-tide-dod’s-new-vulnerability-disclosure-policy”

Automatically generated by Netlify CMS

Deploy preview for dds-mil ready!
Built with commit ac4424b52bed8c69e6bb04e15ea28f6c7ce17497
https://deploy-preview-232--dds-mil.netlify.app


Compiling citrus with latest ctrulib (commit 1cef3e5)

Compiling citrus with latest ctrulib (commit 1cef3e5) gives following errors
(Compiling with previous commit works fine)
build/source/citrus/app.o
source/citrus/app.cpp: In function 'void ctr::app::launch(ctr::app::App)':
source/citrus/app.cpp:460:20: error: 'aptOpenSession' was not declared in this s
cope
     aptOpenSession();
                    ^
source/citrus/app.cpp:461:124: error: 'APT_PrepareToDoAppJump' was not declared
in this scope
     ctr::err::parse(ctr::err::SOURCE_APT_PREPARE_TO_DO_APP_JUMP, (u32) APT_Prep
areToDoAppJump(0, app.titleId, app.mediaType));

                                            ^
source/citrus/app.cpp:463:102: error: 'APT_DoAppJump' was not declared in this s
cope
         ctr::err::parse(ctr::err::SOURCE_APT_DO_APP_JUMP, (u32) APT_DoAppJump(0
x300, 0x20, buf0, buf1));

                      ^
source/citrus/app.cpp:466:21: error: 'aptCloseSession' was not declared in this
scope
     aptCloseSession();
                     ^
make: *** [build/source/citrus/app.o] Error 1
rm build/source/citrus/citrus_default_font.bin.c build/source/citrus/citrus_defa
ult_shader.shbin.c

Fixed.

From what I see, not fixed - the libkhax submodule has to be updated, too.

When the comment was made, libkhax had yet to be fixed.


Arguments for generamba gen Name modulename

Arguments for generamba gen Name modulename --project_file_path app/tableView/cells/modules.
At least there should be a way to change all keys from Rambafile, e.g.

project_target
project_file_path
project_group_path (if not provided, equal to project_file_path)
etc

Hi, @appleios . You can already use these flags: https://github.com/rambler-ios/Generamba/wiki/Available-Commands#module-generation

Thank you!


Please invite me to the GitHub Community Organization

Hello, @varunwho to join the community there is an invitational issue link.
Click it and submit the form with necessary details to join the community


Using Unix Socket

We use Nginx as a reverse proxy to websocket.
nginx.conf
proxy_pass http://unix:/path/to/file.sock:/;

nodejs code
var httpServer = http.createServer( httpHandler );

fs = require('fs');
sock="/path/to/file.sock";
fs.unlink(sock);
httpServer.listen( sock ,function() {});

var ws = new WebSocket({
       httpServer: httpServer,
       autoAcceptConnections:true
});

ws.on('connect', websocketConnectHandler);

This basically works fine, but sometime write EPIPE will occurs and this causes server stop.
events.js:154
    throw er; // Unhandled 'error' event
    ^

Error: write EPIPE
    at exports._errnoException (util.js:856:11)
    at WriteWrap.afterWrite (net.js:767:14)

Yes, it is important also for server across server environment. I also not follow how to join client to UNIX-socket. It might be great option. I will try now to do that.


Support  within a shadow DOM

This issue was originally reporting a bug when using custom fonts within a shadow DOM. I've changed the title to more accurately reflect the root cause - which is no shadow DOM support whatsoever.

Minimal reproduction (use Chrome)
Environment

Chrome v67.0.3396.87 (64bit)
<EMAIL_ADDRESS>
Summary
When using stripe elements within a shadow root, passing external fonts to the <Elements> component will result in the iframe form getting an inline visibility: hidden style.

Even if this style is overriden, creating tokens will later throw the following error:
We could not retrieve data from the specified Element.
Please make sure the Element you are attempting to use is still mounted.

Other information
The repro above may take a few moments to load. Notice that the fourth box will stay empty.
I'm aware that the fonts are not actually applied to the inner <CardElement> in the repro above.

@bcanseco Hi! Thanks for writing in. I'm Matt and I work at Stripe. You are totally right here--Elements is currently not compatible with shadow DOM. We have this on our backlog and are looking forward to addressing it in the future (no concrete timeline at the moment unfortunately). I will be sure to let you know when the fix does roll out!

Not just Chrome, shadow dom is supported in a number of browsers. For example, firefox support is about to land.
https://caniuse.com/#feat=shadowdomv1

FYI, the way we solve this in stripe-elements custom element is to walk the dom tree until we find the document.

+1 we also really need this for our solution. As web pages become more plugin focused this is going to be important.

+1

For anyone considering workarounds like tokenizing cards using your own CC forms on the frontend and then capturing charges from your backend:
Keep in mind that you eventually need to validate PCI compliance. Yes, your backend never sees credit card information with this approach. HOWEVER, since you're not using the Elements library - you will have to fill in 40 pages of PCI forms every year.

More info on that here.

@bcanseco Thanks for that, that's more reason for stripe to support the full DOM and HTML spec, including shadow DOM. Anyone building a payment app that uses shadow DOM would LOVE to not have to fill out those forms, but unless Stripe decides to support the full DOM spec, we have to use weird workarounds like walking the whole tree.

@matt-stripe Are there any updates on the progress for shadow dom support?

Would love to know if this has been fixed - also why is it closed if it's not?

It's worth mentioning that the workaround we use in <stripe-elements> breaks the tab order, as well.

@bennypowers  - does it also break the PCI compliance side of things or is that ok?

@bennypowers  Mind if i port that component to svelte?

Won't break PCI, since even with my component, your users are still entering their numbers into an iframe to stripe.com.
but without proper tab order, it is inaccessible. You'll probably need some vile tabindex hacking, either that or very careful dom placement to get it to work the way you'd expect.
But i'd be happily proven wrong. all of ☝ is based on my experience using <stripe-elements> inside an animated multi-step form.

Hi folks, we don't have any updates regarding shadow DOM support yet. It should still be possible to use Elements without the shadow DOM, so hopefully you're not blocked from integrating Stripe altogether (or forced to fall back to higher levels of PCI).
We'll post here if/when we have updates on shadow DOM support.

There are 8 (pretty minor, fairly repetitive) things in stripe.js which I know of that prevent it from working. There may be more which just happen not to occur in the features we’re using, but still, it’s not a super big diff. I have a patched version which does work, but it will be awkward trying to maintain keeping it in sync with the stripe-hosted script. Any news here?

Shadow DOM causes some issues with the iframes that Stripe.js uses internally for PCI compliance. It may be possible to change Stripe.js to be compatible with Shadow DOM while preserving PCI compliance, but it's definitely more involved than 8 minor patches.
In the meantime, the only workaround is to keep all elements in the main document, doing something like @bennypowers's clever trick in stripe-elements.

There’s nothing which could be considered PCI-related that I’ve encountered. The iframes are still secure (nothing can change that, really, they are controlled by stripe’s origin exclusively). It’s only a handful of incorrect assumptions about three things:

how to determine if an element is connected (use isConnected, not document.body.contains);
how to determine if an element is focused (getRootNode().activeElement, not document.activeElement)
how to choose the next sequentially focusable element in the tab order on blur (the most complex thing, but this is a UX level issue)

Shadow DOM does not change how iframes behave.

Shadow DOM does not change how iframes behave.

It does. This is the main blocker: https://github.com/whatwg/html/pull/1625/commits/7b567729ac3cc66b074b0df53138c353ec540bb9
That means unless all iframes are in the root document, they cannot discover each other to communicate directly.

Apologies, I framed that wrong. I should have said it does not change their security characteristics.
I’m a bit confused now though because the script creates all of these elements and can hold references to them, and is not obviously failing anywhere.

While I'm not sure what your patches exactly do, you might end up creating the element iframes but they wouldn't be functioning properly. In particular I don't believe you'd be able to create a Token or PaymentMethod from a card element.
Also, a reminder that self hosting Stripe.js (especially a modified versions) is in itself not PCI compliant.

Why is that exactly? I should hope that no script I run in my origin could compromise Stripe’s security — is that not the case?
(To be clear — I believe you of course, just looking to understand what’s going on better. This has all been a pretty frustrating experience so far.)

@bathos I ran into this same problem as well.  I put together a working solution where I have an  within the shadow DOM that handles loading the Stripe script and rendering react-stripe-element components.  Not sure what your exact requirements are, but it seems to work reasonable well for us to get style encapsulation from the Shadow DOM and keep Stripe happy by having all of the content inside the iframe document (which does not have Shadow DOM nodes inside it)

@hofman-stripe @matt-stripe Would it be possible (at least in the createToken(Element) use case) to patch the library and the loader to maintain that state? So when a Stripe Elements iframe is loaded in the doc it could be added to a collection of iframes that is bootstrapped by the Stripe.js loader?
My thought is that this collection would replace window.frames, assuming that is what is being used by the Element iframes. This new collection could also, by necessity, be added to the window as well.

For security we cannot rely on the Stripe.js script loaded in your page to establish a communication channel between our iframes. They have to discover each other directly. Currently this is done through naming and window.frames, a special property of WindowProxy which cannot be stubbed in any way.
There are other ways to get references to other frames's WindowProxy objects, but these would require a fundamental refactor, not a simple patch.
Interesting read on the topic: https://medium.com/@bluepnume/every-known-way-to-get-references-to-windows-in-javascript-223778bede2d

:+1: for supporting shadow dom.  I got this working by using a slot to pull in a container from outside the shadow dom, but that was easy to do because my component sits directly inside the root DOM.

:+1: for supporting shadow dom.  I got this working by using a slot to pull in a container from outside the shadow dom, but that was easy to do because my component sits directly inside the root DOM.


UI Testing Failure - Failure getting refresh snapshot Error Domain=XCTestManagerErrorDomain Code=9 "Error getting main window -25204" UserInfo={NSLocalizedDescription=Error getting main window -25204}

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
UI Testing Failure - Failure getting refresh snapshot Error Domain=XCTestManagerErrorDomain Code=9 "Error getting main window -25204" UserInfo={NSLocalizedDescription=Error getting main window -25204}
Complete output when running fastlane, including the stack trace and command used
✗ testSnapshot, UI Testing Failure - Failure getting refresh snapshot Error Domain=XCTestManagerErrorDomain Code=9 "Error getting main window -25204" UserInfo={NSLocalizedDescription=Error getting main window -25204}

FlagshipSnapshotUITests.FlagshipScreenshotsUITests
testSnapshot, UI Testing Failure - Failure getting refresh snapshot Error Domain=XCTestManagerErrorDomain Code=9 "Error getting main window -25204" UserInfo={NSLocalizedDescription=Error getting main window -25204}
<unknown>:0

	 Executed 1 test, with 1 failure (0 unexpected) in 6.026 (6.030) seconds

[19:27:53]: Exit status: 65
[19:27:53]: Tests failed - check out the log above

Note that the UITest target runs fine manually from Xcode and xcodebuild.
Configuration Files
Please copy the complete content of your Fastfile and any other configuration files you use below:
Snapfile:
# A list of devices you want to take the screenshots from
devices([
  "iPhone 6s"
])

languages([
  'de-DE',
  'en-AU',
  'en-CA',
  'en-GB',
  'en-US',
  'fr-CA',
  'fr-FR',
  'nl-NL',
  'zh_CN'
])

# The name of the scheme which contains the UI Tests
scheme "SomeScheme"

# Where should the resulting screenshots be stored?
output_directory "./fastlane/screenshots"

# clear_previous_screenshots # remove the '#' to clear all previously generated screenshots before creating new ones

# Choose which project/workspace to use
workspace "SomeProject.xcworkspace"

Environment
fastlane version (fastlane -v): 1.66.0
Do you use bundler, rbenv or rvm? No

I had the same today. I found it was because the app crashed during the snapshot and thus the error received is "Error getting main window -25204" since the app window already gone.
In my case the reason I didn't had that crash during development is because during snapshot there is different content that doesn't cause the crash.

@tsafrir Thanks for letting us know! So after you fixed the content issue were you able to get up and running?
Thanks!

In the case for which the issue was originally created the app under test was running just fine and had not crashed.

Hi @postmechanical! Can you let me know if you get this error when you run your tests via Xcode?
Thanks!

@TKBurner No, the error does not occur when running test target from Xcode.

@TKBurner yes, after I fixed the content issue, it got back to normal and was able to take snapshots.

This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
<EMAIL_ADDRESS>Domain zyapps.com has exceeded the max emails per hour (462/400 (115%)) allowed.  Message will be reattempted later
------- This is a copy of the message, including all the headers. ------
Received: from github-smtp2-ext7.iad.github.net ([<IP_ADDRESS>]:43289 helo=github-smtp2a-ext-cp1-prd.iad.github.net)
by serveur.ex2-p10.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
(Exim 4.87)
(envelope-from<EMAIL_ADDRESS>id 1bEKt6-002lXD-S1
for<EMAIL_ADDRESS>Sat, 18 Jun 2016 20:22:37 +0200
Date: Sat, 18 Jun 2016 11:21:51 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
s=pf2014; t=1466274111;
bh=2h45Wre0e2SneWjc5P0UKzkItVSYWh+SDKNKO0NfngU=;
h=From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
List-Archive:List-Post:List-Unsubscribe:From;
b=Ayip4P1He6vFpMvVi5yR74Su1tUOfQsyeYNkd9ANmacmgEjwkH8teEfdP3Y8mc4ub
b9dlfYI/iF6cJ31tEBSjuzZOq9O2w3cOZYKwKglCj92fbCPvARq9MLumIo4PZJ+9Pp
uVAXjvemRe8/g/gCvoiFQINfaC05g4/ULfpJTKKU=
From: fastlane bot<EMAIL_ADDRESS>Reply-To: fastlane/fastlane<EMAIL_ADDRESS>To: fastlane/fastlane<EMAIL_ADDRESS>Cc:
Message-ID<EMAIL_ADDRESS>In-Reply-To<EMAIL_ADDRESS>References<EMAIL_ADDRESS>Subject: Re: [fastlane/fastlane] UI Testing Failure - Failure getting refresh
snapshot Error Domain=XCTestManagerErrorDomain Code=9 "Error getting main
window -25204" UserInfo={NSLocalizedDescription=Error getting main window
-25204} (#3636)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5765913f9d54f_39413fc216c9d2a0113161";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: fastlane-bot
X-GitHub-Recipient: yanndupuy
List-ID: fastlane/fastlane <fastlane.fastlane.github.com>
List-Archive: https://github.com/fastlane/fastlane
List-Post<EMAIL_ADDRESS>List-Unsubscribe<EMAIL_ADDRESS>https://github.com/notifications/unsubscribe/AA3w3LWUoIGXcmesluEjcdKlLLolzXXYks5qNDc_gaJpZM4Hs3a5
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address<EMAIL_ADDRESS>X-Spam-Status: No, score=-4.1
X-Spam-Score: -40
X-Spam-Bar: ----
X-Ham-Report: Spam detection software, running on the system "serveur.ex2-p10.com",
has NOT identified this incoming email as spam.  The original
message has been attached to this so you can view it or label
similar future email.  If you have any questions, see
root@localhost for details.
Content preview:  Closed #3636. --- You are receiving this because you are subscribed
to this thread. Reply to this email directly or view it on GitHub: https://github.com/fastlane/fastlane/issues/3636#event-696784974
[...]
Content analysis details:   (-4.1 points, 5.0 required)
pts rule name              description

-5.0 RCVD_IN_DNSWL_HI       RBL: Sender listed at http://www.dnswl.org/, high
trust
[<IP_ADDRESS> listed in list.dnswl.org]
-0.0 SPF_PASS               SPF: sender matches SPF record
0.0 HTML_MESSAGE           BODY: HTML included in message
1.0 HTML_IMAGE_ONLY_16     BODY: HTML: images with 1200-1600 bytes of words
-0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
-0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from author's
domain
0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily valid
X-Spam-Flag: NO
----==_mimepart_5765913f9d54f_39413fc216c9d2a0113161
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #3636.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/fastlane/fastlane/issues/3636#event-696784974
----==_mimepart_5765913f9d54f_39413fc216c9d2a0113161
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #3636.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

----==_mimepart_5765913f9d54f_39413fc216c9d2a0113161--

This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
<EMAIL_ADDRESS>Domain zyapps.com has exceeded the max emails per hour (464/400 (115%)) allowed.  Message will be reattempted later
------- This is a copy of the message, including all the headers. ------
Received: from o3.sgmail.github.com ([<IP_ADDRESS>]:63465)
by serveur.ex2-p10.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
(Exim 4.87)
(envelope-from<EMAIL_ADDRESS>id 1bEKtA-002lXd-8S
for<EMAIL_ADDRESS>Sat, 18 Jun 2016 20:22:41 +0200
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=github.com;
h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe;
s=s20150108; bh=bd3//hZHuwtwN2ZvEJp/5vuUNvU=; b=GXfYJR3Xok05kZAL
furTrseg1FJgVM5++1D+e0pbQi4feVThUbGzm2ydFexhJb/6Qg0qZhVVqqmS35pf
47sJvH6T+IG/QtVSSyKon9q9WuLicH9IAwcajDta0GY7uOs1NfFtDRC0HRTUntDF
fsPYARLOLp7R+5pCw8JlyVtQiBA=
Received: by filter0629p1mdw1.sendgrid.net with SMTP id filter0629p1mdw1.4989.5765913F21
2016-06-18 18:21:51.617291279 +0000 UTC
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2a-ext-cp1-prd.iad.github.net [<IP_ADDRESS>])
by ismtpd0002p1iad1.sendgrid.net (SG) with ESMTP id dZiYHpxRR7K0wiUTS3c9DA
for<EMAIL_ADDRESS>Sat, 18 Jun 2016 18:21:51.494 +0000 (UTC)
Date: Sat, 18 Jun 2016 11:21:51 -0700
From: fastlane bot<EMAIL_ADDRESS>Reply-To: fastlane/fastlane<EMAIL_ADDRESS>To: fastlane/fastlane<EMAIL_ADDRESS>Cc:
Message-ID<EMAIL_ADDRESS>In-Reply-To<EMAIL_ADDRESS>References<EMAIL_ADDRESS>Subject: Re: [fastlane/fastlane] UI Testing Failure - Failure getting refresh
snapshot Error Domain=XCTestManagerErrorDomain Code=9 "Error getting main
window -25204" UserInfo={NSLocalizedDescription=Error getting main window
-25204} (#3636)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5765913f5dc9b_1b0b3f9b9c98129c17406e";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: fastlane-bot
X-GitHub-Recipient: yanndupuy
List-ID: fastlane/fastlane <fastlane.fastlane.github.com>
List-Archive: https://github.com/fastlane/fastlane
List-Post<EMAIL_ADDRESS>List-Unsubscribe<EMAIL_ADDRESS>https://github.com/notifications/unsubscribe/AA3w3LWUoIGXcmesluEjcdKlLLolzXXYks5qNDc_gaJpZM4Hs3a5
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address<EMAIL_ADDRESS>X-SG-EID: /bDRkhSo/GH2gzZXMo5AKhbuTgLDPkexBjh/BYa140HyPw44RYmtwfkE7Gvvz78SVwaBjumaZp4IKt
OfDz/eBr3udos01nPhCk67WAl2qt/UmsjENPy0neiIM3bDJdop3TiXdrQC7frrFmyYML3v/5jDCKAF
PbF/I8vnjZD5/RVzkGZCZyJWy1jZ1X3U2blm1ki2BY6pxnfF12JEeOPTOv7SpLG9efsraDXEVPcgOg
E=
X-Spam-Status: No, score=-2.8
X-Spam-Score: -27
X-Spam-Bar: --
X-Ham-Report: Spam detection software, running on the system "serveur.ex2-p10.com",
has NOT identified this incoming email as spam.  The original
message has been attached to this so you can view it or label
similar future email.  If you have any questions, see
root@localhost for details.
Content preview:  This issue will be auto-closed because there hasn't been any
activity for a few months. Feel free to open a new one
if you still experience this problem 👍 [...]
Content analysis details:   (-2.8 points, 5.0 required)
pts rule name              description

-2.3 RCVD_IN_DNSWL_MED      RBL: Sender listed at http://www.dnswl.org/, medium
trust
[<IP_ADDRESS> listed in list.dnswl.org]
-0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
[<IP_ADDRESS> listed in wl.mailspike.net]
-1.4 RP_MATCHES_RCVD        Envelope sender domain matches handover relay domain
0.0 HTML_MESSAGE           BODY: HTML included in message
1.0 HTML_IMAGE_ONLY_16     BODY: HTML: images with 1200-1600 bytes of words
-0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
-0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from author's
domain
0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily valid
-0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Spam-Flag: NO
----==_mimepart_5765913f5dc9b_1b0b3f9b9c98129c17406e
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: quoted-printable
This issue will be auto-closed because there hasn't been any activity for a=
few months. Feel free to [open a new one](https://github.com/fastlane/fast=
lane/issues/new) if you still experience this problem =F0=9F=91=8D

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/fastlane/fastlane/issues/3636#issuecomment-226957372=
----==_mimepart_5765913f5dc9b_1b0b3f9b9c98129c17406e
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: quoted-printable
This issue will be auto-closed because there hasn't been any activity fo=
r a few months. Feel free to open a new one if you still experience this problem =F0=9F=91=8D
&mda=
sh;You are receiving this because you are subscribed to this thread.<=
br />Reply to this email directly, view it on GitHub, or mute the thread.

----==_mimepart_5765913f5dc9b_1b0b3f9b9c98129c17406e--


fix(payload): Fix GitHub payload

:pencil: Description
:link: Related Issues

:tada: This PR is included in version 1.3.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Make UI Impressive

Changing the home screen of the app
Fix some indentation issues if arises

ok  @utkarsh006  bhaiya

assign this to me


from future import annotations incompatible with self referencing

Trying to create a strawberry type (addition of from __future__ import annotations and the use of strawberry.auto) results in a traceback. The strawberry is resolved as self referencing to the class itself and raise an exception.

Describe the Bug
Here is the content of the strawberry type declaration file
from __future__ import annotations
from typing import List
import strawberry
from main.apis.graphql.types.produit_out_type import ProduitOutType

from main.schemas.categorie_produit_out_schema import CategorieProduitOut
@strawberry.experimental.pydantic.type(model=CategorieProduitOut)
class CategorieProduitOutType:
  id: strawberry.auto
  parent: strawberry.auto
  nom: strawberry.auto
  description: strawberry.auto
  info_bulle: strawberry.auto
  image: strawberry.auto
  nom_d_affichage_categorie: strawberry.auto
  produits: List[ProduitOutType]

Here is the content of the corresponding  pydantic schema declaration file
from uuid import UUID
from pydantic import BaseModel
from typing import List, Optional

from main.schemas.produit_out_schema import ProduitOut

class CategorieProduitOut(BaseModel):
  id: UUID
  parent: 'CategorieProduitOut'=None # a forward self referencing
  nom: str
  description: Optional[str] = None
  info_bulle: Optional[str] = None
  image: Optional[str] = None
  nom_d_affichage_categorie: Optional[str] = None
  produits: List[ProduitOut]

Here is what i have as traceback:

 Traceback (most recent call last):
   File "/usr/local/lib/python3.7/site-packages/graphql/type/definition.py", line 800, in fields
     fields = resolve_thunk(self._fields)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/definition.py", line 300, in resolve_thunk
     return thunk() if callable(thunk) else thunk
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 366, in <lambda>
     fields=lambda: self.get_graphql_fields(object_type),
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 272, in get_graphql_fields
     field_converter=self.from_field,
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 263, in _get_thunk_mapping
     thunk_mapping[name_converter(f)] = field_converter(f)
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 197, in from_field
     field_type = cast(GraphQLOutputType, self.from_maybe_optional(field.type))
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 517, in from_maybe_optional
     return GraphQLNonNull(self.from_type(type_))
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 549, in from_type
     raise TypeError(f"Unexpected type '{type_}'")
 TypeError: Unexpected type 'typing_extensions.Annotated[typing.Any, <auto>]'

 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/usr/local/bin/alembic", line 8, in <module>
     sys.exit(main())
   File "/usr/local/lib/python3.7/site-packages/alembic/config.py", line 590, in main
     CommandLine(prog=prog).main(argv=argv)
   File "/usr/local/lib/python3.7/site-packages/alembic/config.py", line 584, in main
     self.run_cmd(cfg, options)
   File "/usr/local/lib/python3.7/site-packages/alembic/config.py", line 564, in run_cmd
     **dict((k, getattr(options, k, None)) for k in kwarg),
   File "/usr/local/lib/python3.7/site-packages/alembic/command.py", line 322, in upgrade
     script.run_env()
   File "/usr/local/lib/python3.7/site-packages/alembic/script/base.py", line 569, in run_env
     util.load_python_file(self.dir, "env.py")
   File "/usr/local/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 94, in load_python_file
     module = load_module_py(module_id, path)
   File "/usr/local/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 110, in load_module_py
     spec.loader.exec_module(module)  # type: ignore
   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
   File "alembic/env.py", line 24, in <module>
     from main.database import  engine, Base
   File "./main/__init__.py", line 251, in <module>
     schema = strawberry.Schema(query=Query,mutation=Mutation)
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema.py", line 104, in __init__
     types=graphql_types,
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 224, in __init__
     collect_referenced_types(query)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 433, in collect_referenced_types
     collect_referenced_types(field.type)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 433, in collect_referenced_types
     collect_referenced_types(field.type)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 432, in collect_referenced_types
     for field in named_type.fields.values():
   File "/usr/local/lib/python3.7/site-packages/graphql/pyutils/cached_property.py", line 30, in __get__
     value = obj.__dict__[self.func.__name__] = self.func(obj)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/definition.py", line 803, in fields
     raise cls(f"{self.name} fields cannot be resolved. {error}") from error
 TypeError: CategorieProduitOutType fields cannot be resolved. Unexpected type 'typing_extensions.Annotated[typing.Any, <auto>]'

i'm having a TypeError: Unexpected type 'typing_extensions.Annotated[typing.Any, <auto>]'. The bug is similar to this found in this report :
https://github.com/strawberry-graphql/strawberry/issues/1586
System Information

Python: 3.7
strawberry-graphql==0.93.13
OS: Docker container from python:3.7

@eddysen I can reproduce this issue, let me see if there's a quick way to fix it 😊

@patrick91 , when using the pre-release strawberry-graphql==0.116.5.dev.1657033844 ,
1- using from __future__ import annotations with strawberry.auto is ok
2- But using forward self-referencing is not ok
To test the point 2 : use this code:

from __future__ import annotations
from typing import List, Optional
import strawberry
from main.apis.graphql.types.produit_out_type import ProduitOutType

from main.schemas.categorie_produit_out_schema import CategorieProduitOut
@strawberry.experimental.pydantic.type(model=CategorieProduitOut)
class CategorieProduitOutType:
  id: strawberry.auto
  parent: CategorieProduitOutType # <-- Forward self-reference, same error using __name__
  nom: strawberry.auto
  description: strawberry.auto
  info_bulle: strawberry.auto
  image: strawberry.auto
  nom_d_affichage_categorie: strawberry.auto
  produits: List[ProduitOutType]

The traceback then is:
 Traceback (most recent call last):
   File "/usr/local/lib/python3.7/site-packages/graphql/type/definition.py", line 800, in fields
     fields = resolve_thunk(self._fields)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/definition.py", line 300, in resolve_thunk
     return thunk() if callable(thunk) else thunk
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 395, in <lambda>
     fields=lambda: self.get_graphql_fields(object_type),
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 295, in get_graphql_fields
     field_converter=self.from_field,
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema_converter.py", line 283, in _get_thunk_mapping
     raise UnresolvedFieldTypeError(f.name)
 strawberry.exceptions.UnresolvedFieldTypeError: Could not resolve the type of 'parent'. Check that the class is accessible from the global module scope.

 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/usr/local/bin/alembic", line 8, in <module>
     sys.exit(main())
   File "/usr/local/lib/python3.7/site-packages/alembic/config.py", line 590, in main
     CommandLine(prog=prog).main(argv=argv)
   File "/usr/local/lib/python3.7/site-packages/alembic/config.py", line 584, in main
     self.run_cmd(cfg, options)
   File "/usr/local/lib/python3.7/site-packages/alembic/config.py", line 564, in run_cmd
     **dict((k, getattr(options, k, None)) for k in kwarg),
   File "/usr/local/lib/python3.7/site-packages/alembic/command.py", line 322, in upgrade
     script.run_env()
   File "/usr/local/lib/python3.7/site-packages/alembic/script/base.py", line 569, in run_env
     util.load_python_file(self.dir, "env.py")
   File "/usr/local/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 94, in load_python_file
     module = load_module_py(module_id, path)
   File "/usr/local/lib/python3.7/site-packages/alembic/util/pyfiles.py", line 110, in load_module_py
     spec.loader.exec_module(module)  # type: ignore
   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
   File "alembic/env.py", line 24, in <module>
     from main.database import  engine, Base
   File "./main/__init__.py", line 251, in <module>
     schema = strawberry.Schema(query=Query,mutation=Mutation)
   File "/usr/local/lib/python3.7/site-packages/strawberry/schema/schema.py", line 106, in __init__
     GraphQLCoreConverter.DEFINITION_BACKREF: self,
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 224, in __init__
     collect_referenced_types(query)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 433, in collect_referenced_types
     collect_referenced_types(field.type)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 433, in collect_referenced_types
     collect_referenced_types(field.type)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/schema.py", line 432, in collect_referenced_types
     for field in named_type.fields.values():
   File "/usr/local/lib/python3.7/site-packages/graphql/pyutils/cached_property.py", line 30, in __get__
     value = obj.__dict__[self.func.__name__] = self.func(obj)
   File "/usr/local/lib/python3.7/site-packages/graphql/type/definition.py", line 803, in fields
     raise cls(f"{self.name} fields cannot be resolved. {error}") from error
 TypeError: CategorieProduitOutType fields cannot be resolved. Could not resolve the type of 'parent'. Check that the class is accessible from the global module scope.

@eddysen thanks for trying the pre-release, I'll see if that's quick to fix too 😊

@eddysen I think this is going to take more time to fix, I have a workaround for you though:
@strawberry.experimental.pydantic.type(model=CategorieProduitOut)
class CategorieProduitOutType:
    id: strawberry.auto
    # you can use LazyType for self referencing types:
    parent: strawberry.LazyType["CategorieProduitOutType", "demo"]

hope this unblocks you, let me know if it doesn't work :)

Hello @patrick91 , thank a lot for the support, it solves my problem. Here is the final version of the code corresponding:
@strawberry.experimental.pydantic.type(model=CategorieProduitOut)
class CategorieProduitOutType:
  id: strawberry.auto
  parent: Optional[strawberry.LazyType["CategorieProduitOutType",".categorie_produit_out_type"]]=None

where .categorie_produit_out_type.py is the file where the class code resides.


Single box

Hey Peter,
I'm assuming that running the app outside of Docker will work as normal once this is merged in?
Also, do you mind to add a section in the README for those that want to use Docker, please?
Maybe something in between the 'Running the tests' and 'Contributing to Speakerline' sections?
Thank you!

Oh sorry, I though I had opened this PR on just my fork.
But in summary neither PR is of any use. I cannot workout the errors or setting up Postgres in a single box.


Standardize a tabular, line-oriented data format with some escape sequences.

A good example is Postgres's tab-separated value format, which has \x??, \n and the other usual escape codes.
http://www.postgresql.org/docs/9.3/static/sql-copy.html#AEN68885
The \n escape code allows one to have records that are truly one per-line, whereas CSV (in most implementations) simply embeds literal newlines in quotes. MySQL seems to accept similar escape codes (but no \x):
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Should data be understood always as text, implying that \u escape codes make more sense than \x? One could imagine defining a CSV variant, where backslash escape codes are interpreted within "". But this might mean more rather than less confusion.
Establishing a standard way to map tuples to lines would make first pass filtering with simple utilities -- like fgrep and cut -- work as expected.

@paulfitz / @solidsnack  if we focus this on an extension of csv dialect where we guarantee no new lines can we get this in? I'd really like to close this thread out and it seems a pretty useful idea.

@rgrp Is this not "in"? http://dataprotocols.org/linear-tsv/

@solidsnack ok - is that what happened? I guess i'd also be interested in having a flag in http://dataprotocols.org/csv-dialect/ where you could indicate that you were escaping and therefore guaranteeing one record per line (escaping as you describe in linear tsv). wdyt?

I think having the flag is ultimately a good idea. Maybe add fields for escapeChar and nullSequence? Then Linear TSV would be:
{
  "delimiter": "\t",
  "lineTerminator": "\n",
  "escapeChar": "\\",
  "header": false,
  "nullSequence": "\\N"
}

To match existing Linear TSV spec we may also want to set:
{
  ...
  "doubleQuote": false, // so pairs of quotes don't do anything odd
  "skipInitialSpace": false // so spaces don't get consumed unexpectedly
}

Adding nullSequence would as a bonus let people better interpret CSV files that stick in NULLs.

I suppose that what remains to be done is:

Add nullSequence and escapeChar to the CSV Dialect specification.

Codifying TSV in terms of CSV Dialect.

Creating JavaScript, Python and Java implementations of the TSV specification and distributing them on NPM, Pip and Maven Central.

@solidsnack do you want to try and get at least nullSequence and escapeChar into the CSV dialect?
@paulfitz are you ok to follow up on this - we are nearly there and it would  be great to close this out :-)

@rgrp I can set aside some to write up nullSequence and escapeChar.

@solidsnack great - thanks!
@paulfitz are you happy to review?

@rgrp @paulfitz The die is cast.

@paulfitz are you happy to review - and then we are done! Well done all!

@paulfitz are we done can we close now?

Please, please.


Font rendering issue on Brave/Chromium on nixos unstable

Describe the bug
The fonts on Brave/Chromium (and some other, I presume, GTK apps) 'look bad'. They are blurry since an update in the last few weeks, whereas before they were not.
The contrast can be seen comparing between Brave and Firefox. Brave use to have the same sharpness of text.
I'm guessing this has something to do with anti-aliasing (sub-pixel rendering?). I am on a 4K laptop screen.
Steps To Reproduce
Steps to reproduce the behavior:

Use nixpkgs-unstable at revision b139e44d78c36c69bcbb825b20dbfa51e7738347

With Brave installed from /nix/store/nddh0x2ahy0qlq5zdqnag7r7lf0yym1n-brave-1.46.133.drv

and Firefox from /nix/store/2dyh7yf53dg9hcgiv873sv2sz7ywmnkq-firefox-108.0.1.drv

Then on my intel graphics based system compare a github issue page, for example. The fonts used for menus in the chrome and toolbar are particularly bad.
Expected behavior
Fonts look nice and sharp, like they did before
Screenshots.
Firefox on left, Brave on right (note: Firefox looks even sharper than in the image without the PNG compression)

Additional Context
Semi-relevant looking: https://www.reddit.com/r/NixOS/comments/z9op73/any_idea_why_switching_to_nixos_2211_breaks/
Though the machine I am running (note: I am on unstable as above, but state version 22.05)
Notify maintainers
To Brave maintainers:
@uskudnik
@JeffLabonte
Apologies for disturbing you, since I'm fairly sure there is an issue usptream here since I see bad font rendering elsewhere (for instance, in intellij). Perhaps you can direct me elsewhere if needed (GTK something?)
Metadata
❯ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.1, NixOS, 23.05 (Stoat)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.12.0`
 - channels(silas): `""`
 - channels(root): `"home-manager-21.11.tar.gz, nixos, nixos-hardware"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

To add to this, fonts on intellij can only be described as 'upsetting'...

I'm not seeing this issue if I compare Firefox and Brave on my 4K HIDPI display. Here's my config (unstable nix channel with Hyprland WM):
# .nix
nixpkgs.config.allowUnfree = true;
services.xserver.videoDrivers = [ "nvidia" ]; # Wayland
hardware.opengl.enable = true;

hardware.video.hidpi.enable = true;
fonts.fonts = with pkgs; [
  noto-fonts
  noto-fonts-emoji
];

@silasdavis can you clarify the questions above?

My thought is that if firefox is using native wayland, but brave and intellij are using xwayland, and the issue occurs because xwayland gets something wrong about DPI, either because of mismatching multi-monitor DPI, or something else. Can't try to recreate it until I know what to recreate though :P so I need those answers.

@silasdavis I experimented with various settings and here's some new discoveries with my ultrawide 3840x1600 monitor:

hardware.video.hidpi.enable = true; makes fonts pixelated on unstable branch  (upcoming 23 release), this can be fixed with: fonts.fontconfig.antialias = true
I noticed that without fonts.fontconfig.hinting.enable = true I get blurry fonts just like you
fonts.fontconfig.subpixel.rgba = "rgb"; gives my fonts the right height

In summary this works extremely well on my end:
# .nix
nixpkgs.config.allowUnfree = true;
services.xserver.videoDrivers = [ "nvidia" ]; # Wayland
hardware.opengl.enable = true;

# Ultrawide 4K Monitor
hardware.video.hidpi.enable = false; # Breaks TTY font size & antialiasing

# Styling
fonts = {
  fonts = with pkgs; [
    noto-fonts
    noto-fonts-emoji
  ];

  fontconfig = {
    # Fixes pixelation
    antialias = true;

    # Fixes antialiasing blur
    hinting = {
      enable = true;
      style = "hintfull"; # no difference
      autohint = true; # no difference
    };

    subpixel = {
      # Makes it bolder
      rgba = "rgb";
      lcdfilter = "default"; # no difference
    };
  };
};

(hinting.style, hinting.autohint & subpixel.lcdfilter didn't make any difference with noto fonts on my end).

Sorry for long delay on this.
I can joyously report that https://github.com/NixOS/nixpkgs/pull/222236 seems to have fixed everything for me. Just removing this and now fonts are not burning my eyes. Thanks to @K900 .


Add interface for HLS configurations (e.g., allow unsafe math opt, etc.)

fixed in cda44ed312d6dbb926bfcab9bdb5aebdd6eefc58


health: Correct calculation of daily summary for movement

This corrects a couple of logic errors in the daily summary calculation that result in bad data being written for the movement field.
One was that the wrong byte of data was being summed (the heart rate rather than movement); the other was that the data was divided by 8 to fit into a byte for each record, but then the same routine was called for the daily average, which resulted in an erroneous second division by 8.
The simplest and least invasive way to fix the division issue I could think of was to move the division out of the function getRecordData() that wraps up the data into a binary record and instead put it in the main function just ahead of its initial call to write the normal DB records. The later summary code doesn't need to divide it again when calling getRecordData().
The line of code that copies the data object before modifying it to divide movement by 8 (health = Object.assign({}, health);) might not be strictly necessary. I added it for safety because I wasn't sure whether it's safe to mutate the actual object passed to the health event handler. (Several years of Python have taught me to be extremely wary of mutating objects that have a remote possibility of also being used by something else!)

On second thought, I realized that the movement daily summary averages still don't quite mesh with the hourly values as shown in the bar graph in the Health UI. I didn't realize that the graph adds together the movement values for each hour while the summary code does a flat average of all the 10-minute records instead. This means that the daily summary in the graph will still not reflect an appropriate average (or sum, as the case may be) of the hourly data.
I'm not sure if it's ever been established what the exact definition of the movement data summary should be or in what way it's intended to be used, so I'm not really sure what the right thing to do here would be.

Yes, I'm referring to the graphs on the watch. What I mean is that for movement, these graphs seem to add up all the records for each hour and then display that, just as it does with step counts, whereas with heart rate it does an average. Of course, it makes sense to add up steps and average heart rate, but movement seems not as clear cut. It would probably be more consistent to have the hourly graph average movement rather than sum it since we're already doing that for the daily data.
(Personally, it seems a bit confusing also to divide movement by 8 in the first place trying to save space in the DB since that causes the data reported in this app to vary from what the system reports to other apps (for instance, it would have been nice to be able to relate the threshold settings in the sleep tracker app which doesn't divide by 8 directly to the movement values reported here), but unfortunately it seems too late to break compatibility and risk bugs to attempt to change that.)
I'd sort of been thinking about ways to improve the on-watch graphs myself. For instance, I often want to be able to view hourly data from before midnight, but currently there isn't a way to do that. (The same seems to be true of daily data when the month has changed.) Ideally you'd be able to drill down and view detailed data from any point that's available. Plus perhaps enhancing the input handling on Bangle v2 so that graphs are quicker and smoother to scroll through. Lots of ideas, just such limited time though! :)

For average vs sum, assuming there is a record for each it should make no difference to the graph apart from the scale being 6x as high? But you're right, average makes far more sense if any records are missing.

divide movement by 8

It was just because the value is unscaled anyway, and it just didn't make sense to make the whole database 20% bigger for something that nobody was using at the time anyway. But the health lib read* functions should definitely multiply by 8 again to keep the scale the same.
I've just checked and I can't see any apps in the app loader using the 'movement' field reported by those functions, so I reckon we're safe to add a 'x8' to the fields reported back.
I've just committed those two changes (I hope!).

I often want to be able to view hourly data from before midnight, but currently there isn't a way to do that in the app

Yes, that'd be a great feature to add.
It'd also be nice sometimes to include the current health data - for instance to see the steps for today in the daily graph as well as the historical data (these can be got from Bangle.getHealthStatus)

Yeah, I don't think it would mathematically make much difference for the graph to average instead of sum. The case of missing records for average is a good point, though; I hadn't thought of that.
Multiplying the returned value by 8 to rescale it seems to make sense too. It technically means less precision than the full value, but maybe not enough to matter. (It's no worse than it already is, at least.)

It was just because the value is unscaled anyway, and it just didn't make sense to make the whole database 20% bigger for something that nobody was using at the time anyway. But the health lib read* functions should definitely multiply by 8 again to keep the scale the same.
I've just checked and I can't see any apps in the app loader using the 'movement' field reported by those functions, so I reckon we're safe to add a 'x8' to the fields reported back.
I've just committed those two changes (I hope!).

Just got around to testing it. There was a copy/paste error which PR #2986 should fix. Other than that it seems to look reasonable so far. :)


Handle more rpc request in async server.

Hi all, I would like to create a asyn GRPC server, I'm leaning example greeter_async_server.cc today, but I have a question:
As example code, in the Proceedfunction there called   service_->RequestSayHello to expect receive "Hello" request since in example the service only define one request.
But if there has another requests defined such as "SayHi", "SayX", "SaySomething", then we have to new more CallDatain HandleRpcsfunction in order to call
service_->RequestSayHi, service_->RequestSayX,  service_->RequestSaySomthing to expect receive these request from clients, right ?
Thanks in advance.

I have the same question with you.
I have visited your homepage yesterday and your wrapper worked.
But I still think grpc should supports async way more naturally in the future.

@legendlin yes, totally agree.

 The authors are quite alien from the way of human thinking.

We are constantly thinking about improving gRPC usability and will take this feedback into account. I am closing this issue as this falls into the general usability/API experience work that we do as we improve gRPC. Thanks!


MSFT_xNetPowerManagement

function Get-TargetResource
{
[CmdletBinding()]
[OutputType([System.Collections.Hashtable])]
param
(
[parameter(Mandatory = $true)]
[System.String]
$AdapterType
)
#Write-Verbose "Use this cmdlet to deliver information about command processing."

#Write-Debug "Use this cmdlet to write debug information while troubleshooting."
$nic = Get-WmiObject Win32_NetworkAdapter | where {$_.AdapterType -eq $AdapterType}
$powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.ToUpper().Contains($nic.PNPDeviceID)}

$returnValue = @{
    NICPowerSavingEnable = $powerMgmt.Enable
    AdapterType = $AdapterType
}

$returnValue

}
#Get-TargetResource -AdapterType 'Ethernet 802.3'
function Set-TargetResource
{
[CmdletBinding()]
param
(
[parameter(Mandatory = $true)]
[System.String]
$AdapterType,
	[ValidateSet("Present","Absent")]
	[System.String]
	$Ensure
)

$nics = Get-WmiObject Win32_NetworkAdapter | where {$_.AdapterType -eq $AdapterType}
foreach ($nic in $nics)
{
    $powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.ToUpper().Contains($nic.PNPDeviceID)}

    If ($Ensure -eq 'Present'){
        Write-Verbose "Disabling the NIC power management setting."
        $powerMgmt.Enable = $False #Turn off PowerManagement feature
    }ELSE{
        Write-Verbose "Enabling the NIC power management setting."
        $powerMgmt.Enable = $true #Turn on PowerManagement feature
    }

    $powerMgmt.psbase.Put() | Out-Null
}

}
#Set-TargetResource -AdapterType 'Ethernet 802.3'  -Ensure 'Absent'
function Test-TargetResource
{
[CmdletBinding()]
[OutputType([System.Boolean])]
param
(
[parameter(Mandatory = $true)]
[System.String]
$AdapterType,
	[ValidateSet("Present","Absent")]
	[System.String]
	$Ensure
)

Write-Verbose "Checking to see if the power setting on the NIC for Adapter Type $AdapterType."

#Write-Debug "Use this cmdlet to write debug information while troubleshooting."

$nic = Get-WmiObject Win32_NetworkAdapter | where {$_.AdapterType -eq $AdapterType}
$powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.ToUpper().Contains($nic.PNPDeviceID)}

If ($Ensure -eq 'Present'){
    If ($powerMgmt.Enable -eq $false){
        Write-Verbose "NIC Power Management setting is disabled."
        $result = $true
    }ELSE{
        Write-Verbose "NIC Power Management setting is not disabled. - Disabling"
        $result = $false
    }
}

If ($Ensure -eq 'Absent'){
    If ($powerMgmt.Enable -eq $false) {
        Write-Verbose "NIC Power Management setting is disabled. - Enabling."
        $result = $false
    }ELSE{
        Write-Verbose "NIC Power Management setting is not disabled."
        $result = $true
    }
}

$result
}
#Test-TargetResource -AdapterType 'Ethernet 802.3'  -Ensure 'Present'
Export-ModuleMember -Function *-TargetResource

This change is

Hi @edycus, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSBOT;

Hi @edycus - This PR doesn't seem to contain any actual changes to code. Are you able to commit changes to this PR for review?

I am working on it now. I'll get something posted today. I had a deadline at work that took my attention.

function Get-TargetResource
{
[CmdletBinding()]
[OutputType([System.Collections.Hashtable])]
param
(
[parameter(Mandatory = $true)]
[System.String]
$AdapterType
)
#Write-Verbose "Use this cmdlet to deliver information about command processing."

#Write-Debug "Use this cmdlet to write debug information while troubleshooting."
$nic = Get-WmiObject Win32_NetworkAdapter | where {$_.AdapterType -eq 'Ethernet 802.3'}
$powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.ToUpper().Contains($nic.PNPDeviceID)}

If ($powerMgmt.Enable -eq $true){
    $State = $False
}ELSE{
    $State = $true
}

$returnValue = @{
    NICPowerSaving = $powerMgmt.Enable
    AdapterType = $AdapterType
    State = $State
}

$returnValue

}
function Set-TargetResource
{
[CmdletBinding()]
param
(
[parameter(Mandatory = $true)]
[System.String]
$AdapterType,
	[ValidateSet("Enabled","Disabled")]
	[System.String]
	$State
)

$nics = Get-WmiObject Win32_NetworkAdapter | where {$_.AdapterType -eq $AdapterType}
foreach ($nic in $nics)
{
    $powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.ToUpper().Contains($nic.PNPDeviceID)}

    If ($State -eq 'Disabled'){
        Write-Verbose "Disabling the NIC power management setting."
        $powerMgmt.Enable = $False #Turn off PowerManagement feature
    }ELSE{
        Write-Verbose "Enabling the NIC power management setting."
        $powerMgmt.Enable = $true #Turn on PowerManagement feature
    }

    $powerMgmt.psbase.Put() | Out-Null
}

}
function Test-TargetResource
{
[CmdletBinding()]
[OutputType([System.Boolean])]
param
(
[parameter(Mandatory = $true)]
[System.String]
$AdapterType,
	[ValidateSet("Enabled","Disabled")]
	[System.String]
	$State
)

Write-Verbose "Checking to see if the power setting on the NIC for Adapter Type $AdapterType."

#Write-Debug "Use this cmdlet to write debug information while troubleshooting."

$nic = Get-WmiObject Win32_NetworkAdapter | where {$_.AdapterType -eq 'Ethernet 802.3'}
$powerMgmt = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.ToUpper().Contains($nic.PNPDeviceID)}

If ($State -eq 'Disabled'){
    If ($powerMgmt.Enable -eq $false){
        Write-Verbose "NIC Power Management setting is disabled."
        $result = $true
    }ELSE{
        Write-Verbose "NIC Power Management setting is not disabled. - Disabling"
        $result = $false
    }
}

If ($State -eq 'Enabled'){
    If ($powerMgmt.Enable -eq $false) {
        Write-Verbose "NIC Power Management setting is disabled. - Enabling."
        $result = $false
    }ELSE{
        Write-Verbose "NIC Power Management setting is not disabled."
        $result = $true
    }
}

$result
}
Export-ModuleMember -Function *-TargetResource

[ClassVersion("<IP_ADDRESS>"), FriendlyName("MSFT_xNetPowerManagement")]
class MSFT_xNetPowerManagement : OMI_BaseResource
{
[Key, Description("Specifies the adapter Type you want to effect. Example Ethernet 802.3 for Ethernet adapters")] String AdapterType;
[Write, Description("Specifies to Enable or Disable the power management feature of the NIC."), ValueMap{"Enabled","Disabled"}, Values{"Enabled","Disabled"}] String State;
};

@PlagueHO

Sorry @edycus - I missed this somehow! The MOF looks good. Do you want to submit the new resource as a Pull Request? It will require a bit more stuff though (unit and integration tests if possible). The automated tests can be a bit tricky if you're new to it, so I can help with those if you submit the plain PR with your new resource.

Yes, I will submit it as a Pull request. This stuff is all new to me so any help is appreciated.  I am done for tonight so I will do it in the morning.
Eric
From: Daniel<EMAIL_ADDRESS>Sent: Friday, March 3, 2017 3:49 PM
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [PowerShell/xNetworking] MSFT_xNetPowerManagement (#190)
Sorry @edycushttps://github.com/edycus - I missed this somehow! The MOF looks good. Do you want to submit the new resource as a Pull Request? It will require a bit more stuff though (unit and integration tests if possible). The automated tests can be a bit tricky if you're new to it, so I can help with those if you submit the plain PR with your new resource.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/PowerShell/xNetworking/pull/190#issuecomment-284102464, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOO2OoppfEohdH0GVM41DoIw65UDdg0nks5riKcOgaJpZM4L_dHU.

ok, I'm confused. I am not sure where to start. All the videos are saying create a fork then make changes. How do I just create a Pull request? how do I upload the files to the correct spot?

@PlagueHO . Any good videos or blogs to tell me what I suppose to be doing?

Hi @edycus - The best place to start on this would be here:
https://github.com/PowerShell/DscResources/blob/master/CONTRIBUTING.md
I also did write a blog series on some of this stuff a while back - however it is a little bit out of date (but the principals still hold).
I'm happy to answer any questions you might have on the process. Everyone starts on this somewhere :grin:


Added placeholder test for all level 1 controls

Using the It -Pending flag to represent all controls by rec # and Title for level 1. No real logic here yet.

Hi @markgar finished out the placeholder tests.

Great.  Merging.


Force deletion of data.all Resources

Is your idea related to a problem? Please describe.
I am frustrated when a share object cannot be deleted because some items are shared. The same applies to Datasets or Environments. In some cases I want to delete the objects from data.all and perform the manual clean-up in AWS myself.
This scenario can happen:

a share had some problem and is very very stuck in Revoke_Failed
during integration testing some test fails and some resources are orphan (e.g Dataset without bucket)

Describe the solution you'd like
An option to:

force share deletion (even if items are shared),
force dataset deletion (even if shares are shared),
force environment deletion (even if resources exist)
This should be optional and enough warnings should be provided so that users understand that the underlying AWS infra is still there.
P.S. Don't attach files. Please, prefer add code snippets directly in the message body.

Closing for the time-being because #1646 is enough. If needed this issue will be re-opened in the future


example is missing table name@index

This example incorrectly has this statement:
 SELECT * from foo_idx;

It should be
 SELECT * from foo@foo_idx;

The results incorrectly has:
ERROR:  relation "foo_idx" does not exist

It should be
pq: index "foo_idx2" not found

Hi @florence-crl thanks for filing this issue!  This statement is definitely incorrect, and I'm making a PR now to update it to SELECT * from foo@foo_idx as you mentioned.
However, even with the updated "select from an index" syntax I am still getting the error
ERROR: relation "foo_idx" does not exist
SQLSTATE: 42P01

and not the same one you are seeing (i.e. pq: index "foo_idx2" not found)
Here are the exact statements I'm running:
root@localhost:26257/defaultdb> SELECT VERSION();
                                            version
-----------------------------------------------------------------------------------------------
  CockroachDB CCL v20.1.0-beta.4 (x86_64-apple-darwin14, built 2020/03/24 01:31:53, go1.13.5)
(1 row)
root@localhost:26257/defaultdb> CREATE TABLE foo (id INT PRIMARY KEY, name VARCHAR);
  BEGIN;
  SAVEPOINT cockroach_restart;
  CREATE INDEX foo_idx ON foo (id, name);
  SELECT * from foo_idx;
  RELEASE SAVEPOINT cockroach_restart;
  COMMIT;
CREATE TABLE
root@localhost:26257/defaultdb> BEGIN

root@localhost:26257/defaultdb  OPEN> SAVEPOINT

root@localhost:26257/defaultdb  OPEN> CREATE INDEX

root@localhost:26257/defaultdb  OPEN> ERROR: relation "foo_idx" does not exist
SQLSTATE: 42P01
root@localhost:26257/? ERROR> ERROR: current transaction is aborted, commands ignored until end of transaction block
SQLSTATE: 25P02
root@localhost:26257/? ERROR> ROLLBACK

Summing up:

syntax in the docs is wrong, will fix
error message appears to stay the same once syntax is fixed (but maybe I'm missing something?)

Can you share the exact version and SQL statements you are running that produce the error pq: index "foo_idx2" not found ?