Add Dedicated Cluster type with networking options

Please add deployment.sku="DEDICATED" with networking"Internet", "PrivateLink", "VPCPeering"
resource "confluentcloud_kafka_cluster" "test" {
  name           = "provider-test"
  environment_id = confluentcloud_environment.env0.id
  #bootstrap_servers = string
  service_provider = "aws" # AWS/GCP
  region           = "ap-southeast-1"
  availability     = "LOW" # LOW(single-zone) or HIGH(multi-zone)
  storage          = 5000  # Storage limit(GB)
  network_ingress  = 100   #Network ingress limit(MBps)
  network_egress   = 100   #Network egress limit(MBps)
  deployment = {           #"Deployment settings.  Currently only `sku` is supported."
    sku = "DEDICATED"      #"BASIC"/"STANDARD"; "DEDICATED" - not supported yet

    # For sku="DEDICATED" only:
    networking       = "VPCPeering" # "Internet", "PrivateLink", "VPCPeering"
    cku = 1
    ## For sku="DEDICATED" && networking="VPCPeering"only:
    cidr_for_confluentcloud = "<IP_ADDRESS>/16"
  }
}

UPDATE 2020.10.08: seems go-client has it already - we need just port this arguments into tf-provider :)

There is a related issue about missed cku: https://github.com/cgroschupp/go-client-confluent-cloud/issues/6

+1 for both the ability to configure Dedicated Cluster networking and adding 'cku'.

+1 for this. Trying to set up a dedicated cluster with VPC peering but can't do it with the provider yet.

I think this is actually supported now 🤔
resource "confluentcloud_kafka_cluster" "test" {
  name             = "provider-test"
  service_provider = "aws"
  region           = "eu-west-1"
  availability     = "LOW"
  environment_id   = confluentcloud_environment.environment.id
  network_egress  = 100
  network_ingress = 100
  storage         = 5000

  deployment = {
    sku = "DEDICATED"
  }
  cku = 1
}

I can provide sku = "DEDICATED" and that works, but the cluster is set to be public and that is an immutable change once the cluster is created. I want to provision with VPC peering only, which (at least from what I have tried) doesn't seem to be supported yet.

I guess the TF provider isn't yet implementing the ClusterDeploymentNetworkAccess struct? https://github.com/cgroschupp/go-client-confluent-cloud/blob/master/confluentcloud/cluster.go#L36-L41

Whilst I can't help on the code side of adding the networking options, I can assist on the testing debugging or Azure-based Private Link and peering if it helps

In response to the initial comment of this ticket... the Go client actually does not have support for this during create. It returns the networking info in the response from the create request but does not allow it to be specified on the create request.
A step further, the Confluent CLI does not support creating clusters w/ PrivateLink. Does the API even support this?

@bono007 please excuse my ignorance as i am an infra guy rather than a dev - but does not this https://github.com/cgroschupp/go-client-confluent-cloud/blob/master/confluentcloud/cluster.go#L39 suggest that it is supported?

@Marcus-James-Adams 👋🏻
So at first glance I thought the same. However, that struct is not on the ClusterCreateConfig (aka the struct that is used for creation of the cluster) but rather in the return payload.
is not on the create request

Not sure if it will help get things moving but I've put a request in against the go client - https://github.com/cgroschupp/go-client-confluent-cloud/issues/14

Once again not being a dev but an infra guy i notice that confluent provide their own client https://github.com/confluentinc/confluent-kafka-go - Would it not make sense to wrap the terraform provider around the actual client, or is there a technical reason for using somebody elses?

@Marcus-James-Adams https://github.com/confluentinc/confluent-kafka-go is a client for Kafka APIs, it enables doing things like producing messages to and consuming messages from a topic in a Kafka cluster. It works against any Kafka cluster, it is not specific in any way to Confluent Cloud.
https://github.com/cgroschupp/go-client-confluent-cloud/ is a client for Confluent Cloud APIs, it enables doing things like creating and deleting Kafka clusters on demand in Confluent Cloud. It is not for reading/writing data to a particular Kafka cluster.
The difference is analogous to using the aws CLI or SDK to create RDS PostgreSQL clusters, but using the psql CLI or SDK to SELECT or INSERT rows of data into a PostgreSQL cluster.

Need private link support. Although you can set dedicated, the cluster can only be public dedicated

Any update on this please?

Just as its been some time, is there any movement on this?


MASK (Management Assistant of Speaking Korean)

Future Work (Areas to be further developed)

MyLibrary Delete View
Grade Window UX/UI

Future Work

MyLibrary Delete View
Grade Window UX/UI


re-add codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@ef6687b). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #196   +/-   ##
=======================================
  Coverage        ?   53.18%
  Complexity      ?       83
=======================================
  Files           ?       16
  Lines           ?      722
  Branches        ?       94
=======================================
  Hits            ?      384
  Misses          ?      302
  Partials        ?       36

Flag
Coverage Δ

current_windows
53.18% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


disables sshAccess by default

Description
Changes proposed in this pull request:

implements #284
...
...

verified on dev


Update branch name to release-0.20 in Makefile

Update branch name to release-0.20 in Makefile
Description of changes:
Testing (if applicable):
Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/woof
/approve

/override eks-anywhere-e2e-presubmit


Add missing colon

