More consistent batch weighting scheme

Some steps treat each batch equally (ModelGeneVar, MultiBatchPca) while other steps favor batches with more cells (ScoreMarkers, by weighting in proportion to the cluster sizes in each batch). We should settle on a standard treatment, namely a weighting scheme that favors more cells at low numbers of cells but plateaus at high numbers to avoid larger batches dominating.
I'm thinking of a simple linear weight for the number of cells with a cap at 1000 (for batches) or 100 (for batch-specific clusters). The idea being that if you have 1000 cells in a batch, then it's fine for that batch to contribute equally to the feature selection and PCA, because that's probably enough. Same for 100 cells in a cluster - that's probably good enough for stable inferences.
If the cap is set to infinity, then there's basically no restrictions on the weight, which is also fine if that's what the user wants.

Closed by #55, #56, #57 and #58.
These PRs collectively introduce a weight policy (none, equal or variable) to determine how the blocks should be weighted. If variable, callers can specify various parameters to adjust the weight calculation. If not variable, functions can choose to omit the weight calculation, e.g., to just take a simple average if they're using EQUAL.


Exec command: Order and repetition of jobs #15 (changes per PR #19)

Based on comments in PR #19; this should help me make further changes
For now I've updated Scheduler interface to contain only the following methods:
JobFuture runOnce(String jobName)
JobFuture runOnce(String jobName, Map<String, Object> parameters)
JobFuture runOnce(Job job)
JobFuture runOnce(Job job, Map<String, Object> parameters)
int start()

I've renamed ExecutionFactory to JobRegistry and updated its' API as follows:
Set<String> getAvailableJobs()
Job getJob(String jobName)

This let me to make Execution, ExecutionVisitor and JobExecution classes package-local. I'm also going to try to refactor the io.bootique.job.scheduler.execution package a bit more tomorrow.

Did some cleanup and renaming, and also removed Execution and ExecutionVisitor classes. @andrus  , can you take a look and tell me if there're still any issues left?


Apparent memory leak when writing a TextWebSocketFrame on websocket connect.

Expected behavior
I'm trying to write a Netty based Web Socket server that expected to receive high load. The basic reproducible case involves simply opening a web socket connection and the server sending back a welcome message to the client.
Actual behavior
While load testing during development, I'm seeing excessive memory utilization by the process that cannot be attributed to any identifiable source (at least, not identifiable by me, thus the issue). Under heavy load, the process eventually consumes all available memory on the host before it is killed by a separate oom-reaper process.
This memory utilization only occurs when the server starts writing new, non-empty,TextWebSocketFrames.
Steps to reproduce
Modify the example Web Socket server to send back any non-empty greeting on connect and send heavy load. (Note: the definition of heavy load will vary based on the available memory for the service).
Minimal yet complete reproducer code (or URL to code)
Sample addition to WebSocketFrameHandler
  @Override
  public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    super.userEventTriggered(ctx, evt);
    if (evt instanceof HandshakeComplete) {
      websocketConnected(ctx);
    }
  }

  private void websocketConnected(ChannelHandlerContext ctx) {
    ctx.channel().writeAndFlush(new TextWebSocketFrame("{}"));
  }

For a fully functioning app that should exhibit the behavior in question, see this repo: https://github.com/jcohen/netty-ws-leak
Netty version
4.1.43.Final
JVM version (e.g. java -version)
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

OS version (e.g. uname -a)
Linux a1d94bdbf936 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 Linux

I will have a look.

@jcohen I tried to use your reproducer but so far it did not end up running out of memory. Is this expected ?

@normanmaurer I was concerned that the problem would be harder to reproduce locally. For me when I run it I'm pretty reliably to get it to run out of memory on the way to 10k connections but it has occasionally been able to reach that peak. Here's a sample of a local run that died around ~8700 conns.
https://gist.github.com/jcohen/d9ae6bb86d8b362999194702efb952e8

I think in part it's difficult to reproduce locally because the service and the load generator are competing for resources. When this occurs in a more realistic scenario, the service is running with more resources and the load generation is coming from 10 separate load test generators.
Let me know if there's anything in particular I can do to capture more details under that scenario?

Could you try to see what happens when you remove the compression stuff ?

Am 25.11.2019 um 16:51 schrieb Joshua Cohen<EMAIL_ADDRESS>
I think in part it's difficult to reproduce locally because the service and the load generator are competing for resources. When this occurs in a more realistic scenario, the service is running with more resources and the load generation is coming from 10 separate load test generators.
Let me know if there's anything in particular I can do to capture more details under that scenario?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Well that was an easy fix! Memory utilization is fine with WebSocketServerCompressionHandler removed from the pipeline!

Ok thanks ... looking into it now

