Separate all bitcoinconsensus validation stuff in module

Includes https://github.com/rust-bitcoin/rust-bitcoin/pull/327.
Not sure if it's the right place to put the module, but I think it makes
more sense to have all validation stuff inside the same module and have
a validation::Error type for validation methods.

if you are fancy this could also have functions

to do locktime check, asking if a transaction is valid to be included into a block with given height or under assumption of an block time average.
to check if the transaction has no output less than DUST limit
pays at least x sats/vByte

I think you forgot to commit the validation.rs file. :)

Haha, of course I did! Fixed.

@stevenroose this does not compile, please fix or close

updated

Codecov Report

Merging #330 into master will increase coverage by 0.38%.
The diff coverage is 77.66%.

@@            Coverage Diff             @@
##           master     #330      +/-   ##
==========================================
+ Coverage   82.17%   82.56%   +0.38%
==========================================
  Files          38       39       +1
  Lines        7063     7496     +433
==========================================
+ Hits         5804     6189     +385
- Misses       1259     1307      +48

Impacted Files
Coverage Δ

src/blockdata/script.rs
81.67% <ø> (+3.08%)
:arrow_up:

src/blockdata/transaction.rs
94.12% <ø> (+0.64%)
:arrow_up:

src/consensus/validation.rs
77.66% <77.66%> (ø)

Continue to review full report at Codecov.

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

Needs rebase.
concept ACK.
@stevenroose one thing I like about this is that it removes #[cfg(...)] markers on enum variants. I think these are problematic because it makes it a breaking change to enable/disable features, for users who are matching on these enums. Because of how cargo resolves features, it means that a user might find their build breaks when they add an unrelated dep.
In https://github.com/rust-bitcoin/rust-bitcoin/pull/413 you add some new instances of feature-gated enum variants. I wonder if we should change that too?

Rebased and updated this PR.

I think it might be a superior approach for compatibility to implement the functions in the validation module on the type rather than as standalone funcs.
e.g.
pub struct Foo;
 impl Foo {
     pub fn foo(){
         println!("foo");

     }
 }

 mod extend {
     impl super::Foo {
         pub fn bar() {
             println!("bar");

         }
     }
 }
 fn main() {
     Foo::bar();
     Foo::foo();
 }

Hmm, in what way do you mean "for compatibility"?

the method names do not change, nor does how you call them. less impact on the crate's current users.

Oh yeah this PR is so old I forgot it removes existing methods. How about
adding them so that we have the bare module functions and the existing
methods that refer to them?
On Sat, Oct 31, 2020, 23:19 Jeremy Rubin<EMAIL_ADDRESS>wrote:

the method names do not change, nor does how you call them. less impact on
the crate's current users.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rust-bitcoin/rust-bitcoin/pull/330#issuecomment-720000780,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAGQLXCFD2DXRBR3HX2FXADSNSLRDANCNFSM4IWTCQHA
.

not sure what you're suggesting -- it's fine that this is a breaking change w.r.t. a feature flag on the crate, I'm more pointing out that you can just move the impls to a split out feature module and not rename or remove any exisiting method.

@JeremyRubin I added the methods you suggested. Now they're duplicated with the raw module functions though. I somehow feel that it makes sense to bundle validation in one module and just have it there as module functions. Perhaps I should mark the type methods as deprecated? Thoughts? @apoelstra @elichai @sgeisler ?

Concept ACK for splitting,
I don't really like that now impl Transaction and others are scattered in multiple modules, I'd rather have a Trait Validation if we really want to have methods on the objects themselved

The issue with trait Validation is there isn't a consistent API on the methods -- you could do trait TransactionValidation though?
@stevenroose I guess I was saying that I don't see a reason to introduce the non type methods at all? Is this a general direction we're going or is there a plan to make this a separate crate?

Yeah sure, go ahead use whatever I put here.

Done in #1912


Documentation with TypeDoc

The project needs documentation on all existing TypeScript modules and functions.
Use TypeDoc and gulp-typedoc and build documentation files in /docs.

@BrianEmilius Hi! Does anybody work on this already? Not sure why it's reopened. If nobody works on it, then I'd like to :-)

Hey @faergeek
It's up for grabs for sure. I just closed it to edit it and then opened it once I had formed a better description of what was needed.
Looking forward to your solution :smile:

I'm not sure that I'll have enough spare time for this very soon. If anybody would like to take on, please do so :-)


feat: add health check path

Feature Request
Describe the Feature Request
Having a health check path is generally helpful when deploying with Cloud providers. The current RPC only supports POST and OPTIONS requests and AWS only allows GET requests for Health checks in target groups. I am assuming this might also be the case with other providers.
Describe Preferred Solution
Add a GET /health endpoint which

Checks if the RPC_URL is still online and returns a boolean. Sample response

{ "rpc_online": true }

Hi @Eikix, m

Hello @apoorvsadana  @Eikix ,
I spent a few times trying to figure out what should be done concretely. This is my first time dealing with infra.
Could you provide me a slightly more detailed explanation about how to handle this health check? Should i add a function in eth_rpc.rs ?
Thank you.

Hello @apoorvsadana @Eikix , I tried a few times to figure out what should be done concretely. This is my first time dealing with infra. Could you provide me a slightly more detailed explanation about how to handle this health check? Should i add a function in eth_rpc.rs ? Thank you.

Hey @TAdev0 thanks for taking the time.
I haven't given this a lot of thought, but we'd probably need to add a file in the eth-rpc crate, where all the different servers are declared: eth-api, alchemy-api etc., we could add our own there, with its Health method.
Let's see what @apoorvsadana suggests, but the method should live outside of the ethereum rpc spec, but as an "exposed" method -> the only way is to add a new server

implementing
  async fn health(&self) -> Result<bool> {
        Ok(true)
    }

would return true only if the RPC is true

@Eikix  ok i'll try to do that.
What is the core difference between API and Servers folders? This feature doesn't modification in the server folder files?

@Eikix ok i'll try to do that. Thank you for clarification !

I'm def no expert either at infra / network,
You may want to check how other clients  and full node implement their health endpoint

it seems that :

reth Net API only exposes version, peer_count and is_listening and doesn't have a health check.
reth Eth API doesn't have a health check either

@apoorvsadana  did you think of any special way to implement it?

it seems that :

reth Net API only exposes version, peer_count and is_listening functions and doesn't have a health check.
reth Eth API doesn't have a health check either

@apoorvsadana did you think of any special way to implement it?

Then I guess we can add a file in API, in order to not "break" net api

@Eikix  this issue can be closed, PR linked already merged


Can't find Greenwich in repo.maven.apache.org