Sorry, I wasn't expecting PRs on my personal account. Most of my stuff that's not on IEW is usually both broken and not up-to-date with my personal files (or else I'd have a dozen commits a day)

Oh okay, I didn't know


AWS Lambda integration test fix

Description:
Fix Lambda integration test.
Risk Level: Low
Testing: unit/integration tests
Docs Changes: N/A
Release Notes: N/A

Looks like the Lambda integration tests passed.
The coverage tests are failing for other reasons. I'll merge from master and retest.

The coverage failure is a known issue. This change LGTM in general. LMK when ready for review.


[FEATURE] Support for vlc

could we please get support for vlc??
is there some reason this has not already been done?

Nevermind, mpv is clearly the superior choice... Can you add in either an option to use the --no-keepaspect-window flag or use this by default as otherwise mpv windows look odd on a tiling window manager.

Will be added in the rewrite.

cool!


Playwright tests fail as need default feature flags

Description
When running the automated tests on GitHub Actions, we do not want to load tests Flagsmith's servers, so we will run it in offline mode

You can run in offline mode, local evaluation mode or just use defaults

[!NOTE]
Playwright GitHub Action will fail until this is fixed

const localFileHandler = new LocalFileHandler('path_to_environment_file/environment_file.json');
const flagsmith = new Flagsmith({ offlineMode: true, offlineHandler: localFileHandler });

Here are the official docs
https://docs.flagsmith.com/clients/server-side#using-an-offline-handler
Screenshots
No response
Additional information
No response

Tried defaultFlags on init but still failing on CI, logged an issue with the flagsmith js sdk https://github.com/Flagsmith/flagsmith-js-client/issues/237

Tried defaultFlags on init but still failing on CI, logged an issue with the flagsmith js sdk Flagsmith/flagsmith-js-client#237

According to the docs there isn't a defaultFlags setting, but is a defaultFlagHandler function that returns the default value.

Sorry @dan-mba it was late for me last night, after more investigation, I included the server side docs up there, but I need it client side, here are the docs https://docs.flagsmith.com/clients/javascript#providing-default-flags
I still can't get it working though, so any thoughts appreciated, here is where I am using it
https://github.com/EddieHubCommunity/HealthCheck/blob/23d35eef3210cf07c6200e5a1c1b833cb1b485f3/src/config/flagsmith.js#L14-L17

Sorry @dan-mba it was late for me last night, after more investigation, I included the server side docs up there, but I need it client side, here are the docs https://docs.flagsmith.com/clients/javascript#providing-default-flags
I still can't get it working though, so any thoughts appreciated, here is where I am using it
https://github.com/EddieHubCommunity/HealthCheck/blob/23d35eef3210cf07c6200e5a1c1b833cb1b485f3/src/config/flagsmith.js#L14-L17
note: I have updated the issue description

I don't think flag.name should be in an array.
The array returned from each map should include a string for the object property name as the first item of the array then its contents second.

Thanks for checking again Dan after my confusing issue description. I am wrapping the map in Object.fromEntries so the   default flags I am passing are this (output from console.log)
{
  tagline: {
    enabled: true,
    value: 'LOCAL: How friendly is your Open Source Repo?'
  },
  checks: { enabled: true, value: '["topics","description","url"]' },
  news: {
    enabled: true,
    value: 'LOCAL: Have you seen our latest feature XYZ?'
  }
}

I found the problem
flagsmith.init() throws for being unable to connect.
I added a try/catch that ignores the error & it makes the defaults work

oh wow amazing 🔥 ! thank you ❤ I am going to try it now

OMG it works perfectly, thank you @dan-mba !!


add width: 100% to select host to fix full width not working with flex

Summary of the changes
Add width: 100% to select host to fix full width not working when wrapped in display:flex
To test, wrap the full width example in

Related issue
#315
Checklist

[x] I have added relevant unit and visual regression tests.
[x] I have manually accessibility tested any changes, if relevant.
[x] I have ensured any changes match the Figma component library.

Is it worth adding this fix to the other components with full width variants in this PR? I believe it is just Button, Search bar and Text field.


Debugger requires path to program be correct casing for breakpoints to get hit

Assume there's a file app.js in directory Foo. If in my launch.json file, I specify foo/app.js as the program, the debugger will run, but none of my breakpoints will get hit. However, if I give it the actual casing of the path, Foo/app.js, the debugger runs and breakpoints will get hit.
I think it should be all or nothing here. As in, if correct casing is required for breakpoints to get hit, then correct casing should be required for the debugger to work at all. Or vice versa (and preferably), if correct casing isn't required to run the debugger, than correct casing shouldn't be required for breakpoints to get hit.

This issue was moved to Microsoft/vscode-node-debug#26


Release 1.3

What does this PR do?
This is a refactoring PR containing multiple code and structure improvements. The functionality of the package was not affected.
Changes:

Remove the HttpConstants class (Since the name is quite generic and the package is not managed, this class can potentially lead to conflicts when installing the package)
Rename the CommonConstants class to GraphQLConstants (Same reason as for the HttpConstants class)
Remove CustomLabels (To reduce the number of package components, the custom labels didn't have a lot of sense in the scope of this package)
Remove static resources (To reduce the number of package components, static resources were only used for mocks in the test classes)
Rename GraphQLNodeBase to GraphQLBaseNode (Sounds more appropriate)
Rename GraphQLConfiguration__mdt to GraphQLConfig__mdt and ConfigurationValue__c to Value__c (Easier and shorter to reference in code)
Update prettier preferences for the project + update the project structure

The PR fulfills these requirements:
[x] Tests for the proposed changes have been added/updated.
[x] Code linting and formatting were performed.

Codecov Report
Base: 99.69% // Head: 99.52% // Decreases project coverage by -0.17% :warning:

Coverage data is based on head (bafa8b0) compared to base (3ac00de).
Patch coverage: 98.27% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #11      +/-   ##
==========================================
- Coverage   99.69%   99.52%   -0.18%
==========================================
  Files          20       19       -1
  Lines         654      626      -28
==========================================
- Hits          652      623      -29
- Misses          2        3       +1

Flag
Coverage Δ

Apex
99.52% <98.27%> (-0.18%)
:arrow_down:

unittests
99.52% <98.27%> (-0.18%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/main/default/classes/GraphQLConstants.cls
100.00% <ø> (ø)

.../classes/nodes/operations/GraphQLOperationNode.cls
100.00% <ø> (ø)

.../main/default/classes/client/GraphQLHttpClient.cls
94.33% <85.71%> (-2.28%)
:arrow_down:

.../default/classes/client/request/GraphQLRequest.cls
100.00% <100.00%> (ø)

...efault/classes/client/response/GraphQLResponse.cls
100.00% <100.00%> (ø)

...t/classes/client/response/GraphQLResponseError.cls
100.00% <100.00%> (ø)

...n/default/classes/configs/GraphQLConfigManager.cls
100.00% <100.00%> (ø)

src/main/default/classes/nodes/GraphQLBaseNode.cls
100.00% <100.00%> (ø)

src/main/default/classes/nodes/GraphQLNode.cls
100.00% <100.00%> (ø)

...efault/classes/nodes/arguments/GraphQLArgument.cls
100.00% <100.00%> (ø)

... and 9 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Create documentation-links.yaml

See https://github.com/readthedocs/readthedocs-preview
cc @humitos

Let's merge and see if it works 😏


[Bug] MauiCompact not working in new Maui project

See discussion for more details - https://github.com/xamarin/XamarinCommunityToolkit/discussions/1740
Here is the repo project -
repo.zip
I'm using the latest VS2022 preview

@VladislavAntonyuk Could you take a look?

yes

@IeuanWalker

you added lib only for android.
Also MauiCompat works only with iOS and Android. you have to remove net6.0-maccatalyst target framework

thanks @VladislavAntonyuk, nice spot, VS installed it like that


Add SearchApi integration

PR types
New features
PR changes
APIs
Description
Added SearchApi as a search engine provider. SearchApi provides engines such as Google, Google News, YouTube, and more.

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


Pass the post object to the dots menu plugins

Summary
The dots menu items probably will need the post itself to make
decisions.
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed

@jespino https://github.com/mattermost/mattermost-webapp/pull/1583

I think you can close this one

@enahum Yes, you are right, actually, your solution is more complete :)


Back pressure in Process API

There are many situations where you want to throttle component's activity level. Examples could be rate limited API calls, or amount of files you can open simultaneously.
In the legacy AsyncComponent implementation we had support for a load outport, where the component would send its current load. Then you could use a component like flow/Throttle in front of the component to prevent new jobs being triggered before the component has finished previous ones, like:
# Only allow max 100 directory reads to happen at same time
'100' -> MAX ThrottleDir(flow/Throttle)
Directory OUT -> IN ThrottleDir OUT -> SOURCE Dir(filesystem/ReadDir)
Dir LOAD -> LOAD ThrottleDir

Another concept that has been used in various FBP systems is "back pressure" where an downstream component can tell its upstream "don't send me more data".

http://www.elixirfbp.org/2015/07/reactive-streams.html
https://github.com/jpaulm/jsfbp/issues/25
http://www.jpaulmorrison.com/fbp/concat.html

With backpressure, one question is how the max numbers of jobs for a component would be configured on graph level. We have several mechanisms that could be used, like control inports or node/edge metadata.

Based on a chat with @trustmaster today, the way forward would be to allow graph designers to add a load port to component instances. If such port is present, component activation/deactivation would send current load out to that port. Throttling logic can then be implemented as another component on the graph level.
Depends on #594

Actually, much nicer to properly implement back pressure in NoFlo than doing “load” ports. Buffer size can be handled via edge metadata (see “connection capabilities in https://github.com/noflo/noflo-ui/issues/370).
Quick ideas:

we can make a Promisified sending method that checks if connection is ready to receive and waits otherwise
for components that don’t use this, we can probably control their activation when their downstream is blocked, and only activate when downstream is ready to receive again

Use backpressure to prevent new input from being processed until the current conversation is done.  https://github.com/noflo/noflo/issues/1042
Please review this guide, I'm not sure if ChatGPT knows your implementation well.


purpose of the policy engine?

What is the purpose of the policy engine between protocols and objects? I think a protocol implementation needs to be able to query available objects and object types (typically based on request data, e.g. credential types). How is this facilitated?

We didn't get to this topic on the last call.
I think the objective for it, is to be able to profile away from certain parts of interop... for example, maybe your wallet does not support ES256K, because you don't allow non FIPSs crypto, etc...


plugin/pkg/auth: add OpenID Connect token authenticator

This PR implements the token authenticator interface for the OIDC protocols. It also adds two flags ("--oidc-endpoint", "--oidc-client-id") for apiserver
to enable OIDC authentication.
It mainly uses go-oidc packages. It uses the oidc client to sync and cache the pub keys automatically. Also it will verify the token using the pub keys.
/cc @erictune @liggitt @smarterclayton

Thank you very much for the pull request - we sincerely appreciate the work that goes into sending us a change.
We are currently in a feature-freeze and general code slush as we work toward our 1.0 release.  Our initial triage indicates that this is a non-critical change at this time, so we'd like to leave it open and revisit it after 1.0.  We expect the freeze to wrap up in early to mid July.
If you feel that this triage is incorrect, please respond and let us know why.  We're currently accepting changes that meet any of the following criteria:

Changes directly related to v1.0 issues: https://github.com/GoogleCloudPlatform/kubernetes/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.0
Changes addressing P0 bugs: https://github.com/GoogleCloudPlatform/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Apriority%2FP0
Changes to supported platforms to bring them up to par with the primary development platforms
Docs, user experience, and test related fixes

Thanks again for your contribution!  The community is really what has made this project so exciting.

Think this is a post 1.0 feature.

@liggitt
On Jul 8, 2015, at 7:05 PM, Yifan Gu<EMAIL_ADDRESS>wrote:
This PR implements the token authenticator interface for the OpenID
protocols. It also adds two flags ("--openid-endpoint",
"--openid-client-id") for apiserver
to enable openid authentication.
It mainly uses go-oidc packages https://github.com/coreos/go-oidc. It
uses the oidc client
http://godoc.org/github.com/coreos/go-oidc/oidc#Client to sync and cache
the pub keys automatically. Also it will verify the token using the pub
keys.
/cc @erictune https://github.com/erictune @liggitt
https://github.com/liggitt @smarterclayton
https://github.com/smarterclayton
You can view, comment on, or merge this pull request online at:
https://github.com/GoogleCloudPlatform/kubernetes/pull/10957
Commit Summary

plugin/pkg/auth: add openid token authenticator.
Godeps: add Godpes for go-oidc.
plugin/pkg/auth: add tests for openid authenticator.

I like how self contained this is, but it's a little hard to understand how you would actually obtain a token to use against the API this way

@liggitt You would obtain a token out of band and place it into the kubectl configuration. It would be great to add a nice interface for kubectl to do the browser auth workflow and write-out/update the kubectl configuration file like the gcloud SDK does, but one step at a time.

@liggitt Added cert bundles to enable SSL connection to the openid provider. Refactored NewAuthenticator to take a struct instead of bunch of flags. And added related tests.

@yifan-gu updates look good, thanks. Just a few comments on the naming, param name, and warning

@liggitt Comments addressed, thanks! And reworked the warning message/logic to make it clearer.

Authn changes LGTM, though I didn't look through the new godeps or try it out yet. Is there a relevant doc that could get a sentence or two with pointers to obtaining tokens for this authenticator?

@liggitt Not sure if these links help, but here is the godoc of the library, and here is an example app using library.
Basically the token is an id token signed by the authorization server.

Basically the token is an id token signed by the authorization server. It is a JWT.

Sure, but as a user, it's really hard to get an ID token from an OIDC provider which is valid for the client_id the Kubernetes server is configured with. If the expectation is that the cluster administrator has a separate app that walks users through obtaining the token, that should probably be mentioned, otherwise as a user, I might think I was supposed to be able to get the token on my own.
A paragraph around the OpenID token auth should go in docs/admin/authentication.md

@liggitt ACK.

@liggitt Added some docs and explanation. PTAL, thanks!

Just a couple nits, the doc paragraph is helpful, thanks.

@liggitt Thanks :)

Any idea when this can be merged ?

@uruddarraju We would need a lgtm from a committer (/cc @erictune @smarterclayton ) , then I think we should be able to merge this when the code freeze is over.

@erictune Any feedback on this one :) ?

Mostly happy with this.  Just want to make sure that I understand how:

we will be able to show a human-readable identifier for users in a future UI.
we will be able to write policy using human-readable user strings, or else convince me that is the wrong model
we compose use user-strings in a way that is consistent.

@liggitt @ericelliott Sorry, the new rebase commits purge your comments on old commits...

@yifan-gu you meant @erictune

we will be able to show a human-readable identifier for users in a future UI.
we will be able to write policy using human-readable user strings, or else convince me that is the wrong model
we compose use user-strings in a way that is consistent.

In this case I lean towards using name as user name,  and sub as user id. Can we add something like GetUserID() in the authorizer.Attributes interface later so this can solve the unique identity problem, (e.g. call GetUserID() first, if user id is empty, falls through GetUserName()).

the name returned by UserInfo.GetName must be unique at that point in time. We can't use possibly non-unique values (like a display name) for it.

@liggitt OK, but assuming we have UserID, why do we still need unique user name?

It will be perfect if we can have unique user name, which is also readable. But if we don't, we can use a unique id to identify the user. I am thinking we can still show and use the non-unique user name to write policies as an option, in case if there are conflicts, we would require a user id... (maybe that seems complicated)

Name and UID in the UserInfo interface hold the same meaning as Name/UID in API objects. name uniquely identifies the user at that point in time. UID uniquely identifies the user forever, to distinguish between deleted and recreated users of the same name.
I think the name used to write policy against needs to be more deterministic… I would be very uncertain granting permissions to something that could match either a human readable username or a unique numeric id. What if someone's human readable name conflicts with a unique numeric id?

I think the name used to write policy against needs to be more deterministic… I would be very uncertain granting permissions to something that could match either a human readable username or a unique numeric id. What if someone's human readable name conflicts with a unique numeric id?

I understand your concern. For writing policy particularly, I was trying to say that by default we do something like SELECT name FROM *. If there is no conflicts, we are happy. Otherwise we will receive an error, and need to do SELECT name, id FROM *. We won't have human readable name conflicts with the id as long as we don't do SELECT id FROM * in the above case.
In other words, we can view name as REQUIRED, and id as OPTIONAL.

Name and UID in the UserInfo interface hold the same meaning as Name/UID in API objects. name uniquely identifies the user at that point in time. UID uniquely identifies the user forever, to distinguish between deleted and recreated users of the same name.

Thanks for heading up on this:) I am not clear how this will play out in our case, need to think about it.