Am 25.11.2019 um 17:26 schrieb Joshua Cohen<EMAIL_ADDRESS>
Well that was an easy fix! Memory utilization is fine with WebSocketServerCompressionHandler removed from the pipeline!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@jcohen alright I did spent some time to look into it and sadly there is not much we can do on our side in netty...
The problem is that with compression enabled it will use permessage-deflate with server_no_context_takeover not used. For more infos on what this actual means check:
See https://tools.ietf.org/html/rfc7692#section-<IP_ADDRESS>.
So with the configuration we need to create a new Deflater (which is part of the JDK: https://docs.oracle.com/javase/8/docs/api/java/util/zip/Deflater.html ) and keep it "alive" till the connection is closed. The problem here is that Deflater is implemented using JNI and so reserve native memory that will not be released until the connection is closed and so the deflater.end() method can be called by us.
So the only way to "guard" against such a problem is to limit the max number of concurrent connections which use the extension.

@jcohen also you should add some sort of timeout that will close connections after they are inactive for some amount of time.

@normanmaurer hm... interesting.
@jcohen maybe you can plug in other compression codec into WebSocketServerCompressionHandler. From the code I see it should be possible.

Hi, @jcohen also you can try use selective compression approach https://github.com/netty/netty/pull/8910, (e.g. compress only message more than threshold) we use this feature on production. Or optimize extension configuration described on this old, but very interesting post.

Thanks so much everyone for the investigation and the details. I'm so glad to know I wasn't going mad for the past week 😂. I'll have control over both clients and the server, so I think I can live without globally enabled compression and instead rely on compressing individual messages on an as-needed basis.

Ok let me close this then as there is nothing we can do

@jcohen I hava the same question, and remove the WebSocketServerCompressionHandler is good, compressing individual messages on an as-needed basis,  I want to do how you realise it?

My messages are not particularly large, so I've just done without compressing them for the time being.

So the only way to "guard" against such a problem is to limit the max number of concurrent connections which use the extension.

Where is this configurable ? cc @normanmaurer

@jcohen alright I did spent some time to look into it and sadly there is not much we can do on our side in netty...
The problem is that with compression enabled it will use permessage-deflate with server_no_context_takeover not used. For more infos on what this actual means check: See https://tools.ietf.org/html/rfc7692#section-<IP_ADDRESS>.
So with the configuration we need to create a new Deflater (which is part of the JDK: https://docs.oracle.com/javase/8/docs/api/java/util/zip/Deflater.html ) and keep it "alive" till the connection is closed. The problem here is that Deflater is implemented using JNI and so reserve native memory that will not be released until the connection is closed and so the deflater.end() method can be called by us.
So the only way to "guard" against such a problem is to limit the max number of concurrent connections which use the extension.

Connection closed also not freeing memory，I create 40,000 connections, each connection sends a TextWebsocketFrame when it is established, and these memory are not released when it is closed

same problem

@normanmaurer Will WebSocketServerCompressionHandler cause any problems if set to @Shareable?


GEnum is a bit strange

I find the GEnum a bit strange. For reference:
#[derive(Debug, Eq, PartialEq, Clone, Copy, glib::GEnum)]
#[repr(u32)]
#[genum(type_name = "SimpleObjectAnimal")]
enum Animal {
    Goat = 0,
    #[genum(name = "The Dog")]
    Dog = 1,
    #[genum(name = "The Cat", nick = "chat")]
    Cat = 2,
}

Why not having a gvariant for variants instead? It got me quite confused at first. Also, what's the point of the derive if we need to add #[genum(type_name = "SimpleObjectAnimal")]?

CC @gdesmott

Why not having a gvariant for variants instead?

That would be very confusing with GVariant, and also the convention seems to be to use the same name but lowercase for attributes.

Also, what's the point of the derive if we need to add #[genum(type_name = "SimpleObjectAnimal")]

That attribute is consumed by the derive macro. How else would it work?

That would be very confusing with GVariant, and also the convention seems to be to use the same name but lowercase for attributes.

Hum maybe... Let's focus on the other point before this one then? :)

That attribute is consumed by the derive macro. How else would it work?

That could be a "full" attribute and would make the derive useless. Currently we have just too much things to do.

The only time I had to use GEnum I've also found the #[genum(type_name = "SimpleObjectAnimal")] confusing and had no idea what I was supposed to put there? Here's the use case I had.
#[derive(Debug, Eq, PartialEq, Clone, Copy, GEnum)]
#[repr(u32)]
#[genum(type_name = "ProviderAlgorithm")]
pub enum Algorithm {
    #[genum(name = "OTP")]
    OTP = 0,
    #[genum(name = "HOTP")]
    HOTP = 1,
    #[genum(name = "Steam")]
    Steam = 2,
}

The first one to give the type name is basically the same thing as in ObjectSubclass the TypeName associated constant. That's required because the macro can't automatically figure out something reasonable as it only has the type name itself, but for GObject type names you also want to include the whole module path for namespacing reasons.
We should probably extend the docs here and also write docs for GEnum itself here.
It's all the same for GBoxed btw, and gflags is a bit different because it has to make use of the bitflags! macro internally but that's not possible for a derive macro.
The other #[genum] here are not needed because that's what would happen by default anyway.


[documentation] provide code sample for MergeSemantics

Whether each widget sample API docs provide sample code ?
For example, this:
https://docs.flutter.io/flutter/widgets/Row-class.html
new Row(
  children: <Widget>[
    new Expanded(
      child: new Text('Deliver features faster', textAlign: TextAlign.center),
    ),
    new Expanded(
      child: new Text('Craft beautiful UIs', textAlign: TextAlign.center),
    ),
    new Expanded(
      child: new FittedBox(
        fit: BoxFit.contain, // otherwise the logo will be tiny
        child: const FlutterLogo(),
      ),
    ),
  ],
)

But some of them are not, for example:
https://docs.flutter.io/flutter/widgets/MergeSemantics-class.html
So, we hope the offical site provide all of them and easily to find out how to use them, and can each widget provide a corresponding GIF animation display what their running effects?

Hi @1166544
providing a code sample for all the classes in the API is obviously desirable,
but hardly addressable in a single issue moreover it is natural for some classes
to get higher priority than others and therefore providing code sample accordingly.
I'm hijacking this issue as request of code sample for the class you mentioned,
for other class you or other feel the need for code sample I suggest to open a separated issue
for each specific class.
Thank you


Leverage sqlite3_unlock_notify when possible

Currently we support command timeouts by looping when locked on sqlite3_step. For those using a library compiled with SQLITE_ENABLE_UNLOCK_NOTIFY, we can instead use sqlite3_unlock_notify() for better performance.
see https://www.sqlite.org/unlock_notify.html

Initial progress https://github.com/natemcmaster/Microsoft.Data.Sqlite/blob/blocking/src/Microsoft.Data.Sqlite/Interop/NativeMethods.cs#L287

Will be more important when https://github.com/aspnet/Microsoft.Data.Sqlite/issues/148#issuecomment-146277153 is done.

Closing as won't fix. We've moved to SQLitePCL.raw which doesn't expose sqlite3_unlock_notify, and this is too low priority to request it be added there.


trufflehog: 3.63.9 -> 3.63.10

Diff: https://github.com/trufflesecurity/trufflehog/compare/refs/tags/v3.63.9...v3.63.10
Changelog: https://github.com/trufflesecurity/trufflehog/releases/tag/v3.63.10
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 281525 run on x86_64-linux 1

1 package built:

trufflehog


LEARNING.md: fix broken link

Ah, vim autoformats my markdown files. I can revert this if you'd prefer?

Sorry, I don't know why these changes have broken the minesweeper tests, they still pass locally ??

@robphoenix I think the minesweeper issue is on our side: #187

Don't worry about the auto-formatting, I changed the part that bothers me :)


chore ::> Merging all TransactionReceipt types into a single type

Closes #576
Here I created a superset type that can accommodate all the fields required by the different transaction receipts. This include includes all the fields from the various receipt types. Then I update the unmarshalling logic to populate this new superset type based on the fields present in the JSON data.

hi @rianhughes
I tried to formulate a way to solve #567
Can you please give some suggestion on the approach before I start working on its proper integration with rest of the repo?
My method is in a temporary file called rpc/types_transaction_receipt_pps.go.... I will later on put the logic inside rpc/types_transaction_receipt.go once the approach is finalized.

@rianhughes
Integrated everything with a common TransactionReceipt.
All test are passing.
Please have a look whenever you are free.


Add optional "comment" field to host template.

The "comment" parameter is already supported by the dhcp::host class,
but the value is not passed through to the dhcp.host.erb  template.
If $comment parameter is not empty, add a line with a leading "#" and the comment to the host reservation entry.
Also add "comment =>" to the example host entry in README.md

I realise I didn't update the spec tests for this.  One test sets a comment field in the host parameters, but then doesn't expect it to be in the formatted template.
To fix, add "  # test_comment" to the expected_lines variable, immediately after the "host" line, in spec/defines/host_spec.rb. Fix added to this push request.

Looks okay to me, can you squash these commits into one?

+1 for rebase, otherwise looks good

I think I've successfully squashed the commits!

+1

:+1:

hi @simon3270, thanks for the PR. sorry for the long waiting :(


Bug: Unable to track active Tab in Dark Mode

What

As we can track the active tab with white color it's difficult to track the same in Dark mode as both Active and Inactive tab Icons remains the same (White Color).

Steps to reproduce the behavior

Switch to dark Mode / System Default Is DarkMode
Bottom Navigation Tab

Why

As a user it should be a differentiable, Tab that is currently active in Dark Mode too as we can keep track in Light Mode

Part of

#1171

Screenshot/Mockup/Before-After
https://user-images.githubusercontent.com/55257452/161038160-cb7391b7-d42a-48f5-bfd8-df07b7c52b20.mov
Smartphone model

Device: [ Note 7 PRO]
OS: [e.g. Android 10]
App Version [0.0.0+1]

Hi, @teolemon @M123-dev
Can have Your Suggestion on it. As if now we do have hardcoded Color for active Tab i.e White

probably deharcoding, and choosing a color for both light and dark mode, I guess ? @M123-dev ?

Hi @abhay1821 ,
Try to use the primary color from the color scheme.

@teolemon could please assign this to me. I will work on it


Use Duration in Hz Throttle Map timeout

Changed Throttle documentation to show correct defaults in Duration notation that are code in ThrottleProperties.  Changed Hazelcast throttle config to use duration when setting map idle timeout.

Changed.
On Mon, Oct 1, 2018 at 12:23 AM Misagh Moayyed<EMAIL_ADDRESS>wrote:

@mmoayyed commented on this pull request.
In
support/cas-server-support-throttle-hazelcast/src/main/java/org/apereo/cas/web/support/config/CasHazelcastThrottlingConfiguration.java
https://github.com/apereo/cas/pull/3570#discussion_r221512905:

@@ -37,7 +38,7 @@
@Bean
public IMap throttleSubmissionMap() {
final HazelcastTicketRegistryProperties hz = casProperties.getTicket().getRegistry().getHazelcast();

   final int timeout = Integer.parseInt(casProperties.getAuthn().getThrottle().getSchedule().getRepeatInterval());

   final int timeout = Duration.parse(casProperties.getAuthn().getThrottle().getSchedule().getRepeatInterval()).toStandardSeconds().getSeconds();

Beans.newDuration(). Cant break the existing defaults.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apereo/cas/pull/3570#pullrequestreview-160176519, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AS0kvSYOsUcGYXiK85sOEQeXoiBeONKWks5ugcMNgaJpZM4XBWVI
.


Customize docker environment for the EC2 deployment

When deploying bentoML service onto an AWS EC2 instance, it for now impossible to customize the docker environment such as activating microbatching via BENTOML_ENABLE_MICROBATCH and add further gunicorn workers via BENTOML_GUNICORN_WORKERS.
Could it be possible to develop these customizations which are really needed regarding to microbatching when deploying on cloud.

With the new bentoctl tool and its aws-ec2-deploy plugin, it is now possible to customize environment variables of an EC2 deployment, via the environment_variables option in the deployment config file: https://github.com/bentoml/aws-ec2-deploy/blob/pre-v1.0/ec2_config.json


support unnamed fields in PyStreamable

This patch adds support for types with unnamed fields to the PyStreamable macro. fields in a tuple are unnamed fields.
Tuples are still limited in that they don't support JSON serialization/deserialization, except for a special case of 1-tuples, where they just behave as the underlying type.
In order to demonstrate that this works in CI, I also added two new types G1Element and G2Element. These are just fixed-size byte blobs that can be used as place holders in types that contain these fields. Using "dumb" storage for these punts on a gnarly problem of using the rust implementation of bls Signature and PublicKey vs. the C++ blspy implementation. The rust implementation is quite a lot slower, so we can't use it across the board. So this provides an option that can be used together with both implementations, depending on the situation.
Additionally, the generate_type_stubs.py script is updated to support tuples. Although, it adds phantom fields to the python object, mostly to get the constructors right. We might want to change this in the future.

The obvious way to serialize (A, B) to json is as [serialize(A), serialize(B)]. That said, I don't think we should hold this patch up for this functionality if it's not needed now.

yeah, I was considering that too. I hesitated because it would also make sense to serialize (A) as [serialize(A)], but it's a really handy feature to define a custom 1-tuple type as a "strong-type" (and I believe this is a bit of a convention in rust). i.e. acting just like the underlying type.
Maybe you could have both and just live with the irregularity.


Failed to save a file that starts with '//'

VSCode Version: 1.42.1
OS Version: Windows 10, build 18363
Does this issue occur when all extensions are disabled?: Yes

Steps to Reproduce:

Create a new file with the single line // Can't save this file.
Saving the file with 'Save' or 'Save As' command fails with the following message:
Failed to save '// Can't save this file.': [UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")

#90433 is closed as not reproducible, but the bug is still here and I can reproduce it on ver. 1.42.1.

/confirmed reproducible in 1.42.1
Already fixed in 1.43.0-insider, as detailed in #90433
/duplicate


Works with Android platform

Hi
May I know this will work with Android platform or not ?

This plug-in works only on Windows.


Microsoft Has NO Right!

I find this a completely repulsive move on Microsoft's part.  We should not have to create a GPO to stop this.  Once again Microsoft does the wrong thing.
I hope they listen, but they won't.
https://odinsiders.uservoice.com/forums/920533-distribution-upgrades-servicing/suggestions/39494872-do-not-force-push-bing-as-the-default-search-engin

Based on customer feedback, we're making some changes to the plan to roll out the extension for Microsoft Search in Bing. For information about the changes, read this announcement. This article will be updated when more details are available.


add tutorials to navbar

@rowanc1 : if you would like to put the tutorials on the simpeg domain, could you create "tutorials.simpeg.xyz" or provide me with access to the go daddy account and I can do it? Thanks!

Thanks @lheagy!

And then 3min later it is live!


Spelling Mistake

Looks like "developer" is spelled incorrectly.

Prerequisites:
Ensure you have Node and NPM installed on your machine. Ideally one of the recent stable versions.
Node: v16.13.0
npm: ^8.1.0
Step 1:
Fork this repository
Step 2:
Clone the forked repository on your machine
Step 3:
Create a new branch
git checkout -b MY_BRANCH_NAME
Step 4:
Install Packages from project root directory
cd dharsh.dev
npm install
Step 5:
Run dev server
npm run dev - the application will be visible on localhost:3000
Step 6:
Make changes to the project and watch your changes appear on localhost:3000
In your case, it should all be in the /pages/index.tsx file
Step 7:
When done making changes, add and commit your changes to push them
git push origin new-feature
Step 8:
Create a pull request to the original repository!
I'm not sure there might be any hiccups along the way, so it would be great if you could try it out and document the process through issue #23 that I created about making contributing.md file.
Cheers!

I was working on some updates to the website and ended up fixing this issue haha. I'm sure you can find more spelling mistakes somewhere though :)


2.4.0 increased library size over 2.3.0

2.4.0 brought the inclusion of the android custom tabs library, for use in BranchStrongMatchHelper. This causes the Branch SDK to increase in size considerably because of its new dependencies (com.android.support:customtabs:23.3.0 depends on com.android.support:support-v4:23.3.0). Is there any possibility of removing these in the near future? The raw method count jumps up from around 1400 in 2.3 to over 10k in 2.4 because of the new dependencies.
Granted us consumers can use ProGuard to try and strip away unused methods, and MultiDex if need be, but it would be nice to be able to consume a lean library.

Hey @kevinzetterstrom - Thanks so much for the note. This was definitely not our intention. We're looking into interim solution to cut out the size, since the bulk of it is not needed and will resort to removing custom tabs if we can't. More soon.

Hey @kevinzetterstrom - We've pushed a fix to the library that removes the unnecessary support v4 dependency, which added the bulk of the size. We had this filtered out in our testbed which is how we missed this.
Can you try the latest and see if this resolves your issue?

 Unfortunately, this just tries to exclude the dependency. Since custom tabs still depends on support-v4, the dependency isn't actually excluded. I think the only real solution is to remove the custom tabs dependency completely.

@kevinzetterstrom  Thanks for your comment.
Actually we are not using any features of custom tab that require support-v4. We tested this by eliminating the support-v4 from the testbed application for this SDK and it seems working fine. Are you using any other lib that uses support-v4? if not could you please check if support-v4 is present in the exploded-aar directory?

Ah, I am sorry, the tool I was using to verify this last time must have an issue with it. I used gradlew Branch-SDK:dependencies and gradlew Branch-SDK-TestBed:dependencies and it looks good now.
Thank you guys for the quick responses and resolution!

@kevinzetterstrom  Thank you very much for helping us to improve the SDK


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-26-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3178

Questions ?
Please refer to the Backport tool documentation


regression in memory datanode

bug due to past merge for this plugin. memory lost its specific execution

can be seen only for new datanodes


chore(package): update np to version 2.13.1

https://greenkeeper.io/

Changes Unknown when pulling 0ecfe03d8219e6c922992b6ba07b816e3ec5b4cf on greenkeeper/np-2.13.1 into ** on master**.


Adding financial services schema

What is the goal of this PR?
Adding financial services schema to the schema examples repo.
What are the changes implemented in this PR?
Added new file

This schema is quite out of date and bringing it up to date will take a while. As such, we're closing this.


Add cloud9 (c9.io) to examples

Example of starting up Next.JS in Cloud9 - online VM + IDE available through browser.

What's the difference with the hello-world example 🤔

As of right now, Cloud9 container provides by default node.js v6.11.2 and npm v3.10.2
Those are too old to run next.js.
Thus, the instructions in README.md outline steps need to update the system to the
latest versions of nvm+node+npm.
Secondly, Cloud9, being an online IDE, makes it impossible to have a dev server instance
available at http://localhost:3000 for site preview; instead, it provides a 'Preview running
application' tool in the IDE menu - but that requires use of custom "server.js" file, which
is also provided with this example, as well as adjusted "package.json" scripts to target it.


[iOS] -- TAN is not accepted although it is correct

Describe the issue
When I type the TAN to save a certificate, the certificate cannot be saved and the error "Failure. Check the TAN and try again"
Expected behaviour

Steps to reproduce the issue
Technical details
iOS Wallet <IP_ADDRESS>
iPhone 8 plus v. Lutz, iOS 14.4
Possible Fix

Additional context

Closed because it was tested with ACC version of the app.


add live deployments listing

Implement live deployments listing that can be managed/edited over time by the community to help demonstrate adoption and implementation.

Added in https://github.com/geopython/pywps/wiki/LiveDeployments


AWS Dynamo DB - Insert

We installed 'DynamoDB Insert' component and using the activity to insert a record.
Below is the mapping for Record Data.
I see two issues:

While building the FLogo app seeing below notification:

Generating metadata for legacy actvity: github.com/retgits/flogo-components/activity/dynamodbinsert
Installed legacy activity: github.com/retgits/flogo-components/activity/dynamodbinsert
Installed Legacy Support

When executing the Lambda function in AWS, getting bellow error:

2019-12-13T19:40:25.404Z	ERROR	[flogo.activity.dynamodbinsert] -	Execution failed for Activity[dynamodbinsert_14] in Flow[Lambda_GET_WeatherLimit_POC] - interface conversion: interface
{}
 is []interface
{}
, not string

Please help!
Record Mapping:
"DynamoDBRecord": {
                  "mapping": [
							  {
								"Name": "RecordID",
								"Value": "=number.random(1000000)"
							  },
							  {
								"Name": "ZCode",
								"Value": "=$flow.CityCode_Input.Records[0].dynamodb.NewImage.zcode.S"
							  },
							  {
								"Name": "lastTemp",
								"Value": "=$activity[rest_3].data[0].Tl.Value"
							  },
							  {
								"Name": "lastUpdated",
								"Value": ""
							  }
							]
                }

Someone, please help.

Getting similar error in Query activity as well:
2019-12-16T18:59:25.509Z	ERROR	[flogo.activity.dynamodbquery] -	Execution failed for Activity[dynamodbquery_15] in Flow[Lambda_GET_WeatherLimit_POC] - interface conversion: interface
{}
 is nil, not string

Code for your reference:
{
            "id": "dynamodbquery_15",
            "name": "DynamoDB Query",
            "description": "Query objects from Amazon DynamoDB",
            "activity": {
              "ref": "#dynamodbquery",
              "input": {
                "awsAccessKeyID": "*******",
                "awsSecretAccessKey": "********",
                "awsRegion": "us-east-2",
                "dynamoDBTableName": "test_Lambda",
                "dynamoDBKeyConditionExpression": "=string.concat(\"ZipCode = \", $flow.CityCode_Input.Records[0].dynamodb.NewImage.zipcode.S)"
              }
            }
          }

Please help!

Hi :wave: !
To answer your questions:

The notification you mentioned isn't an issue. The activities in this repository were built with the previous contribution model for Project Flogo and that is backward compatible with the newer model due to the legacy support bridge the team has built.

It looks like you're passing in a named JSON array as the input to DynamoDBRecord. The record cannot be a named JSON array so it should be something like [ { "Name": "RecordID", "Value": "x" }, { "Name": "ZCode", "Value": "x" }, { "Name": "lastTemp", "Value": "x" }, { "Name": "lastUpdated", "Value": "x" } ]

For the query, the key condition expression use placeholders (such as :name and :sub) instead of actual values. In relies on the dynamoDBExpressionAttributes to provide the actual values. Looking at the code from your insert question, you could have something like:

{
"dynamoDBKeyConditionExpression": "RecordID = :item",
"dynamoDBExpressionAttributes": "[{\"Name\":\":item\",\"Value\":\"x\"}]"
}


Remove radiation BCs from FHR reflector model

Closes #43

Job VTB Documentation on 3fdf2bc wanted to post the following:
View the site here
This comment will be updated on new commits.


How to set a fake 'FileSystemSecurity' object and use the .NET Wrapper for file system entry that doesn't really exists?

Hello,
My colleague and I are trying to implement a file system that is entirely backed by a relational database.
The issue that we are encountering is that when the IDokanOperations.GetFileSecurity method gets called we don't know what to assign to the security out variable. It is defined as FileSystemSecurity which is an abstract class and all of its constructors are internal and we cant extend it...
What we can do is to get the FileSystemSecurity of a regular file or directory from disk and assign that... but we want to create our own and set whatever permissions we see fit.
How can we do that? Are we doing anything wrong?

I can confirm that we have the same problem as @HristoKolev

Hi @HristoKolev @Ravenheart ,
As far as I know, create your own permission will be required to use win32 api function like ConvertStringSecurityDescriptorToSecurityDescriptor
When IDokanOperations.GetFileSecurity is not implemented, dokan library is calling DefaultGetFileSecurity that create his own permission (even if it is C, it should be possible to rewrite it for c#)
https://github.com/dokan-dev/dokany/blob/83be68351c70d916e58bdae8e3424e521fe07b04/dokan/security.c#L29

The thing is that even if we generate our own permissions, we have no way of assigning them to the FileSystemSecurity object since it is abstract and all of it's constructors are internal so there is no way for you to get your hands on an actual object except if you decide to get it from a real file.
Is our case outside of what's supported by Dokan and the .NET wrapper?

If GetFileSecurity return STATUS_NOT_IMPLEMENTED, DefaultGetFileSecurity will be called see
https://github.com/dokan-dev/dokany/blob/83be68351c70d916e58bdae8e3424e521fe07b04/dokan/security.c#L156
This point was clearly missing from the documentation 👍 https://github.com/dokan-dev/dokan-dotnet/commit/8bee5fb5ca64dd90677c163aa75ea51bb3a41f57
I agree FileSystemSecurity creation is limited by the framework.
afaik it is the only object we can use to build the binary security descriptor that we need
https://github.com/dokan-dev/dokan-dotnet/blob/85165d5da69f51b9b6ae0df5e2ce35d8e0a1bb51/DokanNet/DokanOperationProxy.cs#L1099
I would in this case get this object from a known file that has the most near wanted rights and adapt it.


DB Corruption (healthy hardware)

Background
I experienced what looks like a db corruption. lnd is now unable to start with the corrupted db. The hardware/drive is healthy, other services running on it (e.g. bitcoind) are running just fine without any suspicious log entries or restarts at time of crash. I'd like to find out which db is corrupted (guessing channel.db though) and find the entry that caused it. Since I am not very experienced with bbolt and the bucket structure I'd appreciate some guidance.
I did a backup of the lnd data folder for that purpose and already went ahead and restored my node & channels using my mnemonic and channel backup.
Systemd showing the failed restart:
-- Logs begin at Fri 2020-02-28 22:05:28 GMT, end at Sat 2020-02-29 09:55:36 GMT. --
Feb 29 09:54:39 ABC systemd[1]: lnd.service: Scheduled restart job, restart counter is at 590.
Feb 29 09:54:39 ABC systemd[1]: Stopped LND Lightning Daemon.
Feb 29 09:54:39 ABC systemd[1]: Starting LND Lightning Daemon...
Feb 29 09:54:39 ABC systemd[1]: Started LND Lightning Daemon.
Feb 29 09:54:39 ABC lnd[9947]: panic: freepages: failed to get all reachable pages (page 18875: multiple references)
Feb 29 09:54:39 ABC lnd[9947]: goroutine 13 [running]:
Feb 29 09:54:39 ABC lnd[9947]: github.com/coreos/bbolt.(*DB).freepages.func2(0x1862c40)
Feb 29 09:54:39 ABC lnd[9947]:         github.com/coreos/bbolt@v1.3.3/db.go:1003 +0xcc
Feb 29 09:54:39 ABC lnd[9947]: created by github.com/coreos/bbolt.(*DB).freepages
Feb 29 09:54:39 ABC lnd[9947]:         github.com/coreos/bbolt@v1.3.3/db.go:1001 +0x108
Feb 29 09:54:39 ABC systemd[1]: lnd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Feb 29 09:54:39 ABC systemd[1]: lnd.service: Failed with result 'exit-code'.

Related issue: https://github.com/lightningnetwork/lnd/issues/3867, even though this one was caused by an actual hardware failure.
Your environment

version of lnd: 0.9.0-beta (also tried to launch environment with 0.9.1-beta today -> same)
which operating system (uname -a on *Nix): Linux ABC 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux
version of btcd, bitcoind, or other backend: bitcoind <IP_ADDRESS>
any other relevant environment details: env was running fine as is for several months (upgrade path 0.7.1 -> 0.8.1 -> 0.8.2 -> 0.9.0)

Steps to reproduce
🤷
Expected behaviour
No db corruption unless hardware/drive misbehaves.
Actual behaviour
db corruption with well behaving hardware/drive.

Are you running with --sync-freelist?

No

Does running with the flag change anything?

Does running with the flag change anything?
It didn't. Anyhow, I'm on a new setup. Closing here.


(stub factory): fix chaincode generation

Codecov Report

Merging #88 into dev will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##                dev      #88   +/-   ##
=========================================
  Coverage     53.45%   53.45%
  Complexity      385      385
=========================================
  Files            42       42
  Lines          3414     3414
  Branches        264      264
=========================================
  Hits           1825     1825
  Misses         1404     1404
  Partials        185      185

Impacted Files
Coverage Δ
Complexity Δ

.../webank/wecross/stub/fabric/FabricStubFactory.java
8.86% <0.00%> (ø)
4.00 <0.00> (ø)

Continue to review full report at Codecov.

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


Full screen not work on Kylin V10 (Ubuntu)

Describe the bug
Set WindowState to FullScreen as below, it works on Windows 10 but not on Kylin V10 (based on Ubuntu).

To Reproduce

Set WindowState to FullScreen in axaml file.
Build the application and run on Kylin V10, the application does not display full screen.

Expected behavior
No response
Avalonia version
11.0.10
OS
Linux
Additional context
No response

More information for Windows OS: On Windows, the application shows in full screen, but if minimized once, it does not show in full screen again, which has another issue tracked https://github.com/AvaloniaUI/Avalonia/issues/13002.


UI alignment on App creation screen

Point 1) Think those sections would look better left aligned.
Point 2) The textual sections should be closer to the boxes they represent.

@akshay8551 Check design with latest link

Design

Resolved,

Verified this issue on keeper app v 1.1.9(283)


Feature: SQLite query runner

This pull request add support for sqlite databases.
No type support because the nature of sqlite's types makes it difficult to infer the best type for a query result.
Should close #627

:+1: looks good. I left two minor comments, let's sort those out and it can be merged.

I corrected the points, but I still need to test it more.

Merged. Thanks.


Quality option for html videos?

First of all I just want to say I came here from PH and I instantly fell in love with this player (not only I have a crush on it but it also came up at the perfect time on my screen ;)). So big kudos to you guys.
However, I am curious if it's possible to integrate an option to switch quality of a video like YouTube has (I think half of the functionality for such a feature is already done with the plyr.source() method, so there might just remain a nice dropup menu for the resolution options). What do you think?

For sure - I will look into how this can be done. 👍

Merging to #218


mvm_call() error on multiple declarations of same variable across for loops

This reduced test case
console.log = vmImport(1);
function sayHello() {
	var arr = [1, 2, 3];
	for (var i = 0; i < 3; ++i) {
		console.log(arr[i]);
	}
	for (var i = 0; i < 3; ++i) {
		console.log(arr[i]);
	}
}
vmExport(1234, sayHello);

causes mvm_call() error with a return value of 12 when entering sayHello(), on tag 0.0.25.
My Javascript expertise is limited, but after some poking around I think it's the second var i = 0 in the second for loop that chokes Microvium. If I just change the second var i = 0 into i = 0, it works fine.

Thanks for the reporting this. I'll look into it.
In the meantime, can I suggest using let instead of var. In JS, var declarations are hoisted to the function level, so two var declarations with the same name in the same function are actually the same function-level var declaration, which can lead to subtle bugs in your code. Here's some more detail about the differences on Stack Overflow.

I've fixed this on main. The fix will go out with the next release. But as I say, I do recommend using let (or const) instead of var.


fix: correct keys enum

Status

WIP
Description
Hello! When i generate types for my json schema - i seeing incorrect types for enum:
export const PetColors = {
  '': 'Желтый',
  '': '青い',
  '': 'ლურჯი',
} as const;

Link codesandbox: https://codesandbox.io/s/typescript-node-forked-hhgs70?file=/src/api/hooks.schemas.ts:264-291
Your regex expression deleting keys when i use in my scheme - non English letters.
Maybe use transliteration?

Hello @ratmirslv, seems cool it's not ready yet?

Hello, @anymaniax, Everything is ready, but I'm waiting for your comments.

Seems good to me

Hello, @anymaniax . It's better to use keys as values:

Because there is a problem when values - Unicode.
The user will explicitly understand by the key - what value he will receive.

should be fixed with 6.9.2


[BUG]: Evaluate CosmosItemIdEncodingTest regression

There are scenarios where an item is read with an id which CosmosItemIdEncodingTest expects a HTTP 401 / HTTP 400 but is getting a HTTP 201 for from the routing gateway. Below are the scenarios:

ID with percentage encoded whitespace.
ID ending with whitespace.
ID ending with whitespaces.
ID with carriage return.
ID with pound sign.
ID with percentage encoded special character.
ID with tab.

Fixed in Gateway


Fix duplicate cols scanorama

Close https://github.com/theislab/scib-pipeline/issues/32
Most important is: 0b397b3f8fa365ac87a0a06c08d94121ce7be794
Other two are pre-commits + formatting which is missing in the current scib/ scib-pipeline packages.

@michalk8, do you mind checking how I remove the cols here 0b397b3f8fa365ac87a0a06c08d94121ce7be794 - could be that you know a more elegant way :)
@LuckyMD, @mumichae, this code fixes the error reported here but might obscure what is going wrong under the hood. When I debugged this issue on my data the adata files in corrected contained 3 columns called mean and std, respectively. Maybe this helps you already what happens here. In any case, I included a print statement to make the deletion transparent.

@michalk8, do you mind checking how I remove the cols here https://github.com/theislab/scib/commit/0b397b3f8fa365ac87a0a06c08d94121ce7be794 - could be that you know a more elegant way :)

This will also keep the first duplicated columns (from left to right):
for attr in ("obs", "var"):
    df = getattr(adata, attr)
    dup_mask = df.columns.duplicated()
    if dup_mask.any():
        print(f"Deleting duplicated keys `{list(df.columns[dup_mask].unique())}` from `adata.{attr}`.")
        setattr(adata, attr, df.loc[:, ~dup_mask])

Love it @michalk8, thanks a lot! :)