Question
I'd like to use Greenwich with Spring Boot 2.1 but couldn't install it as Greenwich can't be found in repo.maven.apache.org.
http://repo.maven.apache.org/maven2/org/springframework/cloud/spring-cloud-dependencies/
Could you register Greenwich to the repo?
(Sorry if I missed the point of issue, I'm not familiar with Java/Spring/etc... 💦 )

It's in the spring milestone repository. You need to add a repository in your pom.xml
<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>http://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

What @ebussieres said. Only final releases go to maven central.


TypeError: path must be string or Buffer - Deployment to azure

Environment

Server - VSTS or TFS on-premises?

If using VSTS, provide the account name, team project name, build definition name/build number:

Account: babywatcher. Team project name: Babywatcher, build definition name: Babywatcher-Production, build number 360 and 361, but more importantly Release 132, 133, 134, 135 (for production staging deployment)

Agent - Hosted or Private:

If using Hosted agent, provide agent queue name:

Using private for build (because of build issues on Hosted agent, but that is another issue), using Hosted agent for release. I have tried Hosted and Hosted VS2017 and private Agent, but it seems to be Agent version related.
Issue Description
Last successful release without changing properties/taks/settings: 2/21/2018 10:02 PM
Did 2 code changes this morning, both server-side related code (error is probably NPM related). Try to build and release as usual but got the error:
##[error]Error: TypeError: path must be a string or Buffer:
(here I have tried it on VS2017 Hosted agent, same result)

This is during deployment of a ASP.NET Core (2) web project, with using npm,angular for the front-end.
Error logs
NORMAL logs, when it went ok  (Release 131 in my VSO), version was 3.3.36 of Agent
2018-02-21T22:02:59.1032571Z ##[section]Starting: Deploy Azure App Service - BBWProduction Webshop
2018-02-21T22:02:59.1040401Z ==============================================================================
2018-02-21T22:02:59.1041277Z Task         : Azure App Service Deploy
2018-02-21T22:02:59.1042206Z Description  : Update Azure WebApp Services On Windows, Web App On Linux with built-in images or docker containers, ASP.NET, .NET Core, PHP, Python or Node based Web applications, Function Apps, Mobile Apps, Api applications, Web Jobs using Web Deploy / Kudu REST APIs
2018-02-21T22:02:59.1043102Z Version      : 3.3.36
2018-02-21T22:02:59.1043616Z Author       : Microsoft Corporation
2018-02-21T22:02:59.1044181Z Help         : [More Information](https://aka.ms/azurermwebdeployreadme)
2018-02-21T22:02:59.1044813Z ==============================================================================
2018-02-21T22:03:01.6576531Z Got connection details for Azure App Service:'BBWProduction'
2018-02-21T22:03:02.6389879Z JSON variable substitution applied successfully.
2018-02-21T22:03:05.0248279Z [command]"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package='D:\a\r1\a\temp_web_package_9127512340743229.zip' -dest:contentPath='BBWProduction',ComputerName='https://bbwproduction-stagingorder.scm.azurewebsites.net:443/msdeploy.axd?site=BBWProduction',UserName='********',Password='********',AuthType='Basic' -enableRule:DoNotDeleteRule -userAgent:VSTS_d236ae24-159b-4569-aee1-4046d38169ba_release_2_255_255_1
2018-02-21T22:03:07.5417991Z Info: Using ID 'c7e8e3bc-3359-4a78-9179-c7d270330dce' for connections to the remote server.
2018-02-21T22:03:23.9462075Z Info: Using ID '3c150a55-8717-4045-8626-4d7462ed57d9' for connections to the remote server.
2018-02-21T22:03:28.9252028Z Info: Updating file (BBWProduction\Adyen.EcommLibrary.dll).

Currently (v3.3.41):
2018-02-26T19:26:48.7635742Z ##[section]Starting: Deploy Azure App Service - BBWProduction Webshop
2018-02-26T19:26:48.7645117Z ==============================================================================
2018-02-26T19:26:48.7645773Z Task         : Azure App Service Deploy
2018-02-26T19:26:48.7646837Z Description  : Update Azure WebApp Services On Windows, Web App On Linux with built-in images or docker containers, ASP.NET, .NET Core, PHP, Python or Node based Web applications, Function Apps, Mobile Apps, Api applications, Web Jobs using Web Deploy / Kudu REST APIs
2018-02-26T19:26:48.7647719Z Version      : 3.3.41
2018-02-26T19:26:48.7649036Z Author       : Microsoft Corporation
2018-02-26T19:26:48.7649723Z Help         : [More Information](https://aka.ms/azurermwebdeployreadme)
2018-02-26T19:26:48.7650475Z ==============================================================================
2018-02-26T19:26:49.8567944Z Got connection details for Azure App Service:'BBWProduction'
2018-02-26T19:26:57.7297125Z JSON variable substitution applied successfully.
2018-02-26T19:27:00.0401075Z ##[error]Error: TypeError: path must be a string or Buffer
2018-02-26T19:27:01.0331741Z Successfully updated deployment History at https://bbwproduction-stagingorder.scm.azurewebsites.net/api/deployments/2591519673220658
2018-02-26T19:27:01.0608329Z ##[section]Finishing: Deploy Azure App Service - BBWProduction Webshop

@Ruud-cb , Sorry for the issue you are facing. Can you please share the debug logs (set system.debug=true and rerun the release)?

Hi @vincentdass
Here is a screenshot of the artifact, might be related:

Here is the log around the error:
2018-02-27T07:41:52.9265311Z ##[debug]System.DefaultWorkingDirectory=D:\a\r1\a
2018-02-27T07:41:52.9266414Z ##[debug]Archiving D:\a\r1\a\temp_web_package_7755679916024518 to D:\a\r1\a\temp_web_package_8184679796441483.zip
2018-02-27T07:41:55.2139214Z ##[debug]Successfully created archive D:\a\r1\a\temp_web_package_8184679796441483.zip
2018-02-27T07:41:55.2140699Z ##[debug]rm -rf D:\a\r1\a\temp_web_package_7755679916024518
2018-02-27T07:41:55.2141637Z ##[debug]removing directory
2018-02-27T07:41:55.2595950Z ##[debug]Performing the deployment of webapp.
2018-02-27T07:41:55.2866841Z ##[debug]SetParametersFile=D:\a\r1\a\Babywatcher-Production\ProductionDrop\Babywatcher.MVC_Package\Babywatcher.MVC.SetParameters.xml
2018-02-27T07:41:55.2869412Z ##[debug]Absolute path for pathSegments: D:\a\r1\a\Babywatcher-Production\ProductionDrop\Babywatcher.MVC_Package\Babywatcher.MVC.SetParameters.xml = D:\a\r1\a\Babywatcher-Production\ProductionDrop\Babywatcher.MVC_Package\Babywatcher.MVC.SetParameters.xml
2018-02-27T07:41:55.2871607Z ##[debug]build.sourcesDirectory=undefined
2018-02-27T07:41:55.2872754Z ##[debug]system.defaultWorkingDirectory=D:\a\r1\a
2018-02-27T07:41:55.2874526Z ##[debug]Absolute path for pathSegments: D:\a\r1\a = D:\a\r1\a
2018-02-27T07:41:55.2875584Z ##[debug]SetParametersFilepath supplied :true
2018-02-27T07:41:55.2876457Z ##[debug]System.DefaultWorkingDirectory=D:\a\r1\a
2018-02-27T07:41:55.2877480Z ##[debug]Exception tl.stats (undefined): TypeError: path must be a string or Buffer
2018-02-27T07:41:55.2878454Z ##[debug]task result: Failed
2018-02-27T07:41:55.2939809Z ##[error]Error: TypeError: path must be a string or Buffer
2018-02-27T07:41:55.2955492Z ##[debug]Processed: ##vso[task.issue type=error;]Error: TypeError: path must be a string or Buffer
2018-02-27T07:41:55.2957364Z ##[debug]Processed: ##vso[task.complete result=Failed;]Error: TypeError: path must be a string or Buffer
2018-02-27T07:41:55.2959020Z ##[debug][POST]https://management.azure.com/subscriptions/b0e103c5-56cf-46c8-9377-a1a45bf51918/resourceGroups/BBWShopAcceptance/providers/Microsoft.Web/sites/BBWProduction/slots/stagingorder/config/appsettings/list?api-version=2016-08-01
2018-02-27T07:41:55.8298662Z ##[debug]Application Insights is not configured for the App Service. Skipping adding release annotation.
2018-02-27T07:41:55.8304658Z ##[debug]build.sourceVersionAuthor=undefined
2018-02-27T07:41:55.8305972Z ##[debug]build.requestedfor=Ruud Faessen
2018-02-27T07:41:55.8307060Z ##[debug]build.buildUri=vstfs:///Build/Build/361
2018-02-27T07:41:55.8308383Z ##[debug]release.releaseUri=vstfs:///ReleaseManagement/Release/262
2018-02-27T07:41:55.8309373Z ##[debug]build.buildId=361
2018-02-27T07:41:55.8310668Z ##[debug]release.releaseId=262
2018-02-27T07:41:55.8311666Z ##[debug]build.buildNumber=361
2018-02-27T07:41:55.8312680Z ##[debug]release.releaseName=Release-138
2018-02-27T07:41:55.8315571Z ##[debug]system.teamProjectId=fd4398a5-f7e4-44d5-9c67-69478c4b3e42

Here is a download link to the full log, error occurs in first Deploy Azure App Service
https://www.dropbox.com/s/28iyfxfyhxbxf1r/ReleaseLogs_262.zip?dl=0

@Ruud-cb , thanks for the debug logs.
We identified the cause of the issue and working on the fix.
As a workaround, Can you try the following steps:

Enable 'Publish Using Deploy option'.

Remove the value from 'Set parameters file' input (if not required)

Rerun the release.

@vincentdass Wow you actually gave me a hint there. I was a bit confused when I looked at the logs again, because Babywatcher-Production\ProductionDrop\Babywatcher.MVC_Package is not part of this deployment operation of this step, here I am deploying Babywatcher.Web (which is in temp_web_package_7755679916024518 in the logs). So the SetParameters file is not even needed.
I noticed when I checked the 'Publish using Web Deploy' that the value was already set, set to the 'SetParameters.xml' of the MVC application. This is due I have copied the step and adjusted according to the .Web project (which is a .NET Core web project)
After checking the option, removing the SetParamters file value (saving) and then unchecking the option again, the solution was actually fixed, it just released correctly.
The logs show it as well:
2018-02-27T08:53:31.5974337Z ##[debug]Archiving D:\a\r1\a\temp_web_package_4016622171673623 to D:\a\r1\a\temp_web_package_9619140527227481.zip
2018-02-27T08:53:33.6453728Z ##[debug]Successfully created archive D:\a\r1\a\temp_web_package_9619140527227481.zip
2018-02-27T08:53:33.6455216Z ##[debug]rm -rf D:\a\r1\a\temp_web_package_4016622171673623
2018-02-27T08:53:33.6456722Z ##[debug]removing directory
2018-02-27T08:53:33.6857624Z ##[debug]Performing the deployment of webapp.
2018-02-27T08:53:33.7141117Z ##[debug]SetParametersFile=D:\a\r1\a
2018-02-27T08:53:33.7143808Z ##[debug]Absolute path for pathSegments: D:\a\r1\a = D:\a\r1\a
2018-02-27T08:53:33.7144801Z ##[debug]build.sourcesDirectory=undefined
2018-02-27T08:53:33.7146286Z ##[debug]system.defaultWorkingDirectory=D:\a\r1\a
2018-02-27T08:53:33.7147951Z ##[debug]Absolute path for pathSegments: D:\a\r1\a = D:\a\r1\a
2018-02-27T08:53:33.7149254Z ##[debug]SetParametersFilepath supplied :false
2018-02-27T08:53:34.0601786Z ##[debug]Is the package an msdeploy package : false
2018-02-27T08:53:34.0606590Z ##[debug]AZURE_HTTP_USER_AGENT=VSTS_d236ae24-159b-4569-aee1-4046d38169ba_release_2_263_263_1
2018-02-27T08:53:34.0607871Z ##[debug]Constructed msDeploy comamnd line arguments
2018-02-27T08:53:34.0608960Z ##[debug]appservice.msdeployretrycount=undefined
2018-02-27T08:53:34.0611478Z ##[debug]System.DefaultWorkingDirectory=D:\a\r1\a
2018-02-27T08:53:34.0614670Z ##[debug]the argument string is:
2018-02-27T08:53:34.0617059Z ##[debug] -verb:sync -source:package="'D:\a\r1\a\temp_web_package_9619140527227481.zip'" -dest:contentPath="'BBWProduction'",ComputerName="'https://bbwproduction-stagingorder.scm.azurewebsites.net:443/msdeploy.axd?site=BBWProduction'",UserName="'$BBWProduction__stagingorder'",Password="'********'",AuthType="'Basic'" -enableRule:DoNotDeleteRule -userAgent:VSTS_d236ae24-159b-4569-aee1-4046d38169ba_release_2_263_263_1
2018-02-27T08:53:34.0619128Z ##[debug]converting the argument string into an array of arguments

Notice the 2018-02-27T08:53:33.7149254Z ##[debug]SetParametersFilepath supplied :false
So perhaps another thing to note: When 'Publish using Web Deploy` the value of 'SetParameters file' should be empty.

@Ruud-cb , We have added check to ignore setparams and other inputs, when web-deploy is disabled.
Closing the thread as the issue is resolved. Fix will be available in upcoming deployment.


Updating CallWithRetries to do exponential backoff

setting maximum backoff seconds to be 32 seconds.

Can one of the admins verify this patch?

@rinugun Thank you for reviewing my PR.
Parameterizing the intial_delay_seconds seems like a good approach, I have addressed the feedback and pushed the changes. Please take a look.

assigning @rinugun to reflect reality. Thanks for reviewing!

@rinugun Thank you for reviewing my code quickly each time. Learned a few things along the way while helping enhance this :)

@rinugun the pleasure was mine! Your feedback helped polish the code I had submitted. Really appreciate your quick feedback on each commit :) Thank you!

Actually I'm not authorized to merge pull requests, so hopefully something good will happen with this PR automatically now when I approved. If not, please ping this thread again, I'll try to investigate.

I will keep that in mind. Thank you once again @rinugun :)

Jenkins, test this please (@rinugun, you can trigger tests as well)

Jenkins test this please

Jenkins, test this please

Error details -
tensorflow/core/platform/cloud/retrying_file_system.cc: In member function 'virtual tensorflow::Status tensorflow::RetryingFileSystem::IsDirectory(const string&)':
tensorflow/core/platform/cloud/retrying_file_system.cc:200:76: error: too few arguments to function 'tensorflow::Status tensorflow::{anonymous}::CallWithRetries(const std::function<tensorflow::Status()>&, int)'
       std::bind(&FileSystem::IsDirectory, base_file_system_.get(), dirname));
                                                                            ^
tensorflow/core/platform/cloud/retrying_file_system.cc:42:8: note: declared here
 Status CallWithRetries(const std::function<Status()>& f,
        ^
tensorflow/core/platform/cloud/retrying_file_system.cc:201:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

I checked and see that the IsDirectory method is not overridden. But I fail to see why this causes an error as the base class implementation does not wrap any call with CallWithRetries.

Not quite yet. :)