@erictune asked me to have a look at this PR.

@jboeuf Thanks for the review! I made changes according to your comments, please take a look :)

The tests are failing because some is not using ssl. Will fix tomorrow.

@yifan-gu thanks much for the fixes and the TODO for exposing the issuer to the upper layers. LGTM.
From the comments above, you may want to think about how you're going to write policies based on the subject and the issuer in another PR. Maybe you could construct a canonical identifier based on these 2 parameters.

@liggitt @erictune @jboeuf
Want to give another thought here:
Though the OIDC spec says we should not rely on email to be unique. But in practice I think changing email is not common, so maybe it's ok to just update it when his/her email changes? To me this seems like an feasible solution for now, until we have something better. Any ideas?

There are two issues, uniqueness and immutability. Email satisfies neither, which would allow a user to lose their permissions if their email changed, or allow a user to spoof another user's permissions, simply by having the same email address (even if unverified). I see the following options:

Use a unique id (issuer+subject claim)
Same as 1, but allow the claim to be configured (putting the decision of trusting email addresses from the provider on the cluster admin)
Build an identity from the issuer+subject, and map it to a user whose username is the email or preferred_login (other configurable claim). This requires persisted objects in etcd to remember the identity and user, but protects against spoofing (only the first one in gets the preferred username) and mutability (the mapping persists even if the email changes). This is a bigger change, out of scope for this PR. Fwiw, that's where OpenShift ended up with our auth integration stuff.

/cc @bcwaldon @bobbyrullo

@liggitt +1000 on this one :).

@liggitt Thanks for the reply :) but I am not sure I understand the 2nd option here.
Apart from that,
For spoofing, can we solve it by requiring that email MUST be verified?
For immutability, I would still argue that we can assume this is not a frequent event. Besides, in some cases when a user changes his email address (e.g. his company email address), this might imply the permission really needs to be updated as well?
Thanks :)

For the scope of this PR, I don't think it's a good idea to default to anything other than the sub claim (possibly with the issuer as a prefix) as the default username.
I think it's reasonable to let the cluster admin choose which claim to use as the username, and put the burden on them to live with the consequences of ignoring the OpenID spec statements about email and preferred_username's uniqueness and immutability.

I think it's reasonable to let the cluster admin choose which claim to use as the username, and put the burden on them to live with the consequences of ignoring the OpenID spec statements about email and preferred_username's uniqueness and immutability.

This is fair, but please pardon me I am not sure how this looks like? How could admin choose which to use?

--oidc-username-claim, defaults to "sub"?

Gotha, thanks. I will update the PR :)

Before you do that, I'd like @jboeuf's opinion on that approach... just want to save you time reworking if there's disagreement

@liggitt in openshift, what is RoleBinding.username when using OpenID for authentication?  Is it an email, or is it a sub claim, or something else?  If it is a sub claim, how are humans supposed to read a RoleBinding? Or do they use some other UI to generate/edit RoleBindings which shows the username that the uids map to?

In OpenShift, we have Identity and User objects. An Identity maps to a single User, and multiple Identities can map to the same User. The RoleBinding.Username is the User.Name. The separation of Identity and User lets us map ugly unambiguous values like an OpenID subject claim to nice human-readable values (like a preferred_username claim) that you can write policy against.
When you log in using an identity provider (OpenID, LDAP, auth proxy, etc), we get three pieces of information:

A unique provider name (part of cluster auth config, e.g. "google-openid", "acme-ldap")
A unique identity within the scope of that provider (e.g. the "sub" claim for OpenID, the "uid" attribute for an LDAP provider).
A preferred username (defaults to the unique identity, but can be something different like "preferred_username" or "email" for OpenID, or a "login" attribute for LDAP)

We use 1 and 2 to make the Identity.Name (e.g. "google-openid:123456", "acme-ldap:liggitt").
If that Identity already exists, we find the mapped User and we're done.
If that Identity does not yet exist, we create it, use the preferred username to create a User, and map the new Identity to the new User. If a User with that preferred username already exists, we have several options:

Fail
Deconflict the preferred username (the second "bob" to log in gets "bob2")
Map the new Identity to the existing User in addition to what was already mapped

More details at https://docs.openshift.org/latest/architecture/additional_concepts/other_api_objects.html#user-objects

@liggitt
Is there a concern that an admin who is responsible for setting policy might see a username, such as liggitt and assume it is a certain person, e.g. redhat-ldap:liggitt and put it in a RoleBinding, when in fact it is the wrong person, e.g. evilcorp-openid:liggitt, who happened to get there first?

@liggitt
broader questions:

In your opinion, should we upstream User and Identity?
Would someone from RedHat have time to do that and in what time frame?
Does accepting this PR now make the above much harder?

@yifan-gu
if we took the Red Hat OpenID solution instead of this one, would it work for your use cases?
If not why not?

happy to have longer convo offline if needed.  You can email me.  I am username etune.  I am at domain google dot com.

Is there a concern that an admin who is responsible for setting policy might see a username, such as liggitt and assume it is a certain person, e.g. redhat-ldap:liggitt and put it in a RoleBinding, when in fact it is the wrong person, e.g. evilcorp-openid:liggitt, who happened to get there first?

From my understanding on https://github.com/GoogleCloudPlatform/kubernetes/pull/10957#issuecomment-128413461 If redhat-ldap:liggitt and evilcorp-openid:liggitt are mapped to one liggitt, it means they are the same person, otherwise we will get liggitt and liggitt2, is that correct? @liggitt

Seems like that depended on whether the admin chose the Fail, deconflict, or map-to-existing policy?

if we took the Red Hat OpenID solution instead of this one, would it work for your use cases?
If not why not?

AFAICS, I am fine as long as the api-server could authenticate an OIDC token against a provider.
FWIW, we will have follow-up patches to kubectl that to handle token expiration and refresh, but that shouldn't matter.
/cc @bobbyrullo @bcwaldon

Is there a concern that an admin who is responsible for setting policy might see a username, such as liggitt and assume it is a certain person, e.g. redhat-ldap:liggitt and put it in a RoleBinding, when in fact it is the wrong person, e.g. evilcorp-openid:liggitt, who happened to get there first?

We strongly recommend not configuring EvilCorp as a trusted identity provider ;-)
It hasn't been an issue yet in practice, but if it became one, there are two other policies that could be created:

Lookup-only (admin has to create identity -> user mapping, prevents a username "land grab")
Fully-qualified usernames (username includes the provider name as a prefix, or suffix, etc)

You could even have a different strategy per identity provider, so "acme-ldap" users get their usernames automatically, and evilcorp users have to be reviewed and mapped to a user by an admin before they can log in.

In your opinion, should we upstream User and Identity?
Would someone from RedHat have time to do that and in what time frame?

I like the flexibility of the Identity->User model. I think it's worth upstreaming. It would probably either be @deads2k or I. For the moment, I'd rather focus on the authorization proposal and interfaces, then move to this. Also, since we do our identity->user transformation when users log in and get their OAuth tokens, so upstreaming would probably involve discussing Kubernetes as an OAuth provider (which is fine, but might not be short).

Does accepting this PR now make the above much harder?

I don't think this PR makes it harder... the interactions with k8s code are minimal. I am wary of kubectl adding capabilities around obtaining/renewing tokens from non-kubernetes sources... that seems a likely follow-up to this PR, and I'm not sure that makes sense.

Really? How would you drive an OAuth flow against an arbitrary OIDC provider from the command line, to get a token which was valid for the client_id the apiserver is configured with, without having access to the client_secret?

Previously, I imagine the workflow looks like gcloud tools, which has the a client_id and client_secret hardcoded in the config. And the apiserver will share this client_id. But one of the problems is in some cases it's not feasible to open a web browser to do the login. So before we decide we really want to do that, for now we can just get the id_token, refresh_token from some place, as well as the client_id, client_secret, and copy-paste them in kubeconfig.
For the refreshing flow, the kubectl will try to refresh the id_token if it expires, or authentication fails.

@erictune @jboeuf @liggitt Any objections on a solution based on https://github.com/GoogleCloudPlatform/kubernetes/pull/10957#issuecomment-127707717 and https://github.com/GoogleCloudPlatform/kubernetes/pull/10957#issuecomment-128095808 ?

@yifan-gu
After this was merged, what were you planning to do for authorization?