This happens inside the scib-pipeline so I cannot really answer if this
happens a lot - do you think moving the fix would still solve this issue
where it occured?
On May 12, 2022, Michaela Mueller @.***> wrote:

@mumichae requested changes on this pull request.
Thanks for catching this. Is it a common thing to have duplicate
columns?
I think we may have tried to address this issue with the
scib.utils.merge_adatas() function. It would be good to move this fix
to or update scib.utils.merge_adatas() and use that function.

—
Reply to this email directly, view it on GitHub
https://github.com/theislab/scib/pull/306#pullrequestreview-970736876,
or unsubscribe <https://github.com/notifications/unsubscribe-
auth/AF6VGRN5MQFMM3SKD72B3F3VJTYI5ANCNFSM5VAFRR5A>.
You are receiving this because you authored the thread.Message ID:
@.***>

What exactly do duplicate columns look like? Are they columns with exactly the same name? I'm curious how that happens in pandas, as I'm trying to reproduce the initial error.

I moved the duplicate column removal to the scib.utils.merge_adata function and call it in scanorama as well as in the scib.preprocessing.scale_batch functions.
@MxMstrmn Could you test if this code is working for your data? If you have a way to generate duplicate columns, I'd love to add a test to pytest

Yes, I will check it and add a test!


Update kpt live init documentation.

