Update GPU Compute Capacity support to match tensorflow

When trying to test stuff on GPU (on Linux) on 0.3.0-SNAPSHOT, it takes a while to initialize, before giving me:
2021-01-29 19:15:28.239332: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0
2021-01-29 19:15:28.239537: I external/org_tensorflow/tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
Exception in thread "main" org.tensorflow.exceptions.TensorFlowException: CUDA runtime implicit initialization on GPU:0 failed. Status: device kernel image is invalid
	at org.tensorflow.internal.c_api.AbstractTF_Status.throwExceptionIfNotOK(AbstractTF_Status.java:101)
	at org.tensorflow.EagerSession.allocate(EagerSession.java:357)
	at org.tensorflow.EagerSession.<init>(EagerSession.java:327)

This is with a 1070 (compute 6.1) that was successfully recognized earlier:
2021-01-29 19:15:28.229419: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce GTX 1070 computeCapability: 6.1
coreClock: 1.797GHz coreCount: 15 deviceMemorySize: 7.93GiB deviceMemoryBandwidth: 238.66GiB/s

After some diging, I found https://github.com/tensorflow/tensorflow/issues/41990, https://github.com/tensorflow/tensorflow/issues/41132#issuecomment-693543570, and https://github.com/tensorflow/tensorflow/issues/41892#issuecomment-667452483.
The last two in particular imply that the issue is that our binaries aren't being built with support for compute capacity 6.1, and sure enough, we don't: https://github.com/tensorflow/java/blob/master/tensorflow-core/tensorflow-core-api/build.sh#L25-L32
export TF_CUDA_COMPUTE_CAPABILITIES="3.5,7.0"

As per the 2nd and 3rd links, and https://www.tensorflow.org/install/gpu#hardware_requirements, the other tensorflow binaries (Python, C, C++, etc) support 3.5, 5.0, 6.0, 7.0, 7.5, 8.0 and higher than 8.0.  Imo, we should do the same, ideally in a way we don't have to update when it changes (will simply not exporting it work?  The defaults are specified in https://github.com/tensorflow/tensorflow/blob/master/.bazelrc#L600).  This will likely increase build times though, which I think we already have issues with.

As per https://github.com/tensorflow/java/issues/149#issuecomment-770147425, this is not possible due to build times.  I'm leaving the issue up as a reminder to do it when possible.

As per https://github.com/tensorflow/java/issues/149#issuecomment-770147425, this is not possible due to build times.  I'm leaving the issue up as a reminder to do it when possible.

One part of the solution should be to provide a much better error message, which accurately describes what's happening and how to fix the issue.

Also, would it be possible to change build.sh to allow the passthrough of the TF_CUDA_COMPUTE_CAPABILITIES environmental variable value, rather than explicitly overwrite the value? This would allow parametrized custom builds without patching the build.sh file for each build.

I don't think we can do much about the error message, since it comes from the native code.  But not overwriting the variable sounds easy enough.  You can set it in a bazelrc file, too, which takes precedence over this.

When you get more build resources, please add compute capability 3.7 for K80 on the default support list, as it's very widely used.

@rnett , I've replaced the CUDA capabilities by this line that I've picked from the .bazelrc, is that right? It is still building but looks successful so far, if you agree then I'll merge this change to master and ask you to do some test on your hardware with the latest snapshots.
I think at some point we'll need to make better usage of the configuration in this .bazelrc file but du right now, since I'm just about to release 0.3.0, I prefer doing minimal changes. I might do a 0.3.1 release right after just to align our build options with the official ones.

Seems fine to me.  We may have to change it eventually, once the next gen NVIDIA GPUs launch, but we should be good for a while.  Would be nice if we could get SIG BUILD or whoever's responsible for it to publicize their setup/arguments.

I guess they use the configs in the main repo, check at the release_*_* ones? I've quickly tried to enable them in our build but had a bunch a errors so I'll keep working on this but later.

Huh TIL, I would've expected that to come up in the issues I was looking at.

List of capabilities as been updated to sm_35,sm_50,sm_60,sm_70,sm_75,compute_80 in 0.3.0, which should cover probably everything we expect to run on CUDA 11
Closing this issue for now, please reopen if some capabilities are still not supported.


feat: initial module

Description
Initial version of the module to create db2 instances
Release required?

[ ] No release
[x] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Initial working release of the module for testing the DB2 resource instance creation
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

:tada: This PR is included in version 0.1.0 :tada:
The release is available on:

GitHub release
v0.1.0

Your semantic-release bot :package::rocket:


Rename corpus to index

Renamed corpus to index in 4 topics

I fixed the typos in the latest commit

@pwoznic Great work!
Only addition is I think we should introduce index/indicies verbiage in the body of creating a corpus
https://deploy-preview-77--luxury-shortbread-acee05.netlify.app/docs/console-ui/creating-a-corpus
Noteably the first line of text
"To get begin searching your data, you first have to create a corpus. A corpus is a container where you upload all your data to be indexed and grouped together in a single location for querying."
You may want to consider lightly adjusting some of the follow on text regarding corpus vs. index when it comes to what users should be clicking on and removing images as well, perhaps just including a single one.
This document is directly linked to from the console. This way the flow from console -> docs for create corpus can be tied together in a minimal way.

@pwoznic Great work! Only addition is I think we should introduce index/indicies verbiage in the body of creating a corpus https://deploy-preview-77--luxury-shortbread-acee05.netlify.app/docs/console-ui/creating-a-corpus
Noteably the first line of text "To get begin searching your data, you first have to create a corpus. A corpus is a container where you upload all your data to be indexed and grouped together in a single location for querying."
You may want to consider lightly adjusting some of the follow on text regarding corpus vs. index when it comes to what users should be clicking on and removing images as well, perhaps just including a single one.
This document is directly linked to from the console. This way the flow from console -> docs for create corpus can be tied together in a minimal way.

Done :)

Updated topics for more clarifications


JBPM-4664: add jbpm-console-ng-generic-preferences for  multiple view…

… mode and enable multiple view mode for process definition
@porcelli  @Salaboy  @cristianonicolai  @nmirasch  @manstis
The PR feature is create module :jbpm-console-ng-generic-preferences for  multiple view mode.
and enable our function : advanced and basic mode for process definition.
Please review it.

Can one of the admins verify this PR? Comment with 'ok to test' to start the build.

Can one of the admins verify this PR? Comment with 'ok to test' to start the build.

Thanks @bxf12315 for submitting this PR. Handling preferences is definitely needed at the workbench level. Enhancements have been made to Uberfire to provide a generic preferences API, which replaces your suggestion here. Also, view mode is likely to be deprecated moving forward.


Using JSON as a scalar in buildSchema function of graphql.js

Can you provide a concrete example of how to use JSON as a scalar while passing the schema to buildSchema function of graphql.js? For example, I need content as a json, something like below.
import {
    buildSchema
} from 'graphql';

export default buildSchema(`
  type Query {
    getContent: [Content]
  }
  type Content {
   content: JSON
    type: String
  }
`)

I don't use this syntax. It should be the same as for any other custom scalar, though.

Such a great support.


RBAC: envoy.filters.http.rbac source_ip principal does not seem to work together with external loadbalancers in front proxy configuration

RBAC: envoy.filters.http.rbac source_ip principal does not seem to work together with external loadbalancers in front proxy configuration
Summary: The envoy.filters.http.rbac source_ip principal seems to be using the "raw" source ip, making it unusable in a edge/front proxy configuration when there are additional loadbalancers in front of it. Are we missing something?
Description:
We are testing envoy as edge/front proxy, and we have a cloud loadbalancer in front of it. The cloud loadbalancer is actually adding two hops in front of the envoy, and we are therefore setting "xff_num_trusted_hops: 2" which makes the "x-envoy-external-address" be set to the correct address.
Then we add configuration to whitelist/blacklist network ranges for virtualhosts, using a per filter config for envoy.filters.http.rbac, and in it setting a rule to allow only certain network ranges using the source_ip principal.
When running the envoy in trace mode, it seems to confirm that the source ip that is actually used to match with the allowed networks, is the "raw" source ip, meaning it is the previous hop in the cloud loadbalancer set-up, making the filter fail, or always be successful if we add the loadbalancer ips to the list of allowed source_ips.
Eg: "[2018-12-10 16:38:27.988][000029][debug][rbac] [source/extensions/filters/http/rbac/rbac_filter.cc:62] checking request: remoteAddress: LOAD_BALANCER_IP:SOME_PORT, localAddress: <IP_ADDRESS>:8443"
Running latest from 2018-12-10, 1.9.0 (pending): envoyproxy/envoy@sha256:67114c50c0013842929da2e3281f946629d045a110da698fdee6f887d4926a1c
Are we missing some configuration to make the rbac filter affect the "real" client source ip (ie the same ip as "x-envoy-external-address" is set to)? If not, I guess this question has more turned into a feature request, if that makes sense? As otherwise this rbac filter is not usable in such a set-up. Also, is there any work-around for now?
Best regards,
Richard Spangberg

I'm not very familiar with the RBAC code, but it looks like the IPMatcher only looks at the connection's immediate local or remote address and there's presently no way to configure it to use the x-envoy-external-address or any other header.

@zuercher Ok, that corresponds to the behaviour we observed. Thanks for looking into this! I guess this would a non-trivial thing to fix properly?

@zuercher @rispa yes, we should have a variant of IP matcher that actually uses the StreamInfo remote address vs. the connection level remote address. The stream level remote address for HTTP streams will be the correctly populated remote addressed based on XFF processing, etc.

/cc @yangminzhu
This is a good use of RBAC at edge proxy, I guess Istio will have similar issue when enabling RBAC on ingress, will do some investigation to see how to use the correct remote address.

@yangminzhu does envoy support this case now? or any workaround?

it has supported now.

@mmpei can you please share link or configuration example?

bump
We currently have this issue trying to use Envoy as an edge proxy. The remoteAddress used to compare against source_ip should honor the flags and settings set in the HTTP connection manager. Very curious if someone has an implementation/setup that works!