@erictune - our initial plan is to just use hand written Kubernetes JSON policy files, where the user ID maps back to the OpenID Connect "sub" claim. Beyond that, the path a little less clear, and is open for discussion. Something based on some standard for making authz requests would be ideal, but I'm not sure what that would be; one idea would be settling on return user policies in JWT claims, but we haven't really thought that out fully yet.

@bobbyrullo Is the mapping from user ID to just sub or to sub + iss? I like the latter and I'm concerned with the former.

Sure, that leaves open the possibility of authenticating against multiple providers.

Perfect then. As long as the authenticated principal referenced (possibly indirectly) in the ACLs is sub+iss, I'm happy :).

@jboeuf Cool, I will update the PR to take issuer:sub as default user ID. Admin can also choose issuer:email or issuer:username which is not guaranteed to be unique and immutable according to the oidc spec, but more readable and in practice should be pretty unique and immutable (e.g. email).
According to the definition, issuer is a URI() which can contains :ports, so this can result in something like example.com:8000:id-foo but I don't think this is a problem? Or do you have something better to suggest? Thanks :)

the option to have fully-qualified issuer+sub usernames is good to have, but in practice, most installations will not need such specificity, and having to express ACL rules like "https://accounts.google.com:1234567890" is almost impossible to use (especially once end-users are able to add ACL grants). As long as a cluster admin can choose between something like "issuer:sub" format and "email", I think our bases are covered.

@liggitt Isn't that a UI issue? When editing ACLs, end users could be searching for friendly names that map to fully qualified principals (iss + sub) and iss+sub is what would be in the actual ACL.
@yifan-gu Since iss cannot have fragments, how about # as a separator: that would disambiguate  between example.com:8000#id-foo and example.com#8000:id-foo.

if we ever persist identities or users, the included / and # characters will cause us grief if they are in the identity or user name

Sorry @liggitt, can you give me an example? I'm not sure I understand. Note that the iss can have a path component.

Sorry @liggitt, can you give me an example?

etcd would be unhappy storing an object whose key was "https://accounts.google.com#12345"

OK, i had a quick look look at etcd and it uses the key as part of the URL in the API. But if it does so, it would seem dangerous to not URL-encode these keys before using them as part of a REST API in etcd no matter what these are, right? Also, I don't think that the leading https:// is necessary since it is a given for issuer (but that does not really matter).

OK, i had a quick look look at etcd and it uses the key as part of the URL in the API. But if it does so, it would seem dangerous to not URL-encode these keys before using them as part of a REST API in etcd no matter what these are, right?

Yeah, it causes problems both in the REST API URL and in the etcd API URL. Also, URL-encoding path segments doesn't work well in Go (Go helpfully decodes them for you so you can't easily tell the difference between /foo%2Fbar and /foo/bar).

@liggitt This seems broken to me :(. Maybe we could chat offline about this. I am username jboeuf in the email domain google dot com.
Regardless of the separator, the iss field may contain a / and I don't know what to do about this one.

Do we care about what will end up in the persistent store? If not, can we hash it or even base64 encode it?

it's not just the persistent store, it would be the name of the objects in the REST API as well. both make the name part of a URL, so we have to be careful about what we make part of names of things that might end up being API objects

So... where does that leave us? The sub claim is also free form so may contain problematic characters. Should the unique identifiers for principals be UrlBase64(iss | '#' | sub)? where | denotes concatenation?

it's not just the persistent store, it would be the name of the objects in the REST API as well. both make the name part of a URL, so we have to be careful about what we make part of names of things that might end up being API objects

Actually does the user name has any constraints right now? AFAICS it's just a plain string, so I think we will need to encode them anyway? @liggitt @jboeuf

@liggitt @jboeuf @erictune
Get back on this one. I added --oidc--username-claim to let the admin choose which claim to use as the user name. Also added documentation around this. in authencitation.md
By default, the issuerURL + sub will be used, (e.g. example.com#user-foo), if --oidc-username-claim="email", then username will be the email address (e.g<EMAIL_ADDRESS>Any objection or feedback? Thank you :)

Might need to update the godep commit as it includes some nonrelated changes.

@yifan-gu: sounds good to me.

sounds good to me as well. I wonder if a note in the docs similar to https://github.com/kubernetes/kubernetes/pull/11798#issuecomment-129655212 would be useful, until we settle more on how we want to handle any identity/user pieces.

@liggitt Good suggestion, docs added :)
@erictune Any more advice? Seems we are close to the finish line :stuck_out_tongue: :stuck_out_tongue:

Will need to rebase after https://github.com/kubernetes/kubernetes/pull/12966

Godeps update. ping @erictune :)

@jboeuf @yifan-gu
Near the top of https://developers.google.com/identity/protocols/OpenIDConnect?hl=en#getcredentials it says that you need to have a client secret to use OpenID connect.
IIUC, in this case, "client" means the kubernetes apiserver.
I don't see a flag that lets the apiserver know what it's client secret is.
Am I misunderstanding, or is the use of the client secret something that just Google does, and this PR is still useful for flows that don't require a client secret, or what?

Maybe the client secret is only needed if requesting scopes other than oauth?  Docs are confusing.

client_secret is only required to obtain the token from the OIDC provider. This authenticator isn't obtaining the token, it is just validating it

LGTM.

@k8s-bot ok to test.

@k8s-bot test this

Test failures are:
[Fail] DNS [It] should provide DNS for the cluster
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/test/e2e/dns.go:198

[Fail] DNS [It] should provide DNS for services
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/test/e2e/dns.go:236


DateTime issues

[ ] The up/down buttons for date(time?) input are counter-intuitive. When the value is 3 and I click the up-arrow it goes to 2. Conversely, when the value is 3 and I click the down-arrow it goes to 4.