This updates the kpt live init cli help. This changes the text that is selected from online documentation via mdtogo. Flags are documented via the Cobra command config:
Initialize a package with a object to track previously applied resources

The init command initializes a package with a template resource which will
be used to track previously applied resources so that they can be pruned
when they are deleted.

The template resource is required by other live commands
such as apply, preview and destroy.

Usage:
  kpt live init DIRECTORY

Examples:

  # initialize a package
  kpt live init my-dir/

  # initialize a package with a specific name for the group of resources
  kpt live init --namespace=test my-dir/

Flags:
  -h, --help                  help for init
  -i, --inventory-id string   Identifier for group of applied resources. Must be composed of valid label characters.

This removes the duplicated Flag values and provides additional context for the command.

Note: other commands which have similar behavior to the original kpt live init --help have not been updated (for example kpt pkg init --help).

Fixes #1362

Yeah, the --namespace flag is a bit tricky here. Adding the additional explanation here does make sense, but it isn't quite aligned with the other commands. But I think this is an improvement, so let's merge this and we can revisit the bigger question on how we should structure the output from commands later.


Run the code in the shell, but not work in the pycharm

Description
I can run this code in the shell command,
but with the same remote settings and Conda environment in the Pycharm,  it always occurs:
raise HydraException(f"Error calling '{cls}' : {e}") from e hydra.errors.HydraException: Error calling 'mtrl.experiment.metaworld.Experiment' : Error calling 'metaworld.MT10' : Error loading module 'metaworld.MT10'
How to reproduce
python main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=1 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.multitask.should_use_task_encoder=True agent.encoder.type_to_select=film agent.multitask.should_use_multi_head_policy=False agent.multitask.task_encoder_cfg.model_cfg.pretrained_embedding_cfg.should_use=True agent.multitask.task_encoder_cfg.model_cfg.output_dim=6