@mmpei  Would you mind to clarify a little bit what do you mean for "it has supported now", Are you referring to the RBAC filter?
@anpryl @tinder-mattheworlove I'm afraid this is not supported by the RBAC filter because it's hard-coded to use the immediate source IP instead of the remote IP based on the XFF processing.
@mattklein123 What do you think if we add a remote_ip in addition to the source_ip and use the downstreamRemoteAddress() to compare the value, this should be a small and straightforward change. could you assign this to me? Thanks.

@yangminzhu JFYI, we combined rbac filter with ip_tagging filter to achienve ip blacklisting for entire virtual hosts and ip whitelisting per routes(we need it in some cases)

@mattklein123 What do you think if we add a remote_ip in addition to the source_ip and use the downstreamRemoteAddress() to compare the value, this should be a small and straightforward change. could you assign this to me? Thanks.

Yes this makes sense to me.


Fix link to custom sharp layer.

Small fix to update location of AWS Lambda layer for Sharp.

Thank you!


build: bump nimbum dependencies

🏠 Internal
Bump nimbus to 3

Abandoned since the recent changes already cover this.


UNION (ALL) only gives data from table 1

UNION and UNION ALL only gives data from first table when source are HTML tables while rows from the second table are empty.
Please see the issue in action at: http://jsfiddle.net/yp83t1p9/
The problem is illustrated here where the last "rows" are empty:
[
    {
        "ID": "ID",
        "Name": "Name",
        "Month": "Month",
        "Savings": "Savings"
    },
    {
        "ID": "111",
        "Name": "John",
        "Month": "January",
        "Savings": "$100"
    },
    {
        "ID": "122",
        "Name": "Rianna",
        "Month": "Feb",
        "Savings": "$200"
    },
    {
        "ID": "133",
        "Name": "Michael",
        "Month": "Mar",
        "Savings": "$300"
    },
    {},
    {},
    {},
    {}
]

Took me ages to understand this was a bug! :(
Same result here, see http://jsfiddle.net/L8471bnk/116/ and
http://stackoverflow.com/questions/35894671/alasql-union-or-union-all-only-gives-results-from-table1

Sorry to hear you spend a lot of time because of this bug.
Thanks for adding material to the case.

+1

+1

Hi!
It seems that the issue is still present. The query provided on the stackoverflow by @agershun below does not unite the results and we get data from first table only.
https://stackoverflow.com/questions/34527959/parse-a-jsonwith-array-and-objects-and-export-the-data-into-excel-file-in-node/34771859#34771859

Solved here: https://github.com/agershun/alasql/issues/75

Hi @Co0olCat - thank you for tipping in. You are referring to something that got merged in 2015 - are you sure it is still valid?

Yes. thank you.

@mathiasrw what was the solution here? I am still observing this issue as described

Oh!


[WIP] Does the size of TypeInfo really matter?

Just a test.  Please do not merge.

I don't see why the toolchain can't just use what's supplied by the runtime, and emit compiler errors or linker errors if something user code, implicitly or explicitly, tries to use something that's not there.  I'm trying to explore how to implement 12270.  Feel like lending a hand?

Reopening, as my local tests seem to prove that removing this check is benign.  Still it's just an exploration.


Feature: monoio runtime support

What does this PR do
This PR adds a new crate openraft-rt-monoio, which provides a type MonoioRuntime that has AsyncRuntime implemented to enable users to run Openraft on Monoio.
PR remains in draft stage until we have runtime test suite implemented and have this crate tested.
Some details

This new crate is called openraft-rt-monoio, while for the directory name, we simply use rt-monoio as it lives in the Openraft repo.

Crate version
It uses the same version number as other crates:
version       = { workspace = true }

The primitive wrapper types are put in a private module so that they are not exposed to the users, I did this because this approach is how we handle those the primitives used with TokioRuntime. However, this is indeed one exception, TokioInstant was re-exported to the users.

Checklist

[ ] Updated guide with pertinent info (may not always apply).
[ ] Squash down commits to one or two logical commits which clearly describe the work you've done.
[ ] Unittest is a friend:)

This change is

I am not sure about the root cause of that lint CI failure, I guess it fails because  rt-monoio needs to enable the singlethreaded feature, which makes it incompatible with other crates?

I am not sure about the root cause of that lint CI failure, I guess it fails because rt-monoio needs to enable the singlethreaded feature, which makes it incompatible with other crates?

Yes, monoio is !Sync.

I am wondering should we have integration tests for this crate?

I am wondering should we have integration tests for this crate?

Integration test can be done by replacing this runtime setup with feature-flag enabled runtime, and running the tests/ crate with monoio. tests crate needs a new feature flag to disable tokio and enable monoio:
https://github.com/datafuselabs/openraft/blob/4a33b5f0b6236098121a44e736152eef25ec1cfa/tests/tests/fixtures/mod.rs#L88-L112

Besides this, Looks like we still need to:

Add a monoio-rt feature to the memstore crate
Replace the tokio::* stuff used in the integration tests with counterparts of the configured runtime.

I tried it a little bit, step 2 seems hard to do, looks like we have to "hack" those async test functions' signatures to add a generic runtime type so that we can use the stuff configured in it:
#[test_harness::test(harness = ut_harness)]
async fn conflict_with_empty_entries<Rt: AsyncRuntime>(: Rt) -> Result<()> {
   Rt::sleep(Duration::from_secs(1)).await;
    Ok(())
}

And, I have tried it a little bit, looks like this is not something we can do with ut_harness(), I guess we have to write our proc macro rather than using the macro provided by the test_harness crate, this macro should turn:
#[our_test_macro]
async fn conflict_with_empty_entries<Rt: AsyncRuntime>(: Rt) -> Result<()> {
   Rt::sleep(Duration::from_secs(1)).await;
    Ok(())
}

into:
#[test]
fn conflict_with_empty_entries() {
    #[allow(clippy::let_unit_value)]
    let _g = init_default_ut_tracing();

    async fn conflict_with_empty_entries<Rt: AsyncRuntime>(: Rt) -> Result<()> {
       Rt::sleep(Duration::from_secs(1)).await;
        Ok(())
    }

    let res;
    cfg_if::cfg_if! {
        if #[cfg(feature = "monoio-rt")] {
            let mut rt = monoio::RuntimeBuilder::<>::new().enable_all().build().unwrap();
            let rt_val = MonoioRuntime;
            res = rt.block_on(async {
                test(rt_val).await;
            });
        } else {
            let rt = tokio::runtime::Runtime::new().unwrap();
            let rt_val = TokioRuntime;
            res = rt.block_on(async {
                test(rt_val).await;
            });
        }
    }
    if let Err(e) = &res {
        tracing::error!("{} error: {:?}", /*func_name*/, e);
    }
}

We can get the function name through the macro, so no need to use that func_name() function.

Integration test can be done by replacing this runtime setup with feature-flag enabled runtime, and running the tests/ crate with monoio. tests crate needs a new feature flag to disable tokio and enable monoio:

Besides this, Looks like we still need to:

Add a monoio-rt feature to the memstore crate
Replace the tokio::* stuff used in the integration tests with counterparts of the configured runtime.

I tried it a little bit, step 2 seems hard to do, looks like we have to "hack" those async test functions' signatures to add a generic runtime type so that we can use the stuff configured in it:
#[test_harness::test(harness = ut_harness)]
async fn conflict_with_empty_entries<Rt: AsyncRuntime>(: Rt) -> Result<()> {
   Rt::sleep(Duration::from_secs(1)).await;
    Ok(())
}

And it seems that this is not something we can do with ut_harness(), I guess we have to write our proc macro rather than using the macro provided by the test_harness crate, this macro should turn:
#[our_test_macro]
async fn conflict_with_empty_entries<Rt: AsyncRuntime>(: Rt) -> Result<()> {
   Rt::sleep(Duration::from_secs(1)).await;
    Ok(())
}

into:
#[test]
fn conflict_with_empty_entries() {
    #[allow(clippy::let_unit_value)]
    let _g = init_default_ut_tracing();

    async fn conflict_with_empty_entries<Rt: AsyncRuntime>(: Rt) -> Result<()> {
       Rt::sleep(Duration::from_secs(1)).await;
        Ok(())
    }

    let res;
    cfg_if::cfg_if! {
        if #[cfg(feature = "monoio-rt")] {
            let mut rt = monoio::RuntimeBuilder::<>::new().enable_all().build().unwrap();
            let rt_val = MonoioRuntime;
            res = rt.block_on(async {
                test(rt_val).await;
            });
        } else {
            let rt = tokio::runtime::Runtime::new().unwrap();
            let rt_val = TokioRuntime;
            res = rt.block_on(async {
                test(rt_val).await;
            });
        }
    }
    if let Err(e) = &res {
        tracing::error!("{} error: {:?}", /*func_name*/, e);
    }
}

We can get the function name through the macro, so no need to use that func_name() function.

The integration test can be done in a separate PR since it is relatively independent of this one.
You do not need to modify the function signature: tests uses memstore::TypeConfig as its type config.
Therefore in functions in the tests crate you can just use AsyncRuntime methods such as TypeConfig::sleep().
https://github.com/datafuselabs/openraft/blob/4a33b5f0b6236098121a44e736152eef25ec1cfa/tests/tests/fixtures/mod.rs#L69
I did not try but it looks like memstore should be able to work with monoio 🤔

You do not need to modify the function signature:

You are right, we can directly use openraft_memstore::TypeConfig in the tests function:
<openraft_memstore::TypeConfig as openraft::type_config::TypeConfigExt>::sleep(Duration::from_secs(1)).await;

The integration test can be done in a separate PR since it is relatively independent of this one.

Get it, I will do this in a separate PR:)

Emm, I didn't squash my commits:<

Emm, I didn't squash my commits:<