@moontails, I think your local version of the repository is outdated, the function is overridden in the latest version on GitHub https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/platform/cloud/retrying_file_system.cc#L170

@rinugun I will sync with master and make the changes.

Jenkins, test this please

@rinugun @martinwicke the tests werent trigerred

Jenkins, test this please?

looks like the failed jobs lost connection?

Jenkins, test this please

Hmm, that failure looks unrelated. Can you try rebasing on top of the latest master and we'll retest?

Sure will do. Do you want me to rebase or merge with latest master?
Best Regards,
Balachander Ramachandran
On Sep 27, 2016 1:13 PM, "Jonathan Hseu"<EMAIL_ADDRESS>wrote:

Hmm, that failure looks unrelated. Can you try rebasing on top of the
latest master and we'll retest?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/4501#issuecomment-249983540,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEL334CZH4uxTzvd4rNapE2-TualfS6sks5quXjggaJpZM4KCXcW
.

Merge is fine too (and probably easier). We have some changes in master that are needed for tests to work.

@moontails, I just realized that sleep() might not be the canonical way of making a delay, e.g it might not be supported on Windows. I was wondering if you could replace it with
Env::Default()->SleepForMilliseconds, e.g see this example:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/platform/cloud/gcs_file_system.cc#L379
This also prepares the code for the subsequent implementation of random millisecond part, that we discussed in another thread with @davidj-github.
Also I had another comment related to this, even though this contradicts to what I suggested before. Instead of making 'initial_delay' a ctor parameter, you could have 'Env* env' a ctor parameter instead, which would default to Env::Default(). This way you could provide a fake implementation of SleepForMilliseconds from the test code. The fake implementation would return immediately, but would record how it was called.
The benefit of the latter is that the test code can still work fast, but also check the sleep intervals that were passed to SleepForMilliseconds from the main code and make sure they all look as expected.

@jhseu I have merged the latest changes from master. Could you please trigger the tests?

Sure, but mind making the requested changes before we commit?
Jenkins, test this please

@jhseu @rinugun committed the changes. Please review and trigger tests!

Sorry for not sending all comments at once -- hit a wrong button on Github.
Please see my other comments as well.
On Tue, Sep 27, 2016 at 9:32 PM, Balachander Ramachandran <
<EMAIL_ADDRESS>wrote:

@moontails commented on this pull request.
In tensorflow/core/platform/cloud/retrying_file_system.cc
https://github.com/tensorflow/tensorflow/pull/4501:

#include "tensorflow/core/lib/core/errors.h"
#include "tensorflow/core/platform/file_system.h"

namespace tensorflow {
namespace {
-// In case of failure, every call will be retried kMaxAttempts-1 times.
-constexpr int kMaxAttempts = 4;
+// In case of failure, every call will be retried kMaxRetries times.
+constexpr int kMaxRetries = 3;
+// Maximum backoff time in seconds.
Done
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/4501, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABnZsn9f8SkYsVLLGybXBuw5Iywy8QYeks5que3ngaJpZM4KCXcW
.

@rinugun I have addressed all your comments

@jhseu @martinwicke could one of you please trigger the tests

Jenkins, test this please

Jenkins, test this please

@jhseu @rinugun thank you for all the feedback during this code review and responding to my questions so quickly each time :)

Thanks you for your contribution!


#292 - SfImage/SfProductCard/SfGallery

Related issue

#292
Scope of work

image load lazily with lozad
placeholder added
switch between images on hover if sent array of images
render <picture> tag when receive array of images with different sizes

Checklist

[x] I followed composition rules for my component
[x] I tested the component in most common device sizes (can be tested in Storybook from viewport addon in top menu)

Hey! Everything looks great except this part:

switch between images on hover if sent array of images

Afaik @leomp12 we discussed that this should be a feature of SfProductCard, not image itself.

Scope of work

SfImage:

Load lazily with lozad;
Src as object to render  tag;
Placeholder added;

SfProductCard:

Using SfImage;
Switch images on hover (when array received);
Fixes to reviews block;

SfGallery:

Horizontal bullets on mobile view;
SCSS code refactor (start from mobile, media queries for desktop);

Global: Removed @import<EMAIL_ADDRESS>from component specific styles, moved to _global.scss because it's being triplicated on CSS output.
@filrak we've discussed about it but I really think it can't be imported on each component, as the fonts can't be imported on each component with text, or it'll be duplicated, there's no way to prevent this duplication...
Maybe we can just remove it from _global.scss too and leave it to the user, imo it would be even better.

@filrak @przspa lot of changes here, please let me know if you agree all purposed here

Additionally, I still having a problem with SfProductCard, I don't want to import icons for now but SfProductCard imports SfIcon and SfIcon imports ALL icons, I think we should have an option to import SfProductCard without it, but I don't want to break the current API, wdyt?

@mayashavin maybe you can also help me here :)

@leomp12 can you fix SfImports imports in packages/vue/index.js and packages/vue/src/components/atoms/SfImage/SfImage.spec.ts

@leomp12 You want me to do the edit for SfIcon? Technically we change the icons list inside icons.js to be individual export instead of export all at once. The only problem here is we support the user putting icon string name which came from the list so we do need to know the list of icons. I can think of another way, but not sure yet.

@przspa done!
@mayashavin I'm looking for ideas at the truth..
But so it's not importing all icons?
I think SfIcon is importing all icons here:
import { icons } from "@storefront-ui/shared/icons/icons";

I'm wrong?
I thought of importing only the icon used instead of using SfIcon inside slots, or create a variation (or _internal) of SfProductCard (and maybe others) with no default values on some slots..

@leomp12 I mean we currently do import all the icons as a design decision. Since we allow the user to select an existing icon from our list by name, instead of import the icon itself.
For example, the user can just pass icon='heart' and SfIcon will look for the correct icon in the list of icons. But you have a point, we can change it that user can import icon from icon list himself, and passes its paths and viewBox to the props instead of passing the name (which can cause typo also).
Something like this
import { heart } from 'icons'

<SfIcon
      v-bind="heart"
      //....
/>

Wdyt? @filrak @leomp12 @przspa  I'm also concern when our icons list gets larger. If all agree, either I or @leomp12 can make the adjustments.

Hey @przspa,

Gallery: I haven't seen the desings, will edit it :)
ProductCard: can you tell me more about the bug you've seen? It's working here I think, maybe it's a browser specific issue. Which browser are you using?
Image overlay: I think we haven't changed anything about the overlay, have we? To be honest I haven't tested it because we've kept the functionality as it was (or tried to keep haha), I think it was working, right? I'll give a check

@mayashavin had misunderstood you, sorry..
I think SfIcon api is good enough, the icon='heart' usage is great, so I think we should keep this api as is. But imo we should import icons inside other components differently to prevent importing all of them.
Maybe inside components we don't use SfIcon, we can create variations like SfIconHeart, with almost the same functionality as SfIcon but importing only the heart icon, even for internal use only.

@leomp12 The problem with that approach is that we will end with so many variant components (for each icon we need to have a variant component). For example, currently, we have +20 icons, which means we will have 20 variant SfIcon components. That is unnecessary though. You can create it but we still need to keep our current API support, which ends up importing the list eventually.

@mayashavin you're right, that's why I've suggested using it internally only, and maybe we don't need variations for all icons, then we keep SfIcon as is for users.
But I'll not do it yet, maybe we can think in a better solution...

@leomp12 about lozad
Chrome 76.0.3809.132

Firefox

@przspa i think it's not a problem with lozad itself, may be one CSS mistake, i'll check it