System information

MTRL Version :  1
Python version : 3.6.13

Hey @Amanda-1997 Thanks for your question. The issue might be because of some configuration issues with your PyCharm setup. I am not much familiar with PyCharm. Feel free to (re)-open the issue if you have any other questions.

Hi @Amanda-1997 I have the same error in VSCode, where you able to fix your problem? Thanks!


Connect external https services from istio mesh, with certificate provided by the  service

(This is used to request new product features, please visit https://discuss.istio.io for questions on using Istio)
Describe the feature request
Connect external https services from istio mesh, with certificate provided by the  service.
Describe alternatives you've considered
Currently we have certificate inside application. We want same thing to be moved to istio.
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Additional context

@ayan1207 - thanks for opening this.
Could you please elaborate more on what you are trying to achieve?
From the above description, my understanding is that you want to import a client certificate from an external source and add it to Istio proxy to be used when connecting to the external service. That means that the certificate will be used to authenticate services inside the mesh to the external service but the certificate will not be managed by Istio.
Is that correct?

Hi,
We need to connect the external service which has its own certificate.
For this we have created the ServiceEntry for the service outside the mesh and a DestinationRule where we have passed the certificate.
After applying this and trying to connect the external service , we get the error as:
2019-08-12 11:20:16.583 ERROR 1 --- [ault-executor-0] j.d.p.g.s.DigitalApiGrpcServiceProcessor : Service exception, error message is : Exception occured while invoking service interface, Error Message : I/O error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
destinationrule_estel.txt
serviceentry_estel.txt

@rakeshjain1213 it seems that the error above comes from the workload application (i.e., client)?
If so, it seems to attempt TLS on its own since the error is not reported by Istio's sidecar proxy.
You should reconfigure the workload to use HTTP instead of HTTPS in that case.
I think you're trying to have the application access a server and want to have Istio initiate the TLS.
If the server certificate is not signed by a well known CA (i.e., there is a trust path from the server certificate to some established CA), you may need to import the CA for that connection in the TLSSetting configuration object (see https://github.com/istio/api/blob/93fc23ae4a32512b282e25491b7f06eadbbb7336/networking/v1alpha3/destination_rule.proto#L606).

Hi,
Will you please let me know what need to be done in order to connect the service which is outside the mesh and has its own .crt (certificate file).
Please let us know what all configurations need to be done to achieve the same.

hi @rakeshjain1213.
For example, https://istio.io/docs/tasks/traffic-management/egress/egress-tls-origination/?

Hi Elevran,
I have gone through this concepts, but it is difficult to understand how this would be implemented.
Will you please help me to achieve this, I want to call a service outside the mesh over https with the certificate provided by them.
Please let me know what all configurations i need to do.
Thanks in advance.

hi @rakeshjain1213
The needed configuration for TLS origination from egress is shown in https://istio.io/docs/tasks/traffic-management/egress/egress-gateway-tls-origination/#configure-mutual-tls-origination-for-egress-traffic (ignore the mTLS part, you need one way TLS):
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-egressgateway
spec:
  selector:
    istio: egressgateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - nginx.example.com
    tls:
      mode: MUTUAL
      serverCertificate: /etc/certs/cert-chain.pem
      privateKey: /etc/certs/key.pem
      caCertificates: /etc/certs/root-cert.pem

Note that the TLS mode should be set to SIMPLE in your case and privateKey is not needed

Hi Elevran,
I have not created a Egress Gateway, but have just created the ServiceEntry and DestinationRule.
PFA files that i was using to configure https traffic.
serviceentry_estel.txt
destinationrule_estel.txt

Hi,
Also please let me know , what about ca certificate. What we need to be configure in that, as from client side I have received only one certificate file that is estelvms.crt.
So I dint from where we will be getting ca cert file.

Any Update

Hi @rakeshjain1213,
Do you still have trouble with this issue?
As @elevran  mentioned, you need CA cert file if the (external) server you are talking to use the cert signed by non-wellknown root CA. You should be able to get the cert by contacting the service owner.

i believe this is a duplicate of https://github.com/istio/istio/issues/21368. you can comment +1 and follow up there.
closing. feel free to reopen.

@rakeshjain1213

Hi Elevran,
I have not created a Egress Gateway, but have just created the ServiceEntry and DestinationRule. PFA files that i was using to configure https traffic.
serviceentry_estel.txt destinationrule_estel.txt

@rakeshjain1213
We are also using same configuration but still  issue not solved . please share your solution . Thanks for help

@rahul6941 There are two cases.

If your external svc works on the mtls mode, you shoud set the tls mode as MUTUAL and specify client cert and ca cert in DR.
If your external svc only work on the tls mode, you just set the tls mode as SIMPLE.

@rahul6941 There are two cases.

If your external svc works on the mtls mode, you shoud set the tls mode as MUTUAL and specify client cert and ca cert in DR.
If your external svc only work on the tls mode, you just set the tls mode as SIMPLE.

The important thing you have to do is that switch the client application to use http:// instead of https://.
Do client cert and ca cert in DR are required on tls mode as SIMPLE?
Sorry for  dump question and also #newbee here : Its not true that all istio outbound traffic  are encrypted with TLS protocol ?


[DO NOT MERGE] Add OSX CI

Codecov Report

Merging #1290 into master will decrease coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1290      +/-   ##
==========================================
- Coverage    65.6%   65.55%   -0.06%
==========================================
  Files          74       74
  Lines        5786     5786
  Branches      884      884
==========================================
- Hits         3796     3793       -3
- Misses       1725     1726       +1
- Partials      265      267       +2

Impacted Files
Coverage Δ

torchvision/transforms/transforms.py
80.55% <0%> (-0.4%)
:arrow_down:

torchvision/transforms/functional.py
71.09% <0%> (-0.29%)
:arrow_down:

Continue to review full report at Codecov.

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

Subsumed by https://github.com/pytorch/vision/pull/1298


Add component dendencies and modules

Components, Modules, and Dependencies
:recycle: Current situation & Problem
Components can be configured using the CardinalKit configuration. Different components might rely on each other to provide functionality. These dependencies need to be defined by components.
:bulb: Proposed solution
The PR adds a way to define the dependencies between different components.
:gear: Release Notes

Introduced the Module type combining multiple requirements for Components
Introduces DependingComponent as a protocol that can be used to define dependencies between different CardinalKit components.

Code of Conduct & Contributing Guidelines
By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines:

[x] I agree to follow the Code of Conduct and Contributing Guidelines.

Codecov Report

Merging #5 (36a9e49) into main (2ca5369) will decrease coverage by 44.97%.
 Consider uploading reports for the commit 724b199 to get more accurate results

Additional details and impacted files

@@             Coverage Diff              @@
##              main       #5       +/-   ##
============================================
- Coverage   100.00%   55.04%   -44.96%
============================================
  Files           12       14        +2
  Lines          167      278      +111
============================================
- Hits           167      153       -14
- Misses           0      125      +125

Impacted Files
Coverage Δ

...rdinalKit/CardinalKit/CardinalKitAppDelegate.swift
100.00% <ø> (ø)

...rdinalKit/CardinalKit/Infrastructure/Storage.swift
100.00% <ø> (ø)

...ces/CardinalKit/CardinalKit/View+CardinalKit.swift
66.67% <ø> (ø)

...Capabilities/Dependencies/DependingComponent.swift
0.00% <0.00%> (ø)

...ties/Lifecycle/CardinalKit+LifecycleHandlers.swift
100.00% <ø> (ø)

...dule/Capabilities/Lifecycle/LifecycleHandler.swift
100.00% <ø> (ø)

...servableObject/CardinalKit+ObservableObjects.swift
23.08% <ø> (ø)

...s/ObservableObject/ObservableObjectComponent.swift
0.00% <ø> (ø)

.../Capabilities/Dependencies/DependencyManager.swift
8.50% <8.50%> (ø)

Sources/CardinalKit/Configuration/Component.swift
70.00% <50.00%> (ø)

... and 8 more

Continue to review full report at Codecov.

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


Query Auth0 for accountLinkId in directives if missing

It is possible for clients to send a token for an existing user that does not have the accountLinkId, even though the user has one assigned to them and an entry in the database.

User logs in/creates an account. The token sent to create the account has no accountLinkId
As part of creating an account, we assign a uuid as the accountLinkId and update the user record held at Auth0
Subsequent requests from this user still holds a token with no accountLinkId
Here lies a potential never-ending loop of multiple accounts for the same user, until the user logs out and in again to gain their new token.

There is scope for setting the accountLinkId over in Auth0, so every token has an accountLinkId from the very first login.
Do we still need to handle the case for if we end up setting it here because it is missing? I think it would lead to some crappy UX having to invalidate the token and having new users log out and in again.
I am going to raise a PR that will add the current rules we have set in Auth0 to this repo. Just so we all have some visibility of them and what they are doing.

In looking into the accountLinkId issue , I found it was as simple as adding uuid() inside the rule, so I have. See #108 for details on the rule.
As always, I am open to changes.
We still need to discuss how we handle cases for if the accountLinkId is missing. This could happen if the incorrect scope was requested when logging a user in.


Trouble using rust::Vecrust::String as function argument

I'm trying to write a parser for a pet project and I'm hitting multiple issues interfacing through cxx. This involves constructing an object from a vector of strings.
Snippets:

Header
#pragma once

#include "rust/cxx.h"

#include <memory>

namespace app {
    class Parser {
    public:
        // Parser(const rust::Vec<rust::String>& cmdline_args): m_cmdline_args(cmdline_args);
        // constructor initialization list broken
        Parser(const rust::Vec<rust::String>& cmdline_args);

    private:
        rust::Vec<rust::String> m_cmdline_args;
    };

    std::unique_ptr<Parser> new_parser(const rust::Vec<rust::String>& cmdline_args);
}

CPP source
#include "parser/include/parser.hpp"

#include <iostream>

namespace app {
    Parser::Parser(const rust::Vec<rust::String>& cmdline_args) {
        // this->m_cmdline_args = cmdline_args;
        // assignment operator broken
        this->m_cmdline_args = {};

        for (auto arg: cmdline_args) {
            this->m_cmdline_args.push_back(arg);
        }

        std::cout << "Hello, world!" << std::endl;
    }

    std::unique_ptr<Parser> new_parser(const rust::Vec<rust::String>& cmdline_args) {
        return std::make_unique<Parser>(new Parser(cmdline_args));
    }
}

Rust source lib.rs
#[cxx::bridge(namespace = "app")]
pub mod ffi {
    unsafe extern "C++" {
        include!("parser/include/parser.hpp");

        type Parser;

        fn new_parser(cmdline_args: Vec<String>) -> UniquePtr<Parser>;
    }
}

On the C++ side, initialization-list constructors don't seem to work.
There's also some trouble with the assignment operator= between a rust::Vec<rust::String> and a const rust::Vec<rust::String>& which makes it tricky to adhere to idiomatic C++.
Even with workarounds (no init list in constructor, no operator= - instead using push_back in a for loop), the snippet above still doesn't compile with cxx and cxx-build v1.0.15. The errors seem to revolve around the use of const & with Vec arguments.

What's the recommended way of passing a vector of strings around as function args?

The build error I get from the files you shared is:
example-36032d026cad2abb/out/cxxbridge/sources/parser/src/main.rs.cc: In function ‘app::Parser* app::app$cxxbridge1$new_parser(const rust::cxxbridge1::Vec<rust::cxxbridge1::String>*)’:
example-36032d026cad2abb/out/cxxbridge/sources/parser/src/main.rs.cc:467:89: error: invalid conversion from ‘std::unique_ptr<app::Parser> (*)(const rust::cxxbridge1::Vec<rust::cxxbridge1::String>&)’ to ‘std::unique_ptr<app::Parser> (*)(rust::cxxbridge1::Vec<rust::cxxbridge1::String>)’ [-fpermissive]
  467 |   ::std::unique_ptr<::app::Parser> (*new_parser$)(::rust::Vec<::rust::String>) = ::app::new_parser;
      |                                                                                ~~~~~~~^~~~~~~~~~
      |                                                                                |
      |                                                                                std::unique_ptr<app::Parser> (*)(const rust::cxxbridge1::Vec<rust::cxxbridge1::String>&)

which means that CXX is expecting your signature to be std::unique_ptr<Parser> new_parser(rust::Vec<rust::String>) whereas your actual signature is std::unique_ptr<Parser> new_parser(const rust::Vec<rust::String>&).
If you meant for the signature to be fn new_parser(Vec<String>) -> UniquePtr<Parser> in Rust, you need to provide std::unique_ptr<Parser> new_parser(rust::Vec<rust::String>) in C++. Alternatively if you meant for the signature to be std::unique_ptr<Parser> new_parser(const rust::Vec<rust::String>&) in C++, you need to write it as fn new_parser(cmdline_args: &Vec<String>) -> UniquePtr<Parser> in Rust. They need to be consistent.
After that you'll also need to change:
- return std::make_unique<Parser>(new Parser(cmdline_args));
+ return std::make_unique<Parser>(cmdline_args);

or:
- return std::make_unique<Parser>(new Parser(cmdline_args));
+ return std::unique_ptr<Parser>(new Parser(cmdline_args));

since there is no constructor Parser::Parser(Parser *).
For rust::Vec copy construction, it just wasn't implemented yet. I've added those in cxx 1.0.16.
Parser::Parser(const rust::Vec<rust::String>& cmdline_args)
    : m_cmdline_args(cmdline_args) {}

// or

Parser::Parser(const rust::Vec<rust::String>& cmdline_args) {
    this->m_cmdline_args = cmdline_args;
}

Ah, I missed the reference & on the Rust side - thank you for pointing me in the right direction! As for the copy constructors, I'm glad to hear they're coming up shortly. Thank you for your help!


net/frr: Add Adjacency logging

Closes #3674

I know, just keep it as the rest for easier reading :)


Add option to pull credentials from aws secrets manager

User story
As a user, I want to to store/retrieve credentials in aws secrets manager, so I don't have to worry about storing them on my local machine.
Acceptance criteria

[ ] Add a method to optionally construct the CodeOceanCredentials class from a secret store in aws secrets manager.

Sprint Ready Checklist

[ ] Acceptance criteria defined

[ ] Team understands acceptance criteria

[ ] Team has defined solution / steps to satisfy acceptance criteria

[ ] Acceptance criteria is verifiable / testable

[ ] External / 3rd Party dependencies identified

[ ] Ticket is prioritized and sized

Notes
Add any helpful notes here.

Welp, glad I finished this today. I am available as an independent contractor if you ever need me later. Cheers.


Create informers for AzureIngressManagedTarget & AzureIngressProhibitedTarget CRDs

This PR introduces new CRDs: AzureIngressManagedTarget and AzureIngressProhibitedTarget
These will define a top level parent of the resources our Ingress Controller is allowed to mutate.
The CRDs will be created by the AKS administrator.
A sample YAML creating new instances of this resource would have the following shape:
apiVersion: "appgw.ingress.k8s.io/v1"
kind: AzureIngressManagedTarget
metadata:
  name: ingress-managed-location
spec:
  ip: <IP_ADDRESS>
  host: "www.contoso.com"
  port: 80
  paths:
    - "/foo/*"
    - "/bar/*"

AKS administrator would make multiple AzureIngressManagedListener objects in order to control multiple ports/hosts/URLs.
This PR is the composition of the following smaller PRs:

https://github.com/Azure/application-gateway-kubernetes-ingress/pull/279 - go get -u all && go mod tidy
https://github.com/Azure/application-gateway-kubernetes-ingress/pull/280 - go mod vendor
https://github.com/Azure/application-gateway-kubernetes-ingress/pull/281 - Script to auto-generate CRD clients
https://github.com/Azure/application-gateway-kubernetes-ingress/pull/282 - Autogenerated CRD Clients
https://github.com/Azure/application-gateway-kubernetes-ingress/pull/282 - Register new CRDs

This was merged with smaller PRs.


Not Authorized

God this message,

while copilot is active for account

MacOS 12.6 Xcode 14.2

Probably block via IP address


How to create Normal Function within a Controller?

Hello there,
How to create a normal function within a controller? Does it always have to be a generator function?
these codes below didn't work.
Thanks ahead.
class SettingController {
     * authRedirect (request, response){
        // blocks of code
        normalFuctionHere()
    }
    normalFunctionHere(){
    // should I return "return if a value" or "yield"
    }
}

Hey @domzgarcia! 👋
Since you are inside a class you need to use the this keyword to call other methods.

@RomainLanz  great it works now,
but what if I have a user needs to insert to database
insertUserRecords (userIdentity, exchangedToken){
        console.log('it works!')
        // let authUser            = new AuthUser()
        // authUser.name           = userIdentity.body.name
        // authUser.access_token   =  exchangedToken
        // authUser.fbid           = userIdentity.body.id
        // authUser.img_url        = `https://graph.facebook.com/${userIdentity.body.id}/picture?type=large`
        // authUser.is_active      = 1
        // yield authUser.save()
    }

Sorry, I don't get what is your question.

I was able to insert using this code but I guess there is a better way to this
insertUserRecords (userIdentity, exchangedToken){
        let authUser                = new AuthUser()
            authUser.name           = userIdentity.body.name
            authUser.access_token   =  exchangedToken
            authUser.fbid           = userIdentity.body.id
            authUser.img_url        = `https://graph.facebook.com/${userIdentity.body.id}/picture?type=large`
            authUser.is_active      = 1
        return authUser
    }

// to invoke the function with this keyword

let process = this.insertUserRecords(userIdentity, exchangedToken)
                        yield process.save()

I mean in the first question I asked,
I cannot use yield because my normal function is "not" a generator function in that form
so the way I make this working is to return the AuthUser(which is a model) instance/class
then invoke a .save() method like this at the end.
let process = this.insertUserRecords(userIdentity, exchangedToken)
     yield process.save()

Please, use the forum for this kind of question.
https://forum.adonisjs.com/

Closing since issue is not actionable


startup crash with the newest vrsion from curseforge

http://paste.ubuntu.com/10106228/

looks like a file not found exception will look in to this asap

btw sorry for the late response was sleeping :P

just submitted a new file to curseforge will close when approved

update approved: http://minecraft.curseforge.com/mc-mods/227603-hxclinkpads closing.


New ChromeOS update breaks Crouton

So I installed the new ChromeOS update on my Acer C720 this morning and bam, my chroot using xfce and trusty ubuntu became broken. Upon trying to start the chroot environment with sudo startxfce4 I get a X window server crash, and nothing else happens. I power-washed and reverted my chromebook to the prior version of ChromeOS and things started working again after I re-installed the chroot once again using xfce and trusty ubuntu.  See https://github.com/dnschneid/crouton/wiki/Common-issues-and-reporting

ahhhh, i feel silly now :P


Highscores not working.

Describe the bug
Just as the title says, The Highscores tab is not working correctly. It acts like it can not find the player, even searching for myself.
Environment (please complete the following information):

OS: Windows 10
RuneLite version: 1.6.5
Launcher version: Claims to be "Unknown"

Additional context
I will supply logs if requested.

Jagex servers for the highscores are intermittently down, so I'm willing to bet this is an issue with that and not runelite.

Duplicate of #10592


Add author and/or date to video thumbnail listings

Should we show author of video and date? (Or rather than date, perhaps age?)

For comparison, here's the YouTube interface:

Done using https://github.com/EvanHahn/HumanizeDuration.js
Before:

After:


Consider including Vite plugin?

It would be very cool if there was a Vite or other bundler plugin that could just be plopped in with zero config to make SharedArrayBuffer work for static deployments to eg GitHub Pages.
idea: just inject the AiO <script> tag into the final index.html via said plugin!

Given #16 i think this is better suited to an example/demo


Issue 46019: CustomViewUtil update to account for filter value of type Integer

Rationale
https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=46019
Changes

CustomViewUtil update to account for filter value of type Integer when getting filterInfo from json filters

Consider Objects.toString() for this pattern.

Thanks for the suggestion. Switched to Objects.toString(value, "").


Reverse order of file types introduced when creating new notebook

Once we add Python, the majority use case will be .ipynb. As a user, when navigating through the steps through the quick pick, I will likely press enter as fast as possible to get me to a new notebook. In order to help facilitate and get people in the most likely scenario I think it makes sense to reverse the order of the file types displayed. (.ipynb first, .dib second)

This seems related to #2024, which suggests a different approach to smoothing this workflow.
Is it clear that doing both would be useful? Going out of alphabetical order would be nonstandard (especially as we add more file types), and might not yield any benefit once #2024 is implemented.

Had a quick chat with Peng and the quick pick is stateless but recommended that we can detect the last selected and change the display order if we want to go down that more dynamic solution

That often makes sense when different users are doing different things.


Cannot read property '_ua' with 4.2.0

Hello,
On the last version 4.2.0 :
package.json
  "dependencies": {
    ...
    "algoliasearch": "4.2.0",
    "autocomplete.js": "^0.37.1",
    "places.js": "^1.18.2",
   ...
  }

When I try to play with your example :
import algoliasearch from 'algoliasearch/lite';
import autocomplete from 'autocomplete.js/dist/autocomplete.js'
import placesAutocompleteDataset from 'places.js/dist/cdn/placesAutocompleteDataset.js';

class Search {

  constructor() {
    var client = algoliasearch('...',  '...');
    var index = client.initIndex('myIndex');

    var rentalsDataset = {
      source: autocomplete.sources.hits(index, {hitsPerPage: 2}),
      displayKey: 'name',
      name: 'rentals',
      templates: {
        header: '
Rentals
',
        suggestion: function(suggestion) {
          return suggestion.name;
        }
      }
    };

    var placesDataset = placesAutocompleteDataset({
      appId: '...',
      apiKey: '...',
      algoliasearch: algoliasearch,
      templates: {
        header: '
Cities
'
      },
      hitsPerPage: 3
    });

    var autocompleteInstance = autocomplete(document.querySelector('#autocomplete-dataset'), {
      hint: false,
      debug: true,
      cssClasses: {prefix: 'ad-example'}
    }, [
      drivingSchoolsDataset,
      placesDataset
    ]);

    var autocompleteChangeEvents = ['selected', 'autocompleted'];

    autocompleteChangeEvents.forEach(function(eventName) {
      autocompleteInstance.on('autocomplete:'+ eventName, function(event, suggestion, datasetName) {
        console.log(datasetName, suggestion);
      });
    });
  }

}
export { Search };

In the console :
Uncaught TypeError: Cannot read property '_ua' of undefined
    at Object.search [as hits] (VM1356 application-12e46ff6a8ef7bc4031e.js:21352)
    at new Search (VM1356 application-12e46ff6a8ef7bc4031e.js:234)

NB : I don't have this problem with 4.1.0

Autocomplete.js isn’t compatible with v4 with the the default source, however it’s not too hard to write your own autocomplete source:
const source = (index, parameters) => (query, cb) => index.search(query, parameters).then(res => cb(res.hits, res)).catch(err => cb([], err))

Which you use the same as the “hits” source bundled with autocomplete.
Note: I wrote the code on my phone, so it could have a syntax error

Ah, and for places you need to use the initPlaces method like described in the migration guide

Thanks @Haroenv, I'll try that.


Secondary capture colour image does not render on v3-demo

I am running v3-demo on https://v3-demo.ohif.org/local and load attached sample file and having following display.

Please refer to the attached sample dicom file "colortest1-1.dcm", unzip from colortest1-1.zip.
colortest1-1.zip

It is easy to reproduce by dragging the sample DICOM object attached by Anthony into v3-demo URL. By looking at the way it is rendering, it is as if the image is not being recognized as a color image even though samples per pixel is 3 and photometric interpretation is set to YBR_RCT.

@swederik will the integration of Cornerstone 3D into OHIF fix issues like this or will the rendering of 2D images be unchanged? I looked at the Cornerstone 3D examples and if there was an example where you could drag and drop a local image, it would be useful to see what the behavior is.

My guess is that it's a metadata issue in OHIF or maybe in the WADO image loader. So I don't think the change to cs3d will fix it by itself, but we will make a note to look into it.

@swederik I agree that it is likely a metadata issue. It looks similar to the issue reported in #2790 from its appearance. What is the easiest way to debug Cornerstone from OHIF? Do I need to rebuild Cornerstone to be not minified? My guess is that this is likely a simple issue to fix so I wanted to investigate it further.

@s2ramana Turns out the JSON structure mentioned here render's the image correctly. However, issue of viewing all the frames of dicom images still persists.
Additionally, I also observed issue rendering the image when the photometric interpretation tag's value is YBR_FULL_422 and  it works with YBR_FULL or RGB.

Please review the latest code in the master branch. I am confident that this issue has been resolved. If it persists, kindly reopen the issue with updated details.
Try viewer-dev.ohif.org instead of viewer.ohif.org
Our viewer.ohif.org is deployed from release branch while viewer-dev.ohif.org is our master  branch
Read more about branch explanations here https://docs.ohif.org/development/getting-started#developing


Add support for unit of measurement

configuration example:
sensor:
  - platform: ssh
    host: !secret proxmox_host
    name: 'NUC CPU Temp'
    username: !secret proxmox_user
    password: !secret proxmox_pass
    command: "sensors | grep 'Package id 0:' | cut -c17-20"
    value_template: >-
      {%- set line = value.split("\r\n") -%}
      {{ line[1] }}
    unit_of_measurement: "ºC"

@LbDab, done as requested.
Thanks!


Cannot find process with ID for UDP Endpoints

During the run of Invoke-UdpEndpointsCheck the following error occurs. The message is German but it means "Cannot find process with ID xyz".
+------+------------------------------------------------+------+
| TEST | NETWORK > UDP Endpoints                        | INFO |
+------+------------------------------------------------+------+
| DESC | List all UDP ports that are in a LISTEN state. For    |
|      | each one, the corresponding process is also returned. |
|      | DNS is filtered out to minimize the output.           |
+------+-------------------------------------------------------+
Get-Process : Es kann kein Prozess mit der Prozess-ID 55184 gefunden werden.
In Zeile:514 Zeichen:86
+ ... oteProperty" -Name "Name" -Value (Get-Process -PID $ProcessId).Proces ...
+                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (55184:Int32) [Get-Process], ProcessCommandException
    + FullyQualifiedErrorId : NoProcessFoundForGivenId,Microsoft.PowerShell.Commands.GetProcessCommand

So I assume either we have no privileges looking up the process, or the processes are so short living that they are gone when the process info is retrieved. However, listing TCP services works and it is always reproducible on this particular machine, so I'm a bit confused. Maybe this exception can be handled and the process name can be left empty in this case?

Hello,
Thank you for reporting this issue.
I doubt this is a matter of privileges as Get-Process can be invoked even on protected processes for instance. A race condition between the time the ports are enumerated and the time the process is queried is possible but unlikely, especially as you are able to reproduce the issue reliably.
The behavior you are observing could be caused by a forking mechanism. The process that created the socket no longer exists, I don't know.
Whatever the reason, you are right, the script is missing some error handling. I will see how I can fix this.
Thanks again! :)