:( squashed and force pushed.


Share collections

Is your feature request related to a problem? Please describe.
I am playing the game with friends and we are helping each other to fill their collections. Right now, the only way to do that is to take several screenshots of the application.
Describe the solution you'd like
A way to export the data to share it with friends. It may just be a txt file containing the names of all the items with titles like the ones in the app.

Would just a txt file be fine. I could also have it export a custom graphic (png)?

I have no idea which option would be better... With a txt, there is a way to search for an item that you may have among the ones needed by the others but with a picture, you may compare your collection and your friend's more easily.

Hey @Lysoun, I just added this to the new hamburger menu. You can copy your caught items into your clipboard. You can also import them back into the app!


Posterior predictions for count proportions/percentages

Goal
The goal of this issue is to add to existing observation processes to include proportion (or %) of some underlying total count are from a particular pathogen of interest.
Context
CDC releases emergency dept visits dues to specific pathogen infection as %s of total visits, for example: proportion of ED visits due to Covid. Therefore, it makes sense to be capable of observing, and nowcasting/predicting this target.
My first view on modelling this is that the lowest difficulty appropriate modelling approach is to have:

A pyrenew model for count incidence of the target pathogen $E(t)$. Functionality for this exists already.
An independent model to predict total counts less the target pathogen $N(t)$.

Then the proportion of interest is:
\text{perc. total counts are target pathogen} = 100 \times \frac{E(t)}{E(t) + N(t)}.

Which we can sample from the posterior distribution of the model, either with an independent sample of $N(t)$ or a point est of $N(t)$.
Alternative approaches to consider
Main alternative is to treat the proportion of interest as the target, rather than the approach above which treats the inference problem as a transformation on currently existing inference dependent on the sampling/point est of an independent model.
Required features

[ ] #53
[ ] An observation transformation approach which converts count predictions in to $N(t)$ dependent proportion predictions.

Specifications
Potentially to be added after investigation.

@damonbayer is #68 aimed at the completing the second task here?


Add a missing env value for Cloudfront in ADVANCED.md

The STORAGE_REDIRECT is disabled by default so we should specify STORAGE_REDIRECT=true in docker run command as an env value.

LGTM


No Support For Wagtail 4.1+

i am unable to use this package as it don't supporting the latest version of wagtail.

@virendracarpenter

I see no reason to use this package in conjunction with Wagtail.
Despite this, they feel great together


Remove un-needed realpathing of sys.argv[0].

Fixes #2006

I'm willing to bet they'll be a macOS failure revolving around its damn /var/folders shenangans; so expect more changes coming to fix old tests that don't get the /tmp path they expected in some output.

@jamesmeador if you could test this, that would be great.
Two easy ways:
pex pex@git+https://github.com/jsirois/pex@issues/2006 -cpex -- <your normal Pex command line here>

Or:
pex pex@git+https://github.com/jsirois/pex@issues/2006 -cpex -opex-fix.pex
pex-fix.pex <your normal Pex command line here>

@jsirois asked on the issue what the use case is:
We're using a pex for git server hooks, and these need to be named "update" or "pre-receive" in order for this to work as expected.
We caught this during migrating our target from pants (using pex v1.25) to bazel (using pex >=v2.1.91)

Thanks @jamesmeador. In that case this fix should work, but if you can test using the instructions above that would be great. I don't want to release a non-fix.

I haven't done this before manually -- our pexes are built via pants/bazel, but here was a first go and I'm pretty confident this is not what you meant for me to do:
python3 -m pex pex@git+https://github.com/jsirois/pex@issues/2006 -cpex -- dist/git_server_hook.pex

I'm sporadically unavailable today but will try to respond as promptly as possible.

@jamesmeador almost:
python3 -m pex pex@git+https://github.com/jsirois/pex@issues/2006 -cpex -- <Pex CLI args that would build dist/git_server_hook.pex normally>

In other words think:
pex == python3 -m pex pex@git+https://github.com/jsirois/pex@issues/2006 -cpex --
More generally, for any random console script (let's say arcs) from some distribution (let's say sd):
arcs == python3 -m pex sd==1.2.3 -c arcs --
Thanks for taking the time to test.


Replace Include Guards with #pragma once

Replace Include Guards with #pragma once. While not standardized it's widely supported and less prone to errors.

Please let me know if there are any objections.


Debug action icon does not reflect the current session

Create some concurrent debug sessions:

start a "launch" debug session
start a "attach" debug session

Observe: terminate action shows "plug" icon (for attached state)

switch to "launch" debug session

Observe: terminate action still shows "plug" icon

press "plug" icon terminates the "launch" session.

(I saw this with my Cluster prototype)

The issue here is that the actions update on the focused process update. However in this case the process can not be focused since it has no stack frame. This is basically a duplicate of https://github.com/Microsoft/vscode/issues/18426


Infinite loop

First of all, sorry about my English.
I'm in a loop with my login.
this is my root code, in app.component
  constructor(private oauthService: OAuthService, private route: Router) {
     if (!this.oauthService.hasValidAccessToken()) {
       this.route.navigate(['login'])
     }
  }

login.component

  ngOnInit(): void {
    this.oauthService.configure(authConfig);
    this.oauthService.tokenValidationHandler = new NullValidationHandler();

    this.oauthService.loadDiscoveryDocumentAndTryLogin().then(_ => {
      if (!this.oauthService.hasValidAccessToken()) {
        this.oauthService.initCodeFlow()
      } else {
        this.oauthService.setupAutomaticSilentRefresh();
      }
    })
  }

after execute these steps, i can login in my oauth server but, when i redirect to my local my page insists to login again. i've trying all code exemples in this repo and documentation, and none of them works to me.
Auth.guard
    if (!this.oauthService.hasValidAccessToken()) {
      this.route.navigate([AppRotasEnum.LOGIN]);
      return false;
    }
    return true;

routing.module
const routes: Routes = [
  {
    path: AppRotasEnum.PAINEL_PRINCIPAL,
    //remover lazy loading apos criar componente
    loadChildren: () =>
    import('./modules/painel-principal/painel-principal.module').then(
      (m) => m.PainelPrincipalModule
    ),
    canActivate: [AuthGuard],
  },
  {
    path: AppRotasEnum.ANALISE_MERITO,
    loadChildren: () =>
      import('./modules/analise-merito/analise-merito.module').then(
        (m) => m.AnaliseMeritoModule
      ),
     canActivate: [AuthGuard],
  },
  {
    path: AppRotasEnum.NONE,
    redirectTo: AppRotasEnum.PAINEL_PRINCIPAL,
    pathMatch: 'full',
  },

 {
    path: '**',
    component: LoginComponent,
  },
];

@NgModule({
  imports: [RouterModule.forRoot(routes, {
    useHash: true
  })],
  exports: [RouterModule],
})
export class AppRoutingModule {}

My error cause is because my token endpoint take too time to return and store session, there is a way to wait it before my routing?

You can make an async guard that "waits" until it returns a value. You could use my sample guard:
  canActivate(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot,
  ): Observable<boolean> {
    return this.authService.canActivateProtectedRoutes$
      .pipe(tap(x => console.log('You tried to go to ' + state.url + ' and this guard said ' + x)));
  }

Which relies on this composite observable:
  public canActivateProtectedRoutes$: Observable<boolean> = combineLatest([
    this.isAuthenticated$,
    this.isDoneLoading$
  ]).pipe(map(values => values.every(b => b)));

If you check my sample login sequence you'll find that:

isAuthenticated$ effectively gives the latest this.oauthService.hasValidAccessToken() state as an observable stream

isDoneLoading$ is an observable stream that only publishes anything (true) when the login sequence is completely done (including possible errors)

Hope that helps.

Try capturing the search argument from the redirect URL (containing the code and state), and passing this in options to TryLogin.
For example:
            return await this.oauthService.loadDiscoveryDocumentAndLogin(
                {customHashFragment: window.location.search}
            );

The problem seems to be a race between the Angular route navigation and resolving the code from the redirected page URL. The navigation by Angular Router can happen right after the redirect from Authorization Server to your Angular App happens, but before it is processed. I noticed this more on Firefox (Chrome seems to leave the navigation until after request is processed)
In tryLoginCodeFlow() there is a section that can take the argument from options as customHashFragment (or if not set then, from window.location.search)
https://github.com/manfredsteyer/angular-oauth2-oidc/blob/8d152c20ea1dab006a7eca02898260254872e79b/projects/lib/src/oauth-service.ts#L1620
The solution above takes this search value and passes it all the way down to tryLoginCodeFlow().

@jeroenheijmans
Hi .. I have the same issue with infinite loop and I tried to use you solution and it looks like good . But in my I would like to showthe login page of IdP without click on a button .. I mean I would like to check in my app.component if the use is authenticated I show pahe otherwise the loginPage.. I try this code but I also got infinite : How can I do that please.
 constructor (
    private authService: AuthorizationService,
  ) {
    this.isAuthenticated = this.authService.isAuthenticated$;
    this.isDoneLoading = this.authService.isDoneLoading$;
    this.canActivateProtectedRoutes = this.authService.canActivateProtectedRoutes$;

    this.authService.runInitialLoginSequence();
    this.login();
  }
  login() { this.authService.login(); }

@madiyana I think you need to remove this.login() (in any case, as the sequence before it is asynchronous) and then:

either use a guard to force login if you want it not for all pages
or use a step inside the sequence if you ALWAYS want this to happen

@jeroenheijmans  Thanks so much .. really thanks .. Yes I remove the 'this.login()' from my component and I use the guard to force login and it is nice .. Thank ..
I have an other question about the logout() button ... It does not redirect to my IDP login page .. I use this code ..
this.oAuthService.logOut() ...  And it is strange when I click on logout button in my Url I have this ...
http://localhost:4200/home#access_token=eyJraWQiOiI0Yk9XS0NFQk1VbTl&state=bE9xLUJUQTVaUWFSUkRPOTJJazh3ejh4bkZHSkxYVzJ5dWNaQTFoRElVSmVV&token_type=Bearer&expires_in=3600 .. Do you know what I missed or wrong ?

Nice, good to hear this helped you solve things!


Duplicated ADRB2 tests

asset 307+385 appear to be identical (top:albuterol increases activity or abundance of ADRB2). Duplicated tests have been pointed out before https://github.com/NCATSTranslator/Tests/issues/28

Good catch. I've deleted asset 385.


Ramen Version tab doesn't always open

Seems to be fixed as of:
https://github.com/louisVottero/vtool/pull/579


The URL in the routes using ngRoute is encoded

Recently I have noticed that when using ngRoute module in an AngularJS app, the route contains #! in the URL, which was earlier just the #.
For example, www.webiste.com/#/login becomes www.website.com/#!/login but that does not work. As soon as I try to navigate to www.website.com/#!/login, the URL changes to www.website.com/#!%2Flogin.
I have to enable the html5Mode and also disable the requireBase which removes the base as a whole using the code,
$locationProvider.html5Mode({
       enabled: true,
       requireBase: false
});

and the URL changes to www.website.com/login which works fine but is misleading and is not what Angular SPA URLs look like.
If I do not enable the html5Mode, the URL is encoded and I cannot get around it. So www.website.com/#/login becomes www.website.com/#!/#%2Flogin (Notice the later / is encoded as %2F).

This is a documented breaking change.

If you are encountering the issue with angular 1.6 and further versions, this might be because AngularJS 1.6 has changed the default for hash-bang urls in the $location service.
Further you can resolve the same by using :
app.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);