[ ] Also the up-down arrows are a pain when you need to go from, say, 2017 to 1977; that means 40 clicks (especially since holding the mouse button doesn't work either). A way to enter the number would be much better; maybe make the numerical values editable?

[ ] From the readme:

Options & Methods
...
dateMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

It's nice that I can specify ('localize') the months, but I can't modify the format? (MDY / DMY / YMD)? Recommended reading: this and this

[ ] The UI shows MDY but not time; on confirmation it does show a time-part: You selected: 2017-02-27T15:06:22.836Z A method to also input a time-part would be appreciated; if that's not an option then don't return a time-part (e.g. return 2017-02-27T00:00:00.000Z)

Lol, I like your opinionated professor-like demeanour.
Buttons:
I don't think everyone would agree that the button position being counter-intuitive. They follow the same flow as the built-in datepicker wheel on iOS (past date above, future date below). I'm sure Apple put some thought into that 😉
Large date changes:
I agree with this, and have been considering making the text fields editable. That being said, think about your typical datepicker (with the little calendar popover UI). They ALWAYS start on a nearby date/month and would also take many many clicks to get to 1977.
Date format:
Thanks for the "recommended reading", lol. This is pretty edge-case and is likely not worth the LOC involved to allow the user to swap around the date wheels. Just to remind you, this is not a complete date picking library - it's a quick, convenient, and UI friendly way of picking a nearby date (99% of  the time the user will be inputted a nearby date anyways, which just a few clicks away here). If you need a robust datepicker, I'd suggest a different library.
Time on output:
That's simply because the datepicker outputs a JavaScript date object. You can do whatever you want with the returned date object. For demonstration purpose, the demo just outputs the date's ISO string (which does show seconds).

I like your opinionated professor-like demeanour.

I guess I'll take that as a compliment? I just simply pointed out a few issues with notie. It's up to you wether you do something with it.

They follow the same flow as the built-in datepicker wheel on iOS

A wheel is not up-down arrows? Also: any up-down arrow interface is exactly as I described, not the other way around; example here.

I'm sure Apple put some thought into that 😉

I'm sure too, but I'm also sure you're comparing oranges with apples (pun intended 😛)

They ALWAYS start on a nearby date/month and would also take many many clicks to get to 1977.

Maybe some? Not the ones I use?

This is pretty edge-case

A large part of the world uses D/M/Y... I wouldn't call that "pretty edge-case".

(99% of the time the user will be inputted a nearby date anyways, which just a few clicks away here)

Assumptions are the mother of... Also: that makes notie pretty opinionated; that is no problem (hey, it's your project/library) but if you want more/better adoption then maybe you should consider 'wasting' a few LOC's on these 'edge-cases'. Just my $0.02

You can do whatever you want with the returned date object

I know; that's besides the point. Point is: user only provided date info, not time-info. So why not only return date info? Why have people remove the time-part themselves when notie can do this easily?

Closing in favour of #115

Closing in favour of #115

"sweep valid arguments under rug" you meant to say 😉
But hey, I donated my $0.02; the rest is up to you. It's your project.
👋

@RobThree It's your wording buddy, "DateTime Issues", "counter-intuitive", "a pain", "if that's not an option then don't return a time-part". This project doesn't owe you anything, show some respect if you want respect in return. See how to properly file an issue here: https://github.com/jaredreich/notie/issues/112

"sweep valid arguments under rug" you meant to say 😉

"Consider one person's strong opinions, then discard them as out of scope" is more like it.
All of this aside, I do appreciate you taking the time to file an issue. You could however work on your people skills my friend!

First two points are implemented in https://github.com/jaredreich/notie/releases/tag/v4.2.0
I'm going to leave the second two points as out of scope


ql: cmake: fix target dependencies to build pin map and clk map csv

Signed-off-by: Alessandro Comodi<EMAIL_ADDRESS>Travis CI reports a failure during the clkmap.csv file generation:
Processing timing data...
[ 66%] Built target file_quicklogic_pp3_devices_ql-eos-s3-virt_db_vpr.pickle
Scanning dependencies of target file_quicklogic_pp3_chandalar_clkmap.csv
[ 66%] Generating chandalar_clkmap.csv
Traceback (most recent call last):
  File "/home/travis/build/QuickLogic-Corp/symbiflow-arch-defs/quicklogic/common/utils/create_clkmap_csv.py", line 107, in <module>
    main()
  File "/home/travis/build/QuickLogic-Corp/symbiflow-arch-defs/quicklogic/common/utils/create_clkmap_csv.py", line 91, in main
    db = pickle.load(args.db)
EOFError: Ran out of input

The EOFError: Ran out of input likely means that the vpr_db.pickle file is empty, therefore it suggests a concurrency issue in running the make targets.
With this PR this should be solved as the dependency on the pinmap and clkmap file is on the file target of the vpr_db.pickle file rather than on the file itself.

@kkumar23 I found another way to fix the EOF issue.
Basically, the the db_vpr is now output to stdout and saved to the db_vpr.pickle file with <create_db_vpr_command> > db_vpr.pickle.
I believe that my assumptions were true and the db_vpr.pickle file got generated in the filesystem before the script terminated, therefore, the file was empty when building the clkmap.csv. This happens as the number of make jobs is set to 2 in CI.

@acomodi : right its because of the no of jobs . Finally CI is green. Thanks


ORC-817: Replace aircompressor ZStandard compression with zstd-jni

What changes were proposed in this pull request?
This PR proposes to replace the aircompressor library for ORC's ZStandard compression with zstd-jni, which is a set of JNI bindings around the official zstd library. In addition to switching the underlying library, this PR also exposes the compression level and "long mode" settings to ORC users. These settings allow user choice around different speed/compression tradeoffs, rather than the current approach that primarily uses a default setting.
Why are the changes needed?
These change makes sense for a few reasons:

ORC users will gain all the improvements from the main zstd library. It is under active development and receives regular speed and compression improvements. In contrast, aircompressor's zstd implementation is older and stale.
ORC users will be able to use the entire speed/compression tradeoff space. Today, aircompressor's implementation has only one of eight compression strategies (link). This means only a small range of faster but less compressive strategies can be exposed to ORC users. ORC storage with high compression (e.g. for large-but-infrequently-used data) is a clear use case that this PR would unlock.
It will harmonize the Java ORC implementation with other projects in the Hadoop ecosystem. Parquet, Spark, and even the C++ ORC reader/writers all rely on the official zstd implementation either via zstd-jni or directly. In this way, the Java reader/writer code is an outlier.
Detection and fixing any bugs or regressions will generally happen much faster, given the larger number of users and active developer community of zstd and zstd-jni.

The largest tradeoff is that zstd-jni wraps compiled code. That said, many microprocessor architectures are already targeted & bundled into zstd-jni, so this should be a rare hurdle.
Open issues:

What is the best way to expose codec-specific options to users? In this PR, we add the compression level, window log size, and a boolean for enabling long mode, as new conf settings. But the CompressionCodec interface seems limited to exposing an enum with 3 options for speed, e.g. FAST or DEFAULT, and other codec-specific configs don't have a clear way to make it down into the codec implementation itself. I think we want to allow users to set the actual level as an integer, and to specify the window log size & long mode boolean as they wish. It wasn't clear how I could communicate these confs down to the lower level ZstdCodec within the bounds of the existing CompressionCodec interface. Right now, I used a hack to get the codec to read the conf options.
I still need to implement the DirectByteBuffer handling case. Right now, each call is treated the same way and will incur unnecessary copying if the input ByteBuffer is direct.
The existing code has a loop structure to repeatedly decompress. I wasn't sure why this exists, but we should mimic it in this PR, and I haven't done that yet.
Benchmarks should be added to this PR description. Although zstd-jni should have superior performance across the board, it's important to actually measure that with the benchmark suite.

List of changes:

Add zstd-jni dependency, and add a new CompressionCodec ZstdCodec that uses it. Add ORC conf to set compression level.

Add ORC conf to use long mode, and add configuration setters for windowLog and longModeEnable.

Add tests that verify the correctness of writing and reading across compression levels, window sizes, and long mode use.

Add test for compatibility between Zstd aircompressor and zstd-jni implementations.

Fix filterWithSeek test with a smaller percentage.

Minor formatting and spelling fixes.

How was this patch tested?

Unit tests for reading and writing ORC files using a variety of compression levels, window logs, and long mode booleans, all pass.
Unit test to compress and decompress between aircompressor and zstd-jni passes. Note that the current aircompressor implementation uses a small subset of levels, so the test only compares data using the default compression settings.

@dongjoon-hyun @wgtmac

We need to leave the pure java library as an option with automatic fallback because not every platform will have the native library. Furthermore, if there is a bug in the aircompresssor codec, we may need to configure it for reading old files.
I also second Dongjoon's concern about benchmarks. JNI can have a positive impact, but it can also have negative impacts. That is especially true if non-native ByteBuffers (or byte arrays) are used.

Hi @dchristle , do you have a performance benchmark result? Thanks.

I did some tests based on this PR. Under the same Spark resources, zstd-jni compression is faster than aircompressor.
Here is also a performance comparison. https://github.com/opensearch-project/OpenSearch/issues/9422#issuecomment-1684288794
spark
spark.executor.instances=600
spark.executor.cores=3

use aircompressor

use zstd-jni

Thanks for providing the benchmark result. @cxzl25
As @omalley has commented, it would be good to use zstd-jni by default but we have to keep the pure java impl as a fallback.

it would be good to use zstd-jni by default but we have to keep the pure java impl as a fallback.

I think we should be able to achieve this by automatically fallback, such as the following code,
or providing configuration items, so that the user can specify the implementation of a certain zstd.
org.apache.orc.impl.WriterImpl
  static {
    try {
      Native.load();
    } catch (UnsatisfiedLinkError | ExceptionInInitializerError e) {
    }
  }

  public static CompressionCodec createCodec(CompressionKind kind) {
    ...
      case ZSTD:
        if (Native.isLoaded()) {
          return new ZstdCodec();
        } else {
          return new AircompressorCodec(kind, new ZstdCompressor(),
                  new ZstdDecompressor());
        }

+1 for that fallback.
Could you take over this PR, @cxzl25 ?
I can wait for your PR to include it to Apache ORC 2.0.0.

BTW, we need more time to test because zstd-jni has memory issues depending on its usage.
IIRC, it was reported in Parquet and Spark community before. It's hard to detect memory-leak.


Don't support generating Android app icons from v26 above

On android from v26 above lib do not support generating app icon ic_launcher_foreground, ic_launcher_round

Hello @vulv-nals , is this related with #206 ?


The actual training sequence

I found the conversation here https://github.com/haotian-liu/LLaVA/blob/6520ad9067e0484000ba4fb20dbe9eaa5a80aa84/llava/conversation.py#L165-L194
Given the code here https://github.com/haotian-liu/LLaVA/blob/6520ad9067e0484000ba4fb20dbe9eaa5a80aa84/llava/conversation.py#L26-L35
This seems to tell me that the actual training sequence is rather
f'{system}###Human: {instruct}###Assistant: {completion}###'

There doesn't seem to be any additional \n as mentioned in Table 2 of the paper.

Thank you for your interest in our work, and for pointing this out.
We will fix this discrepancy in the future release.


[v4] Inspector doesn't show Map values

Steps to Reproduce
When trying to store an object that is not embedded you get the following error:
Unsupported type. Please add @embedded to the type or implement toJson() and fromJson() methods or annotate the property with @ignore let Isar to ignore it.

If you add the fromJson() and toJson() methods it works, but in the inspector you can't see the values.
After saving the test values were null

But after retrieving it from Isar, they were in the object

Code sample
I just created a Test object with toJson() and fromJson() methods
class Test {
  const Test({
    required this.id,
    required this.name,
  });

  final int id;
  final String name;

  @override
  String toString() {
    return 'Test(id: $id, name: $name)';
  }

  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'name': name,
    };
  }

  factory Test.fromJson(Map<String, dynamic> json) {
    return Test(
      id: json['id'] as int,
      name: json['name'] as String,
    );
  }
}

and added it to my Collection

@collection
class MyCollection {
  MyCollection({
    required this.id,
    this.test = const Test(id: 1, name: 'test'),
  });
  final int id;
  final Test test;
}

Details

Flutter version: 3.3.19
Isar version: isar: 4.0.0-dev.14
Isar Flutter Libs: 4.0.0-dev.14

Hello, I want to ask you what version of the isar_generator you use.
When I want to use isar: 4.0.0-dev.14 and isar_flutter_libs: 4.0.0-dev.14, I'll get version conflict, because isar_generator latest version is 3.1.0+1, and it rely on isar:3.1.0+1.

@Mae623 I think you can remove the isar_generator from your dependencies/dev-dependencies. I'm not using it with the 4+ isar and it works.

@Mae623 I think you can remove the isar_generator from your dependencies/dev-dependencies. I'm not using it with the 4+ isar and it works.

Thank you!
I remove isar_generator and apply 4.0.0-dev.14 version, and "dart run build_runner build" command working well.
However, when I try to open a isar instance, I get the message "Unhandled Exception: IsarError: Schema error: Could not deserialize existing schema.", have you meet this question?

@Mae623 I think you can remove the isar_generator from your dependencies/dev-dependencies. I'm not using it with the 4+ isar and it works.

Thank you! :) I remove isar_generator and apply 4.0.0-dev.14 version, and "dart run build_runner build" command working well. However, when I try to open a isar instance, I get the message "Unhandled Exception: IsarError: Schema error: Could not deserialize existing schema.", have you meet this question?

I didn't have this problem because I didn't change the isar generator version.
If you delete all the data from your database it will work.

@Mae623 I think you can remove the isar_generator from your dependencies/dev-dependencies. I'm not using it with the 4+ isar and it works.

Thank you! :) I remove isar_generator and apply 4.0.0-dev.14 version, and "dart run build_runner build" command working well. However, when I try to open a isar instance, I get the message "Unhandled Exception: IsarError: Schema error: Could not deserialize existing schema.", have you meet this question?

I didn't have this problem because I didn't change the isar generator version. If you delete all the data from your database it will work.

Your advice works!
Thank you very much!


Permit dialed numbers

Hello!
It would be nice to have an option to permit numbers you have contacted (but not saved in your contact list).

Good idea, will implement.

done in the latest tag


SSH transport does not appear to respect StrictHostKeyChecking

Describe the Bug
With ssh config:
Host *.delivery.puppetlabs.net
  IdentityFile ~/.ssh/id_rsa-acceptance
  User root
  StrictHostKeyChecking no