Problem fixed, I simply added -ErrorAction SilentlyContinue to ignore errors in case the process associated to the TCP/UDP endpoint no longer exists.
Get-Process -PID $ProcessId -ErrorAction SilentlyContinue


Duplicate file handling

Is it possible to add options for duplicate file handling? Sometimes the program will forget the previously downloaded posts when I upgrade the version. Whenever this happens, it will re-download everything with "_1" added to the end of the file. Is it possible to add an option to skip the download if the file already exists?

emm, don't forget move the Data.db file to new version folder.
And some post will re-download when the author update the attachments.
And it will check local file now.


ci: add CI workflow

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Renderer Errors with filter pandoc-citeproc in clean directory

pandoc renderer errors if used with pandoc-citeproc on clean directory
if pandoc renderer is run on hexo generate without filter pages render then render citations if pandoc-citeproc is added to filters in config.yml
The plugin then errors if the directory is cleaned with hexo clean cmd and run again.
Error: pandoc-citeproc: reference undefinedmethod not found
pandoc-citeproc: reference undefinedmethod not found

I believe the issue is not related to hexo clean.
I think what happened to @undefinedMethod is that pandoc warned when certain references are not defined, in which case pandoc simply proceeded and generated the following
(???)

which is rendered as (???).
What went wrong is in this plugin we capture everything from stderr and blocked hexo if there is anything.
This has caused issue before: https://github.com/wzpan/hexo-renderer-pandoc/pull/26
What I think we need is a way to separate warnings from actual issues. I will investigate this.
Also, while I am writing this, the issue is closed by the original reporter. May I ask why this issue is no longer a concern?