Rework OCR file handling

Description
This PR reflects the ideas discussed in #300.
In detail this is:

replace the copy process around the OCR language files by a decoupled approach based on soft links
decoupling: separation of custom files and system files
get rid of the copy processes (takes less resources)
reduces image size (takes less resources)
simplifies the process for the user (also make it more robust)
additional: improved the language package installation (replace a loop by a single command)

Checklist:

[x] I have read the Contribution Guidelines
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings

Contributor License Agreement
By submitting this pull request, I acknowledge and agree that my contributions will be included in Stirling-PDF and that they can be relicensed in the future under the MPL 2.0 (Mozilla Public License Version 2.0) license.
(This does not change the general open-source nature of Stirling-PDF, simply moving from one license to another license)
I'm happy to hear your thoughts about this!

Also solves #511

WDYT?

If you find the change to be too breaking, you might consider pushing the version number to 1.0 along with some other features.

Why did you reject this PR?


1.19-pre2 update

i just patched a mixin's arguements, luckily even though the new class is unmapped, its given its intermediary name and in the jar its using everything under intermediary, thus it should work.
i didn't test anything more I just saw why a mixin inject failed and decided to patch it

Full 1.19.1+ support added in later patch, but thank you!


Begin user interface implementation with app loading and URL fragment router

This gets the app loader and the first implementation of the URL fragment router in place.

Coverage increased (+0.08%) to 98.195% when pulling 4a453b41dab1ebde12ee4021a119cb66f22146c6 on ui-init into b62909db293b33bae018b9dc39cf3fa3b1ca775f on master.


Bug: Reply button covers last note of the thread

When looking at a thread, the FAB for Reply is hovering and blocking part of the last note (bottom) on the thread.
This could be easily solved by adding some padding at the bottom of that screen, so when you scroll to the bottom you always have blank space that allows you move the note to the visible area.

Hello @diegogurpegui , I kept this into consideration while implementing the new UI, do you want to have a look?

I just took a look and it works well now, thanks! :+1:


font family

Julio the colors, font sizes and margins and paddings are not correct. Did you also check the responsive  design?


converted Dictionaries into one function that returns an object of Ra…

Closes #110 . I removed the dictionaries and created a function that returns a new instance of RankContainer.
The function will receive an argument of id and a rank type (either 'Rank' or 'LegacyRank'). If the id (ranging from 0-23) is found, then RankContainer.id = id. Depending on the rank type, it will return either the respective rank name and the correct url.
I also created a string array variable that stores the ranks that were in dictionaries "Ranks" and "LegacyRanks". Let me know if this is okay. I am willing to change if not.
Thanks again @aspriddell for letting me work on this issue!

fwiw you've got 4 nested if statements: the string check for Rank and LegacyRank, the switch itself (which is compiled to if-else), the rank name and the icon url stub)


Dart language and "code+pkce flow" Question

@Flutter Team;
We plan to use Identity Server 4 (https://identityserver.io/) as out authentication server for our .Net REST server and we want to build our native client in Fullter.
I contacted the chief principle of Identity server and asked if they plan to have an client SDK for Flutter
https://github.com/IdentityServer/IdentityServer4/issues/2942#issuecomment-453755458
And he responded as following:

It looks like Flutter is written in dart. I don't know of any reference implementation in dart for native apps to use code+pkce flow with the system browser, but the two reference implementations for android and iOS are here:

Could flutter team respond to his question either here or directly on the thread I provided above?
We really need a native SDK in Flutter to communicate with IS4.
Thanks in advance

you guys can just use appauth? you should not be using pkce flow natively.

Yeah I think I need this feature too. Because in my organization, for authentication and authorization always using Identity Server 4. Please consider to make this package for Flutter too.

you guys can just use appauth? you should not be using pkce flow natively.

This should be the plugin needed for the implementation: https://pub.dev/packages/flutter_appauth


IP Interface Assignment Missing Global VRF

Issue type
[ ] Feature request
[x] Bug report
[ ] Documentation
Environment

Python version: 3.5.2
NetBox version: 2.2.5

Description
When assigning an IP address to an interface with the newly fixed IP mapping tab, you are unable to assign any public IPs directly to the firewall that are not assigned to a created VRF. As most public IPs are not assigned to a VRF as they are Global and unique, this means we still need to do the workaround for directly assigned public IPs.
Fix
To add the Global VRF as searchable option

I only use the global VRF, and on testing it works fine for me; the "Assign IP" tab shows VRF: -------- (implying global VRF)
I also tried creating a new VRF. Then the "Assign IP" tab has two options in VRF dropdown (-------- plus the new VRF I created).  And it still works for me: with -------- selected I can find IPs in the global VRF.
Can you explain how to replicate the problem?  Or is it just a question of changing the label -------- to Global for clarity?

As @candlerb said I think this is just a cosmetic issue where we're not labeling the "null VRF" as global. We definitely want to be consistent with the labeling though.


Add SPDX License Identifiers to all source file headers

Motivation
As part of our continuous effort to align with CNCF IP Policy, we requested a license scan. This scan revealed no outstanding issues, but there were a couple of recommended action items.
One reported action item is:

Action Item 2:  Add SPDX License Identifiers to all source file headers.

We recommend that SPDX license identifiers be added to ALL source file headers.  [see https://spdx.dev/ids for examples]

#### Action item
- [ ] Add SPDX License Identifiers to all source file headers in all repositories
- [ ] https://github.com/falcosecurity/.github/pull/117
- [ ] https://github.com/falcosecurity/falco/pull/2809
- [ ] https://github.com/falcosecurity/libs/pull/1387
- [ ] https://github.com/falcosecurity/libs/pull/1390
- [ ] https://github.com/falcosecurity/falcoctl/pull/330
- [ ] https://github.com/falcosecurity/plugin-sdk-go/pull/82
- [ ] https://github.com/falcosecurity/plugins/pull/362
- [ ] https://github.com/falcosecurity/rules/pull/183
- [ ] https://github.com/falcosecurity/falcosidekick/pull/664
- [ ] https://github.com/falcosecurity/driverkit/pull/294
- [ ] https://github.com/falcosecurity/event-generator/pull/87
- [ ] https://github.com/falcosecurity/falco-exporter/pull/94
- [ ] https://github.com/falcosecurity/falco-aws-terraform/pull/5
- [ ] https://github.com/falcosecurity/falcosidekick-ui/pull/125
- [ ] https://github.com/falcosecurity/flycheck-falco-rules/pull/5
- [ ] https://github.com/falcosecurity/plugin-sdk-cpp/pull/26
- [ ] https://github.com/falcosecurity/test-infra/pull/1254
- [ ] https://github.com/falcosecurity/dbg-go/pull/29
- [ ] https://github.com/falcosecurity/pigeon/pull/16
- [ ] https://github.com/falcosecurity/testing/pull/32
- [ ] https://github.com/falcosecurity/kernel-crawler/pull/178
- [ ] https://github.com/falcosecurity/syscalls-bumper/pull/17
- [ ] https://github.com/falcosecurity/kernel-testing/pull/73
- [ ] https://github.com/falcosecurity/falco-playground/pull/33
- [ ] https://github.com/falcosecurity/evolution/pull/327

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

This is done.


Make the Entanglement component API sugar

We can prioritize having the communicationAdapter passed as arguments to the materialize and scatter HOCs, and if the user wants... they can use the Entanglement component to set it in the context.

So the idea is that we are ditching the HOCs, but we will support both having the adapter available in the context or defined locally as a prop of either the Materialize or Scatter components:
So you could have the same result using either the context:
// Main App
<Entanglement adapter={adapter}>

    <Scatter name='Dialog' props={props} />

</Entanglement>

// Remote App
<Entanglement adapter={adapter}>

    <Materialize name='Dialog' component={Dialog} />

</Entanglement>

Or directly in the components:

// Main App

  <Scatter name='Dialog' props={props} adapter={adapter} />

// Remote App

  <Materialize name='Dialog' component={Dialog} adapter={adapter} />

We've also decided to not have the Scatter component fallback to the default implementation if the adapter is not available. This should be handled by the user! If the adapter is not available we shall give a warning!
If there is conflicting adapters, either component/wrapper or wrapper/wrapper we should warn as well.
This was elaborated in conjunction with @xaviervia in a real room! Not in the interwebs... 😳

Was fixed in #9


Added support for ruff update

Added two new hooks to be compatible with ruffv0.6.2 and made previous ruff hook backs compatible.

@all-contributors please add @Anu-Ra-g for bugs, infra


[WIP] Reporting nodes

Adds a few reporting nodes to get closer to parity with contexture-elasticsearch

[x] Add termsStats example type
[x] Add dateHistogram example type
[x] Add skipCount flag to results to avoid getting counts <-- this can be a big performance win
[x] Fix meta request logging to wrap collection and aggs under a request key

Messages

:book:

We were able to automatically fix some formatting issues in this PR for you!

  Generated by :no_entry_sign: dangerJS

Fails

:no_entry_sign:

Danger failed to run /home/circleci/project/node_modules/duti/src/dangerfile.js.

Error TypeError [ERR_INVALID_ARG_TYPE]
The "path" argument must be of type string
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string
    at assertPath (path.js:39:11)
    at Object.resolve (path.js:1091:7)
    at /home/circleci/project/node_modules/duti/src/utils.js:31:10
    at <anonymous>

Dangerfile
33|       config,
34|       message: log(message),
35|       lintResults: await getLintResults({ config }),
36|       testResults: await getTestResults({ config }),
37|       browserResults: await getBrowserResults({ config }),
38|     })
-------------^
39|   )
40| })
41|

  Generated by :no_entry_sign: dangerJS against 901e08265009f0d9ffc16748fe66c1b1f1ce7d32