and default bolt config (no explicit ssh transport configuration in config or inventory files) the OpenSSH setting appears to be ignored.
cas@cas-ThinkPad-T460p:~$ bolt command run whoami -t deaf-mileage.delivery.puppetlabs.net --debug
Loaded configuration from: ''
Loading modules from /home/cas/working_dir/bolt/bolt-modules:/home/cas/.puppetlabs/bolt/modules:/home/cas/.puppetlabs/bolt/site-modules:/home/cas/.puppetlabs/bolt/site:/home/cas/working_dir/bolt/modules
Analytics opt-out is set, analytics will be disabled
Did not find config for deaf-mileage.delivery.puppetlabs.net in inventory
Skipping submission of 'command_run' screenview because analytics is disabled
Started with 100 max thread(s)
Starting: command 'whoami' on deaf-mileage.delivery.puppetlabs.net
Skipping submission of 'Transport initialize' event because analytics is disabled
Running command 'whoami' on ["deaf-mileage.delivery.puppetlabs.net"]
Running command 'whoami' on deaf-mileage.delivery.puppetlabs.net
Started on deaf-mileage.delivery.puppetlabs.net...
Initializing ssh connection to deaf-mileage.delivery.puppetlabs.net
Failed on deaf-mileage.delivery.puppetlabs.net:
  Host key verification failed for deaf-mileage.delivery.puppetlabs.net: fingerprint SHA256:sJYB0j0LILiCkvamMo16x1l8GutFqlHGaQlQ3Ssn6rc is unknown for "deaf-mileage.delivery.puppetlabs.net,<IP_ADDRESS>"
{"target":"deaf-mileage.delivery.puppetlabs.net","action":"command","object":null,"status":"failure","value":{"_error":{"kind":"puppetlabs.tasks/connect-error","msg":"Host key verification failed for deaf-mileage.delivery.puppetlabs.net: fingerprint SHA256:sJYB0j0LILiCkvamMo16x1l8GutFqlHGaQlQ3Ssn6rc is unknown for \"deaf-mileage.delivery.puppetlabs.net,<IP_ADDRESS>\"","details":{},"issue_code":"HOST_KEY_ERROR"}}}
Finished: command 'whoami' with 1 failure in 1.31 sec
Failed on 1 target: deaf-mileage.delivery.puppetlabs.net
Ran on 1 target in 1.31 sec

Expected Behavior
StrictHostKeyChecking should be honored from openssh config when using ssh transport.
Additional Context
I also tried building with https://github.com/net-ssh/net-ssh/pull/765 but it still does not appear to work.

@donoghuc I just verified this works for me as expected - it fails when StrictHostKeyChecking yes is set in my config, and succeeds when it's set to no. What version of Bolt are you running? The feature was introduced pretty recently in Bolt 2.7.0. Have you also verified you're not turning on host key checking in other Bolt config that's getting picked up?

I'm using bolt#master. What file are you setting the ssh config in? I'm using ~/.ssh/config.

Oh, i see what happened. I had net-ssh 5.x because of beaker.


Fixing motion comments

@normanjaeckel Please review later. I have to merge this important fix now.

Ok.


addEventListener to custom event

Hey,
Not sure if this is a bug or if I am doing something wrong however I am using EventSource with PHP (currently MAMP) and when I define a custom event I cant use standard addEventListener functionality to run a function.
PHP:
echo "id: -1 \n";
echo "event: success \n";
echo "data: success\n\n";

JS:
es.addEventListener("success", processingComplete);
var processingComplete = function (e) {
		console.log("in");
		$('#result').innerHtml = e.data;
		console.log(e);
		console.log("Connection Closed");
		e.target.close();
	};

I use a listener var for all other events (open, message, error) and output works accordingly however as soon as I reach the end of my file and send the custom event it does nothing. I have looked in the headers of both chrome and safari (MacOS) and I can see the event being sent in the EventStream column (under Network > {PageName}  > EventStream (see attached)) but the event listener just wont hook onto it.
I read that this polyfill overwrites the standard Event Stream so is this the reason and if so what is the work around?
Thanks in advance

@dellow88 , try to remove the extra space after the event name:
-echo "event: success \n";
+echo "event: success\n";

Wow - well that's embarrassing, not to mention a waste of a couple of hours!
Sorry and thanks for pointing out my stupidity.


RepVGG vs GENet

As far as I understand your approach has similar idea with GPU-Efficient Networks. Have you done some comparison with them?

Not yet. We will update with more models and more baselines.

Not yet. We will update with more models and more baselines.