@undefinedMethod My apologies,
It appears that a twitter link using the @ symbol was being misread by pandoc-citeproc as a citation link, When I reformatted that link the issue was resolved.

@undefinedMethod Good to hear that your particular issue has been resolved. But still, you exposed one potential issue that when a reference item is undefined, or more generally, when pandoc sends a warning, this plugin blocks hexo. I will open a separate issue so you will not be bothered by GH notifications. Thanks


Option to always display menu when input is focussed

Hi there,
Thanks for the fantastic project.
I want to use this as a replacement/enhancement for select. However, none of the examples I can find will show all the results before the user has typed anything. It would be useful if the menu was opened as soon as the input was focussed, much like clicking on a select opens the full list. The user could then scroll to find their result, or type to filter it.
Is this behaviour supported using existing functionality?
This would be similar to the alwaysRenderSuggestions option provided by react-autosuggest.
Thanks,
Oliver

Hi @OliverJAsh! Thanks for the feedback.
Your issue is quite similar to https://github.com/alphagov/accessible-autocomplete/issues/31. No, it's not supported today, but we definitely want to have this.

Great, thanks for the quick feedback! I will consider contributing when I come to use it.

@OliverJAsh haha, wasn't trying to trip you into that! I will eventually get to it myself.
This feature should be simple to implement.
I'm happy to provide further guidance for someone trying to understand the codebase and submit it as a first contribution. 👍