#87: Flag redundant whitespace in and around parentheses

Resolves #87.

Current coverage is 90.31%

Merging #260 into master will increase coverage by +0.12% as of 912e702

Powered by Codecov. Updated on successful CI builds.

:+1:


Import Error

When attempting to add to Blender I get an error reading: AttributeError: type object 'PatreonButton' has no attribute 'code'.
This is on 0.13.2.

Please try again with 0.14.0


Follow up on refactor

[ ] implement another writer to validate the concept #82
[ ] create the distributor #20
[x] make reader more efficient #80
[x]  #75

this is done


fuelup - forc binary distribution and toolchain manager

We need a version manager similar to rustup that allows downloading, installing, and managing different versions of the compiler and forc. I suggest calling this forcup.
For now, the version manager should be able to:

[ ] Download a toolchain for a provided architecture from GitHub (depends on FuelLabs/sway#1191). The toolchain includes a docs directory.
[ ] Also download plugins (forc-fmt, forc-lsp, etc.).
[ ] Set the default toolchain version.
[ ] Enable reading of the default toolchain version (so that forc can detect when you're using the wrong version that doesn't match what's configured in the manifest file).

Yes, the compiled mdbook files. This can be deferred to a future PR.

(Going to use this as somewhat of a tracking issue, so I'm posting my discussion here 😅 )
Toolchain version management & what a stable toolchain means
Had a short chat with @mitchmindtree regarding how the toolchain should look like. Would love to get more ideas on this topic of toolchain versioning and management. The main question for us in my mind is: what would constitute as stable toolchain? #6
@mitchmindtree brought up a good point that forc and fuel-core are meant to be independent projects i.e. in future Sway can also target other VMs, but they are also meant to work together right now. In which case the onus might be on us to define what a stable toolchain is i.e. do we want to package specific versions of forc, forc-fmt, fuel-core etc. together ourselves and label it as stable, or do we want to allow devs to freely control versioning of each of the above crates? At first I thought the second approach seemed nicer since it gave granular control but later on Mitch convinced me that the first approach is better as fuelup is meant to be as simple as possible for devs to use - in that case we should probably minimise the number of active decisions they make when using the toolchain.
@mitchmindtree gave a few suggestions:

depending on whether we use stable or nightly, we first pick the appropriate forc, then we pick whichever latest stable or nightly release of fuel-core
select the version of fuel-core from the forc CI (serves as a good base to work from since we would know its well tested)
maintain a simple file fuel-core-version in the Sway repo containing the semver version of fuel-core which we test against, then both forc CI and fuelup know which version to use from there.

For reference, the Rust toolchain operates on a train schedule which means the stable, beta and nightly toolchains are on a fixed schedule, and depend on not having breaking bugs to be labelled as stable. I'm not sure how the rust toolchain used to be like before 1.0 and how they synced - Mitch said they might not have been synced before and it's something I'll look into

Rust nightly isn't the same as build-each-night. cc @mitchmindtree for more explanation.
I think we should avoid actual nightly builds against master, as they're not guaranteed to have any stability. Release builds are often enough that nightly builds simply aren't needed, and have at least a bit of guarantees around stability.

Rust nightly isn't the same as build-each-night. cc @mitchmindtree for more explanation.

Ah, this was exactly my understanding of what nightlies were :joy: At least in the early days my understanding is that it was roughly a cron job that would build everything, run a bunch of tests, and if anything failed it would just not release that night, so the latest nightly was always whatever the most recently successful build was.
That was years ago though, I'm not aware of how Rust's nightlies operate today. @binggh would certainly be worth investigating!

it is done


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 76 ms

Resolved: ClamAV performance has improved in f7ba755 after 5 minutes.


Weird 3D effect in ToggleButtons

When canvaskit is used as web renderer than widget ToggleButtons has weird 3D effect on switching.

Hi @bambinoua
Can you please provide your flutter doctor -v and a minimal complete reproducible code sample?
Thank you

Hi @bambinoua
Can you please provide your flutter doctor -v and a minimal complete reproducible code sample?
Thank you

[√] Flutter (Channel beta, 1.25.0-8.2.pre, on Microsoft Windows [Version 10.0.19041.685], locale ru-RU)
    • Flutter version 1.25.0-8.2.pre at D:\Programs\Flutter\sdk\flutter
    • Framework revision b0a2299859 (18 hours ago), 2021-01-05 12:34:13 -0800
    • Engine revision 92ae191c17
    • Dart version 2.12.0 (build 2.12.0-133.2.beta)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Platform android-29, build-tools 29.0.3
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[√] Connected device (2 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 87.0.4280.88

Create a release version:
flutter build web --web-renderer canvaskit --release

Sample:
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _isSelected = List.generate(3, (index) => false);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      body: Center(
        child: ToggleButtons(
          children:
              List.generate(_isSelected.length, (index) => Text('$index')),
          isSelected: _isSelected,
          onPressed: (index) {
            setState(() {
              for (var i = 0; i < _isSelected.length; i++) {
                _isSelected[i] = i == index;
              }
            });
          },
        ),
      ),
    );
  }
}

[√] Flutter (Channel beta, 1.25.0-8.2.pre, on Microsoft Windows [Version 10.0.19041.685], locale ru-RU)
    • Flutter version 1.25.0-8.2.pre at D:\Programs\Flutter\sdk\flutter
    • Framework revision b0a2299859 (18 hours ago), 2021-01-05 12:34:13 -0800
    • Engine revision 92ae191c17
    • Dart version 2.12.0 (build 2.12.0-133.2.beta)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Platform android-29, build-tools 29.0.3
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[√] Connected device (2 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 87.0.4280.88

Create a release version:
flutter build web --web-renderer canvaskit --release

Sample:
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _isSelected = List.generate(3, (index) => false);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      body: Center(
        child: ToggleButtons(
          children:
              List.generate(_isSelected.length, (index) => Text('$index')),
          isSelected: _isSelected,
          onPressed: (index) {
            setState(() {
              for (var i = 0; i < _isSelected.length; i++) {
                _isSelected[i] = i == index;
              }
            });
          },
        ),
      ),
    );
  }
}

I was able to reproduce this on latest beta and master and channel. I can confirm that this is a CanvasKit only issue.

flutter doctor (master)

flutter doctor -v (beta)
[✓] Flutter (Channel beta, 1.25.0-8.2.pre, on Mac OS X 10.15.7 19H2 darwin-x64, locale en)
    • Flutter version 1.25.0-8.2.pre at /Users/pedromassango/dev/SDKs/flutter_beta
    • Framework revision b0a2299859 (2 days ago), 2021-01-05 12:34:13 -0800
    • Engine revision 92ae191c17
    • Dart version 2.12.0 (build 2.12.0-133.2.beta)

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

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2020.3.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 52.1.5
    • Dart plugin version 203.6912

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

[✓] Connected device (3 available)
    • Redmi 5 Plus (mobile)      • 0258ff700005  • android-arm64  • Android 8.1.0 (API 27)
    • sdk gphone x86 64 (mobile) • emulator-5554 • android-x64    • Android 11 (API 30) (emulator)
    • Chrome (web)               • chrome        • web-javascript • Google Chrome 87.0.4280.88

• No issues found!
Process finished with exit code 0

I was able to reproduce this on latest beta and master and channel. I can confirm that this is a CanvasKit only issue.

flutter doctor (master)

flutter doctor -v (beta)
[✓] Flutter (Channel beta, 1.25.0-8.2.pre, on Mac OS X 10.15.7 19H2 darwin-x64, locale en)
    • Flutter version 1.25.0-8.2.pre at /Users/pedromassango/dev/SDKs/flutter_beta
    • Framework revision b0a2299859 (2 days ago), 2021-01-05 12:34:13 -0800
    • Engine revision 92ae191c17
    • Dart version 2.12.0 (build 2.12.0-133.2.beta)

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

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2020.3.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 52.1.5
    • Dart plugin version 203.6912

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

[✓] Connected device (3 available)
    • Redmi 5 Plus (mobile)      • 0258ff700005  • android-arm64  • Android 8.1.0 (API 27)
    • sdk gphone x86 64 (mobile) • emulator-5554 • android-x64    • Android 11 (API 30) (emulator)
    • Chrome (web)               • chrome        • web-javascript • Google Chrome 87.0.4280.88

• No issues found!
Process finished with exit code 0

So should I post an issue to them?

So should I post an issue to them?

Here is the right place to post the issue. Thank you for doing that!

Here is the right place to post the issue. Thank you for doing that!

I'm having the same effect with Flutter Desktop macOS on the dev branch.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, 1.26.0-17.1.pre, on Mac OS X 10.15.7 19H114
    darwin-x64, locale fr-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.3.2)
[✓] Connected device (2 available)

• No issues found!

I'm having the same effect with Flutter Desktop macOS on the dev branch.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, 1.26.0-17.1.pre, on Mac OS X 10.15.7 19H114
    darwin-x64, locale fr-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.3.2)
[✓] Connected device (2 available)

• No issues found!

This is a very old issue, it has always existed since the first version when Flutter Web and ToggleButtons coexisted. Saw it maybe a year ago first time. Decided to ignore it then, but I was recently reminded of it the other day as well when I did a simple theme mode toggle button example:
https://twitter.com/RydMike/status/1356443727959588866?s=20

I found this issue since I was about to report it too, so dropping some insights on it here.

The issue is simple enough to fix and I think it should be fixed. Having this kind of 3D elevated hover as the default style is not a very modern look or design, but perhaps it is the Material way, not sure, did not check specs.
This issue also applies to all desktop platforms, it would apply to devices too if you could hover or move focus to a 'ToggleButtons` button on those platforms. It would indeed be nice to get a fix for this design before web and desktop platforms hit stable.
Why does it look this way?
The 3D elevation effect on hover and focus come from the RawMaterialButton that ToggleButtons uses in its implementation.
ToggleButtons sets, elevation and highlightElevation to 0, and they are not exposed by ToggleButtons API.

The RawMaterialButton also has disabledElevation that default to 0 and it is not set by ToggleButtons.
The problematic RawMaterialButton properties are however, 'focusElevationandhoverElevation, they both default to 4 and are not set not set, nor exposed by ToggleButtons`,