Delete collection for chroma not Working.

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
class VectorStoreCreator:
    """
    A class to create a vector store from documents.

    Methods
    -------
    create_vectorstore(documents, embed_model, filepath):
        Creates a vector store from a set of documents using the provided embedding model.
    """

    @staticmethod
    def create_vectorstore(documents, embed_model, collection_name):
        """
        Creates a vector store from a set of documents using the provided embedding model.

        This function utilizes the Chroma library to create a vector store, which is a
        data structure that facilitates efficient similarity searches over the document
        embeddings. Optionally, a persistent directory and collection name can be specified
        for storing the vector store on disk.

        Parameters
        ----------
        documents : list
            A list of documents to be embedded and stored.
        embed_model : object
            The embedding model used to convert documents into embeddings.
        filepath : str
            The file path for persisting the vector store.

        Returns
        -------
        object
            A Chroma vector store instance containing the document embeddings.
        """
        try:
            # Create the vector store using Chroma
            vectorstore = Chroma.from_texts(
                texts=documents,
                embedding=embed_model,
                # persist_directory=f"chroma_db_{filepath}",
                collection_name=f"{collection_name}"
            )
            logger.info("Vector store created successfully.")
            return vectorstore
        except Exception as e:
            logger.error(f"An error occurred during vector store creation: {str(e)}")
            return None

    @staticmethod
    def create_collection(file_name):
        """
        Create a sanitized collection name from the given file name.

        This method removes non-alphanumeric characters from the file name and truncates it to a maximum of 36 characters to form the collection name.

        Args:
            file_name (str): The name of the file from which to create the collection name.

        Returns:
            str: The sanitized and truncated collection name.

        Raises:
            Exception: If an error occurs during the collection name creation process, it logs the error.
        """
        try:
            collection_name = re.compile(r'[^a-zA-Z0-9]').sub('', file_name)[:36]
            logger.info(f"A collection name created for the filename: {file_name} as {collection_name}")
            return collection_name
        except Exception as e:
            logger.error(f"An errro occured during the collection name creation : {str(e)}")

    @staticmethod
    def delete_vectorstore(collection_name):
        """
        Delete the specified vector store collection.

        This method deletes a collection in the vector store identified by the collection name.

        Args:
            collection_name (str): The name of the collection to delete.

        Returns:
            None: This method does not return a value.

        Raises:
            Exception: If an error occurs during the deletion process, it logs the error.
        """
        try:
            Chroma.delete_collection()
            return None
        except Exception as e:
            logger.error(f"An error occured during vector store deletion:{str(e)}")
            return None
        ```

### Error Message and Stack Trace (if applicable)

_No response_

### Description

I am trying to delete the collection while using the chroma. But actually it's not working. Could anyone help me to fix this issues.

class VectorStoreCreator:
"""
A class to create a vector store from documents.
Methods
-------
create_vectorstore(documents, embed_model, filepath):
    Creates a vector store from a set of documents using the provided embedding model.
"""

@staticmethod
def create_vectorstore(documents, embed_model, collection_name):
    """
    Creates a vector store from a set of documents using the provided embedding model.

    This function utilizes the Chroma library to create a vector store, which is a
    data structure that facilitates efficient similarity searches over the document
    embeddings. Optionally, a persistent directory and collection name can be specified
    for storing the vector store on disk.

    Parameters
    ----------
    documents : list
        A list of documents to be embedded and stored.
    embed_model : object
        The embedding model used to convert documents into embeddings.
    filepath : str
        The file path for persisting the vector store.

    Returns
    -------
    object
        A Chroma vector store instance containing the document embeddings.
    """
    try:
        # Create the vector store using Chroma
        vectorstore = Chroma.from_texts(
            texts=documents,
            embedding=embed_model,
            # persist_directory=f"chroma_db_{filepath}",
            collection_name=f"{collection_name}"
        )
        logger.info("Vector store created successfully.")
        return vectorstore
    except Exception as e:
        logger.error(f"An error occurred during vector store creation: {str(e)}")
        return None

@staticmethod
def create_collection(file_name):
    """
    Create a sanitized collection name from the given file name.

    This method removes non-alphanumeric characters from the file name and truncates it to a maximum of 36 characters to form the collection name.

    Args:
        file_name (str): The name of the file from which to create the collection name.

    Returns:
        str: The sanitized and truncated collection name.

    Raises:
        Exception: If an error occurs during the collection name creation process, it logs the error.
    """
    try:
        collection_name = re.compile(r'[^a-zA-Z0-9]').sub('', file_name)[:36]
        logger.info(f"A collection name created for the filename: {file_name} as {collection_name}")
        return collection_name
    except Exception as e:
        logger.error(f"An errro occured during the collection name creation : {str(e)}")

@staticmethod
def delete_vectorstore(collection_name):
    """
    Delete the specified vector store collection.

    This method deletes a collection in the vector store identified by the collection name.

    Args:
        collection_name (str): The name of the collection to delete.

    Returns:
        None: This method does not return a value.

    Raises:
        Exception: If an error occurs during the deletion process, it logs the error.
    """
    try:
        Chroma.delete_collection()
        return None
    except Exception as e:
        logger.error(f"An error occured during vector store deletion:{str(e)}")
        return None

### System Info

langchain==0.1.10

Hello @rabin3030,
I had the same problem in production and it was very serious for our company!
We add collections with many vectors/documents and update them very often.
The problem is that if you take a closer look at the SQLite3 database, all the deleted information with deleted links (foreign keys) keeps adding up, but the DB keeps getting bigger and bigger.
In a short space of time we reached over 13 GB in the ChromaDB database folder and the server memory was exploding!
I found a strange, and temporary, solution by testing numerous solutions....
Here it is:
            ids = chromaColl.get()['ids']
            if ids :
                chromaColl.delete(ids)
            del chromaColl
            _chromadb.delete_collection(collectionName)

Why is it absolutely necessary to call these 2 deletions in order to empty the data correctly?


Generalize the PR content check action. (#35)

Generalize the content check action by

Rename the path to a more general name ion-new-commit,
Check files under ion/ for ion-python

Tested in the ion-python PR, see below.
Pass - https://github.com/amazon-ion/ion-python/actions/runs/4887218530/jobs/8723544949?pr=264
while it changes one line under amazon/ion - https://github.com/amazon-ion/ion-python/pull/264/commits/14ba959b7530143209ee69f22dc7063e2981e4a4
Fail - https://github.com/amazon-ion/ion-python/actions/runs/4887070532/jobs/8723223310
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I'd be inclined to just copy this to ion-python and modify the match expression. Is there a good reason to modify the one in ion-java?

I'd be inclined to just copy this to ion-python and modify the match expression. Is there a good reason to modify the one in ion-java?

I was suggesting to reuse this workflow to avoid the duplication with simply one line change in ion-java. However, there is no downside to just copy the same logic to the ion-python repository.


SDDM closure size

Motivation
Reduces closure size of SDDM (with Plasma 5 enabled) by 400 MB.
Testing

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

[ ] Backport to stable

Thanks! Any objections to cherry-picking this on 17.03? Sddm is the only remaining package in my system closure that pulls in -dev outputs...

Already done!
As we discussed on that issue, it is probably still pulling more dependencies into the wrapper than strictly necessary, but now they are at least all out-outputs that are already part of the system closure for Plasma 5.


Use dfix, dscanner, and dfmt

dscanner does not appear to be production ready. The master branch suffers from assertion failure bugs, and the latest release is even worse as it gives up immediately with an out of memory error (?!) Not only that, but it appears to completely ignore the configuration file. The documentation is lacking as well.


Add code highlight for AllNotePage.xaml snippet

If a user is following this guide after following the previous guide and isn't just pasting the code, the binding context for the ItemsSource attribute is also updated.
Another issue is that the code highlights are one line off. I'm not sure why this is but this is the only .xaml file in this directory that has comments so maybe that has something to do with it.

@dotnet-policy-service agree


Builder refactoring, trickle builder and balanced builder

Refactored the builder constructors and streams.
A builder now is a transform stream that reduces into one root. (some opportunities for externalising these reducers into their own packages).
Each builder can be parametrised by options.
Documented those options.
Client can also choose which builder to use (now defaults to balanced builder).
Adds individual tests for each reducer stream to make sure it's yielding the correct tree structure.
By the way,
Can now easily add a different chunker.
Client can choose chunker strategy using option. Defaults and only supports fixed chunker for now.
Please review.

@pgte good stuff, one thing I'm a bit worried about, is the usage of pushable in a quite a lot of places. I haven't gone through all of them but I think some of them could be removed in favor of more direct transforms. The same goes for the use of pullWritable, as that forces you to use something like pushable if you want to use it in a transform stream.
I haven't found simple solutions for where you used these, so this might be the best way for these use cases, but maybe not.
@dominictarr maybe you have some good ideas about how the use of pushable could be avoided in these situations.

instead of using pull-write to write to pull-pushable,
i think what you can do here is use either pull-defer,
or pull-pair because what it looks like you are doing is creating a source stream that initially doesn't output anything, until later when you get the real source. They way you are doing it with pushable looses back pressure, but with pull-pair or pull-defer or maybe pull-cont then you can do the same thing but still have back pressure.

@dominictarr thanks, good point about the loss of back-pressure.
I'm now using pull-pair instead of the bespoke back-pressureless version.

@diasdavid both requested changes are done via:

e723586c0b1116a3280be58248257e2a4b04ad91
00363147a04506afd17db8998a931b348f0569c1

@diasdavid there are also some opportunities to create more independent packages from this, namely the pull streams that generate a balanced tree and the trickle tree..

🎉🎉🎉🎉🎉🎉🎉🎉
THIS IS HAPPENING :D
Thank you @pgte  ❤❤❤❤❤


Errors out on Dash 2.0

The culprit is:
https://github.com/plotly/dash-enterprise-auth/blob/6e1aa59e315b6ae08da12febee523dbe57a92312/dash_enterprise_auth/__init__.py#L14
We will need to update this import definition in several of our libraries. @alexcjohnson is there a reference snippet on how to load dcc that works across Dash releases?

That causes an error? Should just be a warning, we have stub packages for the original top-level imports. What's the specific error you get?
In principle at some point we should update these, though that forces us to require dash >= 2. The new imports are:
from dash import dcc, html, dash_table

Sorry for the noise. It is indeed only a warning.


[AIRFLOW-3089] Drop hard-coded url scheme in google auth redirect.

Make sure you have checked all steps below.
Jira

[x] My PR addresses the following Airflow Jira issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-XXX
In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a Jira issue.

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

The google auth provider hard-codes the _scheme in the callback url to
https so that airflow generates correct urls when run behind a proxy
that terminates tls. But this means that google auth can't be used when
running without https--for example, during local development. Also,
hard-coding _scheme isn't the correct solution to the problem of
running behind a proxy. Instead, the proxy should be configured to set
the X-Forwarded-Proto header to https; Flask interprets this header
and generates the appropriate callback url without hard-coding the
scheme.
Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[x] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[x] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[x] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

Codecov Report

Merging #3919 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3919      +/-   ##
==========================================
- Coverage   77.53%   77.52%   -0.01%
==========================================
  Files         198      198
  Lines       15847    15847
==========================================
- Hits        12287    12286       -1
- Misses       3560     3561       +1

Impacted Files
Coverage Δ

airflow/models.py
88.79% <0%> (-0.05%)
: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 5355909...7230ed5. Read the comment docs.

@ashb: have time to look at this? I'll update docs also if the change makes sense.

Does google even allow non-https callback URLs anymore? If it does, sure this makes sense.

Yes, I ran into this testing google auth on localhost, where I didn't have https set up.

Rebased. I think the docs on redirect URLs and the ProxyFix middleware in integration.rst cover this well enough, so I think this is ready for review.

Nice commit message too!


grey out or remove "bin bucket" pictogram from deployment card after confirming deletion

The same way it's done for the "cross" on the card on the deployment termination. Otherwise, "bins" stay there on the cards until the page auto-refreshes and the cards disappear. It's a bit confusing. This is a cosmetic thing.

Fixed in this commit https://github.com/nuvla/ui/commit/8afd6b817e186048dd1152a1fa298d41fc7423ba


Remove unused, improperly named HDFS config options

I put these in when I thought we were going to do command-line overrides, but that's been deferred.
Connor since told me that '.'s are not allowed in moustache config names.
Removing these for now. We can add them back properly when needed.

@elingg @ConnorDoyle PTAL

:100: for keeping it simple to start, especially if those values lacked test coverage.

Synced to ea


Completed Sessions 2 and 3

@benjamink14 - this is failing :
rspec -cr '/home/travis/build/makersacademy/ruby-kickstart/session2/3-challenge/2_input_output_control.rb' -r enumerator '/home/travis/build/makersacademy/ruby-kickstart/session2/4-spec/2.rb' --fail-fast
F
Failures:
  1) hi_hi_goodbye does not print "hi" when the first submission is "bye"
     Failure/Error: expect(output).to match /goodbye.*\Z/i
       expected "Enter a number\n\nEnter a number\ngoodbye\n\n" to match /goodbye.*\Z/i
       Diff:
       @@ -1,2 +1,5 @@
       -/goodbye.*\Z/i
       +Enter a number
       +
       +Enter a number
       +goodbye

     # ./session2/4-spec/2.rb:34:in `hi_hi_goodbye_tester'
     # ./session2/4-spec/2.rb:38:in `block (2 levels) in <top (required)>'