[Duplicate of #4236]: How to create a responsive React navigation bar using PrimeReact

Article checklist
Formatting and structure checks

[x] Have you used the correct folder and file structure? - see Contribution Guidelines

[x] Is your article properly formatted in Markdown? - see Github Markdown guide

[x] Have you used our preferred heading structure? - H3 (###) and up

[x] Does your article follow any of the suggested structure formats? - see example formats

[x] Is your article over 750 words? - Tool: Wordcounter.net

[x] Is the article you are submitting an in-depth and unique article? Does it go beyond what is in the official docs and what is covered in other blog sites. See these articles as examples.

[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.

[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.

[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid - Grammarly
[x] Please place your article through a 3rd party plagiarism checker. We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide
[x] Have you checked your code runs correctly and you've highlighted all necessary dependencies for installation?
[x] Are the software programs and packages you're highlighting in your article up to date, using current versions and not deprecated?

Topic suggestion this closes
This closes #3847

@WanjaMIKE I've created a new PR and added more contents to my article.

@srishilesh
can we get a status on this PR ?
If any more major revisions are needed - we will be closing this PR asap. 👀

@srishilesh
can we get a status on this PR ?
If any more major revisions are needed - we will be closing this PR asap. 👀

@hectorkambow
This is a duplicate of #4236, and it was previously reviewed by @zolomohan . So, I had this PR assigned to him.
If @zolomohan is unavailable to take up this, I can take it up and review this?

@hectorkambow @srishilesh Somehow didn't notice this PR was assigned to me. Getting right on it.

@zolomohan
As you had requested in Slack, I'll take this up for review.

Jumping in for the tech review.

Please be sure to go over any edits made by your peer reviewer to improve future articles and reviews and prevent any PR closure.

@hectorkambow
Thank you.
I will go over the edits and changes made.


Implement Qt styling for Avalon tools

Issue
Currently we've been enjoying the Avalon tools most of the time in Maya only where they took over the Maya styling and looked fine. Outside of Maya though they use the default OS styling and seem to be lacking the good looks that we want, and in some cases it even becomes a somewhat unreadable mess (like in cbloader currently)
Let's set up a Qt stylesheet for Avalon to always look great no matter the circumstances.

I remember you had a stylesheet set-up?

Yes, but that was based on http://discourse.techart.online/t/release-qt-dark-orange-stylesheet/2287
Not sure if we can mimick that with the licensing we've got going. Especially if we change it here and there too.

Don't worry about that, it doesn't apply here.

Don't worry about that, it doesn't apply here.

How come?

Because we aren't using it, we are building something that once drew inspiration from it. Still, in the worst of cases, what kind of repercussions are you expecting? That the author will sue? Let's include his name if you'd like. Or better yet, why not ask him for it?

Actually I just found the source repo I started from at the time: https://github.com/ColinDuquesnoy/QDarkStyleSheet
I really don't have much experience with styling Qt-applications and I'm not even sure whether the workflow in that repository is well suited for something like Avalon.
My "changed" version has the exact same code layout and only has some changed colors and padding here and there, they are more additional tweaks than a complete overhaul. That's why I also never used it aside from some personal apps here. So I think getting the licensing right (or at least us altering it without copyright issues) would be important too. Or to start from scratch, or at least redesign it largely.

Ah, but that's even better, because that's actually got a license, MIT. :) So we're able to use it as-is, bundle it, ship it, distribute it, make a commercial product of it even. No limits!

I really don't have much experience with styling Qt-applications and I'm not even sure whether the workflow in that repository is well suited for something like Avalon.

No problem. I'm happy to help. CSS is a good route to standardising the look of applications. All we'd need is either take this file, and add another file for our customisations. We can use multiple files by simply adding them together..
style1 = """QWidget {background: red}"""
style2 = """QWidget {border: 1px solid blue}"""
style = "\n".join([style1, style2])

And in that way we can keep our modifications separate from the original (and support theming!)

Actually, does that example code work? Doesn't the second QWidget declaration completely override the first? (Should just test this, hehe).
Anyhow, QDarkStyle also contains the encoded resources (the images) for the multiple Qt variants, like PyQt4, PySide, etc, which is convenient because we can easily use it in our toolsets. It could be a good candidate for vendorizing, also because it looks rather decent. We can always customize down the line to our own QAvalonStyle. Actually can we do that using QDarkStyle as basis (of course keeping the Licensing reference, etc.)?

Actually, does that example code work? Doesn't the second QWidget declaration completely override the first? (Should just test this, hehe).

That's the thing. They are cascading. It'd end up looking like this.
style.css
QWidget {background: red}
QWidget {border: 1px solid blue}

Which is fine.
What wouldn't work is this.
app.setStyleSheet("""QWidget {background: red}""")
app.setStyleSheet("""QWidget {border: 1px solid blue}""")

Because Qt is the one overriding one with the other.

Actually can we do that using QDarkStyle as basis (of course keeping the Licensing reference, etc.)?

You are much too worried about licensing! Yes, we can do absolutely everything with this library. Don't worry about it. If it helps, I officially take full responsibility for anything that happens using this library.

Implemented with #307 - the style itself is still open for discussion and can be improved along the way.


Refactored AddressBook-lvl4 to YATS

This fixes #18
Renamed package as yats
Renamed classes accordingly
Added skeleton class Event

@EdwinChanSingapore @dionngg @wmc0098
Can you guys switch to this branch and see whether your code compiles?
A refresh from my side allowed me to do a build, but Travis shows the build failing so I need a confirm before I merge to the  master repo.


MD051 - Allow link fragments to kramdown block IAL and span IAL ids

Related: #570
kramdown lets you give ids to blocks and spans with the inline attribute list syntax. It would be great to not have false positives for MD051 when linking to an id of this syntax.
Example syntax

This is the paragraph I want to link to.
{:#the-paragraph-id}

Later on, I'd like to link the [the paragraph I wrote earlier](#the-paragraph-id).

Thanks for the related link. This doesn't look too bad to allow. It's funny these two systems don't even agree on the same syntax for this - tho it's pretty clear they knew about each other.


Document Fix -- Fixed code for shortcuts.txt in docs/intro/contributing.txt .

Document Fix -- Fixed code for shortcuts.txt in docs/intro/contributing.txt .
File docs/intro/contributing.txt has an error:
"function:: make_toast()" isn't mentioned in line 414.
Readers who lost this will get a warning "WARNING: py:func reference target not found" when learning make_toast test.
diff in docs/intro/contributing.txt:
412     make_toast()
413     ================
414
415     .. versionadded:: 2.2
416
417     Returns 'toast'.
494     +make_toast()
495     +================
496     +
497     +.. function:: make_toast()
498     +
499     +.. versionadded:: 2.2
500     +
501     +Returns 'toast'.

This looks valid to me. .. function:: make_toast() appears in the git diff output later on but not here. I think it was an oversight in the original patch (18e4ade79ef145401b899ab539322c95d2a64266).

Yep, good catch @timgraham.
As @ktaog6 says, the annotation is there in the sample git diff output:
494 +make_toast()
495 +================
496 +
497 +.. function:: make_toast()
498 +
499 +.. versionadded:: 2.2
500 +
501 +Returns 'toast'.

Bonus points for building the docs @ktaog6 (and hence getting the warning.)


Register new subdomain

Register wibuapi.merahputih.moe and zyxdevs.merahputih.moe

What is your project about? Please describe it swift and simple.
Your answer: RestAPI for Weebs and Personal Sites

Welcome https://wibuapi.merahputih.moe
You sure the personal site (https://github.com/zYxDevs/zYxDevs) has own cname and gh-pages branch?
still nothing and throwing 404 https://zyxdevs.merahputih.moe

Welcome https://wibuapi.merahputih.moe
You sure the personal site (https://github.com/zYxDevs/zYxDevs) has own cname and gh-pages branch? still nothing and throwing 404 https://zyxdevs.merahputih.moe

sorry i forgot to make cname😅. now its working fine. thanks🤝


ISPN-13725 Use safe codec version for ping operations

https://issues.redhat.com/browse/ISPN-14018
In order to keep to support the handshake with 3.x clients

CI is not happy with my last commit. I'll trigger it again tomorrow.

@jabolina I'm not sure it depends on your commit. I'm going to restart the CI. Let's try ;)

Thanks @pruivo for the review. After restarting the CI, it looks good to me.

I removed the first two commits, since the solution implemented there was alternative to the one implemented by @jabolina.
We decided to take his solution, probably more OO style.
I applied all the changes @jabolina passed to me and squashed his commits.
We finally decided to use the "min of max client version and max server version" as the resolution algorithm for the version to use.
If CI works, I would merge it.
@tristantarrant @pruivo let us know if it is fine for you, thank you

With the last push I changed the name of the method and a little also its JavaDoc.
Thanks again for the review @pruivo

@fax4ever don't forget the revert the changes in org.infinispan.server.test.junit4.InfinispanRuleBasicTest made by the open telemetry PR.

merged! thanks @fax4ever !
I'll do a follow-up PR later with the improvements.

Thanks @pruivo

@fax4ever don't forget the revert the changes in org.infinispan.server.test.junit4.InfinispanRuleBasicTest made by the open telemetry PR.

Opened https://github.com/infinispan/infinispan/pull/10238


feat: add ability to prefix all exports with the schema name

When you are working with multiple schemas with potentially similar table names it can get a bit messy and hard to manage. This solution aims to solve it.

@danvk I would be willing to help maintain this library (if that is something you would want help with)

Hi @jamesone, thanks for the contribution, and especially for the offer to help maintain!
A few high level comments:

There's an existing -s option to generate types for just one Postgres schema. You could use this to generate a different TS file for each schema and get a natural sort of namespacing that way. Would that meet your needs?
Please add an integration test with this option set (probably to schema-generation-test.ts). There are some notes on how to do this in test/README.md.

Hi @jamesone, thanks for the contribution, and especially for the offer to help maintain!
A few high level comments:

There's an existing -s option to generate types for just one Postgres schema. You could use this to generate a different TS file for each schema and get a natural sort of namespacing that way. Would that meet your needs?

Please add an integration test with this option set (probably to schema-generation-test.ts). There are some notes on how to do this in test/README.md.

Hey @danvk I will get back to you on these points you brought up and the requested changes as soon as I can! Something has popped up this week and I'm unable to work. Appreciate you reviewing the PR.

Hey, @danvk I made the requested changes and acted on your comments. The integration test is in too.

Also to answer your question: here's an existing -s option to generate types for just one Postgres schema. You could use this to generate a different TS file for each schema and get a natural sort of namespacing that way. Would that meet your needs?
I did know about this and utilized it but it didn't meet the needs of my project.

Released in 4.1.0.


(1.18) Using a nether portal doesn't work. It keeps you stuck loading because it can't place in the nether

Is there a way around this? I know it's probably not going to be updated, but nether portals being broken is a bit jarring.

As far as I know, the nether portals have a fallback spawn location where in the mid-air if it can't find a valid block to place on. And as I just tested on my server, the portal seemed to be working fine.
Could you please provide your server-side mod list or server log so we can further investigate this problem?
By the way, here is the mod list of my test server:

c2me-fabric-mc1.18.2-0.2.0+alpha.7.0-all
carpet-extra-1.18.2-1.4.72
carpet-tis-addition-mc1.18.2-v1.38.0
fabric-api-0.58.0+1.18.2
fabric-carpet-1.18.2-1.4.69+v220331
lazydfu-0.1.2
lithium-fabric-mc1.18.2-0.7.10
spark-1.9.11-fabric
starlight-1.0.2+fabric.89b8d9f
syncmatica-1.18.2-0.3.2
ViaBackwards-4.3.1
viafabric-0.4.8+12-main
worldedit-mod-7.2.10

Of course, here's my client log showing my modlist:
https://paste.atlauncher.com/view/1f3351c2-9da0-4887-90cf-bd63078a88fa
I had to delete nether.json to fix the nether portal spawn on my server. but something's obviously going wrong. it did mention unable to place portal in the nether, on the server. But it was hard to catch because of the lag and looping.
i've also supplied our .mrpack file for the indev pack.
https://www.dropbox.com/s/6npd6y7uehecl8u/HaywenSMP S02 Alpha 1 1.18.2.mrpack?dl=1

That's understandable. If anything i can just remove dimension height, it's still early. Thanks for looking into it, i appreciate it. If anything i can just remove the nether json.


Add metadata serialization and unit tests

This exposes "requestUrl" in a public method, any suggestions on a better name for this?  broadcastUrl maybe?

Is deviceUrl too confusing?  I like broadcastUrl too.

Yeah, I think having both urlDevice and deviceUrl would be too confusing.  Let's use broadcastUrl.

We could have UrlDeviceUrl...lol.

Renamed PWC public methods to use "broadcastUrl" instead of "requestUrl".

LGTM


useAsyncData not executed after change query param with navigateTo function

Environment

Operating System: Windows_NT
Node Version:     v16.18.0
Nuxt Version:     3.3.1
Nitro Version:    2.3.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      runtimeConfig, modules, css, build, vite, app, auth
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
Hi,
I have a video list with a pagination system.
When, the user change the page number with the pagination component, I want to change the query param of the page and I wonder that useAsyncData will be executed after but it's not the case.

<template>
  <v-container>

Vidéos

    <v-row>
      <v-col cols="12" lg="8">

          <v-pagination v-model="page" :length="videos.totalPages" @update:modelValue="changePage" />
          <video-preview v-for="video in videos.results" :key="video.id" :video="video" />
....

Describe the bug
The query param page has been updated but behind the useAsyncData with the new page number is not executed
Additional context
No response
Logs
No response

For this, we have a watch option you can pass to useAsyncData.


rna.usegalaxy.eu

Add tours and workflows from workbench to rna.usegalaxy.eu

Finishing up on cm vis, then i get started with it.


Add support for Infura to access ethereum network.

Infura is an easy way to start with ethereum without doing any setup.
I believe we don't need any changes. It will be covered in current RPC connection code.
https://github.com/Impetus/eth-jdbc-connector/blob/master/eth-jdbc-driver/src/main/java/com/impetus/eth/jdbc/EthConnection.java#L107
Need to pass infura endpoint (https://mainnet.infura.io/<your-token>) in  httpUrl.

Some changes will be required since we are fetching hostname and port in case of RPC connection.

@devender-yadav we have added support for infura. you can checkout the latest code and try it.


1.2.0 "Active = 0" while running ("In Use = 1") and also when standby ("In Use = 0" but Switched ON)

Hello,
I think I discovered a small regression:
I just installed 1.2.0 over 1.1.1 and noticed that when an appliance like "Dish Washer" is running, the Active status is set to 0 while In Use is correctly "1". This leads to the appliance being displayed as going towards the STOP state (the Icon in Home app shows a spinning icon with "Arrêt..." as displayed status text - sorry, app in French, maybe "Stopping..." in English -) regardless of the fact it is running. Also, a switched on appliance in stand-by is now seen as "Switched Off" (active and in use = 0)
In version 1.1.1, both "active" and "in use" were set to "1" when the appliance was running, hence the Icon in Home app correctly displayed a pouring tap with the remaining time while the appliance is running. Also, when the Washing Machine was switched ON (Stand By), the "active" was "1" and "in use" was "0".
PS thanks for the "Thanks" ;-)

I think I found some issues in the new logic about active/inactive states.
In mieleCharacteristics.ts, function "update":
  update(response: MieleStatusResponse): void {

    if(this.inactiveStates===null && this.activeStates===null) {
      throw new Error('Only supply valid inactive or active states, not both.');
    }

    if(this.inactiveStates && this.inactiveStates.includes(response.status.value_raw)) {
      this.state = this.offState;
    } else {
      this.state = this.onState;
    }

    if(this.activeStates && this.activeStates.includes(response.status.value_raw)) {
      this.state = this.onState;
    } else {
      this.state = this.offState;
    }

    this.platform.log.debug(`Parsed ${this.characteristicType.name} from API response: ${this.state}`);
    this.service.updateCharacteristic(this.characteristicType, this.state);
  }

In case the activeStates array is null (as in our case), this.state is eventually always set to this.offState.
Also, I do not undestand this.inactiveStates===null && this.activeStates===null   giving error "Only supply valid inactive or active states, not both".
Shouldn't the test be "this.inactiveStates !== null && this.activeStates !== null" ?
Maybe (if you agree with my remarks of course), the code could be changed to:
  update(response: MieleStatusResponse): void {

    if (this.inactiveStates !== null && this.activeStates !== null) {
      throw new Error('Only supply valid inactive or active states, not both.');
    }

    if (this.inactiveStates) {
      if (this.inactiveStates.includes(response.status.value_raw)) {
          this.state = this.offState;
      } else {
          this.state = this.onState;
      }
    }

    if (this.activeStates) {
      this.activeStates.includes(response.status.value_raw)) {
        this.state = this.onState;
      } else {
        this.state = this.offState;
      }
    }

    this.platform.log.debug(`Parsed ${this.characteristicType.name} from API response: ${this.state}`);
    this.service.updateCharacteristic(this.characteristicType, this.state);
  }

I think I found some issues in the new logic about active/inactive states.
In mieleCharacteristics.ts, function "update":
  update(response: MieleStatusResponse): void {

    if(this.inactiveStates===null && this.activeStates===null) {
      throw new Error('Only supply valid inactive or active states, not both.');
    }

    if(this.inactiveStates && this.inactiveStates.includes(response.status.value_raw)) {
      this.state = this.offState;
    } else {
      this.state = this.onState;
    }

    if(this.activeStates && this.activeStates.includes(response.status.value_raw)) {
      this.state = this.onState;
    } else {
      this.state = this.offState;
    }

    this.platform.log.debug(`Parsed ${this.characteristicType.name} from API response: ${this.state}`);
    this.service.updateCharacteristic(this.characteristicType, this.state);
  }

In case the activeStates array is null (as in our case), this.state is eventually always set to this.offState.
Also, I do not undestand this.inactiveStates===null && this.activeStates===null   giving error "Only supply valid inactive or active states, not both".
Shouldn't the test be "this.inactiveStates !== null && this.activeStates !== null" ?
Maybe (if you agree with my remarks of course), the code could be changed to:
  update(response: MieleStatusResponse): void {

    if (this.inactiveStates !== null && this.activeStates !== null) {
      throw new Error('Only supply valid inactive or active states, not both.');
    }

    if (this.inactiveStates) {
      if (this.inactiveStates.includes(response.status.value_raw)) {
          this.state = this.offState;
      } else {
          this.state = this.onState;
      }
    }

    if (this.activeStates) {
      this.activeStates.includes(response.status.value_raw)) {
        this.state = this.onState;
      } else {
        this.state = this.offState;
      }
    }

    this.platform.log.debug(`Parsed ${this.characteristicType.name} from API response: ${this.state}`);
    this.service.updateCharacteristic(this.characteristicType, this.state);
  }

Hi, sorry I missed this issue. I will take a look. I recognise the problem. I'm currently building auto refresh token functionality (before I hit my 30 days token limit ;-), will take this along.

Hi, sorry I missed this issue. I will take a look. I recognise the problem. I'm currently building auto refresh token functionality (before I hit my 30 days token limit ;-), will take this along.

(the Icon in Home app shows a spinning icon with "Arrêt..." as displayed status text - sorry, app in French, maybe "Stopping..." in English -)

The new plugin version actually has a language selection to get the French / Walonie word for "Dish washer", but unfortunately the Miele API currently only support English and German. (no Dutch or French...)

(the Icon in Home app shows a spinning icon with "Arrêt..." as displayed status text - sorry, app in French, maybe "Stopping..." in English -)

The new plugin version actually has a language selection to get the French / Walonie word for "Dish washer", but unfortunately the Miele API currently only support English and German. (no Dutch or French...)

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Multi-level counter-cache doesn't work with Discard

It seems that couter_culture checks Discard of only one level of models hierarchy, but not all of them.
For example:
class Step < ActiveRecord::Base
  include Discard::Model

  belongs_to :lesson, class_name: 'Lesson'

  counter_culture %i[lesson unit]
  counter_culture :lesson
end

class Lesson < ActiveRecord::Base
  include Discard::Model

  belongs_to :unit
  has_many :steps
end

class Unit < ActiveRecord::Base
  include Discard::Model

  has_many :lessons
  has_many :steps, through: :lessons
end

u = Unit.create

l1 = u.lessons.create
l2 = u.lessons.create

l1.steps.create
l2.steps.create

u.reload.steps_count # = 2, correct

l1.discard

u.reload.steps_count # = 2, wrong, but okay

Step.counter_culture_fix_counts

## Generated SQL request, 'steps.discarded_at IS NULL' is checked, but 'lessons.discarded_at IS NULL' is not
#  Unit Load (3.1ms)  SELECT "units".id, "units".id, COUNT("steps".id)*1 AS count, MAX("units".steps_count) AS steps_count FROM "units" LEFT JOIN "lessons" AS lessons ON "units".id = lessons.unit_id LEFT JOIN "steps" AS steps ON "lessons".id = steps.lesson_id AND steps.discarded_at IS NULL GROUP BY "units"."id" ORDER BY "units"."id" ASC LIMIT $1  [["LIMIT", 1000]]
#  Lesson Load (1.3ms)  SELECT "lessons".id, "lessons".id, COUNT("steps".id)*1 AS count, MAX("lessons".steps_count) AS steps_count FROM "lessons" LEFT JOIN "steps" AS steps ON "lessons".id = steps.lesson_id AND steps.discarded_at IS NULL GROUP BY "lessons"."id" ORDER BY "lessons"."id" ASC LIMIT $1  [["LIMIT", 1000]]

u.reload.steps_count # = 2, still wrong

Expected:
Step.counter_culture_fix_counts also takes into account discarded_at of parent model.
Actual:
Step.counter_culture_fix_counts checks only discarded_at of Step, but any model on hierarchy.

For now we mitigated the issue with custom scope:
class Step < ActiveRecord::Base
  include Discard::Model

  belongs_to :lesson, class_name: 'Lesson'
  scope :within_kept, -> { kept.where(lesson_id: Lesson.kept.select(:id)) }

  counter_culture %i[lesson unit], column_name: ->(_) { 'steps_count' },
                    column_names: {
                      Step.within_kept => :steps_count
                    }
  counter_culture :lesson
end

This sounds right—do you think you can put a pull request together to fix this? I don't use discard so wouldn't get around to fixing this myself.

Was this ever merged? Or do I use the above solution?

Nobody ever put together a PR to fix this, so there was nothing to merge. I don't have the time to work on this myself. If you can put together a PR for this I'd be happy to merge it!


AstToSqlVisitor can not handle a function call as right hand side of contains-filter

Steps to reproduce:

Try to translate contains(tolower(name), tolower('A')) to SQL using the AstToSqlVisitor
-> error:

 AttributeError("'Call' object has no attribute 'val'")

Bug spotted:

AstToSqlVisitor._to_pattern does not take into account that the arg could be an ast.Call (and assumes a literal in the else branch)

Proposed solution:
Change
  if isinstance(arg, ast.Identifier):

Into
  if isinstance(arg, ast.Identifier | ast.Call):

Hi!
Thanks for the very clear and concise report, reproducer ánd proposed fix. What a blessing!
PR #49 contains the fix and a lot of test cases to cover it. Once reviewed, I'll include it in a new release (0.9.1).

Should be live in v0.9.1!


Update Polkadot v1.1.0

Done with https://github.com/scs/substrate-api-client/tree/polkadot-v1.1.0


Background tiles overlay drawn polygon areas on right and bottom of image

have a website project using leaflet.js to create maps of survey data. The map renders nicely in the browser, however when I capture the image using leaflet-export.js (which calls html2canvas), the background tiles of the map cover parts of the county boundary polygons along the right and bottom edges of the image. My guess is that it is an html2canvas bug but perhaps someone can help.
In the browser my map shows like this: Good Map
After capturing the image (used to create a powerpoint slide) I get this: Bad Image
The javascript capture function is :
`function getMapImage(reportId, callback) {
function afterRender(canvas) {

if (showLegend == true) {
    html2canvas(document.querySelector("#legend")).then(function (c) {
             returnMapImage(reportId, canvas.toDataURL(), c.toDataURL(), callback);
    });
}
else {
    returnMapImage(reportId, canvas.toDataURL(), null, callback);
}

}
var downloadOptions = {
container: leafMap.container,
exclude: ['.leaflet-control-zoom', '.leaflet-control-attribution'],
format: 'image/png',
afterRender: afterRender,
afterExport: afterExport
};
var promise = leafMap.export(downloadOptions);
var data = promise.then(function (result) {
return result;
});
};`

Nope - living with it till now. If someone finds a fix please let me know! Thanks
…
On Wed, Jan 9, 2019 at 10:00 AM Ragim @.***> wrote: have same issue... do you find resolve? — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#4 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AGmoDRyC5C7bbezAb7d3iBiuIJdCSOKoks5vBgP5gaJpZM4R2Ae- .

Hello! I found a simple solution to our problem!

Set renderer padding value (https://leafletjs.com/reference-1.4.0.html#renderer-padding) = 0
Set the "windowWidth" value (http://html2canvas.hertzen.com/configuration) = document.documentElement.clientWidth.

I hope this helps you! Good luck.

Nope - living with it till now. If someone finds a fix please let me know! Thanks
…
On Wed, Jan 9, 2019 at 10:00 AM Ragim @.***> wrote: have same issue... do you find resolve? — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#4 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AGmoDRyC5C7bbezAb7d3iBiuIJdCSOKoks5vBgP5gaJpZM4R2Ae- .

Hello! I found a simple solution to our problem!

Set renderer padding value (https://leafletjs.com/reference-1.4.0.html#renderer-padding) = 0
Set the "windowWidth" value (http://html2canvas.hertzen.com/configuration) = document.documentElement.clientWidth.

I hope this helps you! Good luck.

Can you tell me exactly how you decided?
Сontact me if you can
https://vk.com/ashirbayev
t.me/Ashirbayev_e


Fix PostingsFormat in KNN Codec

Issue #, if available:
https://github.com/opendistro-for-elasticsearch/k-NN/issues/227
Description of changes:
Elasticsearch initiates PostingsFormat based on the MapperService. For KNNCodec, we do not pass MapperService and the PostingsFormat deviates from underlying format for the current Lucene version. Because of this some of the terms that use PostingsFormat could have incompatibility. For example  https://github.com/opendistro-for-elasticsearch/k-NN/issues/227.
Updated KNNCodec to rely on the right PostingsFormat used by underlying Codec of Elasticsearch.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Could we add test case confirming the fix works? Other than the suggests field, what other functionality does this bug break?
"Elasticsearch initiates PostingsFormat based on the MapperService. For KNNCodec, we do not pass MapperService"
Do you have code link for where Elasticsearch initiates PostingsFormat based on MapperService? Also, why can't we pass MapperService to KNNCodec?

I will add test case part of this PR https://github.com/opendistro-for-elasticsearch/k-NN/issues/245

Sure. This code is part of CodecService. Please refer this link https://github.com/elastic/elasticsearch/blob/v7.9.1/server/src/main/java/org/elasticsearch/index/codec/CodecService.java#L49-L56


Add rnr to Homebrew

Excellent tool, would be great to have it available in Homebrew!

Thanks @Miserlou! I have no experience with Homebrew nor access to a MacOS system.
Any contribution will be more than welcome.

Hi, @ismaelgv, I'm trying to create a Homebrew script, but failed
The file is
class Rnr < Formula
  desc "Command-line tool to batch rename files and directories"
  homepage "https://github.com/ismaelgv/rnr"
  url "https://github.com/ismaelgv/rnr/archive/refs/tags/v0.4.1.tar.gz"
  sha256 "85013be46725acc1cd6f2d2089c42f426c052efab26d22db8a9f28051eebbb6a"
  license "MIT"

  depends_on "rust" => :build

  def install
    system "cargo", "install", "--locked", *std_cargo_args
    generate_completions_from_executable(bin/"rnr", "gen_completions", base_name: "rnr")
  end

  test do
    # Check that a typical Conventional Commit is considered correct.
    system "git", "init"
    (testpath/"some-file").write("")
    system "git", "add", "some-file"
    system "git", "config", "user.name", "'Ismael González Valverde'"
    system "git", "config", "user.email"<EMAIL_ADDRESS>    system "git", "commit", "-m", "chore: initial commit"
    assert_equal "No errored commits", shell_output("#{bin}/rnr check 2>&1").strip
  end
end

The error message is
Failure while executing; `\{\"SHELL\"=\>\"bash\"\} /opt/homebrew/Cellar/rnr/0.4.1/bin/rnr gen_completions bash` exited with 1. Here's the output:

This is the result of wrong command of generate_completions functionality, then what is the exact command ?

Thanks for trying to pack RnR for Homebrew. I got no experience with that package manager, but I will take a look at the problem of the completion generation as soon as possible.

@ivaquero I think that you do not need to generate anything manually. The completion files are generated when you build the project, not with any additional command. You would need to package the completions.
You can take a look to bat formulae to use it as reference.
You can also check the current CI/CD configuration that generates the release:
https://github.com/ismaelgv/rnr/blob/master/.github/workflows/release.yml#L67-L105

Good suggestion. I will look into it.

For now, the script can successfully be built
class Rnr < Formula
  desc "Command-line tool to batch rename files and directories"
  homepage "https://github.com/ismaelgv/rnr"
  url "https://github.com/ismaelgv/rnr/archive/refs/tags/v0.4.1.tar.gz"
  sha256 "85013be46725acc1cd6f2d2089c42f426c052efab26d22db8a9f28051eebbb6a"
  license "MIT"

  depends_on "rust" => :build

  def install
    ENV["SHELL_COMPLETIONS_DIR"] = buildpath
    system "cargo", "install", *std_cargo_args

    deploy_dir = Dir["target/release/build/rnr-*/out"].first
    bash_completion.install "#{deploy_dir}/rnr.bash" => "rnr"
    fish_completion.install "#{deploy_dir}/rnr.fish"
    # zsh_completion.install "#{deploy_dir}/rnr.zsh" => "rnr"
  end

  test do
  end
end

❯ rnr -h
rnr 0.4.1
Ismael González Valverde<EMAIL_ADDRESS>RnR is a command-line tool to rename multiple files and directories that
supports regular expressions

USAGE:
    rnr [FLAGS] [OPTIONS] <EXPRESSION> <REPLACEMENT> <PATH(S)>...
    rnr [FLAGS] [OPTIONS] <SUBCOMMAND>
....

However, there are several missing parts

[ ] zsh_completion, the CI doesn't include zsh
[ ] test function, I am not sure the best way to test rnr

zsh_completion, the CI doesn't include zsh

The CI is generating the ZSH completion, but the file is called _rnr. You need to correct that in the script.

test function, I am not sure the best way to test rnr, I wonder whether to use the previous one

All the testing is running in the CI system of the project (Github Actions). I am not sure why it is needed to be run in the Homebrew again.

I added the ZSH completion
  def install
    ENV["SHELL_COMPLETIONS_DIR"] = buildpath
    system "cargo", "install", *std_cargo_args

    deploy_dir = Dir["target/release/build/rnr-*/out"].first
    bash_completion.install "#{deploy_dir}/rnr.bash" => "rnr"
    fish_completion.install "#{deploy_dir}/rnr.fish"
    zsh_completion.install "#{deploy_dir}/rnr.zsh" => "_rnr"
  end

But the output says the file can't be found
==> cargo install
Error: An exception occurred within a child process:
  Errno::ENOENT: No such file or directory - target/release/build/rnr-2eb49c625afc7ce62/out/rnr.zsh

Okay, it works, I will check what to put in test section.

@ivaquero I think you need to copy ZSH completion file as it is _rnr, you are renaming it to rnr.
If you want to test something you may want to rename a dummy file. For example, the bat example is just checking that the CLI tool is functional printing the content of a file.

No problem, I will try.
I suggest that you create a new repo to host this Homebrew script and mention it in the README, because Homebrew official has a relatively strict standard, we need more time and users to test to avoid the PR to be closed accidentally.

Feel free to host it yourself until it is merged to Homebrew official repository. I cannot provide proper support to that script since I cannot test it. However, you can maintain it if it is fine for you.
I will add the information to the README.md once it is ready.
Thanks for your contribution to the project! 😉

A PR has been made: https://github.com/Homebrew/homebrew-core/pull/115749

@ivaquero I see that they approved the PR, thanks for the contribution! I will add the information to the README.md.

You are welcome. Thank you for this helpful tool.

The PR has been merged! This issue can be closed.

I will update the readme before closing this issue. I am a bit busy these days so it may take me some time. Thanks!


After changing and saving the data, the user is redirected to the profile page and the new/changed data is displayed.

Resolved with commit: stylised profile edit page and changed delete profile method


Alluxio FUSE support statfs

Is your feature request related to a problem? Please describe.
When Alluxio fuse mounted on a directory, I can't see the mount point with df command.
Specially, I wonder information of the file system,like size, used, available, etc.
Alluxio FUSE should support statfs.

Addressed by https://github.com/Alluxio/alluxio/pull/9418


Undefined DSC resource 'xSQLServerSetup' when compiling in Azure Automation

Details of the scenario you tried and the problem that is occurring:

Creating new automation resource in Azure
Adding xSQLServer module
Uploading my test configuration
Trying to compile it

I receive this error:
Exception calling "NewScriptBlock" with "1" argument(s): "At line:9 char:9 + xSQLServerSetup SQLSetup + ~~~~~~~~~~~~~~~ Undefined DSC resource 'xSQLServerSetup'. Use Import-DSCResource to import the resource." (At line:9 char:9 + xSQLServerSetup SQLSetup + ~~~~~~~~~~~~~~~ Undefined DSC resource 'xSQLServerSetup'. Use Import-DSCResource to import the resource.)

The DSC configuration that is using the resource (as detailed as possible):
Configuration SharePointDevelopmentEnvironmentTest2
{
Import-DSCResource -ModuleName xSQLServer
Node "lab3sp1"
{
xSQLServerSetup SQLSetup
{
InstanceName        = "MSSQLServer"
SourcePath          = "C:\Install\SQL 2016"
Features            = "SQLENGINE"
InstallSharedDir    = "C:\Program Files\Microsoft SQL Server"
SQLSysAdminAccounts = "username"
DependsOn           = "[Group]AdminGroup"
}
}
}
Version of the Operating System, SQL Server and PowerShell the DSC Target Node is running:
Azure Automation
PowerShell version must be 5.0 I think
Not running yet, just compiling
What module (SqlServer or SQLPS) and which version of the module the DSC Target Node is running:
xSQLServer <IP_ADDRESS>
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
Azure?

This is the same issue as #713 i think?

I'm not sure but might be connected somehow.

@shurick81 Could you post your test configuration here or in a Gist? I need to try this out for my self. if it more than one file, you could zip them, and submit the zip file here.
Please remove any sensitive information.

I think I have already posted it?
Configuration SharePointDevelopmentEnvironmentTest2 { Import-DSCResource -ModuleName xSQLServer Node "lab3sp1" { xSQLServerSetup SQLSetup { InstanceName = "MSSQLServer" SourcePath = "C:\Install\SQL 2016" Features = "SQLENGINE" InstallSharedDir = "C:\Program Files\Microsoft SQL Server" SQLSysAdminAccounts = "username" DependsOn = "[Group]AdminGroup" } } }

@johlju, now I have published in gist:
https://gist.github.com/shurick81/ecc01558102fc9587edda9ce358f16cd

@shurick81 Sorry man, I thought it was gonna be a ARM template or something 😉  Let me try compiling the same configuration.
But it looks very similar to issue #713 - maybe even if you manged to get xSQLServerSetup to show, there is still a problem. But just guessing.

I have reproduced this error. No xSQLServer resources can compile in Azure Automation with version <IP_ADDRESS>.
This problem is due to long paths. Some files in the module exceed 120 chars so the compilation fail with this error message.
Workarounds until this is fixed.

Deploy earlier version <IP_ADDRESS> of the module.
If you want to use v<IP_ADDRESS>, and don't need resource xSQLServerAlwaysOnAvailabilityGroupDatabaseMembership

Download a local copy of xSQLServer module Save-Module -Name xSQLServer -Path C:\Temp
Delete resource xSQLServerAlwaysOnAvailabilityGroupDatabaseMembership.
Delete the Examples folder.
Compress the xSQLServer folder to a zip archive
Add the zip archive to Modules in Azure Automation.

If you want to use v<IP_ADDRESS>, and need resource xSQLServerAlwaysOnAvailabilityGroupDatabaseMembership

Download a local copy of xSQLServer module Save-Module -Name xSQLServer -Path C:\Temp
Rename the resource MSFT_xSQLServerAlwaysOnAvailabilityGroupDatabaseMembership to MSFT_xSQLServerAGDatabaseMembership (folder and all files, and all references to 'MSFT_xSQLServerAlwaysOnAvailabilityGroupDatabaseMembership' in all files). make sure to leave the friendly name as 'xSQLServerAlwaysOnAvailabilityGroupDatabaseMembership' in the schema.mof.
Delete the Examples folder.
Compress the xSQLServer folder to a zip archive
Add the zip archive to Modules in Azure Automation.

Azure Automation Team is tracking the long path issue, but it's probably gonna be a while before we see a resolution. With this, I don't want to do any changes to the resource module, but instead await what their resolution is first. So I will put this issue "on hold" for now.
They suggest this workaround as well.

"As for workaround right now, customer can compile the configuration locally first and import the Mof directly into Azure Automation either from portal or PowerShell. The xSQLServer resource can still be imported into Azure Automation module asset so it should be available for pulling."

Any updates on this?

@johlju Thanks for the workarounds.  It might be worth mentioning deleting the Tests folder in your instructions as I found that that some of those also tripped the 260 limit.

@ld0614 Thanks for finding that and reporting it here! Updated the workarounds with that information. Thank you!

I came across this last week as it was breaking a Composite Resource I was trying to compile (that took some digging to find this as the cause).
It doesn't affect all resources, so it's a challenging one.
I just wanted to confirm that the work around of compiling locally and manually uploading the MOF worked in my case. I think that is a more appropriate method than creating a custom copy of the module, but situational I guess.

I'm actually keeping an eye on this as it's affecting me as well.  Compiling and uploading MOFs doesn't work for me as sometimes for customers, I'm actually compiling MOFs at runtime for the environment build.  This is actually super inconvenient in either case.

By the way, just for information, I have never experienced this issue with Set-AzureRmVmDscExtension command. It compiles and applies SQL resources like a charm.

I talked with @mgreenegit at Ignite yesterday. When the problem with long path is resolved in Azure Automation this module should work without changing the resources (or any files). There is currently no timeline when this gets resolved, but knowing that they know what the problem is, feels like a good step forward.
In light of that, I remove the workarounds for changing this resource and the workaround, until this issue is resolved, will be the recommendation from the Azure Automation team (see above).

Hi @johlju
While compiling locally may work in most contexts I'm grabbing credentials directly out of the automation account at compile time which I believe would either expose the passwords in plane text or render the credentials unreaderble if compiled locally.  While I personally think renaming the affected resource is the best option I understand that its probably a lot of work and would be a breaking change.  I do think that its important that the existing workarounds are kept documented to allow easy mitigation when compiling locally isn't practical.

The workarounds are still there, I just strike-through them since that will not be the path we should go. If there is any new development in this issue that will set a hard limit, then we can look at renaming resources again. But for now, we should not workaround a bug in Azure Automation.
If it is the consensus of the community to use a new naming standard I'm open for that, but I think that's a different issue.
@ld0614 In your case, you should submit a case to Premier support or any other support channel you have to address that issue. That could also speed up that this gets resolved quicker.
That goes for everyone, if you have this issue, then please submit an issue to any support channel you have to get this resolved.
I guess that the PowerShell team want this fixed, but there are priorities out of there control, and probably a long chain of tasks that need to happen to get a change into Azure.

I'm suffering from the same problem so just adding feedback to get this fixed.

Version 9+ of SqlServerDsc resolve this issue. While you will not see SqlSetup listed in the extracted activities for the module (yet), configurations that use the resource will now compile successfully. I believe we can mark the issue as resolved?

I found an issue compiling the resources. We still have two files over the hard-limit of 129 chars. Please see issue #934. I'm working on this now.
Also please note that it will be version 10+ that will have this fix. The current Dev branch will be released as SqlServerDsc once all major breaking changes have been merged.

Closing this issue since SqlServerDsc v.<IP_ADDRESS> was released to PowerShell Gallery that solves this.


*: optimize watch stream multiplexing garbage collection

Problem
https://github.com/coreos/etcd/blob/d2d8c5716f92f1750ba6ef559c443a01ad4796d2/etcdserver/api/v3rpc/watch.go#L136-L150
https://github.com/coreos/etcd/blob/d2d8c5716f92f1750ba6ef559c443a01ad4796d2/mvcc/watchable_store.go#L101-L109
mvcc.(*watchableStore).NewWatchStream creates a new &watchStream object for every watch request, thus multiplexed watchers on one shared gRPC connection are not sharing resources between. Basically, every single watcher has watch ID 0 (unless specified), and only one single watcher in its watcher pool.
Expected behavior
In the following example,
cli, _ := clientv3.New(clientv3.Config{Endpoints: eps})
for i := 0; i < 100; ++i {
  cli.Watch(context.Background(), "foo")
}

server should be creating 100 watcher objects shared under one watch stream object, each of which should be assigned a unique watch ID. However, the current master branch creates 100 separate watch streams, where all watchers have watch ID 0. There is no global state to track how many watchers have been created over one shared gRPC connection.
Having global states over a shared stream would enable reclaiming canceled watcher objects, thus better resource utilization in storage backend.
Proposal

clientv3: provide generated watch ID on client watch response
mvcc: move watchers out of an individual watch stream, to a shared watcher pool in watchableStore
clientv3: request to delete watcher object on cancellation, from server-side
mvcc: handle server-side watcher object cancellation request, to reclaim canceled watcher resources

make watch stream multiplexing more efficient
https://github.com/coreos/etcd/issues/9416

Performance
I've added more benchmarks to make sure this does not introduce any regression.
Test result 1:
benchmark                                              old ns/op     new ns/op     delta
BenchmarkIndexCompact1-4                               213           214           +0.47%
BenchmarkIndexCompact100-4                             13544         13496         -0.35%
BenchmarkIndexCompact10000-4                           732862        738492        +0.77%
BenchmarkIndexCompact100000-4                          23537303      25035956      +6.37%
BenchmarkIndexCompact1000000-4                         292751386     297354406     +1.57%
BenchmarkStorePut-4                                    5353          5043          -5.79%
BenchmarkStoreRangeKey1-4                              857           863           +0.70%
BenchmarkStoreRangeKey100-4                            73652         73469         -0.25%
BenchmarkConsistentIndex-4                             3.11          3.10          -0.32%
BenchmarkStorePutUpdate-4                              3828          3839          +0.29%
BenchmarkStoreTxnPut-4                                 5425          4968          -8.42%
BenchmarkStoreRestoreRevs1-4                           4015          4075          +1.49%
BenchmarkStoreRestoreRevs10-4                          7731          7753          +0.28%
BenchmarkStoreRestoreRevs20-4                          10940         10092         -7.75%
BenchmarkWatchableStorePut-4                           5385          5011          -6.95%
BenchmarkWatchableStoreTxnPut-4                        6695          5627          -15.95%
BenchmarkWatchableStoreWatchPutSync-4                  2928          2844          -2.87%
BenchmarkWatchableStoreWatchPutUnsync-4                7058          9042          +28.11%
BenchmarkWatchableStoreMultiplexWatchPutSynced-4       14390         15299         +6.32%
BenchmarkWatchableStoreMultiplexWatchPutUnsynced-4     24573         21944         -10.70%
BenchmarkWatchableStoreUnsyncedCancel-4                954           1001          +4.93%
BenchmarkWatchableStoreSyncedCancel-4                  0.84          0.47          -44.05%
BenchmarkKVWatcherMemoryUsage-4                        1548          1752          +13.18%

benchmark                                              old allocs     new allocs     delta
BenchmarkStoreRangeKey1-4                              12             12             +0.00%
BenchmarkStoreRangeKey100-4                            713            713            +0.00%
BenchmarkConsistentIndex-4                             0              0              +0.00%
BenchmarkStoreTxnPut-4                                 15             15             +0.00%
BenchmarkStoreRestoreRevs1-4                           6              6              +0.00%
BenchmarkStoreRestoreRevs10-4                          37             37             +0.00%
BenchmarkStoreRestoreRevs20-4                          68             68             +0.00%
BenchmarkWatchableStorePut-4                           15             15             +0.00%
BenchmarkWatchableStoreTxnPut-4                        17             17             +0.00%
BenchmarkWatchableStoreWatchPutSync-4                  2              2              +0.00%
BenchmarkWatchableStoreWatchPutUnsync-4                2              2              +0.00%
BenchmarkWatchableStoreMultiplexWatchPutSynced-4       11             12             +9.09%
BenchmarkWatchableStoreMultiplexWatchPutUnsynced-4     11             12             +9.09%
BenchmarkWatchableStoreUnsyncedCancel-4                0              0              +0.00%
BenchmarkWatchableStoreSyncedCancel-4                  0              0              +0.00%
BenchmarkKVWatcherMemoryUsage-4                        8              8              +0.00%

benchmark                                              old bytes     new bytes     delta
BenchmarkStoreRangeKey1-4                              544           544           +0.00%
BenchmarkStoreRangeKey100-4                            40029         40029         +0.00%
BenchmarkConsistentIndex-4                             0             0             +0.00%
BenchmarkStoreTxnPut-4                                 1483          1479          -0.27%
BenchmarkStoreRestoreRevs1-4                           586           586           +0.00%
BenchmarkStoreRestoreRevs10-4                          4731          4730          -0.02%
BenchmarkStoreRestoreRevs20-4                          9311          9311          +0.00%
BenchmarkWatchableStorePut-4                           1528          1539          +0.72%
BenchmarkWatchableStoreTxnPut-4                        1536          1533          -0.20%
BenchmarkWatchableStoreWatchPutSync-4                  252           251           -0.40%
BenchmarkWatchableStoreWatchPutUnsync-4                272           315           +15.81%
BenchmarkWatchableStoreMultiplexWatchPutSynced-4       50038         49990         -0.10%
BenchmarkWatchableStoreMultiplexWatchPutUnsynced-4     50172         50133         -0.08%
BenchmarkWatchableStoreUnsyncedCancel-4                0             0             +0.00%
BenchmarkWatchableStoreSyncedCancel-4                  0             0             +0.00%
BenchmarkKVWatcherMemoryUsage-4                        670           720           +7.46%

Test result 2:
benchmark                                              old ns/op     new ns/op     delta
BenchmarkIndexCompact1-4                               208           207           -0.48%
BenchmarkIndexCompact100-4                             13776         13474         -2.19%
BenchmarkIndexCompact10000-4                           787606        737522        -6.36%
BenchmarkIndexCompact100000-4                          24437827      22737532      -6.96%
BenchmarkIndexCompact1000000-4                         295421494     298144196     +0.92%
BenchmarkStorePut-4                                    5027          5357          +6.56%
BenchmarkStoreRangeKey1-4                              864           854           -1.16%
BenchmarkStoreRangeKey100-4                            73460         73495         +0.05%
BenchmarkConsistentIndex-4                             3.11          3.41          +9.65%
BenchmarkStorePutUpdate-4                              3874          3799          -1.94%
BenchmarkStoreTxnPut-4                                 5065          5362          +5.86%
BenchmarkStoreRestoreRevs1-4                           4012          4019          +0.17%
BenchmarkStoreRestoreRevs10-4                          7915          7845          -0.88%
BenchmarkStoreRestoreRevs20-4                          10944         10627         -2.90%
BenchmarkWatchableStorePut-4                           5326          5366          +0.75%
BenchmarkWatchableStoreTxnPut-4                        5419          5551          +2.44%
BenchmarkWatchableStoreWatchPutSync-4                  2439          2755          +12.96%
BenchmarkWatchableStoreWatchPutUnsync-4                9839          5919          -39.84%
BenchmarkWatchableStoreMultiplexWatchPutSynced-4       13722         14325         +4.39%
BenchmarkWatchableStoreMultiplexWatchPutUnsynced-4     21755         21383         -1.71%
BenchmarkWatchableStoreUnsyncedCancel-4                924           1066          +15.37%
BenchmarkWatchableStoreSyncedCancel-4                  0.83          0.47          -43.37%
BenchmarkKVWatcherMemoryUsage-4                        1547          1714          +10.80%

benchmark                                              old allocs     new allocs     delta
BenchmarkStoreRangeKey1-4                              12             12             +0.00%
BenchmarkStoreRangeKey100-4                            713            713            +0.00%
BenchmarkConsistentIndex-4                             0              0              +0.00%
BenchmarkStoreTxnPut-4                                 15             15             +0.00%
BenchmarkStoreRestoreRevs1-4                           6              6              +0.00%
BenchmarkStoreRestoreRevs10-4                          37             37             +0.00%
BenchmarkStoreRestoreRevs20-4                          68             68             +0.00%
BenchmarkWatchableStorePut-4                           15             15             +0.00%
BenchmarkWatchableStoreTxnPut-4                        17             17             +0.00%
BenchmarkWatchableStoreWatchPutSync-4                  2              2              +0.00%
BenchmarkWatchableStoreWatchPutUnsync-4                2              2              +0.00%
BenchmarkWatchableStoreMultiplexWatchPutSynced-4       11             12             +9.09%
BenchmarkWatchableStoreMultiplexWatchPutUnsynced-4     11             12             +9.09%
BenchmarkWatchableStoreUnsyncedCancel-4                0              0              +0.00%
BenchmarkWatchableStoreSyncedCancel-4                  0              0              +0.00%
BenchmarkKVWatcherMemoryUsage-4                        8              8              +0.00%

benchmark                                              old bytes     new bytes     delta
BenchmarkStoreRangeKey1-4                              544           544           +0.00%
BenchmarkStoreRangeKey100-4                            40029         40029         +0.00%
BenchmarkConsistentIndex-4                             0             0             +0.00%
BenchmarkStoreTxnPut-4                                 1485          1476          -0.61%
BenchmarkStoreRestoreRevs1-4                           585           586           +0.17%
BenchmarkStoreRestoreRevs10-4                          4730          4731          +0.02%
BenchmarkStoreRestoreRevs20-4                          9311          9311          +0.00%
BenchmarkWatchableStorePut-4                           1528          1528          +0.00%
BenchmarkWatchableStoreTxnPut-4                        1557          1538          -1.22%
BenchmarkWatchableStoreWatchPutSync-4                  251           251           +0.00%
BenchmarkWatchableStoreWatchPutUnsync-4                317           276           -12.93%
BenchmarkWatchableStoreMultiplexWatchPutSynced-4       50038         49990         -0.10%
BenchmarkWatchableStoreMultiplexWatchPutUnsynced-4     50183         50129         -0.11%
BenchmarkWatchableStoreUnsyncedCancel-4                0             0             +0.00%
BenchmarkWatchableStoreSyncedCancel-4                  0             0             +0.00%
BenchmarkKVWatcherMemoryUsage-4                        670           720           +7.46%

Test results show that this makes synced watcher cancellation faster.
And no regression on watch stream multiplexing performance.
TODO: need to handle gRPC proxy
./integration $ go test -v -run TestV3WatchMultipleStreamsSynced -tags cluster_proxy

/cc @yudai @xiang90 @jpbetz

This still needs to handle gRPC proxy watch coalescing. WIP.

Codecov Report

Merging #9797 into master will decrease coverage by 0.31%.
The diff coverage is 79.85%.

@@            Coverage Diff             @@
##           master    #9797      +/-   ##
==========================================
- Coverage   69.41%   69.09%   -0.32%
==========================================
  Files         377      378       +1
  Lines       35275    35378     +103
==========================================
- Hits        24486    24445      -41
- Misses       9020     9121     +101
- Partials     1769     1812      +43

Impacted Files
Coverage Δ

integration/cluster.go
82.84% <0%> (-0.62%)
:arrow_down:

mvcc/watcher.go
94.73% <100%> (-5.27%)
:arrow_down:

proxy/grpcproxy/watcher.go
61.22% <100%> (-28.58%)
:arrow_down:

clientv3/watch.go
96.72% <100%> (+1.22%)
:arrow_up:

integration/v3_watch.go
71.01% <71.01%> (ø)

mvcc/watchable_store.go
84% <93.33%> (+1.19%)
:arrow_up:

proxy/grpcproxy/election.go
8.69% <0%> (-73.92%)
:arrow_down:

proxy/grpcproxy/adapter/lock_client_adapter.go
33.33% <0%> (-66.67%)
:arrow_down:

proxy/grpcproxy/lock.go
33.33% <0%> (-66.67%)
:arrow_down:

proxy/grpcproxy/adapter/election_client_adapter.go
6.89% <0%> (-62.07%)
:arrow_down:

... and 40 more

Continue to review full report at Codecov.

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

Will reopen after fixing gRPC proxy test failures.


Bugfix/duplicate backstage token

Hey, I just made a Pull Request!
Per conversation on Discord with @Rugvip, updated the backend OAuthAdapter to fix a bug that overwrote Backstage tokens generated during identity resolver step.
Previous code relied on a deprecated .idToken property that was renamed to .token. An overlooked checker was re-issuing the token when .idToken was not found.
New code checks for both .token and .idToken, prefers .token, and will convert .idToken to .token if only .idToken is found.
Also updated LoginPage commonProvider.ts to prefer .token over .idToken
:heavy_check_mark: Checklist

[X] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[X] All your commits have a Signed-off-by line in the message. (more info)

@Rugvip - This is my first PR here (and fairly new to backstage in general) so some guidance would be appreciated if anything else needs updating. :)
Do we need a test for this as test did not exist beforehand? RE: docs .... as a bugfix, this probable is N/A

Thanks for your contribution @zfalen-deloitte 🙌 Please let me know if you’d like some help to contribute further.


⚠ Visual-Crew_Builder has degraded performance

In 71718a2, Visual-Crew_Builder (https://visual-crew-builder.ai) experienced degraded performance:

HTTP code: 200
Response time: 1487 ms

Resolved: Visual-Crew_Builder performance has improved in fd3749d after 7 minutes.


Make runSequence throw an error if some task fails

When writing new tests, sometimes we forget to mock things, and sometimes a function will fail. The existing runSequence in fake-cloud-tasks just silently returns with whatever has processed up to then which makes debugging somewhat difficult (and sometimes very confusing).
This PR makes runSequence in fake-cloud-tasks throw an error if anything bad happens during task processing

Is that what we want to happen? Are there any cases where we don't care if there is an error in a sub-sequence?

It's only in tests, so if we have a case where we don't care we can rewrite the tests with try/catch and check that it errors in the way we expect 😁


Should be pink.

Challenge http://www.freecodecamp.com/challenges/waypoint-override-styles-in-subsequent-css has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
Allowed to move on to next challenge, but it shouldn't. It is supposed to be showing pink-text in the console, but it shows blue text instead. Pink should be taking precedence over blue.

Thanks for posting an issue!
It looks like this is exactly the desired outcome.  If you look at the description/tests it wants the text to be blue.  The point is that the last css style (blue-text) takes precedence over earlier styles (pink-text)

@benschenker  is true.
I think this is not a bug, @SEGrooms when you are ready close this issue :)

I don't understand why these would both yield the same result.

change this:
.blue-text {
color: blue;
}
.pink-text {
color: pink;
}

@dokkillo Thank you!


Rewards screen for Invite reward should show reward amount

The Issue
The rewards screen should show 3 LBC (or whatever the value from the API is) for the reward amount, similar to other rewards.
Change in which this was lost:
https://github.com/lbryio/lbry-app/pull/1509/files
Expected Behaviour
Tell us what should happen.
Actual Behaviour
Tell us what happens instead.
Suggested Solutions
Tell us your suggested solutions if you have any.
System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

Will add as a note in the API for now.

stop gap- https://github.com/lbryio/internal-apis/pull/401


charcter problems in key value window

For some reason, I'm getting these strange chars in the value window. I'm not sure where to go with this. I checked the config options for running the server as it relates to content-type (wild guess). But not seeing anything that might help here.
Also did some searching through the 'Issues' and didn't find any leads here either.

Suggestions?
Specs:

Linux dave-macbook-linux 4.8.0-36-generic #36~16.04.1-Ubuntu SMP Sun Feb 5 09:39:57 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Firefox 52.0.2 (64-bit)
Chrome Version 57.0.2987.110 (64-bit)
Just did an npm install again to re-verify (do I need to first remove a previous version? npm newbie)

Seems to be binary data stored inside redis. There is no special handling rigght now for binary data, therefor no workaround available.
duplicate of #140
If its no binary data (check with redis-cli or similiar) please reopen issue with some more informations about the data stored inside redis.


[Not to be merged ] CI test for https://github.com/coin-or/CppAD/issues/112

@proyan What is the status?


Can this read a CSV file that only has numbers, in one go?

So I have a csv file which contains 480 rows of 640 comma-separated numbers (so 640 columns of 480 values each) - representing a 480x640 matrix that was stored in the csv file. Is it possible to read this file into a cv::Mat or a standard float[][] matrix in C++ in one go? i.e. instead of copying 640 columns and figuring out the mapping to a Mat, can this copy all this data into a matrix? I don't have any headers.

You can use the LineReader to read a file line by line but you will have to split the line by hand.


FIX: var scope + added inline attribute to video if on iOS

If all good it should fix it :)  Does need a test run ( can't test it with your stream due to Cross-origin issues),  but works great with a demo stream on a couple of devices I tested

Awesome @MGrudule! We disabled CORS on the server-side to test the live stream locally and it works fine on iOS now. 💫