So we then see those 3D elevations by default on ToggleButtons when it is hovered, or focused by moving to it with TAB on Web or Desktop. There is nothing we can do to remove the effect since the API that would allow its removal is not exposed by ToggleButtons.
At the very least Togglebuttons need to expose all the different elevation properties by the used RawMaterialButton in the implementation, so they can be modified as required.
Personally I think that defaulting focusElevation and hoverElevation to 0 as well, would also be a welcome small breaking change. Then those that like or must have 3D hover/focus effects from the ´90s can the put them back manually. 😄

@rydmike thanks for the detailed analysis! Sounds like the issue is on the framework/material side.
/cc @goderbauer @HansMuller

It can indeed be solved in the Material layer of the SDK by just letting ToggleButtons expose a few properties from RawMaterialButton it uses, so users can adjust the look. Another question, or design choice, is of course if it should offer such configuration. If not, then flat focus & hover is probably preferred and it should set the two offending elevations to 0 in its RawMaterialButtons, Which again could be considered a small visual breaking change, but I doubt there is any test for the look, I did not check though.
It probably looks the way as it does due to an oversight, since this visual cannot be seen on current two stable platforms that don't have focus and hover highlights.
In either case it is a simple fix. A bit more if the properties are exposed as they also need to be added to Widget's theme. Personally I think including the properties is a good way, as it offers more config options to devs, I also think that even in that case the props should default to 0, as that is probably what is desired in +80% of cases.

@rydmike - I agree that the hover and focus elevations for toggle buttons should just be zero. Similar issues have  come up before - for example https://github.com/flutter/flutter/pull/65662 - however, in this case I don't think a tricky solution is needed.
Note also: as you pointed out, this isn't a web-specific issue, it occurs anywhere the focus or hover highlights come into play.
I'm going to try and land a simple fix. Existing (internal) golden image tests are likely to be the only obstacle.

@HansMuller wow thanks that was fast, it already landed in master! 💙
I totally agree the quick fix of you did of just setting focus, highlight and hover elevations to 0 is probably all that 99% of cases will ever need or use with this Widget. No need to expose them, at least not now.
Funny thing I was just going to set them to 0 to see what it looks like, but when I built my test case with master they were already flat since your fix had already landed. Nice! Thanks again. 😃

To anybody else dropping by to check up on this issue.
This is what the fixed ToggleButtons with flat highlight, hover and focus looks like with the default Flutter Light theme: ThemeData.from(colorScheme: ColorScheme.light()) and Dark darkTheme: ThemeData.from(colorScheme: ColorScheme.dark()).

As you can see the Dark mode hover is not so visible, the focus is bit more visible in dark mode, but can also be hard to spot as well. But you can easily adjust that by setting your ToggleButtons or its ThemeData to for example:
      hoverColor: Theme.of(context).colorScheme.primary.withOpacity(0.2),
      focusColor: Theme.of(context).colorScheme.primary.withOpacity(0.3),

For a slightly more visible hover and selection in dark mode, the above adjustment would look like this instead:

The code for this demo theme toggler is available here: https://github.com/rydmike/theme_demo, but using another color scheme.

Just for remind, that this 3D effect is occurred only when canvaskit is used as web renderer. IF renderer is html ToggleButtons loos fine (but fonts on some widgets become "jumping").

@bambinoua It occurred also on all desktop builds. It has been fixed now. Not sure how far down the fix has progressed channel wise, but it is at least available on master.

We work on beta channel and it is still not fixed for us.

@bambinoua the commit has not reached beta channel yet


Fix problem with logger

This PR addresses GitHub issue: #578  .
Briefly describe the changes proposed in this PR:
I found that logger's level in the config file should be declared in different way:
<logger name="my.superclass.full.of.errors.Foo" level="debug" />

Change logger's definition according to documentation
Change logging layout

I found solution for my problem:
Loggers in the abstract classes should be private static to be registered otherwise the logger from subclasse handles logs.


Restructure

acf79ea36ba52c09ddddcf1079b8a19dd8d5c320

rename src dir to zen

a06bb069e40bc4a9d4c1d1f09b8f8900f0934d9e

move header files to include dir

b99b47c2a82bb48654d770b090e77a9d008a4819

add zen subdir to include dir, and move headers to zen subdir

f261f6aac99e5d6a27a34c0b0d13a3f9c85d44e1

Scene graph was managed as a separated static library, and it was over-isolated. Fix it.

Fix this: https://github.com/zigen-project/zen/pull/71#discussion_r926270293


Bump nalgebra dependency to 0.33

This updates the library to work with the latest nalgebra, which made some breaking changes around the allocator interface (mainly?).
Tests run locally and everything seems to be fine. I'm not a Rust developer at all, so this should all be checked more carefully :grin:

Thanks for getting this in!


[verifiable-credential]: Error in DID document

When I try to verify a credential using the verifyCredential(vcJwt, resolver)  method from  the  did-jwt-vc
request URL : https://dids.testnet.verida.io:5001/load?did=did:vda:0x68fCc963f0B6057Bd48b2714F14B3305B81621b1
I get this error :

Steps to reproduce
      import { Resolver } from 'did-resolver';
      import vdaResolver from '@verida/did-resolver';

      const DID_REGISTRY_ENDPOINT = 'https://dids.testnet.verida.io:5001';

     	async verifyCredential(vcJwt: string): Promise<void> {
		const resolver = this.getResolver();
		return verifyCredential(vcJwt, resolver);
	}

	getResolver(): any {
		const resolver = vdaResolver.getResolver(DID_REGISTRY_ENDPOINT);
		return new Resolver(resolver);
	}

@cmcWebCode40 Can you please commit a unit test that causes this issue so I can replicate.

Alright, i will do that

@cmcWebCode40 Also, can you try changing your alg value to be EcdsaSecp256k1VerificationKey2019 in your credential.ts file and see if that fixes your issue?

@tahpot, I just completely wrote a test for verify credentials and it worked correctly, I will commit it now for you to have a look

@tahpot, i have committed the tests into this branch here
https://github.com/verida/verida-js/tree/feature/112-credential-library

@cmcWebCode40 Please have a look at my two most recent commits.

I moved the generate URI function into a new client-ts:Utils helper
I have modified the generate URI to hash the context name
There is a bug in your code with the database name not being set in the URI, so I added a failing unit test for you to fix

Noted.
@tahpot since we using openExternalDatastore() that's requires a schemaURI  should replace the database name with the schema uri  ?
code : https://github.com/verida/verida-js/blob/8322a1fb078ebabe38adf8a7d91598472a92ff55/packages/verifiable-credentials/src/credentials.ts#L140

@cmcWebCode40 No, because the URI can only point to a database not a datastore.
You will need to fetch the database name from the schema and then use that.

alright, thanks