Finished in 0.00293 seconds (files took 0.13352 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./session2/4-spec/2.rb:37 # hi_hi_goodbye does not print "hi" when the first submission is "bye"
rake aborted!
Command failed with status (1): [rspec -cr '/home/travis/build/makersacadem...]
/home/travis/build/makersacademy/ruby-kickstart/Rakefile:69:in `run_spec'
/home/travis/build/makersacademy/ruby-kickstart/Rakefile:95:in `block (4 levels) in <top (required)>'
Tasks: TOP => 2:all => 2:2
(See full trace by running task with --trace)


Enable gcAllowVeryLargeObjects on FsiAnyCpu

Fixes #100.
The documentation for this feature states:

Before enabling this feature, ensure that your application does not include unsafe code that assumes that all arrays are smaller than 2 GB in size. For example, unsafe code that uses arrays as buffers might be susceptible to buffer overruns if it is written on the assumption that arrays will not exceed 2 GB.

I had a scan through the FSI code and took a look through the rest of the solution but found nothing of the sort.

Hi @saul, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, MSBOT;

I believe the warning applies also to libraries that are referenced using #r.   I wonder whether this should be the only choice for 64 bit FSI or should it be an IDE option?

Kevin if that's the case, then can't the user remove that line from the app config in the same way users currently add it?
I can't imagine libraries that are assuming the maximum sizes of arrays are plentiful, especially so ones that are used often. Even if it were the case, it sounds like a bug with the library as opposed to FSI.

@saul
The thing is I don't really know why the default for 64 bit CLR apps is off.  I will root around upstairs and see if I can find someone who can give me a cogent explanation.  I can think of a few possibilities ... however, the ones I come up with in my head don't really hold water.
Without a decent explanation I don't know that I feel comfortable changing the default for FSI.  Now I would be fine if there was an option in the VS tools to easily switch it.
As for whether it's a bug or not in the library, it could be.  However, it's a bug that an app developer would have to go out of his way to provoke, and so it may just be a thing.
I would also guess that as well as switching the flag an ngen would be required for anything that is ngened.   Anyway, let me have a root around and see if I can find ut why the default is the way it is.
Kevin

@jankotas
Hey Jan do you have any idea why the default for the 64 bit managed process gc has allow very large object false?
Are there performance or compatability penalties associated with this option?
Thanks
Kevin

@saul
I chatted with Vance.  We can't think of any real issue with enabling this always in 64 bit FSI.

@saul
Thank you for pushing on this.
Kevin


define exit actions

…on in the future

Reference Issues/PRs

What does this implement/fix? Explain your changes.

consolidate exit actions into one place. Make it easier to maintain and less error prone

Any other comments?
🧡 Thanks for contributing!

Would only make it less error prone if they are used in that way in other parts.


Update avro, avro-compiler to 1.9.1

Updates

org.apache.avro:avro
org.apache.avro:avro-compiler

from 1.9.0 to 1.9.1.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention @scala-steward in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.apache.avro" } ]

labels: semver-patch

Codecov Report

Merging #9 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #9   +/-   ##
=======================================
  Coverage   70.37%   70.37%
=======================================
  Files           4        4
  Lines          81       81
  Branches        3        3
=======================================
  Hits           57       57
  Misses         24       24

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 daad2ab...50a3a87. Read the comment docs.


Enable IWA standard-based metadata for CET and other tokens

Problem description
Describe the current state of affairs and why it needs to change.
Requirements
For minted tokens create HIP-405 documents containing the relevant metadata as per the emerging IWA VEM standards, specifically the following:

Unique identifier (Id): An identifier that is assigned when issued.
Issuer: The Id for the issuing standard registry.
Core Carbon Principles (CCP): A set of properties that every CCP will have.
Core Carbon Attributes (CCA): A set of properties where the values can differ significantly between CCPs and allows comparisons and grouping of like CCPs together.

Core Carbon Principles contain:

AssetId: The serial number or unique identifier of the referenced credit on the standard registry that the token represents.
Issuance Date: The date of creation.
Determined Value: Ex-ante, Ex-post
Verification Standard: VCS, GS, etc.
Additionality: TBD
Leakage: TBD
Reference to Project/MBP/Claim
Reference to Contract/VerifiedClaims/Claim
Date Range: The verified period of the benefit claim.

Core Carbon Attributes contain:

Classification:

Category: Reduction, Avoidance or Removal
Method: Nature or Technology
Vintage

Storage

Biosphere
Geosphere

Durability: permanence risk, near term (up to 20 years), short term (20-50 years), medium term (50-80 years), long term (80-100 years), and very long term (100-1000 years)
Clear Removals:

N2O:≤0
CH4:≤0

Co-benefits: One or more options from a list of the added benefits we get above and beyond the direct benefits of a more stable climate.
PA-Compliance:

Corresponding Adjustment

Definition of done

Guardian token minting process includes the creation of the HIP-405 compliant JSON metadata based on the VCs/VPs and other data recorded by Guardian for the project/policy.
Demo policies contain examples of such data
Documentation is updated

Acceptance criteria

A customisable and extendable set of attributes can be specified to be included in the HIP-405 compliant JSON metadata document for minting of the tokens.
Policy authors can specify project requirements for the metadata
Voluntary_Ecological_Markets_Overview_Revised.pdf

a challenge is that HIP-405 proposes using the memo field on the token to point at JSON metadata, but I believe? Guardian is already populating the memo?

This ticket needs to be updated and is out of date


Update README.md

Hey, I wanted to read your tutorial on the Unreal wiki, but they took it down yesterday.  So I necro'd the wiki.unrealengine.com site from archive.org.  Anyways, here's an alternate link :-)

Hi, thanks for the contribution. You may also want to submit this PR to the original repo.

Doh!  Thanks, I meant to do that :-)
On Thu, Apr 2, 2020 at 4:57 PM mastercoms<EMAIL_ADDRESS>wrote:

Merged #4 https://github.com/ProjectBorealis/UE4GitPlugin/pull/4 into
pb-changes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ProjectBorealis/UE4GitPlugin/pull/4#event-3194058712,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALPMFUMT4ECDEQ2CPQLCXDRKUC4DANCNFSM4L26FSPA
.

--
Michael Cole


Allow to set options to the json_encode method

It should be great to configure a little bit how the json_encode method is used in the Serializer. Configure all the options and the depth.
You can maybe add this in your v2 roadmap ? :-)

Yeah, for sure. Good idea! I'll release a beta version tonight with this change.
And I plan to include the changes for hydrators in the second beta so we can think about the implementation a little bit more.

I've just released 2.0.0-beta1 :) I hope you'll like it - apart from some breaking changes which need some time to resolve. Feel free to reach out to me if you might need help.
And do not hesitate to share other ideas of yours which comes with breaking changes. I plan to stay in beta/RC for some weeks in order to accumulate enough ideas.

Thanks, I will test this soon :-)

Hello,
That's an interesting feature, could you backport it to the 1.0 branch?

Hi,
It's done by now :) And I've just released v1.0.5!


Gradle task assembleDebug failed with exit code 1

Error while running Gradle task 'assembleDebug'...
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':flutter_libphonenumber_android:compileDebugKotlin'.

'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.

I have the same problem with the latest Flutter version

Duplicate of issue #45
I used @thuytrinh 's workaround to solve the issue:

I had to work around like below in the root build file of my Android module:
project(':flutter_libphonenumber_android').afterEvaluate {
    project(':flutter_libphonenumber_android').android {
        compileSdkVersion 30
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }

        kotlinOptions {
            jvmTarget = '17'
        }
    }
}

Is there any update?

Fixed in v2.3.1


Event name line wrapping option

If an event name is longer than the calendar cell's width, have the name wrap onto multiple lines, as needed. Currently the event name stays on a single line, with the extra text hidden. Keep this the default functionality.
Complicated due to how the calendar calculates row heights. It assumes one line per event.
Also, set a limit to how many lines it can wrap?

I just encountered the same problem, I think I've solved it with some CSS:
.ec-event {
  color: white;
  padding-right: 1px;
  padding-left: 11px;
  -webkit-border-radius: 3px;
  -khtml-border-radius: 3px;
  -moz-border-radius: 3px;
  white-space: pre-wrap;
  height: auto !important;
}

I added the height: auto !important; line, so no limit to how many lines it'll wrap.
Testing it now to see how it'll handle multiple all-day long event descriptions.


2 matlab tools added

spreadsheet to json/tsv
code taken from robert for eeg brainvision file to be renamed (tricky as it works in pairs)

These are great functions :-)


'sdkProperties' has private access in 'com.twitter.clientlib.SDKConfig' .

One line summary of the issue here.
Expected behavior
As concisely as possible, describe the expected behavior.
Actual behavior
As concisely as possible, describe the observed behavior.
Steps to reproduce the behavior
Please list all relevant steps to reproduce the observed behavior.

I'd like to add that the issue is that the location of sdkProperties cannot be changed. I cannot deploy a WAR file and have FileInputStream find it.
To lookup any resource in a WAR / Wildfly environment, you have to use:
			InputStream in = this.getClass().getResourceAsStream("/sdk.properties");

But you cannot change this as it is currently hardcoded in the constructor.


(SearchBox) Support OnChange to fire only on enter or losing focus

The standard text box only fires the OnChange event when the user presses enter or moves focus away from the control.
This is required to allow fast searching without tabbing away to another button to execute the search.
Currently, the OnChange event fires with every key press.
This is related to microsoft/powercat-code-components#82

I agree, I would be much nicer to have this aligned with the existing text input so that OnChange() can be set to Select() a button i.e. the search button for faster searching.


fix(STONEINTG-998): fix pipeline as code event

fix IsSnapshotCreatedByPACPushEvent and IsPLRCreatedByPACPushEvent since incoming event can trigger pull-request and push event plr

Signed-off-by: Hongwei Liu<EMAIL_ADDRESS>Maintainers will complete the following section

[ ] Commit messages are descriptive enough (hints)
[ ] Code coverage from testing does not decrease and new code is covered (check the PR coverage on codecov)
[ ] Controllers diagrams are updated when PR changes controllers code  (if applicable)

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

Please upload report for BASE (main@937eb79). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #858   +/-   ##
=======================================
  Coverage        ?   69.09%
=======================================
  Files           ?       43
  Lines           ?     4439
  Branches        ?        0
=======================================
  Hits            ?     3067
  Misses          ?     1054
  Partials        ?      318

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


Code health: Remove base address setting for mingw

Base address setting was done for the sake of FIPS.  Since FIPS references
have been removed, we clean away this one as well.

This is related to #2771

Merged. 43f9e0a08cd434fc1320b0bf66798fe187ffdc6f


Matrices

More of a log of matrix-relates features for 2.0.
When everything is completed (or ~dashed~ if cancelled), this will close.

[x] Matrix Implementation:

[x] Basic math & working operators
[x] Seamless type conversion
[x] Empty creation
[x] Generic filled creation
[x] Transformation matrix creation

[x] Premade Matrices:

[x] Rotation
[x] Scaling
[x] Translation
[x] Shearing
[x] Reflection

[ ] Image.hx Integration:

[ ] Matrix application method
[x] Image rotation
[x] Image scaling
[ ] Image perspective tilting

almost there, just one problem - black gaps form when using some matrices:

Trying to resolve it right now, if you think you have a solution - feel free to suggest it :)

almost there, just one problem - black gaps form when using some matrices:
Trying to resolve it right now, if you think you have a solution - feel free to suggest it :)

So… The problem is that there aren’t enough pixels to use in the gaps, right?

Pretty much yeah...
I don't remember if I resolved it though, got busy with a bunch of other stuff...
Iirc I made a strange solution and then removed it because it was very strange and had some side effects

almost there, just one problem - black gaps form when using some matrices:
Trying to resolve it right now, if you think you have a solution - feel free to suggest it :)

So… The problem is that there aren’t enough pixels to use in the gaps, right?

Okay, just checked stuff out - this was fixes using bilinear interpolation for the missing pixels, which actually looks like a pretty good solution. Moving on to perspective tilting, im also done with matrix application

Update - just finished implementing perspective tilting, or, as its named in the library, warping.
I'm closing this. thanks @Wither362 for your help :)

Update - just finished implementing perspective tilting, or, as its named in the library, warping.
I'm closing this. thanks @Wither362 for your help :)

I really didn't do anything...


[FEAT]: Apply changes of PR #33 to install-freisa.sh

📑 Description

Extends #33

✅ Checks

[x] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[x] All the tests have passed

ℹ Additional Information

@pitdagosti please review and merge. Thanks!