I'm looking into this.
The problem I've come across is that currently there is no default source function. When we want to show options in this scenario, if we call source with a blank input, nothing returns. Since source is a function that comes from the user, we cannot modify it to say 'in this situation, return all results'.
One solution might be to change what accessibleAutocomplete accepts. Instead of a single source function, it could be options and searchFunction, with searchFunction being optional as we would have a simple default.
This would then give us access to all the options, and bring the default searchFunction under our control, and we could provide this 'showAllOptions' feature.

When we want to show options in this scenario, if we call source with a blank input, nothing returns. Since source is a function that comes from the user, we cannot modify it to say 'in this situation, return all results'.

@joelanman I think it's fine if we guide users to do that. The autocomplete should call source with an empty string, and whatever source returns is fair play. The user should have complete control over the behaviour of source so they can customise it based on their needs.
The current behaviour of the autocomplete is a bit of a double standard, as minLength: 0 and minLength: 1 mean the same thing. The docs on minLength are not completely true: https://github.com/alphagov/accessible-autocomplete#minlength-default-0

One solution might be to change what accessibleAutocomplete accepts. Instead of a single source function, it could be options and searchFunction, with searchFunction being optional as we would have a simple default.

That's out of scope for this, but it's another feature we'd like! 😄  https://github.com/alphagov/accessible-autocomplete/issues/115

I'm going to close this issue as I believe this has been implemented in the showAllValues option that can be used with this component. If you think this hasn't been implemented, please re-open the issue and provide replication steps so we're able to reproduce the issue.


Bugfix for applyChangeSet. String changes maintain value and oldValue

applyChangeSet is incorrectly applying changes to string properties when combining reversible changeSets (i.e. with value and oldValue) causing oldValue for the secondary changeSet to be lost on application.
Behaviour
const cs1 = {
  String: {
    x: {
      oldValue: "a",
      value: "b"
    }
  }
};
const cs2 = {
  String: {
    y: {
      oldValue: "c",
      value: "d"
    }
  }
};

applyChangeSet (Before fix)
{
  String: {
    x: {
      oldValue: "a",
      value: "b"
    }
    y: "d",
  },
}

applyChangeSet (After fix)
{
  String: {
    x: {
      oldValue: "a",
      value: "b"
    }
    y:  {
      oldValue: "c",
      value: "d"
    }
  },
}

@pswillcock  @ruiterr @nedalhy Was this defect already addressed elsewhere?

@dstanesc It would be great if you can introduce a simple reproducible test  in the PR as @ruiterr requested, then we can merge it.

@pswillcock @ruiterr @nedalhy @dstanesc I wonder whether something was fixed here. I do not have the tests from @pswillcock . I tried to reproduce but it looks to work. Here is the code which I used to reproduce
function testApplyChangeSet(workspace: BoundWorkspace){
    const rootProp: NodeProperty = workspace.workspace.rootProperty;
    const prop1Name = "prop1";
    const prop2Name = "prop2";
    const prop1: StringProperty = rootProp.resolvePath(prop1Name) as StringProperty;
    prop1.value = "p1";
    const ch1 = rootProp.getPendingChanges();
    ch1._toReversibleChangeSet(workspace.workspace.tree.tipView);
    workspace.workspace.commit();
    const prop2: StringProperty = rootProp.resolvePath(prop2Name) as StringProperty;
    prop2.value = "p2";
    const ch2: ChangeSet = rootProp.getPendingChanges();
    ch2._toReversibleChangeSet(workspace.workspace.tree.tipView);
    console.log("CH1: " + JSON.stringify(ch1));
    console.log("CH2: " + JSON.stringify(ch2));
    ch1.applyChangeSet(ch2);
    console.log("CH1-CH2: " + JSON.stringify(ch1));
}

The output is following :
CH1: {"_changes":{"modify":{"String":{"prop1":{"value":"p1","oldValue":""}}}},"_isNormalized":false}

CH2: {"_changes":{"modify":{"String":{"prop2":{"value":"p2","oldValue":""}}}},"_isNormalized":false}

CH1-CH2: {"_changes":{"modify":{"String":{"prop1":{"value":"p1","oldValue":""},"prop2":{"value":"p2","oldValue":""}}}},"_isNormalized":false}

The oldValue is present also after applyChangeSet


Update helm chart version to v0.24

Thanks @JaneLiuL!
I'm going to hold this for now just so it doesn't merge accidentally, I want to double check the order that we merge helm chart stuff so we can try to fix the tagging issue from https://github.com/kubernetes-sigs/descheduler/issues/736


Remove redundant "identifier" flag

Identifier is true IFF userId is set.
The fact that this library relies on identifier being set is a blocker for removing that flag in https://github.com/solid/node-solid-server/pull/531#issuecomment-321564187.

Thanks @RubenVerborgh!

published as v0.7.3

Thanks, I'll wait for it to appear on npm!


@Parameters validation and error messages if arity > 0 is buggy

PicoCLI version: 1.0.1
I have a class annotated with @Parameters(arity = "1..*", description = "The input files") and discovered somethings about the validation of arity >= 1:

Fails to validate in some cases
Validates in some other cases but throws different messages based on whether an empty String ("") or zero-length String[] (new String[0]) is supplied to the parse(xx) method

         class Example {
            @Option(names = {"-h", "--help"}, help = true,
                    description = "Displays this help message and quits.")
            private boolean helpRequested;

            @Option(names = {"-o",
                    "--out-dir"}, required = true, usageHelp = true, description = "The output directory")
            private File outputDir;

            @Parameters(arity = "1..*", description = "The input files")
            private File[] inputFiles;
        }

        //Should've failed as inputFiles were not provided
        new CommandLine(new Example()).parse("-o /tmp");

        //Should've failed as inputFiles were not provided
        new CommandLine(new Example()).parse("-o", " /tmp");

        try {
            new CommandLine(new Example()).parse("");
        } catch (MissingParameterException e) {
            //Type 1 error message.
            e.printStackTrace();
        }

        try {
            new CommandLine(new Example()).parse();
        } catch (MissingParameterException e) {
            //Type 2 error message but the parameters are "essentially" the same as type 1.
            e.printStackTrace();
        }

Type 1 exception:
picocli.CommandLine$MissingParameterException: Missing required parameters at positions 0..*: inputFiles
	at picocli.CommandLine$Interpreter.assertNoMissingParameters(CommandLine.java:2159)
	at picocli.CommandLine$Interpreter.applyOption(CommandLine.java:1745)
	at picocli.CommandLine$Interpreter.processPositionalParameters0(CommandLine.java:1645)
	at picocli.CommandLine$Interpreter.processPositionalParameters(CommandLine.java:1601)
	at picocli.CommandLine$Interpreter.processArguments(CommandLine.java:1594)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:1501)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:1484)
	at picocli.CommandLine.parse(CommandLine.java:334)
	at Main.main(Main.java:32)

Type 2 exception:
picocli.CommandLine$MissingParameterException: Missing required options [outputDir, inputFiles]
	at picocli.CommandLine$MissingParameterException.create(CommandLine.java:4086)
	at picocli.CommandLine$MissingParameterException.access$1600(CommandLine.java:4071)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:1511)
	at picocli.CommandLine$Interpreter.parse(CommandLine.java:1484)
	at picocli.CommandLine.parse(CommandLine.java:334)
	at Main.main(Main.java:39)

I'm testing this with current master (2.0.0-SNAPSHOT) and I can reproduce what you are seeing.
However, I see a problem in the test. The -o option should not have usageHelp = true set. That attribute means that picocli stops parsing when it encounters the -o option...

After removing the usageHelp=true from the -o option, things worked mostly as expected.
Mostly, but not completely.
I agree that the difference between the Type1 and the Type2 exceptions is strange.
The second case seems okay: both the required -o option and the required positional parameter are reported as missing. This is as expected.
In the first case, an empty string parameter is passed. I would expect this to be parsed as a positional parameter (an <inputFiles> value), resulting in a Missing required option '-o=<outputDir>' exception.
Instead what we are getting is a Missing required parameters at positions 0..*: <inputFiles>. I've tracked down and fixed the bug that causes this.
The fix has been pushed to master and I added your example as a new set of test cases.
Thanks for raising this! Please verify that master behaves as expected now.

@remkop I think the decision to stop parsing and validating if the usageHelp=true is confusing. The reason I think so, is because I want the user to be able to type -h if he/she does not know the parameters. On the other hand, if the non-parameters are specified correctly then I want Pico to be able to validate them. It looks like usageHelp=true disables all that and takes the mutually exclusive approach.
Regards.

You raise some good points. Would you mind creating a new ticket?

FYI, I just started to work on #115 which aims to provide convenience methods for printing help and executing Runnable commands, even in applications with nested subcommands.
Some work in progress is now in master. See the CommandLine::parseWithHandler(s) methods.
Your input may shape this effort, especially with regards to error handling.

I created #207 to Provide ability to find which subcommand threw a ParameterException.

See also my comment here showing some idiomatic code for usageHelp. Let me know if this is not what you have in mind.

Thanks @remkop !