@tahpot ,
I have got two errors ATM
1 . When I try to open a datastore using the database name I have retrieved from a  schema URl
e.g credential_public_encrypted (https://common.schemas.verida.io/credential/public/encrypted/v0.1.0/schema.json)
I get a 403 access denied error because its making a request to this URL  https://schemas.testnet.verida.io/credential_public_encrypted/schema.json
2 .  When I try to fetch URI using the fetchURI() method I get this error
    Error: Unable to locate requested storage context (0x42406d644c8e884be0f76ee05539cfba03eda65baa2bda33ecd364ce4d18047c) for this DID (did:vda:0xB3729982A2585544FD72c99CF3773a9c6baBD55c) -- Storage context doesn't exist (try force create?)
     at DIDContextManager.<anonymous> (/Users/chinweikemichael/Desktop/verida/verida-js/packages/client-ts/dist/did-context-manager.js:161:39)

@cmcWebCode40

You have this code:

const publicCredentials = await this.context.openDatastore(dbName, {
			permissions: options.permissions,
		});

You are opening a datastore with a database name. Datastores and databases are different. You need to use context.openDatabase() if you are opening a database.

When I try to fetch URI using the fetchURI() method I get this error

I have broken this for you with my new generateUri method. Let me have a think about this and get back to you. I'm trying to avoid having a URL with a plaintext context name (ie: verida://<did>/Verida: Vault/<db name>/<row>

The sharing-credential should focus on just sharing an existing credential object. The issuing should only live in the credential class. We want to avoid tight coupling.

@cmcWebCode40 I've pushed a change that fixes the various issues. Please take a careful look at the changes.

I'd still like you to resolve this design issue:

The sharing-credential should focus on just sharing an existing credential object. The issuing should only live in the credential class. We want to avoid tight coupling.

Also, fetchURI should also move into client-ts::Utils.

I'd still like you to resolve this design issue:

Do you mean I should not call the Credentials class inside the sharing-credential class
?

@cmcWebCode40 Yes.
The sharing class should focus just on publishing the (already created) credential to the public database and returning the URL.

ok, I think I have understood  let me resolve the design issue

@cmcWebCode40 is this still an issue?
If not can you please close.

No, this issue has been resolved!


Incorrect classNames typedef

Hey team!
I am looking to use this package in one of my projects, but am having trouble applying classes to it. I am following the documentation and have something like:
<ReactTags
  classNames={{
    root: "bg-red-500",
    rootFocused: "bg-red-500",
    selected: "bg-red-500",
    selectedTag: "bg-red-500",
    selectedTagName: "bg-red-500",
    search: "bg-red-500",
    searchInput: "bg-red-500",
    suggestions: "bg-red-500",
    suggestionActive: "bg-red-500",
    suggestionDisabled: "bg-red-500",
  }}
/>

Where the Tailwind Class bg-red-500 is being used as an obvious placeholder for relevant classes; however, the only classes that seem to impact the appearance are those applied to selected and on the Tag objects themselves. Am I simply misunderstanding how these should be impacting my UI?
To further elaborate, if I try to add any other attributes to classNames, I'll receive type errors as I am running in a typed node environment, but it seems the classNames type def is missing relevant ones while containing unused ones:
https://github.com/react-tags/react-tags/blob/cb3c1c073034be1e93a7a0d35d9707a25bf6e1ea/src/index.tsx#L143-L154
Thanks!

Created a small PR, which is likely missing some classes, but updates it to align with the constants definitions here:
https://github.com/react-tags/react-tags/blob/cb3c1c073034be1e93a7a0d35d9707a25bf6e1ea/src/components/constants.ts#L24-L36

Workaround for anyone else hitting a similar issue is to simply typecast the classNames input as any or you can type cast it as the correct version from above.
ie
<ReactTags
  classNames={{
    selected: "bg-red-500",
    tagInputField: "rounded-lg text-sm px-2 py-1",
  } as any}
/>

closed by #980


feat: use relative = 'editor', add overlap options

When using plugins such as mini.animate, status windows on the right-hand side of the editor flicker and move when they should stay in place. This is because of the relative="win" option in the windows' config, which causes them to move automatically during resize at the same time as they're moved by the incline manager. Moving to relative="editor" and manually applying window position offsets fixes this, and results in much smoother movement.
This also allows the plugin to ignore the winbar for the top-level window if configured to do so.
I also added an option to overlap the tabline, in case anyone wants that (happy to remove that if it's not wanted).

I do need to add to the help file, but the doc tests are failing at the checkout step and the errors from the schema validation tests are a bit incomprehensible. Mind giving some info on what changes would be required in the config/* files to make this work? Thanks :)

Thanks for these PRs. I'm going to look into the failing tests on main and will update you.

Sounds good!

Hi again! I'm sorry for the long delay, I was on vacation for about a month.
I fixed the failing tests and docs build on main. If you rebase on top of main, and then in test/config.lua, change your usages of Which.Is.A.DictLike to Which.Is.A.Table, the tests should pass.

Regarding the functionality, this change has a lot of edge cases to consider. There are many possible combinations of the following:

Is the tabline visible?
Is the winbar enabled/disabled?
Is the statusline per-window, global, or disabled?
Is the user's window.placement.vertical "top" or "bottom"?
What is the user's window.margin.vertical?

If it's 0, we already have special overlap behavior (described here)
If it's > 0, how does this interact with window.overlap?

If config.hide.cursorline is enabled, are we properly determining when to hide incline?

Here are a few issues I found:

Using this this config:
require'incline'.setup {
  window = {
    placement = { horizontal = 'right', vertical = 'top' },
    overlap = {
      winbar = false,
      tabline = false,
    },
    margin = {
      horizontal = 0,
      vertical = 0,
    },
  },
  hide = {
    cursorline = 'focused_win',
  },
}

If 'winbar' is disabled, the position of incline in the top row of windows should be line 1, but it's on line 2:

Using this this config:
require'incline'.setup {
  window = {
    placement = { horizontal = 'right', vertical = 'top' },
    overlap = {
      winbar = true,
      tabline = false,
    },
    margin = {
      horizontal = 0,
      vertical = 0,
    },
  },
  hide = {
    cursorline = 'focused_win',
  },
}

If 'winbar' is disabled, the position of incline is correct, but it's not hidden correctly according to hide.cursorline:

(In the screenshot, the active cursor is on line 1 of baz.txt, so incline should be hidden in that window)

Using this config:
require('incline').setup {
  window = {
    placement = { horizontal = 'right', vertical = 'top' },
    overlap = {
      winbar = false,
      tabline = true,
    },
    margin = {
      horizontal = 0,
      vertical = 1,
    },
  },
  hide = {
    cursorline = 'focused_win',
  },
}

When the user has the winbar enabled, the incline window is overlapping all of the winbars:

There are also a few ambiguities:

Using this config:
require('incline').setup {
  window = {
    placement = { horizontal = 'right', vertical = 'top' },
    overlap = {
      winbar = true,
      tabline = true,
    },
    margin = {
      horizontal = 0,
      vertical = 0,
    },
  },
  hide = {
    cursorline = 'focused_win',
  },
}

When the user's tabline and winbar are both enabled, this is the result:

Should the incline windows for bar.txt and qux.txt overlap the window border? Maybe we should add a window.overlap.borders option to control this (this would necessitate changing the old behavior described here).

Using this config:
require('incline').setup {
  window = {
    placement = { horizontal = 'right', vertical = 'bottom' },
    margin = {
      horizontal = 0,
      vertical = 0,
    },
  },
  hide = {
    cursorline = 'focused_win',
  },
}

The placement is different than it was before your changes. Before it looked like this:

After it looks like this:

Is this the desirable behavior? This is actually similar to what #27 is requesting. Maybe we should have window.overlap.statusline and window.overlap.borders options as well to control this.

I know that's a lot to consider. Let me know if you have any thoughts or ideas. I really do like the direction this PR is going, I think if we can figure out these issues that it will be a big improvement over the current positioning behavior.

If you rebase on top of main, and then in test/config.lua, change your usages of Which.Is.A.DictLike to Which.Is.A.Table, the tests should pass.

Thanks! Will do.

Regarding the functionality, this change has a lot of edge cases to consider.

Definitely expected this to be the case, I'll start working through those this week. Thanks for the very detailed testing and info!

Maybe we should have window.overlap.statusline and window.overlap.borders options as well to control this.

I didn't intend for that to be the behavior of placement.vertical=bottom, but I think adding an option for it is a good idea. Should be trivial to implement as well.

Since this PR is already adding options for overlap, maybe this shouldn't be a special case anymore? Definitely seems more user-friendly to have a named option.

I agree, it would be better for it to be an explicit option.

I'm a bit busy right now but I'll try to get to this in the next week or two :)

Oops I totally forgot about this PR, my bad! I definitely still want to move this forwards since I've been using it - I'll get started on those edge cases and the additional option ASAP.

Awesome, looking forward to it!

Oops I forgot about issue references lol my bad

Also the docs check is broken, failure is not related to this PR.

Alright, I think this should be ready for another review pass. There may be some more edge cases to figure out since there are a lot of possible configs.
Also I will definitely simplify the main changed area as much as possible, it's definitely messier than it needs to be atm - just wanted to get it working for now lol.

Thanks @willothy! I'll review this over the weekend.

Overall this is looking good and feels more responsive!
Some edge cases I noticed where cursorline hiding is off by one line:

When overlap.winbar = true and winbar is visible:

hide = {
  cursorline = true,
},
window = {
  margin = { horizontal = 0, vertical = 1 },
  placement = { horizontal = 'right', vertical = 'top' },
  overlap = {
    tabline = false,
    winbar = true,
    borders = false,
    statusline = false,
  },
}

When overlap.tabline = true and tabline is not visible (showtabline is 0, or 1 with only one tabpage):

hide = {
  cursorline = true,
},
window = {
  margin = { horizontal = 0, vertical = 0 },
  placement = { horizontal = 'right', vertical = 'top' },
  overlap = {
    tabline = true,
    winbar = false,
    borders = false,
    statusline = false,
  },
  padding = 0,
  zindex = 49,
  winhighlight = {
    active = { Normal = 'Normal' },
    inactive = { Normal = 'Normal' },
  },
}

It would definitely be nice to figure out how to unit test the placement and hiding since there are so many edge cases, but we can figure that out later.
Other than that I think it looks good!

Cool, glad it's working better than before! I'll look into those cursorline issues today.

Ok I think I've fixed that edge case with the tabline, and fixed another I found where if both tabline and winbar were hidden the window would not be visible.

Nice! Seems like there's only one edge case now: When overlap.winbar = false and winbar is visible, cursorline hiding is off by one.

Awesome! I'll try and get that fixed today. I think I might've broken that with the last fix lol

Ahhhh I hope that didn't re-break something else lol

That still isn't quite working. This seems to fix it:
diff --git a/lua/incline/winline.lua b/lua/incline/winline.lua
index c687b8d..aa2ceed 100644
--- a/lua/incline/winline.lua
+++ b/lua/incline/winline.lua
@@ -70,7 +70,7 @@ function Winline:get_win_geom_row()
     -- statusline if laststatus is not 3

     -- TODO(willothy): this can obviously be simplified a lot, there is a good bit of repetition
-    if vim.o.laststatus ~= 3 or a.nvim_win_get_position(self.target_win)[1] <= 1 then
+    if a.nvim_win_get_position(self.target_win)[1] <= 1 then
       if cw.margin.vertical.top == 0 then
         if
           config.window.overlap.tabline
@@ -223,7 +223,8 @@ function Winline:render(opts)
   end
   if
     (config.hide.cursorline == true or (config.hide.cursorline == 'focused_win' and self.focused))
-    and self:get_win_geom_row() == a.nvim_win_call(self.target_win, vim.fn.winline)
+    and (self:get_win_geom_row() + ((vim.wo[self.target_win].winbar == '') and 1 or 0))
+      == a.nvim_win_call(self.target_win, vim.fn.winline)
   then
     self:hide(HIDE_TEMP)
     return

Would you mind testing that and, if it seems to work for you, making a commit?

Looks like that works!

Awesome, thank all of your work and persistence!

Super exciting! Took a while but I think the flexibility is awesome.


No tests found for given includes

I have integration-tests module
when I use plugin id("org.springframework.boot")
and get errors
first
Errors occurred while build effective model from /Users/zeecoder/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-osgi/2.2.10/c926a537af564ec047ec6308df1d0d2a03364a86/jaxb-osgi-2.2.10.pom:
    'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-osgi:2.2.10

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 14s

and when I try to run a test
Execution failed for task ':integration-tests:itTestEnv'.
> No tests found for given includes: [com.bro.....test.bugs.MyClass.should charge money and ](filter.includeTestsMatching)

my build.gradle.kts

plugins {
    kotlin("jvm")
    kotlin("plugin.spring")
    id("io.qameta.allure") version "2.6.0"
    id("com.gorylenko.gradle-git-properties")
    id("io.spring.dependency-management")
    id("org.springframework.boot")
    `project-report`
}

val allureVersion = "2.17.3"
val hibernateTypesVer = "2.9.13"

dependencies {

}

tasks.getByName<org.springframework.boot.gradle.tasks.bundling.BootJar>("bootJar") {
    enabled = false
}

tasks.getByName<Jar>("jar") {
    enabled = true
}

task<Test>("itTestEnv") {

    useJUnitPlatform()
    jvmArgs = mutableListOf("--enable-preview")

    description = "Runs integration tests for external/local env."
    group = "verification"

    testLogging {
        events("passed", "skipped", "failed")
    }

    environment ("isExternalEnv", "true")

    systemProperties["junit.jupiter.testinstance.lifecycle.default"] = "per_class"
    systemProperties["junit.jupiter.execution.parallel.enabled"] = true
    systemProperties["junit.jupiter.execution.parallel.config.strategy"] = "fixed"
    systemProperties["junit.jupiter.execution.parallel.config.fixed.parallelism"] =  environment["TESTS_THREADS"] ?: 16
    systemProperties["junit.jupiter.execution.parallel.mode.default"] = "concurrent"
    systemProperties["junit.jupiter.execution.parallel.mode.classes.default"] = "concurrent"
}

Sorry that you're having trouble with Gradle!
Your issue lacks information about how to reproduce the problem you're having. A reproducer project can really help us track down and fix your problem quicker.  We may also be able to suggest workarounds or ways to avoid the problem if we can reproduce it.
This issue will be closed after 7 days, unless you can provide more information.

Your custom itTestEnv  might need to define a custom classpath: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html#org.gradle.api.tasks.testing.Test:classpath

RESOLVED
plugins {
    kotlin("jvm")
    id("maven-publish")
    id("org.jetbrains.kotlin.plugin.noarg")
}

noArg {
    annotations("javax.persistence.Entity", "javax.persistence.Embeddable")
}

I'm glad you found the solution.


Add proper message in case of long initialization. Issue:#133

Issue #, if available:
#133
Description of changes:
Add proper message in case of long initialization. Initialization is considered as overtime if current initialization > SHINGLE_SIZE * detectionInterval + enabledTime.
No full shingle error:

No data in current time window error:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Have asked Ashwin to take a look. no comments from him.


#issue48 create function and option resizeContainer

HI David,
i created the function and option resizeContainer. In my case, i preferred to set by default one line for Container.
I added 5px because we have margin-top in the Tokens.
I am available for suggestions and criticisms , I'm not expert in javascript :)

Hi thanks for your code, but I will check if I can do it with css, that will be more lightweight


add notifications

leaving ladder
adding result
new ladder

see: https://github.com/TheOneYouDontLike/Klesk/commit/3408176e4dff5529c9ee40d3add7d93a068cee61

working on it


[BUG] (Breaking/Non-breaking) (Short description)

Priority
Identify if this is a breaking bug or not.
Lab/Demo Number/Name
Lab Load Data in Power BI Desktop
Describe the bug
On the Task 2: Configure the Salesperson query
Step 6 Select the SalesPersonFlag column header, then select the down-arrow, then FALSE, and click OK.
Screenshots
Add screenshots to help explain your problem.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior/Suggested Change
Step 6 Select the SalesPersonFlag column header, then select the down-arrow, then TRUE, and click OK.
Additional context
Add any other context about the problem here.
Note: To share feedback for the slides, please use the MCT Courseware Forum.

Hello @Ellywati
The steps are correct.
When first selecting the SalesPersonFlag filter, this shows up, with 3 options already selected (Select all, FALSE and TRUE).

The instructions indicate that one should select FALSE. Doing this will remove the check, leaving the filter with only one selection:  TRUE

In order to only have to select TRUE, one would need to first select (Select all) to remove all selections and then select TRUE


[Feature Request] Ability to modify the size of parts of GS

It would be an AWESOME feature if we could modify part of splats. For instance enlarge/reduce, stretch/squeeze etc. parts of 3DGS.

@equilento Hi, I have the same question, did you figure that out?

Duplicate of #148.


How to verify the camera stream's status?

Required Info

Camera Model
{D435

Operating System & Version
Ubuntu18.04

Platform
NVIDIA Jetson TX2

Language
python

Issue Description
During the operation of a python program that enables the camera stream and waits for frames according to certain conditions, I observed that even after unplugging the cable between D435 and tx2 , the program on tx2 can still successfully get one frame of image (of course, it is not the current field of view of the camera but the last view when the cable is unplugged).
According to my understanding, because the last frame of the camera stream is stored in the tx2 memory, the image frame can still be obtained after unplugging the cable. So my question is, is there a way to judge whether the current stream inside the camera is normal or not before attempting to get the frame?

Hi @surefyyq  Do you have an update about this case that you can provide, please?  Thanks!

Hi, @MartyG-RealSense sorry for the late.
Yes, the set_devices_changed_callback feature can detect USB 'detatch and attach' events.
However, It is observed that the 'frame didn't arrive in 5000' error occurs even if the cable is not unplugged, actually the error will occur under the condition where nothing has been changed.
To be more detailed, my python program will start the pipeline at launch and then monitor the keyboard input in a loop. When the keyboard input a space, wait_for_frames is called and save the current frame as an image. The issue is, it runs normally at the beginning, but when you don’t enter a space for a period of time and enter again, it will get the error 'frame didn't arrive in 5000' .
In addition, if I ret hardware at the time of the program's launch :
ctx = rs.context()
devices = ctx.query_devices()
for dev in devices:
    dev.hardware_reset()

it will go error segment fault or no device connect.

If your program is one where it is streaming continuously and pressing the space key causes a capture of the current frame, the application might work better if you ran a routine containing the save_single_frameset() instruction when the trigger conditions are met.  Information about use of save_single_frameset in Python can be found in https://github.com/IntelRealSense/librealsense/issues/9778#issuecomment-921598488

@MartyG-RealSense Thanks for your citation, I'll try them.

Hi @surefyyq  Do you have an update about this case that you can provide, please?  Thanks!

Hi @MartyG-RealSense , before I can go further checking code-related problems, updating the camera hardware version solves the issue. No python code is changed, and now everything works fine.
Thanks a lot!

It's great to hear that your issue is resolved, @surefyyq - thanks very much for the update   :)


Fix logic for dataLabelFormat code in Pie and Donut charts

Currently line 280 will overwrite line 279 if the chart type is PIE or DONUT.
What I did was add a conditional check, mimicking the pattern of line 278 to see if dataLabelFormat code is set, and I also moved this check up above the non-conditioned dataLabelFormatCode.
Fixes https://github.com/gitbrent/PptxGenJS/issues/803

Thanks @cronin4392 !


Index Coop Share of AUM in Decentralized Index Funds

How is this graph being generated?
https://twitter.com/MessariCrypto/status/1341150218163806213?s=20

Proxy being used:
https://etherscan.io/token/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b#balances

Proxy being used:
https://etherscan.io/token/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b#balances

Starting charts:
https://twitter.com/AlphaLemonade/status/1345825097618079744?s=20

Starting charts:
https://twitter.com/AlphaLemonade/status/1345825097618079744?s=20


feat: add i18n nl translations

What kind of changes does this PR include?

added translations for NL language

Description

adds support for NL / dutch language

size-limit report 📦

Path
Size

/index.html
13.16 KB (0%)

/_astro/*.js
16.22 KB (0%)

/_astro/*.css
8.46 KB (0%)

@delucis, I think this should be ready to go now!

Awesome! Thanks for the help!

 I can


Readme buttons broken

The "Code Climate" and "Code Coverage" buttons don't seem to be functioning, could someone look into it pls

Try merging develop into master next meeting, once you test your code. That should fix.

could someone look into it pls

Stares into abyss...
Okay.

Fixed in #25


[Build scripts] Add "product_type" parameter in build configs

Need for matching actions in product configuration without adding cli argument

I need to use one product config that should describe 2 different set of actions. I want to choice the actions in accordance with existing "product_type" parameter to avoid using cli argument for product config.

@eponomar There are merge conflicts, update your branch.


Find events for specific day / timeframe

Hi,
Great library!
I was wondering how a use case like this could be realised:
Say you have an event that is happening weekly. Now you want to view a specific day (in a calendar day view maybe) and see which events are happening on that day.
Or you want to list all events happening in the future.
As a dirty fix for now I fetch all events, generate the occurrences and then filter down. This works with a few events in a databse but obviously not with more.
Any ideas on that?
David

Hi David,
You could try generating, say, a year's worth of dates for each event, save those to the database, and then pull from your database based on those dates. Perhaps a table with a date column and an event_id column, indexed by date would be relatively fast. Hope that helps!


Change dependency version number

Changed package & readme to use the middleware with the new Kitura

@snakecharmer Thanks for the PR that corrects my oversight when I migrated Kitura to the 07/25 drop of Swift 3.
Please complete a Contributor License Agreement (CLA). Please see our CLA repo for more information.

@snakecharmer As you are already getting this repo set for Swift 3 07/25, please add to it a .swift-version file. You copy the one in Kitura's repo. Make sure it points at the 07/25 version of Swift.

@snakecharmer Please change the dependency version to be of the form:
majorVersion: 0, minor: 25

@shmuelk CLA signed & sent and code modified as requested.


Develop

Creating pull request to merge to main.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: SujaySawant:x: harsh-git-bsharsh-git-bs seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Doesn't work with Photoshop CC 2014

In fact CC 2014 doesn't even have Panel folder.

Same problem as you, @ctoveloz.

Same problem as yours, @ctoveloz.

@pfhenley86  I've found the zxp file - it seems there are two download versions on the Velositey site. Try going to the linked downloads from the below URL. You'll see the zxp file in the expanded zip file. I'm trying to install with Photoshop CC 2015, but this doesn't appear to work.
http://dandkagency.com/extensions/velositey-v2/

I get this error for PS C6
 On Friday, July 24, 2015 10:29 AM, SKempin<EMAIL_ADDRESS>wrote:

@pfhenley86 I've found the zxp file - it seems there are two download versions on the Velositey site. Try going to the linked downloads from the below URL. You'll see the zxp file in the expanded zip file. I'm trying to install with Photoshop CC 2015, but this doesn't appear to work.http://dandkagency.com/extensions/velositey-v2/—
Reply to this email directly or view it on GitHub.

Any hope to get this working for Photoshop CC 2015?

Any hope to get this working for Photoshop CC 2015?23333

Any hope to get this working for Photoshop CC 2015?

What's the Photoshop CC 2015 workaround?

I can not find The Panels folder in PTS CC 2015, so what will I don now?

See my comment here for a workaround for CC 2015: https://github.com/kieranpblack/velositey/issues/13#issuecomment-234801752

It can't work my photoshop cc 2017 please help me ...