Does GNMIC support multiple sessions to Server within the same connection ??

Hi,
I am testing this telemetry app with GNMIC and I am able to do the subscribe and capabilities request. I am getting the expected output but here I am only creating one gnmi session.
Is there a way to make multiple sessions within the same connection. Can I add something to the config file of GNMIC to support multiple sessions.
Currently my config file looks like :
**insecure : false
log : true
username : dial
password : Dial@123
tunnel-server:
address: ":50056"
target-wait-time: 20s
skip-verify: false
cert-file: "/root/shivam/self-signed.crt"
key-file: "/root/shivam/self-signed.key"
debug: false**

Hi,
Can you describe a bit more what kind of sessions you are trying to create (which RPC)?
I see that your config file has tunnel-server config, are you trying to use gNMIc as a tunnel server?

Hi,
Yes I am using gNMIc as a tunnel server. Ok I'll explain you a bit about tunnelclient on the other side. So whenever a connection is made tunnelclient accepts a tag-id from gNMIc and creates a new single session. I want to send multiple tag-id's to tunnelclient in parallel so that multiple GNMI sessions are created at once.

To create a session you have to trigger an RPC, can you share which RPCs you want to send to the server on the other side of the tunnel?

Hi,
Here gNMIC we are using as a tunnel server.
On the other side we are running tunnel client.
https://github.com/openconfig/grpctunnel/blob/master/proto/tunnel/tunnel.proto
Using tunnel rpc, tunnel server and tunnel client will exchange streaming data(gnmi request and response).
This streaming data can be subscribe, capability, set or get request/response.
Tunnel server(gNMIC) will send the request and gnmi server which is running behind the tunnel client sends response via streaming tunnel to tunnel server.
Here concurrent gnmi session can be possible with in the same streaming tunnel.
From the tunnel.proto unique tag is to differentiate between gnmi session.
So here the ask is does gNMIC support multiple sessions using the same streaming tunnel.
Thanks
Manish Khandelwal

Hi @karimra,
Did the above comment answer your query ?

I understand that, that is basically the spec of grpc tunnel.
Yes gnmic support multiple sessions.
What I'm asking is which rpc you want to trigger (streaming, unary) and how (are you running gnmic as a cli? as a daemon)?
In both cases, how do expect to trigger multiple RPCs?
The way to create multiple sessions depends on the type of RPC and how gnmic is ran.

have a look here: https://gnmic.kmrd.dev/user_guide/tunnel_server/#combining-tunnel-server-with-a-gnmi-server

Ok thanks for the link, I am going thru it.
Just giving some info:
We already have a fully implemented gnmi server with subscribe, capabilities RPCs, etc.
I have already tested by sending a subscribe and capability request to our gnmi server and things are working perfectly.
Just to be sure, in this link -> "Combining Tunnel server with a gNMI server" -
Will this help if we are using our own gnmi server or this is only helpful if we want to use gNMIc's gNMI server ?

Your gNMI server is separate.
The links shows how to use gNMIc as both a Tunnel Server and a gNMI server. This allows you to interact with gNMIc with another client, gNMIc will "proxy" the requests received on its gNMI Server through the gRPC tunnel to your gNMI server.
Hopefully this diagram helps:

Hi @karimra
I am not sure if the link you posted is related to my requirement but I might be wrong. Anyways I have tried to explain the entire architecture and attached ss of issue, please have a look once. Sorry for making it so long :p
I am running a streaming RPC (which is subscribe).
gNMIc runs as a tunnel server (you already know about that) as a DAEMON. I mean I run the binary and give it a long timeout and so gNMIc waits for any configuration to be done on my network element, once configuration is done the connection between network element and gNMIc is initiated.
So you said that YES gNMIc supports multiple sessions. Now just to be sure that we both are talking about the same requirement (i.e., our understanding of sessions is same or not).
I want to make 2 parallel sessions with the same tunnel.
Right now I make only one session with a tunnel and tag id of the session is 1. But now I want to make multiple of these sessions with unique tag ids.
So to summarize if you think in terms of a black box. I want to tweak the config file which I am passing in such a way that instead of 1 session  it creates 2 parallel sessions with different tag ids and both these can be subscribe requests.
Please see this for things to be more clear:
Setup : I have started gNMIc twice and now I want streaming to happen on both but what I see is that streaming happens on the first one but on the second one I get "[gnmic] failed to start gRPC tunnel server listener: listen tcp :50056: bind: address already in use". Please note that I have to make port same. I was expecting that it will connect twice and make 2 sessions.
But this did not happen.
Attaching two screenshots of gNMIc running twice

Now to explain the same thing in a diagram

Thanks for all your help, please let me know if anything else need clarification. I will try my best to make things clear.

It's not possible for 2 processes to listen the same IP/port on the same host, you will have to change either the IP address or the port for one of the gNMIc instances you are starting. In which case, your client should be configured to establish 2 tunnels.
The session I'm talking about is the one established by the tunnel server (gNMIc) to the tunnel client aimed at a specific target (ID, Type) i.e the gNMI server behind the tunnel client.
The session establishment direction in your diagram should be inverted, the Tunnel is established from client to server while the session is established from server to client as per this use case: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmignoissh-dialout-grpctunnel.md#tunnel-server-to-tunnel-client-session-establishment
In the case of Subscribe RPC, a single session is used to carry all the RPCs per target (ID, Type). If you want to establish multiple sessions, you will need to have more than one target behind the tunnel client.
There is no advantage (and some disadvantages) using a session per RPC towards the same target;
Each session will essentially create a gRPC connection to the target behind the tunnel client, so you will end up with one gRPC connection per gNMI subscribe RPC.
In the case of a Unary RPC, each RPC creates its own session towards the tunnel client to reach the target (ID, Type).

Ok I agree that in the diagram the direction of session arrow is inverted. But that's not the main point I was trying to discuss.

I think if I ask you this question things will get clearer :
So you said that there is no point of making multiple gRPC session with same target.  Ok I agree. But what if I want to make a gRPC session and netconf session to the same target. As shown in diagram.

A question related to code of GNMIC :
Reading the code I was expecting that you will be creating a session using the function TunnelSession() [ Line 95 in api/tunnel.go ].
But none of the logs I printed in this function are getting printed when I make a connection with target. Can you explain why is that ? You must be creating a session right ?

Ok I agree that in the diagram the direction of session arrow is inverted. But that's not the main point I was trying to discuss.

I think if I ask you this question things will get clearer : So you said that there is no point of making multiple gRPC session with same target. Ok I agree. But what if I want to make a gRPC session and netconf session to the same target. As shown in diagram.

A target is identified with both its ID and Type, that why I always write (ID,Type). So in the case of a gRPC and netconf sessions, there should be 2 targets registered; (ID, GNMI_GNOI) and (ID, SSH)

A question related to code of GNMIC :
Reading the code I was expecting that you will be creating a session using the function TunnelSession() [ Line 95 in api/tunnel.go ]. But none of the logs I printed in this function are getting printed when I make a connection with target. Can you explain why is that ? You must be creating a session right ?

That part of the code is used to craft the messages, you can use that to write your own tunnel server. I don't use it to write gNMIc's tunnel server. I use https://github.com/openconfig/grpctunnel

I see logs on the terminal where I run gnmic, Is there any other log file also ? Or can I get additional logs from somewhere.
Also in yaml whats the use of debug option, I was expecting, making that true, will give more logs.


Ruby 3 rollout

[x] Ship opt-in HOMEBREW_RUBY3
[x] Support system Ruby 3 on Linux (this is mostly for non-x86_64 users) under HOMEBREW_RUBY3 (already supported under HOMEBREW_USE_RUBY_FROM_PATH) - #16192
[x] Enable HOMEBREW_RUBY3 by default for HOMEBREW_DEVELOPER users - #16241
[ ] Vendor 3.1 gems
[ ] Enable HOMEBREW_RUBY3 for everyone (land this just after a tag and this will effectively be a week of dev-cmd only users initially)

Until 2.6 is dropped, this should be done initially by an unconditional set as not all HOMEBREW_RUBY3 checks can be removed because of Dependabot (which we want to stay on 2.6 for a little longer). Some checks, such as 2.6 Portable Ruby downloads, can be removed however.

[ ] Bump HOMEBREW_REQUIRED_RUBY_VERSION

This is a breaking change for anyone using custom system Ruby (e.g. some Linux users)

[ ] Drop 2.6 vendored gems
[ ] Remove remaining macOS system Ruby code.
[ ] Update all gems based on the new 3.1 minimum. Remove remaining HOMEBREW_RUBY3 checks and bump Gemfile bounds (and remove did_you_mean entry from Gemfile)
[ ] Bump TargetRubyVersion in RuboCop and fix the potentially many new failures.

Each step should ideally be in its own PR (for easy reverts) and the state of brew after each step should be stable (i.e. no state should be release-blocking and steps shouldn't need to be done "quickly" after each other). Goal is to avoid "mega PRs".

[ ] Support system Ruby 3 on Linux (this is mostly for non-x86_64 users) under HOMEBREW_RUBY3 (already supported under HOMEBREW_USE_RUBY_FROM_PATH)

This seems like a nice-to-have rather than a blocker. Could be moved to the end.

Until 2.6 is dropped, this should be done initially by an unconditional set as not all HOMEBREW_RUBY3 checks can be removed because of Dependabot (which we want to stay on 2.6 for a little longer).

Why is this?

This is a breaking change for anyone using custom system Ruby (e.g. some Linux users)

This is fine, we can make this a minor Homebrew version bump.

Meta-comment: other than the above questions: this all seems perfect. Thanks for the step-by-step plan, @Bo98 🎉

Why is this?

https://github.com/Homebrew/brew/blob/53107a51db65ca7fe8c65d02958fbd1cca0d09cf/Library/Homebrew/Gemfile#L5-L11
We don't want Dependabot to start updating to 2.6-incompatible gems until after we've bumped HOMEBREW_REQUIRED_RUBY_VERSION, so the Gemfile should still have a restrictive ~> 2.6.0 for the no-env case.
However it can't be restrictive for actual users, so we will need to check some env that users have but Dependabot doesn't. HOMEBREW_RUBY3 seems the easiest way to do that.

We don't want Dependabot to start updating to 2.6-incompatible gems until after we've bumped HOMEBREW_REQUIRED_RUBY_VERSION, so the Gemfile should still have a restrictive ~> 2.6.0 for the no-env case (since Dependabot will have no Homebrew envs).

Makes sense 👍🏻

I've removed the HOMEBREW_DEV_CMD_RUN stage as I don't think it's necessary given I don't think it needs to be longer than a week, and we can just have the enable-for-all stage be on master for a week before tagging.
I'd like to get this out of the way before Christmas, so my proposed schedule (subject to any delays from issues arising):

Today (21st Nov), enable for HOMEBREW_DEVELOPER
27th Nov, after a tag, vendor 3.1 gems and enable for all and let that sit on master for dev-cmd-run users
4th Dec, release tag as usual, which will enable for all
If no critical bug reports in the first 48 hours, remove 2.6 vendored gems and bump HOMEBREW_REQUIRED_RUBY_VERSION. Next tag (11th Dec?) should be a minor version bump so prepare accordingly.
After the minor version bump, we'll update all gems that were stuck on old versions, including RuboCop.

Today (21st Nov), enable for HOMEBREW_DEVELOPER

👍🏻

27th Nov, after a tag, vendor 3.1 gems and enable Ruby 3.1 for all and let that sit on master for dev-cmd-run users

Is this just vendoring the same gems that we vendor for 2.6 and removing the need for a bundle install run?
If so: 👍🏻. If not: let's talk more.

4th Dec, release tag as usual, which will enable Ruby 3.1 for all users
If no critical bug reports in the first 48 hours, remove 2.6 vendored gems and bump HOMEBREW_REQUIRED_RUBY_VERSION. Next tag (w/c 11th Dec?) should be a minor version bump so prepare accordingly.
After the minor version tag, we'll update all gems that were stuck on old versions, including RuboCop.

All sounds good.

I realise that slightly complicates Dependabot for a few days, but I can handle that if any vendored gem gets updated - or just stall them briefly if non-critical.

Not a big deal for a few days 👍🏻

Appreciate the forward planning, great work here @Bo98.

Is this just vendoring the same gems that we vendor for 2.6 and removing the need for a bundle install run?

Yes

@Bo98 that PR is shipped now 👍🏻

I don't see this explicitly mentioned already so I'm adding it here just in case. The JSON API and website generation for formula.brew.sh seems to still run on Ruby 2.6 so that should get updated as well before enabling Ruby 3.x for everyone.

https://github.com/Homebrew/formulae.brew.sh/blob/master/.github/workflows/scheduled.yml

That one is a little different in that technically speaking it's nothing to do with brew's Ruby. It's for the Rakefile that invokes brew through shell rather than Ruby.
Can also update that too however if everyone is fine with installing their own Ruby 3.1+ for local testing for that.

Can also update that too however if everyone is fine with installing their own Ruby 3.1+ for local testing for that.

Yup 👍🏻

Ah, in that case, it's probably something that should happen as a follow-up but shouldn't delay the other Ruby 3 work.

and possibly other Intel Mac users

You're the first to report in the few days it's been out so it's unlikely to be widespread.
Here's what it happening under the hood:
cd "$(brew --repo)/Library/Homebrew/vendor"
tar xzf ~/Library/Caches/Homebrew/portable-ruby-3.1.4.el_capitan.bottle.tar.gz
cd portable-ruby
./3.1.4/bin/ruby --version
echo $? # aborts if this is not zero

# cleanup the above by doing
rm -rf "$(brew --repo)/Library/Homebrew/vendor/portable-ruby"

Try those out manually and let me know what's happening. The error message I agree is probably not as useful as it could be.

It failed on the tar command:
/usr/local/Homebrew/Library/Homebrew/vendor|stable ⇒  tar xzf ~/Library/Caches/Homebrew/portable-ruby-3.1.4.el_capitan.bottle.tar.gz

tar: Error opening archive: Failed to open '/Users/myuser/Library/Caches/Homebrew/portable-ruby-3.1.4.el_capitan.bottle.tar.gz'

I was able to open the archive with sudo and run the other commands. But it seems like this is probably not the expected subsequent output of the ruby comnmand:
/usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby|stable ⇒  ./3.1.4/bin/ruby --version
[1]    12130 killed     ./3.1.4/bin/ruby --version

I would have thought that would print a version string if everything worked correctly.

If sha256sum ~/Library/Caches/Homebrew/portable-ruby-3.1.4.el_capitan.bottle.tar.gz prints 02180ca8b8295422ae84921bcf034b7ee8ce5575488bd5e6a37a192e53cd5d34, then all I can think of is that you have something on your system that is blocking it, such as security software perhaps?

.rw-r--r--@  13M myuser 26 Oct 16:00 portable-ruby-3.1.4.el_capitan.bottle.tar.gz

Also probably worth seeing that that @ is about as that's not expected either:
xattr ~/Library/Caches/Homebrew/portable-ruby-3.1.4.el_capitan.bottle.tar.gz

The antivirus software is flagging Ruby 3 as abnormal.

This is likely your cause then. Which one do you use and can you submit a false positive report?

I'm in the same boat (Cylance) and am submitting a whitelist request to my org. I'll update with the outcome. Thanks for the help!

As a temporary workaround to anyone encountering this portable ruby antivirus issue:
cd /usr/local/Homebrew # or whatever your Homebrew location is
git checkout 4.1.22

This will put Homebrew at a version prior to the Ruby 3 change. brew will function for the purposes of installing software and upgrading specific formula. If Homebrew upgrades itself as part of an upgrade, you're back at the problem state again.

My org was able to whitelist Ruby 3.1.4 in Cylance, and it solved the issue. Everything seems to be working normally now!

Thanks for closing this out @Bo98 and everyone for work here!


Revitalize the collection of PUDL usage metrics

Overview
In order to better trace the development of PUDL, the success of our outreach efforts and the effects of our new Superset instance, we need to revitalize the pudl-usage-metrics repository and collect usage metrics from the following sources:

S3
Datasette (until retirement)
Superset
Zenodo
Kaggle
Github

We're interested in the following types of metrics to start:

how many different IPs are accessing our data via each method?
what tables and versions of the data are people accessing?

As a first step, we should be able to ETL the logs and metrics from each of these data sources and get a weekly summary that we can look at. As a second step, we want to hook up our metrics to a private Superset dataset and build some dashboards for easy interpretation.
Out of scope

Google Analytics - we already have a dashboard we can use to look at these metrics!
Migrating out of CloudSQL to another storage backend
Setting up a permanent dagster server with sensors and schedules

Infrastructure
The pudl-usage-metrics repository hasn't been maintained for a while. We'll need to get it up to speed to support this development work.
### Infrastructure tasks
- [x] Update packages https://github.com/catalyst-cooperative/pudl-usage-metrics/pull/119
- [x] The repo was created with an older version of the cheshire template. Update the packaging methodology and pre-commit hooks. Replace setup.py with pyproject.toml and conda for mamba. https://github.com/catalyst-cooperative/pudl-usage-metrics/pull/119
- [x] Update Python version to 3.12 https://github.com/catalyst-cooperative/pudl-usage-metrics/pull/119
- [ ] https://github.com/catalyst-cooperative/pudl/pull/3841

S3 Logs
Our main programmatic access method. S3 logs are currently mirrored to a GCS bucket. Each request produces one log.
### S3 Usage Metrics
- [x] If config to mirror S3 bucket to GCS is in S3, start with getting existing code to run locally on latest S3 logs
- [x] Put in devtools and run using a GHA weekly? Or update the usage metrics repo? Decide
- [x] Clean up `pudl-usage-metrics` repo: see https://github.com/catalyst-cooperative/pudl-usage-metrics/issues/118
- [x] Configure maximum run concurrency
- [x] Update existing code and add to `pudl-usage-metrics` repo
- [ ] https://github.com/catalyst-cooperative/pudl-usage-metrics/pull/140
- [ ] https://github.com/catalyst-cooperative/pudl-usage-metrics/issues/147

Datasette
While we're planning to retire Datasette, it'd still be helpful to understand the history of usage and to see how usage changes during the transition to Superset. The log ETL that exists in pudl-usage-metrics hasn't worked since the transition to fly.io.
fly.io currently doesn't retain logs for a long time so we need to use the https://github.com/superfly/fly-log-shipper fly log shipper to send logs to S3.
It also doesn't log out the IP address of the datasette requests - guessing that the IP currently logged is the load balancer IP. Usually the load balancer includes some sort of "forwarded this request from original IP" information in the headers, so we should be able to extract that somehow. Seems like we can't configure the datasette access logs so we'll need to set it up behind something we can configure, like NGINX.
### Datasette Tasks
- [ ] https://github.com/catalyst-cooperative/pudl-usage-metrics/issues/148
- [ ] write a script to parse logs into timestamp/IP/resource records
- [ ] compare & contrast to old Datasette logs
- [ ] Update datasette ETL to use assets rather than ops, and to conform to the format of the S3 processing

Superset
We're slowly deploying a new data visualization tool! It'll give us a lot of usage information, which we should process and handle. See https://engineering.hometogo.com/monitor-superset-usage-via-superset-c7f9fba79525 for a template.
### Superset Tasks
- [ ] Figure out how Superset logs usage metrics and how long usage metrics are retained for.
- [ ] If retention timeline is short, figure out strategy for archiving logs periodically.
- [ ] See https://github.com/hometogo/hometogo-data-code-snippets/tree/main/superset/usage_dashboard

Zenodo
Zenodo API calls return stats on views and downloads for a record at a particular point in time. We should periodically (weekly?) collect stats on all of our archives on Zenodo and archive them for later processing.
### Zenodo Tasks
- [ ] Write a script to collect stats for all Zenodo archives and save them to a GCS bucket
- [ ] Write an ETL script to combine and process these archived records

Kaggle
Kaggle collects data on views and downloads through its dataset metadata JSON, accessible through the api.metadata_get(KAGGLE_OWNER, KAGGLE_DATASET) call from the KaggleApi. Like Zenodo, this is data reported at the time of query, so we'll need to archive these metrics to see changes over time.
### Kaggle
- [ ] Write a GHA to archive the metadata file daily into a Kaggle Metrics GCS bucket
- [ ] ETL this data, keeping only the relevant metrics fields: ["info.usabilityRatingNullable", "info.totalViews", "info.totalVotes", "info.totalDownloads"]
- [ ] Investigate whether it is possible to pull kernel/notebook metrics as well

Github
Migrate our Github metrics archiving from the business repository, and add it to our ETL.
### Github
- [ ] https://github.com/catalyst-cooperative/pudl-usage-metrics/issues/161
- [ ] ETL this data, keeping only the relevant metrics fields

Reporting and Visualization
Once the data is processed, we'll need to analyze and report on metrics of interest in order to interpret changes in usage and highlight trends of interest.
Some interesting references for Superset usage dashboards can be found here.
### Reporting and Summaries
- [ ] Define usage metrics of interest across data sources
- [ ] Write a script to output a weekly usage summary
- [ ] Write a GHA to produce and upload this weekly summary to GCS every week
- [ ] Hook up the database to Superset
- [ ] Create some dashboards

I've updated this issue to be an epic reflecting all our logs and possible workflows, and have tried to structure out smaller steps in the tasklists.

@e-belfer was this issue supposed to get closed by #162?

Definitely not!


Clock set with "interval": "1" only updates every minute

Hi,
Thanks for this great tool!
I'm running Waybar 0.9.3 on Sway 1.4 on Fedora 32.
I would like a seconds display on my clock. This is my config:
"clock": {
    // "timezone": "America/New_York",
    "interval": "1",
    "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
    "format-alt": "{:%Y-%m-%d}",
    "format": "{:%A %e %B %Y %H:%M:%S}"
},

That time format outputs correctly, but only updates every minute.
Any thoughts?
Cheers,
Jeff

Interval accepts only integer values or "once". Everything else is ignored.
"interval": 1 (without quotes) should work.

Thanks @alebastr, that's what I was missing.


Android Sqlite Encryption DB Failed when tested with Immuniweb

Hi
I create a project and followed steps to create encrypted DB. Once I build the application and tested the application with Immuniweb Mobile security test. It says 'CLEARTEXT SQLITE DATABASE' and it is high alert.
This is what I did
this.db: SQLiteDBConnection = await this.sqlite.createConnection("dbName", true, "secret", 1);
await this.db.open();
let ret: any = await this.db.execute(dbschema);
if (ret.changes.changes < 0) {
return Promise.reject(new Error("Execute createSchema failed"));
}
await this.db.close();
Please explain how this works why I am getting 'CLEARTEXT SQLITE DATABASE' error.
Another Alert in SQL Injection
'Inclusion of input into raw SQL queries can potentially lead to a local SQL injection vulnerability in the mobile application. The correct approach is to use prepared SQL statements beyond user's control.'
There is 'execSQL()' found in file 'com/getcapacitor/community/database/sqlite/SQLite/UtilsSQLCipher.java':
[line 235: compileStatement.execute();]
[line 236: openDatabase2.rawexecSQL("SELECT sqlcipher_export('main',
'plaintext')");]
[line 237: openDatabase2.rawexecSQL("DETACH DATABASE plaintext");]
[line 238: openDatabase2.setVersion(version);]

@xconcepts17 can you share your project to github so i could have a look. I do not know about  Immuniweb Mobile security test

Hi
Thanks for your response and I really appreciate you in making our jobs easy by creating this plugin.
please check the GitHub repository below
immuniweb-sql-report.pdf
https://github.com/xconcepts17/ionic-sql
I have attached Immuniweb report also.

@xconcepts17 it will be modified in the next release. By the way your database is not encrypted as you did not set the secure secret.
add this
                const secretPhrase = 'burden dihedron nuclear astonied reptant';
                const isSet = await this.isPassPhrase();
                if(!isSet.result) {
                    await this.setEncryptionSecret(secretPhrase);
                }

before
                let dbAvailable = await this.isDatabase();

and this two functions
    // passphrase available
    async isPassPhrase(): Promise<capSQLiteResult> {
      if (this.sqlite != null) {
        try {
            return Promise.resolve(await this.sqlite.isSecretStored());
        } catch (err) {
            return Promise.reject(new Error(err));
        }
      } else {
          return Promise.reject(new Error(`no connection open`));
      }
    }
    // set encryption passphrase
    async setEncryptionSecret(passphrase: string): Promise<void> {
      if (this.sqlite != null) {
        try {
            await this.sqlite.setEncryptionSecret(passphrase);
        } catch (err) {
            return Promise.reject(new Error(err));
        }
      } else {
          return Promise.reject(new Error(`no connection open`));
      }
    }

i directly set the passphrase in clear you will have to do it through a form

@xconcepts17 fix in v3.4.0-3 you may also use the biometric authentication to protect more your application see
Biometric_Authentication


Fix gallery order issue

This PR fixes the order issue in the gallery while sorting directories/media files:

Add code so directories can be sorted by date
The code in src/frontend/app/ui/gallery/gallery.component.ts shows that SortingMethods.ascDate and SortingMethods.ascName ( and desc as well ) are using the same code to sort the directories ( both sort by name in natural-order ).  I've added some code so directories now can be sorted by its lastModified attribute.

Add code so media files in a directories can be sorted in natural-order
PR #224 added the code to sort the directories in natural-order, however the media files in directories are still using lexicographic-order. I've added some code in src/frontend/app/ui/gallery/grid/grid.gallery.component.ts to support natural-order for media files as well.

Please do review this PR, since I'm not sure if the modification suits everyone needs. Discussion/suggestions are welcomed.

@bpatrik I've added one more commit to fix a minor bug ( forgot to add break in switch-case :P )
The code has been tested and I think it's OK to merge

Thanks!


llm-factor: migrate to candle

This PR replaces the dependency on rustformers/llm to huggingface/candle. This allows us to run newer models like Llama 3(.1). This now requires the models to be of the safetensors format.
This PR also removes the concept of well-known models. This ensures a consistent directory structure for all models. The rationale is that, with this change, the only group of models initially supported is the Llama family.
Closes #2735

Given this is a breaking change, I'd suggest adding the 3.0 label.

@radu-matei I do not believe I can add labels in this repository.

The test failure does not seem to be related?


The copilot chat sidebar in VSCode 1.96 can't be closed using a pointer device

The copilot chat sidebar in VSCode 1.96 can't be closed using a pointer device (e.g.: mouse) because the close button disappeared.

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.96
OS Version: Windows 11

Steps to Reproduce:

Open Copilot chat
Close button doesn't exist

Probably #232719

Not sure actually, because it was there before the update yesterday. 🤔

Is your Activity Bar position set to 'top'?

Is your Activity Bar position set to 'top'?

It's "Hidden", but toggling it as "Default" (on the right side) also makes x button visible again. Everything was okay in v1.95.

Do you have the set of layout buttons at the right-hand end of your window title bar? One of those will toggle visibility of the Secondary Side Bar where Copilot Chat now lives by default.

Do you have the set of layout buttons at the right-hand end of your window title bar? One of those will toggle visibility of the Secondary Side Bar where Copilot Chat now lives by default.

I'm not sure (already lost in the bars around). This is what I have:

Hidden
Default

Closing as a duplicate. Regarding the layout buttons not showing with "workbench.editor.editorActionsLocation": "titleBar". We will be changing that with this issue: https://github.com/microsoft/vscode/issues/232798


Fix bug in cKDTree constructor and allow mixed periodic and non-periodic dimensions

This patch fixes a bug in the cKDTree constructor. The boxsize keyword requires an array two times larger than the size it should be. This is addressed by the first line in the patch.
The second line in the patch allows the user to mix periodic and non-periodic dimensions in boxsize by setting the size of each non-periodic dimension to a non-positive value. The function side_distance_from_min_max in ckdtree_methods.h will treat those dimensions as non-periodic.

Some weird test errors on py34 + numpy 1.7.2:
======================================================================
ERROR: test_kdtree.test_two_random_trees_linf_compiled_periodic.test_all_in_ball
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/nose/case.py", line 382, in setUp
    try_run(self.inst, ('setup', 'setUp'))
  File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/nose/util.py", line 470, in try_run
    return func()
  File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/scipy/spatial/tests/test_kdtree.py", line 562, in setUp
    test_two_random_trees_compiled_periodic.setUp(self)
  File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/scipy/spatial/tests/test_kdtree.py", line 519, in setUp
    self.T1 = cKDTree(self.data1,leafsize=2, boxsize=1.0)
  File "scipy/spatial/ckdtree.pyx", line 512, in scipy.spatial.ckdtree.cKDTree.__init__ (scipy/spatial/ckdtree.cxx:5379)
TypeError: int() argument must be a string or a number, not 'NoneType'

We're bumping minimum numpy version to 1.8.2 soon, so if these are 1.7.2 specific they can be ignored. but if not, then it needs fixing.

@jmbr thanks for the patch. You're saying you fixed a bug, so it would be good to demonstrate that bug with some self-contained code and then put that in the tests as a regression test.
@rainwoodman maybe you can comment on this?

We shall add a test case or two and mention this added feature in the documentation. @jmbr, if you prefer I can send you a PR on these later of the week.

It is actually more complicated. the function side_distance_from_min_max is only used in query.cxx, which hasn't been fully ported to the new template based implementation. We also need to look at the logic in distance_box.h to make sure this is correct for pair-counting.

@jmbr @rainwoodman is this ready to merge now?

@rgommers I'm currently busy with other work but if you can wait one week, I'll write the test case.

@jmbr thanks. no hurry, just saw some commits that seemed to address the comments above.

The reason I insisted on a test is because I suspect we'll find some issues once the test case is added: knn and count-neighour uses two sets of distance measure functions and I am not very confident by looking at the code they work the same way.
I'd like to combine these code branches after #5647. The test case developed here will be useful for that too.

I'd like to combine these code branches after #5647. The test case developed here will be useful for that too.

gh-5647 is merged now, so this can go ahead. PR needs a rebase too.

I've merged this to https://github.com/rainwoodman/scipy/pull/4 as I start looking into the duplicated code in cktree.

But feel free to rebase and merge this one by itself before I make progress on that one.

But feel free to rebase and merge this one by itself before I make progress on that one.

Seems like you have made progress in gh-6945 already. Maybe still better to merge this one though, and rebase the rest of gh-6945 on top of that.

Indeed. gh-6945 will need a massive rebase in the end anyways. :)


no text visible in widget-title on mobile

not fully visible text widget-title in mobile-menu.
Increase css media at which the margin of widget-title becomes zero.

Hey @ravshan01, fixed the issue in 6c1dc82. The fix was increasing the bottom padding of the mobile menu to make the content visible even when browser toolbar is visible.

Hey @ravshan01, fixed the issue in 6c1dc82. The fix was increasing the bottom padding of the mobile menu to make the content visible even when browser toolbar is visible.


Support GDPS forecast model

Description
The Environment Canada GDPS forecast model is available for free on a 0.25 grid.
The variables look similar to GFS and should be easy to implement.
We should:

Add a demo of how to create a MetDataset for meteorology and radiation from local grib files to run a CoCiP example
Develop a datalib for this source. It will look similar tot he GFS datalib.

Additional context
The RDPS and HRDPS are both higher resolution regional model that may be interesting to look into as well.

From ECCC:
Thanks for your interest in our data and services.
You will find all the information regarding the GDPS open data availability here:
https://eccc-msc.github.io/open-data/msc-data/nwp_gdps/readme_gdps_en/
The variable lists and levels available can be found here:
https://eccc-msc.github.io/open-data/msc-data/nwp_gdps/readme_gdps-datamart_en/#list-of-variables
https://eccc-msc.github.io/open-data/msc-data/nwp_gdps/readme_gdps-datamart_en/#levels
Please, note that the variable lists are not up to date, we are currently working to update and add it in our GitHub documentation. See here: https://gccode.ssc-spc.gc.ca/ec-msc/public-doc/-/issues/320


[SPARK-23445] ColumnStat refactoring

What changes were proposed in this pull request?
Refactor ColumnStat to be more flexible.

Split ColumnStat and CatalogColumnStat just like CatalogStatistics is split from Statistics. This detaches how the statistics are stored from how they are processed in the query plan. CatalogColumnStat keeps min and max as String, making it not depend on dataType information.
For CatalogColumnStat, parse column names from property names in the metastore (KEY_VERSION property), not from metastore schema. This means that CatalogColumnStats can be created for columns even if the schema itself is not stored in the metastore.
Make all fields optional. min, max and histogram for columns were optional already. Having them all optional is more consistent, and gives flexibility to e.g. drop some of the fields through transformations if they are difficult / impossible to calculate.

The added flexibility will make it possible to have alternative implementations for stats, and separates stats collection from stats and estimation processing in plans.
How was this patch tested?
Refactored existing tests to work with refactored ColumnStat and CatalogColumnStat.

cc @gatorsmile @cloud-fan @marmbrus

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/929/
Test PASSed.

Test build #87500 has started for PR 20624 at commit cf36020.

Test build #87500 has finished for PR 20624 at commit cf36020.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class CatalogColumnStat(

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87500/
Test PASSed.

Test build #87657 has started for PR 20624 at commit 0406f52.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1044/
Test PASSed.

Test build #87657 has finished for PR 20624 at commit 0406f52.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87657/
Test PASSed.

Test build #87671 has started for PR 20624 at commit a006bab.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1058/
Test PASSed.

Test build #87671 has finished for PR 20624 at commit a006bab.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87671/
Test PASSed.

Thanks! Merged to master


Adds rubocop and lints

Partially resolves #207
Description
Per our conversation in #207,  here is a proposed RuboCop config file for your review.  These are the default configs that we use on our projects. Obviously, these configs are opinionated, so I welcome any changes that you would like to see in them.  Changes in this PR currently include:

Adds rubocop gem and configs
Updates the spec helper file to run RuboCop automatically when tests are run (after all tests are passing)
Updates README and CONTRIBUTING with linting information

After this pull request is approved, I propose not merging it in until I lint the project and push up those changes (here, in the same pull request).  If you merged it in as is, RuboCop would start running after your specs and warn you of the 1,000+ violations that it is currently finding.  For that reason, I will label this as a "Work in Progress" (if I'm able to add labels).
@seanmarcia
@armahillo
Type of change

New feature (non-breaking change which adds functionality)
This change requires a documentation update
Documentation update

How Has This Been Tested?
By manually running rubocop on the project in my terminal.
Screenshots
N/A
NOTE
Travis is failing because of RuboCop - it looks like everything else is green.

So it looks like the build is failing because of rubocop. I'll see if I can start grinding through some of those errors and get the build passing again.

@dacur Everything looks good. I'll make a rubocop branch -- can you make a PR against that and I'll merge it, then we can work on it over in this repo?

I went ahead and did the thing. :) Merging it in now. We can merge to master once we get all the rubocop linting clean.

great, thanks @armahillo !  i'm happy to help clean it up on the rubocop branch 👍

I fixed a couple hundred corrections last night. Still a bit over a thousand to go


Node/Express

If we are using Express.js (normal port 3000) and this on the default port, will they interfere with each other?
For local dev, I use NGROK and pointed it to 4573, but Asterisk yells at me about an AGI timeout.
Asterisk example
[outbound-preprocess]
exten  = s,1,NoOp(Outbound Preprocess)
same   = n,AGI(agi://my-ngrok-domain-url-that-points-to-localhost:4573)
same   = n,Return()

NGROK shows no incoming hits either.

That shouldn't be an issue...  You could try taking ngrok out of the equation or using the "port" parameter to specify something alternate you know had worked previously when creating your new AGIServer() to rule that out.

Sorry for leaving this open. Moved onto other areas :) but now I am back to see what I can do. NGROK really is the goto for dev vs prod separation for use cases like this. I'll just comment here again if I have anymore questions, unless you want me to open a new issue.

Ok. Found out I need to NGROK TCP not HTTP :)
Leaving this here for others. ngrok tcp 4573


Add Profile: Bhavya D Verma

Profile Submission
Please paste a screenshot of your GitHub profile here.

Profile Category

Next Steps
Once you've filled out the information, please comment below:
@all-contributors please add @<username> for review

@all-contributors please add @ for review

@all-contributors please add @ for review

I'm a mentor


Adds parameter to rds_instance to specify an option group

This PR add the db_option_group to rds_instance to allow users to specify the option group with their RDS instance creation.
example:
db_option_group         => 'custom-sqlserver-se-12-00',

The PR also adds the puppet resource "rds_db_option_group". There is no functionality as of yet to manage the option groups themselves.

Thanks for the contribution Dave. Merging.

Thanks for submitting the PR @daveseff . Much appreciated for the new parameter added to the rds_instance provider.

merging the changes


Running ganache-cli with -s parameter and without -d parameter says "Arguments d and s are mutually exclusive"

Expected Behavior
ganache-cli -p 8545 -s homeNetwork -a 11
should run a blockchain with a mnemoic from homeNetwork arbitrary data
Current Behavior
ganache-cli -p 8545 -s homeNetwork -a 11
says:
Arguments d and s are mutually exclusive

Specify -h, -?, or --help for available options

Your Environment

Version used: ganache-cli --version says unknown (i have done a fresh install today though)
Version of Truffle/Remix/Other tools used: Truffle v4.1.8 (core: 4.1.8) Solidity v0.4.23 (solc-js)
NodeJS Version: v8.11.2
Operating System and version (include distro if Linux): Ubuntu 17.10

Same happens to me with ganache-cli version 6.1.4

this got broken between 6.1.0 and 6.1.2 (no 6.1.1 version)

Thanks for reporting this! I'm looking into this now!

This is happening because a long lasting issue with yargs (https://github.com/yargs/yargs/issues/929)`
Looks like this is an easy workaround that doesn't require us to wait for a fix in yargs (by setting the default of the d flag to undefined).
This should go in the next release!


Bootstrap3 + select2 dropdown width

There is an issue with dropdown width when I use select2 with bootstrap3.

And the next select2 in a line works ok

My markup

I've digged a bit and found the next: In bootstrap 3 grid width is set in percents, and in real life the computed width of my .col is 140.547px. Of course browser paints one column 140px width and another 141px width. And select2 always rounds mathimatically correct 141px. But this causes visual bugs!
Do you have any ideas how to avoid this behaviour?

Duplicate of #1692.


fixed varational params plot method

Fixed the .plot method for the varational params class

Hi, let's add some simple unit tests for these plot functions. For e.g. if some future version of matplotlib makes some functionality obsolete, we don't want them to fail silently. A test for example, that checks whether the plot method works and generates a figure would catch if something gets deprecated in future.


How do I change colors?

How do I change colors or the theme of this template? Affecting the color of fonts, panels, sidebar and others?
The template elements are organized in some way that are affected by certain colors or styles?

It's quite easy to change colors , just find a developer tool ( google extension ) for instance in order to find it in CSS. Will not affect colors/styles. If you have no further questions please close the ticket.

You can use "class" in your tags, next apply css to the class


last day seams to be wrong

Hi,
great work!
I noticed that the last day seams to be wrong.. Data are ok but date is one day less.
could you check please?

Hi @pippopippo69
pystocklib uses yahoo finance to fetch its data.
It seems like they entered the same date for two different days mistakenly, that is what cause this error for the rest of the month.
I have checked a lot of stock ticker to confirm, it seems fine & doesn't have the same problem.
Hope they fix it soon.


Re-implemented the calendar API.

Instead of having separate ExchangeCalendar and TradingSchedule objects, we
now just have TradingCalendar.  The TradingCalendar keeps track of each
session (defined as a contiguous set of minutes between an open and a close).
It's also responsible for handling the grouping logic of any given minute
to its containing session, or the next/previous session if it's not a market
minute for the given calendar.
(Unfortunately, the branch name is a misnomer.  no 24/5 yet.)

Most of the interesting things in this PR are in zipline.utils.calendars.exchange_calendar.  I also did some renaming and cleanup of SimulationParameters, but nothing too big.

Coverage increased (+0.5%) to 83.538% when pulling b6ef59f9e23c1a79b9cfdb090f8b3e50d197b928 on 24-5-backtesting into 65a1e3465cf74f108be7ac9d881e265c277b390a on master.

Coverage increased (+0.5%) to 83.506% when pulling b6ef59f9e23c1a79b9cfdb090f8b3e50d197b928 on 24-5-backtesting into 65a1e3465cf74f108be7ac9d881e265c277b390a on master.

Coverage increased (+0.5%) to 83.506% when pulling b6ef59f9e23c1a79b9cfdb090f8b3e50d197b928 on 24-5-backtesting into 65a1e3465cf74f108be7ac9d881e265c277b390a on master.

Coverage increased (+0.5%) to 83.505% when pulling daaa0ec7bb170d697a935810c6c0feb42be377d3 on 24-5-backtesting into 65a1e3465cf74f108be7ac9d881e265c277b390a on master.

Coverage increased (+0.5%) to 83.505% when pulling eeb4d743c22e1b20dc77903a81e79f57fee35664 on 24-5-backtesting into 65a1e3465cf74f108be7ac9d881e265c277b390a on master.

Coverage increased (+0.5%) to 83.505% when pulling d12813dfa5571d745c78598ab04a302fb6c4a0c9 on 24-5-backtesting into d6c1c5fce9ed52a947a8757651d588e883a6e341 on master.

Coverage increased (+0.5%) to 83.506% when pulling 22b3ed882f8885b4ab9ce2c76a21b52f517442ef on 24-5-backtesting into d6c1c5fce9ed52a947a8757651d588e883a6e341 on master.

Coverage increased (+0.5%) to 83.506% when pulling f03cb39e89d150b13153871086fe0c371ca5fae7 on 24-5-backtesting into d6c1c5fce9ed52a947a8757651d588e883a6e341 on master.

What's nyse.csv for, and what changed?
Looks like some tests are failing on AppVeyor...

Looks like some tests are failing on 32-bit windows.

Coverage increased (+0.5%) to 83.497% when pulling 067bb63b76dbd3eca059c7edc352ceb6c87c6313 on 24-5-backtesting into d6c1c5fce9ed52a947a8757651d588e883a6e341 on master.

Coverage increased (+0.5%) to 83.508% when pulling eb3deffadc21cd3932e2477aefe0a4e71cf59c39 on 24-5-backtesting into d6c1c5fce9ed52a947a8757651d588e883a6e341 on master.

I've hit a few cases where I need to use something like next_session_label, but I just have a date that may or may not be a session label. I've worked around that by doing something like this:
if cal.is_session(date):
    return cal.next_session_label(date)
else:
    return cal.minute_to_session_label(date)

But that's not exactly right, since we started with a date, not a minute. Is there a case for a function like nearest_session_label that's similar to minute_to_session_label but accepts a "candidate" session label and returns the nearest label that's actually a session?

@richafrank the actual reason why nyse.csv changed is too boring to type, and was not needed, so I'm reverting that file.

Coverage increased (+0.5%) to 83.508% when pulling 7aad480992782e2d26c7c171671cbf993834c566 on 24-5-backtesting into d6c1c5fce9ed52a947a8757651d588e883a6e341 on master.

Coverage increased (+0.5%) to 83.511% when pulling c4f682e9cc18e07eca89e18c3e84265c73057c80 on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.5%) to 83.511% when pulling 177e2afbd409a0c58f3123cc9d6c3287d2aaad94 on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.5%) to 83.518% when pulling 4ecd4f7f7f91e0a7a2e8ebe9181a3392f46c8591 on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.5%) to 83.518% when pulling 4ecd4f7f7f91e0a7a2e8ebe9181a3392f46c8591 on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.5%) to 83.518% when pulling 4ecd4f7f7f91e0a7a2e8ebe9181a3392f46c8591 on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.6%) to 83.578% when pulling 37a2efe4a48bb3115b20aeb8e15eb4e0db4d9624 on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.6%) to 83.574% when pulling d2d553c383f3393fbc64c948e3a0f75335af7ee9 on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.6%) to 83.586% when pulling 898438acb3df59b014c3456eb4a4aaeefb26135f on 24-5-backtesting into 7c170274a39b7ebf129c3ce19bf9a16d7aae9d0b on master.

Coverage increased (+0.5%) to 83.53% when pulling 6fb4923cc74d4efe815ccdfc3bb514c7ad6feb1a on 24-5-backtesting into db4e06055ca3e7dd4a8aae787ee4282c14a79b0c on master.

Coverage increased (+0.6%) to 83.575% when pulling 4af61d2c39a5df736be478c21aeaa3d4097cf63c on 24-5-backtesting into db4e06055ca3e7dd4a8aae787ee4282c14a79b0c on master.

Coverage increased (+0.6%) to 83.611% when pulling 3d6fdc07555dc0b1393849288f2bb0b2ea1bb936 on 24-5-backtesting into db4e06055ca3e7dd4a8aae787ee4282c14a79b0c on master.


Datasource disable feature

Description

This PR introduces a new field status to datasource. This helps in disabling/enabling a datasource.
Since status is a new column, there won't be any issues with old datasources already registered. But, a datasource registered in 2.13 won't work in 2.12.
By default, If user doesn't supply any status, the datasource status would be ACTIVE.
A disabled datasource won't accept any new queries.  This applies to all kinds of datasources.
Also included refactoring related to DataSourceMetadata.
Documentation Link: https://github.com/vamsi-amazon/sql/blob/datasource-disable-feature/docs/user/ppl/admin/datasources.rst#disabling-a-datasource-to-block-new-queries

Sample Request for disabling a datasource
PATCH {{baseUrl}}/_plugins/_query/_datasources
content-type: application/json

{
    "name" : "mys3",
    "status" : "disabled"
}

Response
Updated DataSource with name mys3

Sample Async Query on disabled S3 datasource
POST {{baseUrl}}/_plugins/_async_query
content-type: application/json

{
    "lang" : "sql",
    "datasource" : "mys3",
    "query" : "create index clientip_year4 on s3.default.http_logs (clientip, year) WITH (auto_refresh=true)"
}

Response
{
  "status": 400,
  "error": {
    "type": "DatasourceDisabledException",
    "reason": "Invalid Request",
    "details": "Datasource mys3 is disabled."
  }
}

Sample Query on disabled prometheus datasource.
POST http://localhost:9200/_plugins/_ppl
content-type: application/json
{
  "query" : "source=my_prometheus_old.information_schema.tables"
}

Response
{
  "error": {
    "reason": "Invalid Query",
    "details": "Datasource my_prometheus_old is disabled.",
    "type": "DatasourceDisabledException"
  },
  "status": 400
}

Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

cluster name is between 3-28, but index name can go beyond 255 characters.
Will truncate the job name beyond 255 characters before making the emr job call.


Confusing rustc error message on generic struct with misleading suggestion

I have the following:
#[derive(Debug, BinRead)]
pub struct Array<T>
where
    T: for<'a> BinRead<Args<'a> = ()>,
{
    _count: u32,
    #[br(count = _count)]
    pub data: Vec<T>,
}

For this, rustc complains about a missing lifetime bound on T, but does so in an interesting manner (see expando at the end for the full message):

The correct solution here is to either add a 'static bound to T (if we're fine with disallowing a borrowed T), or to add a lifetime bound to the struct (and a PhantomData). Perhaps that could be made clearer.
Full message

error[E0310]: the parameter type `T` may not live long enough
   --> src\base_binrw.rs:159:17
    |
159 | #[derive(Debug, BinRead)]
    |                 ^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
    |
    = note: this error originates in the derive macro `BinRead` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider adding an explicit lifetime bound...
    |
162 |     T: for<'a> BinRead<Args<'a> = ()> + 'static,
    |                                       +++++++++

error[E0311]: the parameter type `T` may not live long enough
   --> src\base_binrw.rs:159:17
    |
159 | #[derive(Debug, BinRead)]
    |                 ^^^^^^^
    |
note: the parameter type `T` must be valid for the anonymous lifetime defined here...
   --> src\base_binrw.rs:159:17
    |
159 | #[derive(Debug, BinRead)]
    |                 ^^^^^^^
note: ...so that the type `T` will meet its required lifetime bounds
   --> src\base_binrw.rs:159:17
    |
159 | #[derive(Debug, BinRead)]
    |                 ^^^^^^^
    = note: this error originates in the derive macro `BinRead` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider adding an explicit lifetime bound...
    |
159 ~ #[derive(Debug, 'a, BinRead)]
160 | pub struct Array<T>
161 | where
162 ~     T: for<'a> BinRead<Args<'a> = ()> + 'a,
    |

I can modify the diagnostic to not give an obviously wrong suggestion about where to place a lifetime, but E0311 is bogus in this situation because impl<T> BinRead for Vec<T> is constrained to T: 'static (due to fake specialisation). As a result, the only correct actions are either to add 'static lifetime or use a different parse_with function. It seems to me that rustc should not be emitting these suggestions at all since they will never work—applying the suggestion just causes it to emit the same suggestion again with a different lifetime name.
I can’t think of a way to reliably communicate this information in a useful way. proc-macros don’t have the ability to retrieve type information so it’s not possible to know for sure what Vec is to see how it is being used and emit a custom error, nor am I aware of a way to suppress the bad E0311 diagnostic.


[FR] - Build and build-raw to include interface for Voting and Proposal script (guardrails-script) to be used as reference script.

Internal/External
Internal   if an IOHK staff member.
Area
Conway - Guardrails script PV3
Describe the feature you'd like
Right now the only way to use the voting and proposal script (guardrails script)  is by using the script file directly with --proposal-script-file , it would be very useful to have  options like --proposal-tx-in-reference and  --vote-tx-in-reference
Might be good idea to rename the flag to guardrail-script or constitution-script , so it would be
--guardrails-script-file
--guardrails-tx-in-reference
...

OR
--constitution-script-file
--constitution-tx-in-reference
...

Additional context / screenshots
The guardrails script is available here: https://github.com/IntersectMBO/constitution-priv
Still a private repo, so copying the description below:

Being a smart contract, the constitution script is a validator function of the form:
const_script :: BuiltinData -> BuiltinUnit
The sole argument to this function is the BuiltinData-encoded V3.ScriptContext. Note the absence of the 2 extra arguments, previously known as Datum argument and the Redeemer argument. Since V3 and CIP-69, the Datum and Redeemer values are not passed anymore as separate function arguments, but embedded inside the V3.ScriptContext argument. The "proposal under investigation" is also embedded inside the ScriptContext.
Datum is not provided for the "constitution script", since it is not a spending validator. Redeemer will be provided to the "constitution script", but the current script implementations ignore any value given to it (see Clause D).

https://github.com/IntersectMBO/cardano-cli/pull/822


Error Starting

Hello,
Using the latest version of this repository, after git clone, yarn install and yarn run dev, when you you access the localhost:3000 the following error is printed in the console:

[Vue warn]: Unhandled error during execution of watcher callback
at <ElPopperTrigger id="el-id-5038-0" virtual-ref=undefined open=false  ... >
ERROR  [worker] Element is not defined
at isElement$1 (node_modules/element-plus/dist/index.full.js:2144:43)
at vue.watch.immediate (node_modules/element-plus/dist/index.full.js:7453:13)
at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:157:22)
at callWithAsyncErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:166:21)
at doWatch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1744:13)
at Object.watch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1656:12)
at setup (node_modules/element-plus/dist/index.full.js:7452:11)
at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:157:22)
at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6977:29)
at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6933:11)
ERROR  [proxy] connect ENOENT /var/folders/sw/sbmrkj352zb87qyhrv3c22jh0000gn/T/nitro/worker-1474-1.sock

Please provide node version

16.14.0

Same here with node version v16.13.1.

Same issue here with node 16.11.0


Does not work well with blog hosted on Medium

I tried to use the extension with a blog which is hosted on Medium, but it's not working.
Please use the extension to access this https://blog.zeplin.io/organizing-screens-in-zeplin-with-tags-128dc3ed0749
then you'll see the problem.

Add medium.com/ to blacklist. You can see here https://github.com/crssi/Firefox/blob/master/Skip_Redirect-Blacklist.txt

For searchability, what happens with Medium + custom domains + Skip Redirect is a "too-many-redirects" case, ending up with Firefox throwing the towel with error:

The page isn’t redirecting properly
An error occurred during a connection to blog.zeplin.io.
This problem can sometimes be caused by disabling or refusing to accept cookies.


Use type alias for interpolation modes in zetta_utils/tensor_ops/common.py in builder shortcuts

This is currently untyped, and should be typed like other string literal options (e.g. blend_mode).

Oh, it does already use type alias.


Make tapSubgraph to be an optional value

Ford found out tapsubgraph is not an optional value so changed a few things to make it work

Nice, thanks for the quick fix! 🙏
There is still another backwards compatibility issue with the TAP integration though. If the indexer-agent is connected to a network without TAP contracts deployed it fails to startup: runs into an unhandled promise rejection. I'll create an issue to track and we can resolve in a subsequent PR.


New Maps

Added the new maps and a new level type for Hoopsie Legends (Hunt), we could merge Hunt and Race, same as Logic and Survival.

Some of the old maps on the new Gauntlet mode have a different name (they added "_event_only_races" at the end of the name), not sure how you want to handle it so I'm not going to touch it.


correctly render preview keybinds

Type of Change

[ ] New feature
[x] Bug fix
[ ] Documentation update
[ ] Refactoring
[ ] Hotfix
[ ] Security patch
[ ] UI/UX improvement

Description
Show the preview/description keybinds correctly
Issues / other PRs related

Resolves #525

Checklist

[x] My code adheres to the coding and style guidelines of the project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no errors/warnings/merge conflicts.

Duplicate of https://github.com/ChrisTitusTech/linutil/pull/495

Please check your code due to issues. Please see checks for more info.

@Real-MullaC Do you mean https://github.com/ChrisTitusTech/linutil/pull/495 ?

@Real-MullaC Did you mean https://github.com/ChrisTitusTech/linutil/pull/495 checks ?

No this one until you fixed the code

@jeevithakannan2 didn't see your refactor, closing in favor of #495

@cartercanedy Hey I think a better implementation is already in PR https://github.com/ChrisTitusTech/linutil/pull/495


[IntelliJ Plugin]Update plugin version and change notes

Purpose
This PR updates plugin version and change log for the ballerina intellij plugin 0.991.1 patch release.
This also adds a minor javadoc plugin fix.
Check List

[x] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[x] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

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

@@             Coverage Diff              @@
##             master   #15426      +/-   ##
============================================
- Coverage     22.46%   21.83%   -0.63%
+ Complexity     6562     6422     -140
============================================
  Files          1893     1910      +17
  Lines         88558    88303     -255
  Branches      12791    12467     -324
============================================
- Hits          19893    19282     -611
- Misses        65508    65915     +407
+ Partials       3157     3106      -51

Impacted Files
Coverage Δ
Complexity Δ

.../positioning/resolvers/CursorPositionResolver.java
85.71% <0%> (-14.29%)
12% <0%> (+11%)

...ers/contextproviders/StatementContextProvider.java
97.91% <0%> (-2.09%)
12% <0%> (+1%)

...rs/scopeproviders/BlockStatementScopeProvider.java
73.68% <0%> (-1.32%)
7% <0%> (+1%)

...alang/langserver/symbols/SymbolFindingVisitor.java
77.31% <0%> (-0.58%)
24% <0%> (-1%)

.../ballerinalang/compiler/BIRPackageSymbolEnter.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

...lang/compiler/bir/writer/BIRInstructionWriter.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

...llerinalang/compiler/bir/writer/BIRTypeWriter.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

...2/ballerinalang/compiler/bir/model/BIRVisitor.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

...2/ballerinalang/compiler/bir/model/Visibility.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

...va/org/wso2/ballerinalang/compiler/bir/BIRGen.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

... and 217 more

Continue to review full report at Codecov.

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


Add persistence to proposals state

Fixes https://github.com/snapshot-labs/snapshot/issues/1138
Changes proposed in this pull request:

Create and new State composable for storing proposals persistently
Rename following computed property for readability
Fix spaces no longer reloaded when changing route to none filters

I tried to go on the timeline, open a proposal then go back on the timeline with browser button, the state on the timeline stay like before but when loading new page it load same page than previously, I see twice the same results:

Also I think we need to persist the status filter (All, Active, pending ...). Now if i select "Active" and go back on timeline to load new page, I will get proposal from "All" state not just active

@bonustrack Oops, yeah there were quite a few things I didn't consider. Should work better now.

Looks good! Now can you make in a way that instead of loading the proposal in the proposal page, to reuse the proposal data if it was loaded previously from the timeline?

@bonustrack I think that should be done within graphql somehow, I will look into it. I think that is something for another PR tho.

@samuveth Yes can be done in another PR


i18n - german translation of main README.de.md

adds German top-level README.de.md
links from top-level README to German README.de.md

Notice
Missing the following two READMEs --> package/mirrorful directory, and the UI itself in package/mirrorful/editor.
I would suggest putting it in a follow-up ticket when the i18n gets setup.
I am curious about your feedback. What do you think?

Fantastic! This is great. Danke!
Going merge this!


dev branch

Instead of warning users to avoid using the latest version and creating a separate folder, why don't create a dev branch?

Hi @grayskripko ,
Completely agree with you 🙂
This project initially started out as a place to store example scripts. Interest from more than a few users lead to iterative versioning, that we now need to organize.
This is a priority and already being addressed - thank you for your feedback though, much appreciated!


Store energies and work values to file for analysis

NetCDF is a good choice to begin with until we choose a database.

One solution to avoid the concurrent writing with NetCDF is to have a separate queue for write_to_disk Celery tasks and assign only a single worker to that queue. This way writing tasks could be run asynchronously.

Closing in favor of potential discussion on #421


URL Updates and Google Warning

Hello!
I've been wanting to use the cesiumpy package, but have had problems similar to the 'Issues'. Following the cesiumjs tutorial, I made some changes to the cesiumpy code and after these changes, the package now successfully works. As mentioned in the git commits, I updated the URLs, the divid, and the geocoder.
When I ran the package the first time, there would be a Google warning. So I changed the geocoder to one that did not require a Key API for the map. I thought this would fix the issue, but still nothing would happen after running the code. I then looked at the html cesiumpy produces, and noticed differences compared to the html from the cesiumjs tutorial. So I made additional changes to match the html code.
I'm new to GitHub and coding, so I wasn't sure what to include in this but hopefully it covers what I updated. Any pointers for the future would be greatly appreciated.
Thank you!

Hello @cksammons7! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file cesiumpy/base.py:

Line 105:80: E501 line too long (117 > 79 characters)
Line 106:80: E501 line too long (135 > 79 characters)


return type constraint in generics not working with Omit and intersections.

Bug Report
🔎 Search Terms
return type constraint
🕗 Version & Regression Information
5.0.3, it's not a regression I think.
⏯ Playground Link
Please check it here
💻 Code
function transformProp<T, K extends keyof T, RP, R extends Omit<T, K> & Record<K, RP>>(
  objs: T[],
  prop: K,
  mapper: (v: T[K]) => RP
): R[] {
  return objs.map(v => {
    return {
      ...v,
      [prop]: mapper(v[prop]),
    } as R;
  });
}

function transformProp2<T, K extends keyof T, RP>(
  objs: T[],
  prop: K,
  mapper: (v: T[K]) => RP
): (Omit<T, K> & Record<K, RP>)[] { // put the return type here works
  return objs.map(v => {
    return {
      ...v,
      [prop]: mapper(v[prop]) ,
    };
  });
}

🙁 Actual behavior
Compiler reports error for the transformProp function while transformProp2 is good.
below is the error details:
Conversion of type 'T & { [x: string]: RP; }' to type 'R' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
  'T & { [x: string]: RP; }' is assignable to the constraint of type 'R', but 'R' could be instantiated with a different subtype of constraint 'Omit<T, K> & Record<K, RP>'.

🙂 Expected behavior
Both transformProp and transformProp2 could be compiled.

I see, thanks! the return types of transformProp and transformProp2 are not the same.  Is there a way to put the R in the generic type constraint？


Update traits to use AFITs / associated impl Future

Now that async traits are stable, we may want to consider filing a patch to use them. Not sure yet if we should merge it, but we should at least try it out.
For Join it should not be an AFIT, but instead use an impl Future as its associated type.

impl Race for (A, B) {
    async fn race(self) ...;
}

impl Join for (A, B) {
    type Future = impl Future<Output = ...>;
}


startDate value is different if "moment-timezone" is present

Not sure I understand why including the "moment-timezone" package changes the startDate value.
// Without "moment-timezone"
let foo = moment().recur();
console.log(foo.startDate().toDate()); // Fri Oct 06 2017 18:00:00 GMT-0600 (MDT)

import "moment-timezone";
let foo = moment().recur();
console.log(foo.startDate().toDate()); // Sat Oct 07 2017 00:00:00 GMT-0600 (MDT)

(today is Oct 7)
Intentional? Seems to be related to the moment.fn.dateOnly plugin that moment-recur defines.

@c-trimm Experiencing the same issue, date matching is failing for me because of this. Any advice ?

You should be able to use simple-recur as an alternative to this project (there are several core bugs described in #85).  See https://github.com/jamiter/simple-recur.
I'm waiting on a PR to merge for better documentation for that repo at https://github.com/jamiter/simple-recur/pull/3 -- so until that is resolved you can view better docs at https://github.com/niftylettuce/simple-recur/tree/patch-1#simple-recur in the meanwhile.


Can we include the license file in the source release tarball ?

Hi!
When trying to package marathon-python for Fedora (and CentOS for RDO due to a dependency in magnum, I noticed that the LICENSE file is not included in the released source tarballs.
This is sort of an issue from a packaging perspective since the license can change throughout the history of a project and bundling the license in the source tarball provides some level of guarantee that this particular release was a specific license.
Example showing the license not in the release:
┬─[dmsimard@hostname:~/Downloads]─[09:36:01 AM]
╰─>$ wget https://pypi.python.org/packages/a3/9a/066a2b4126295532c55d6ad13b47c2f74eae3b411f60bdabe68d430ccd9f/marathon-0.8.7.tar.gz
--2016-10-31 09:36:07--  https://pypi.python.org/packages/a3/9a/066a2b4126295532c55d6ad13b47c2f74eae3b411f60bdabe68d430ccd9f/marathon-0.8.7.tar.gz
Resolving pypi.python.org (pypi.python.org)... 2a04:4e42:8::223, <IP_ADDRESS>
Connecting to pypi.python.org (pypi.python.org)|2a04:4e42:8::223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20273 (20K) [binary/octet-stream]
Saving to: ‘marathon-0.8.7.tar.gz’

marathon-0.8.7.tar.gz                                                           100%[=====================================================================================================================================================================================================>]  19.80K  --.-KB/s    in 0.02s

2016-10-31 09:36:07 (864 KB/s) - ‘marathon-0.8.7.tar.gz’ saved [20273/20273]

┬─[dmsimard@hostname:~/Downloads]─[09:36:07 AM]
╰─>$ tar -xzvf marathon-0.8.7.tar.gz
marathon-0.8.7/
marathon-0.8.7/marathon/
marathon-0.8.7/marathon/util.py
marathon-0.8.7/marathon/_compat.py
marathon-0.8.7/marathon/models/
marathon-0.8.7/marathon/models/deployment.py
marathon-0.8.7/marathon/models/group.py
marathon-0.8.7/marathon/models/events.py
marathon-0.8.7/marathon/models/constraint.py
marathon-0.8.7/marathon/models/info.py
marathon-0.8.7/marathon/models/__init__.py
marathon-0.8.7/marathon/models/container.py
marathon-0.8.7/marathon/models/base.py
marathon-0.8.7/marathon/models/endpoint.py
marathon-0.8.7/marathon/models/app.py
marathon-0.8.7/marathon/models/queue.py
marathon-0.8.7/marathon/models/task.py
marathon-0.8.7/marathon/__init__.py
marathon-0.8.7/marathon/client.py
marathon-0.8.7/marathon/exceptions.py
marathon-0.8.7/PKG-INFO
marathon-0.8.7/setup.cfg
marathon-0.8.7/setup.py
marathon-0.8.7/marathon.egg-info/
marathon-0.8.7/marathon.egg-info/pbr.json
marathon-0.8.7/marathon.egg-info/requires.txt
marathon-0.8.7/marathon.egg-info/dependency_links.txt
marathon-0.8.7/marathon.egg-info/top_level.txt
marathon-0.8.7/marathon.egg-info/PKG-INFO
marathon-0.8.7/marathon.egg-info/SOURCES.txt
┬─[dmsimard@hostname:~/Downloads]─[09:36:11 AM]
╰─>$ tree marathon-0.8.7
marathon-0.8.7
├── marathon
│   ├── client.py
│   ├── _compat.py
│   ├── exceptions.py
│   ├── __init__.py
│   ├── models
│   │   ├── app.py
│   │   ├── base.py
│   │   ├── constraint.py
│   │   ├── container.py
│   │   ├── deployment.py
│   │   ├── endpoint.py
│   │   ├── events.py
│   │   ├── group.py
│   │   ├── info.py
│   │   ├── __init__.py
│   │   ├── queue.py
│   │   └── task.py
│   └── util.py
├── marathon.egg-info
│   ├── dependency_links.txt
│   ├── pbr.json
│   ├── PKG-INFO
│   ├── requires.txt
│   ├── SOURCES.txt
│   └── top_level.txt
├── PKG-INFO
├── setup.cfg
└── setup.py

3 directories, 26 files

Hi!
That info is contained both in the license arg  and License classifier in setup.py. Is that enough?

For inclusion in Fedora (+CentOS/RHEL), unfortunately not :(
Here's the documentation on packaging guidelines around licensing that indicates that the license file should ideally be located in the released source tarballs:
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?rd=Packaging/LicensingGuidelines#License_Text

ah okay. Well, I'll take a look at how to get the packaging to do that, but of course PRs are welcome if you know how to make it happen

Thanks :)
FYI python-marathon is now packaged in Fedora >=24 and EPEL.
http://koji.fedoraproject.org/koji/packageinfo?packageID=23254


Adding VsCode Vim to preview manifest.

Adding Vim goodness to SQL Ops Studio.

 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.:x: adamskt sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@llali @yualan did we ever figure out how we want to include existing VS Code extensions? This seems like a good candidate. Since this is on the VS Code marketplace already I wonder if it is possible for SQL Ops Studio to download directly from the marketplace instead of having to point users there to download it manually?

@adamskt Thanks for your contribution!
At this moment, we don't have any plan for adding VS code extensions to our marketplace. Let me discuss this internally with our team and I'll get back to you as soon as possible.

  I imagine you are in a bit of a tough spot-- some VS Code extensions are very applicable to the user experience (settings sync, Vim) and others are most definitely not (Typescript linter, Docker commands).  Either way, it was pretty easy to get some VS Code extensions loaded in my instance of SQL Ops Studio.

@adamskt yes as you said it's easy to install any VS code extension manually using the "Install from VSIX" command. But to put them in our marketplace, we have to first make sure how to do that.

Not a problem-- just want to make sure there was some discussion around it 😁

@adamskt I'm planning to add this extension to our gallery. Can you please fix the conflict and use the latest release? Thanks

Bugger... I freshened my fork from the wrong upstream branch...

I can't seem to find vsvim in the marketplace for azure data studio. Was this carried over after the rename?

@progressiveae1

I also can't find it. Was it removed?

@PiotrPerak currently you need to install this extension using the "Install from VSIX" command.  The VSIX can be downloaded from https://marketplace.visualstudio.com/items?itemName=vscodevim.vim using the "Download Extension" option on the right sidebar.
It's a long story, but in summary we need to workout our entire extension marketplace story before including arbitrary VS Code extensions in the ADS marketplace.  In the interim please side-load any desired extensions.

@kburtram Unable to install version '1.3.0' of extension 'vscodevim.vim-1.3.0' as it is not compatible with Azure Data Studio '1.5.2'.


Multiple pics selection

User must be able to select every pic the want to add to post (Maximum 10)

fixed


fixed missing backslash

fixed missing backslash in return type of the docblock to avoid errors during static code analysis

Example error of phpStan using the TimeOffImporter:
"Call to method getCode() on an unknown class BambooHR\Api\BambooHR\Api\Response."

Thanks for the PR, merging now! 👍


Leaderboard 4 super hero images absent when using cosmosdb backend

Hi I noticed that the 4 super hero images in the leaderboard section are absent when using cosmosdb as backend. is something lost along the dump and restore from the mongodb pod?

Are you positive this isn't a workflow issue? We specifically did this workshop in Nashville on 2/7 with no issues.

I'm sure of nothing but
this is what it looks like when migrated to cosmosdb

this is what is looked like running on mongodb pod
https://files.slack.com/files-pri/T53R1TAT0-F94Q7PF0C/image.png

I just did an end to end test yesterday and the images appeared on CosmosDB. It could be that the name of the collection or db is wrong in your connect string. Our instructions were not clear (this was fixed yesterday). You can check the logs on your API container and see. When those images are blank, something is generally wrong.

OK, thanks!


test3

Description

Related Issues

How to test

Pull request includes a rendered home page (the ListTable) without any db content. It also includes the Add New Book page.


Dark mode toggle button should be added

I will create  a dark mode toggle button let me know what you think about it. And Kindly assign me this issue

Sorry @Siddhesh172004  but this is already done you can add CSS file as it  is deleted by mistake.

Hey sir, I can help you out with this dark mode issue. I would like to contribute please assign it to me.

Hello @jeet-09 , @Siddhesh172004  My website got whole new update and now there is a need of dark mode button. You can make your contributions which is required.


use higher version of pyglet?

how about using higher version of pyglet
such as 2.0.9 or something like that

Currently used version of Pyglet is dependency of Arcade 2.6.17. When switching to higher Arcade version Pyglet will be also updated.


Update guidance and recommendations to use VMSS Flex instead of availability sets

Before selecting the "Create pull request" button:

Enter a meaningful title above^, using a prefix if necessary and keywords "New" or "Update" indicating the nature of changes.

Describe the summary, scope, and intent of this PR:
Based on recommendations in the Availability Set public docs here and recommendations in WAF reliability pillar here the proposed changes in this PR update guidance in the WAF docs to use VMSS Flex in place of availability sets.

Insert links(s) to any related work item(s) or supporting detail:
https://dev.azure.com/CSUSolEng/Azure Infra Compute/_workitems/edit/35314

AFTER YOUR PR HAS BEEN CREATED, expand this section for tips and additional instructions.
These are common guidelines for contributions across the repos managed by the Cloud Architecture Content Team (CACT). Some repositories may have additional specific requirements that are not listed here.
Guidance for all contributors

Topic
Guidance

Draft PR
If your PR will be a work-in-progress for more than a day or two, select the Convert to draft link in the upper right of the page (under Reviewers) to change it to a draft. For future reference, you can also do this using the Create pull request button drop-down during PR creation.

ms.date metadata
Don't update an article's "ms.date" metadata property unless you've done a full freshness review of the content. A full freshness review includes changes required to correct or improve the full technical accuracy of the article.Don't update "ms.date" if you're doing targeted changes to improve non-technical aspects of the article, such as editorial quality, art improvements, article template alignment, etc.If you've changed any "ms.date" properties for work that wasn't part of full review for freshness, please reset them to their previous value.

Placement and linking
If you're creating a new article or articles, include updates to the related TOC.yml file to propose where the article(s) should be placed. Also consider other places within the document set where it would be beneficial to cross-reference and link to your new article(s).

PR build
After you open your PR, and for each successive commit that you push to your branch, the publishing platform will run validation on the files in your pull request. A summary of the build results for each file will be inserted inline into your pull request, which includes any build suggestions/warnings/errors. PRs cannot be merged until all build errors and most warnings are resolved.

Publishing
Following a successful merge, most repos publish to the live site at least once per (business) day, usually around 10am Pacific.

Additional resources
Learn.Microsoft.Com contributor guide

Additional guidance for private repos and internal contributors

Topic
Guidance

PR size
If your PR is more than ~5 lines of changes, or you'd like for the changes to go through editorial or larger review, open a contribution request at https://aka.ms/Contribution and include a link to the PR in response #8. Once it's processed, you'll be notified of the next steps.

PR title prefix
Select the Edit button to the right of the PR title if you need to revise it. The following prefixes are reserved for specific contribution types:[Quality Check] - maintenance work related to content quality (edit passes, art improvements, template alignment)[LinkFix] - recurring/adhoc PRs to correct link URLs[Pipeline] - new/updated contributor success pipeline content[WIP] - a work-in-progress draft requiring several days/weeks

PR preview
Following successful build of your PR, publishable files will also include Preview URL links to staged previews of your new/updated articles. Be sure to review these for verification of your intended contributions, or to send to other internal contributors for review.

PR sign-off (public repo)
If an article you own is updated in a public repo PR, you are responsible for sign-off. You will be automatically notified via email. The PR will not be merged until you've had a chance to review and sign-off.

PR sign-off (private repo)
After you've completed your proposed changes, addressed build warnings, and completed all review work, you can begin the sign-off process for review and merge:If your PR is in draft mode, remove "[WIP]" from the title and select Ready for review button at the bottom of the PR.Enter "#sign-off" in a new comment. This comment indicates that you're confident the work meets or exceeds Microsoft's standards for publication, and will trigger the review process.Your PR may be selected for initial review by the CACT. Following CACT review, you may receive questions or requests for additional changes. You should have initial feedback from CACT review within a few business days. If you have an urgent request or need to contact the team, please mention @MicrosoftDocs/cloud-architecture-content-team-pr-reviewers in your PR and someone will get back to you. After CACT review is complete, a CACT #sign-off will be added.Final review/merge is done by the PR review team. The PR team may also respond with feedback, categorized as "Blocking" (requires action from you), or "Non-blocking" (to be addressed in a future PR).

Additional resources
Learn.Microsoft.Com internal contributor guideAuthoring templates: architecture-center-pr, well-architected-prTo contact the CACT use e-mail, or @mention our GitHub team in your PR comments using: @MicrosoftDocs/cloud-architecture-content-team-pr-reviewers

Hi @judyer28,
New content proposals must be submitted via this form: http://aka.ms/Contribution. This process ensures your content gets the proper attention and quality checks. If you need help moving these commits to the private repo, email the publicprs alias.
I'll close this PR now.


MyPy rejects isinstance(x, attr.Factory)

The issue
Expected: I can check if an attribute's default is a Factory using isinstance()
Result: MyPy throws an error, saying Function is an invalid second argument
This is because the annotation for Factory defines it as a function.
To reproduce
Given this file:
import attr

@attr.dataclass
class Test:
    x: int

[x_def] = attr.fields(Test)
assert not isinstance(x_def.default, attr.Factory)

Running MyPy with all default options (aside from --show-error-codes) yields the following result:
dargueta@tux:~/Desktop$ mypy --show-error-codes test.py
test.py:10: error: Argument 2 to "isinstance" has incompatible type overloaded function; expected "Union[type, Tuple[Union[type, Tuple[Any, ...]], ...]]"  [arg-type]
Found 1 error in 1 file (checked 1 source file)

Environment

CPython 3.8.5
attrs: 20.3.0
mypy: 0.812
OS: Ubuntu 20.04.2 LTS

Potential fixes
I understand the necessity for this and am not sure how to work around it aside from adding an ignore[arg-type] directive in my code, but I'd rather not if there's a way to change the annotations in a backwards-compatible way. So far all my ideas would require turning Factory into a class and messing with default, which seems risky to me.

I just saw how https://github.com/Shoobx/mypy-zope handles it, but it requires the plugin to do it.  Essentially Factory would be a class until you call it, then the return value is an int instead of an instance of the class.

So Factory is a class in its implementation but is declared as a function in the .pyi file. I see the logic for why it needs to lie about the return type, and if it were left to me I would probably do it that way myself. However, this approach also angers MyPy, and rightly so.

You can always tell mypy the truth:
from typing import cast
assert not isinstance(x_def.default, cast(type, attr.Factory))

You can even save it:
FactoryType = cast(type, attr.Factory)
assert not isinstance(x_def.default, FactoryType)

I can't believe this didn't occur to me at all 🤦

Is there anything left to be done here?

I don't think so.


Update rake to 11.1.2

Reason for Change

Rake has deprecated the use of last_comment in favor of last_description as of 11.0. See release notes for more.

Changes

Update rake to ~> 11.1.2.
Remove our usage of last_comment in favor of last_description

Minor

Update rdoc and rspec to remove deprecation warnings.
Update RuboCop also. This is a reported source of these warnings.
Update the rest of the development dependencies, while we are at it.

Risks

This regards deprecation warnings, so no risk seems apparent.

Checklist
Put an x in the boxes that apply.
You can also fill these out after creating the PR.

[x] I have linked to all relevant reference issues or work requests
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added or updated necessary documentation (if appropriate)
[x] Any dependent changes have been merged and published in downstream

Recommended Reviewers
@alieander, @standingwave

:+1:


Attempt to fix #185 - Set overrides items

If you try to set an unknown key, simple object within a nested array, passing in the index, the parser will override the object and does not take into account the given index [1].
With current parser version, given this json as input:
{
    "test": {
        "key": [
            {
                "innerKey": "innerKeyValue",
                "innerKey2": "innerKeyValue2"
            }
        ]
    }
}

and following path to set an unknown key: "test", "key", "[1]", "newInnerKey" with data "new object", the output would be:
{
    "test": {
        "key": [
            {
                "newInnerKey": "new object"
            }
        ]
    }
}

which I think it is wrong, since it overrides what index [0] had but the above path wanted to insert the object in index [1] instead.
With the changes done in this PR, given the same json input, path and data, the output would be:
{
    "test": {
        "key": [
            {
                "innerKey": "innerKeyValue",
                "innerKey2": "innerKeyValue2"
            },
            {
                "newInnerKey": "new object"
            }
        ]
    }
}

the above result would be correct since we are setting a new object within the existing array in a different index [1], keeping what the array already had in previous index [0].
Added also a test to cover this scenario. All tests pass.
This appears to fix #185 and includes a test for it.
Description: What this PR does
Benchmark before change:
Benchmarks are broken.

Fixed upstream


Missing service type on guestbook-all-in-one.yaml

https://github.com/kubernetes/examples/blob/master/guestbook/all-in-one/guestbook-all-in-one.yaml
Here is a snippet of the current configuration of Front-End Service:
apiVersion: v1
kind: Service
metadata:
  name: frontend
  labels:
    app: guestbook
    tier: frontend
spec:
  # if your cluster supports it, uncomment the following to automatically create
  # an external load-balanced IP for the frontend service.
  # type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: guestbook
    tier: frontend

As you can notice, the type LoadBalancer is commented out, therefore the default ClusterIP type is selected instead of NodePort as per the tutorial (https://kubernetes.io/docs/tutorials/stateless-application/guestbook/#set-up-and-expose-the-guestbook-frontend)
Because of this issue, if you run:
minikube service frontend --url
It will show this error/warning:
😿  service default/frontend has no node port

/close


DataDog official containers do not include java

Currently, the official DataDog dd-agent containers do not include java. That means that for any JMX integrations, we need to fork this repo, install java and build our own dd-agent container.
Would it possible to create a java/jmx variation of the dd-agent and push it to dockerhub ?

Hi @alexouzounis
That's a good point. We were actually planning on providing one as soon as service discovery would work officially with JMX integrations, but we can start now.

Awesome work guys, really appreciated!


remove the python version check for executor tests

Description
For enum ValueType, we might need to stringify its value in flow validation phase.
Originally, we print enum object directly.  But this would have different results in different python version ( before/after python3.5) since Python introduced enum into STL.

Actions:
print enum value rather than enum to avoid such inconsistency.
Verification:
the pipeline passed for the impacted test cases:
https://github.com/microsoft/promptflow/actions/runs/6956433610/job/18927277763
src/promptflow/tests/executor/unittests/executor/test_tool_resolver.py::TestToolResolver::test_ensure_node_inputs_type
[gw2] [ 50%] PASSED src/promptflow/tests/executor/unittests/executor/test_tool_resolver.py::TestToolResolver::test_ensure_node_inputs_type
[gw0] [ 56%] PASSED src/promptflow/tests/executor/e2etests/test_executor_validation.py::TestValidation::test_batch_run_input_type_invalid[simple_flow_with_python_tool-inputs_mapping0-The input for flow is incorrect. The value for flow input 'num' in line 0 of input data does not match the expected type 'int'. Please change flow input type or adjust the input value in your input data.-InputTypeError]
All Promptflow Contribution checklist:

[x] The pull request does not introduce [breaking changes].
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.
[ ] Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: suggested workflow.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

test_executor_openai_telemetry this test seems keep failing in macos/windows, shall we apply some action (e.g. skip) in this PR?

test_executor_openai_telemetry this test seems keep failing in macos/windows: https://github.com/microsoft/promptflow/actions/runs/6956433610/job/18927281362, shall we apply some action (e.g. skip) in this PR?

this seems diff issues with batch run at execution without preserving the mock state. created another task to track : https://msdata.visualstudio.com/Vienna/_workitems/edit/2828199


francois/StyledTextBuildOperationProgressDetails-backward-compat

Fixes #?
Context

Contributor Checklist

[ ] Review Contribution Guidelines
[ ] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[ ] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[ ] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[ ] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[ ] Ensure that tests pass sanity check: ./gradlew sanityCheck
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

@bot-gradle test Rfm

OK, I've already triggered ReadyForMerge build for you.

Pre-tested commit build failed.

@bot-gradle test and merge.

Pre-tested commit build failed.

Your PR is queued. See the queue page for details.


Definition of NSWorkspace, NSNotificationCenter, and NSRunningApplication

Got a little carried away going down the rabbit hole of getting some notifications and NSWorkspace methods working. I believe this PR should cover the majority of usecases, though there are some uncommon methods that I did not implement (I left comments marking what is missing).

Introduces Retainable trait - Allows for a common way to build retain definitions and allows for the retain_nullable connivence method, which will be needed more and more as more nullable instance properties are implemented
Expands NSMutableDictionary methods to be more complete. Adds Iterator support - Note that the untyped nature of Objective-C collections makes dictionaries particularly difficult. Several methods assume NSString keys
Adds strum macros for generating NSString constants from enums, like what is used for NotificationName - I don't imagine there will be many other locations outside of NSNotification where this macro is used, but I think it's hugely helpful in this case.
Definitions for NSWorkspace, NSNotificationCenter, NSRunningApplication, and NSNotification - These are all interconnected and rely on each other, hence the expanding scope of this PR. Addresses #24

I know there's a lot of stuff here, so take your time. I'm sure there's many things to complain about.

So I'm musing about juggling pull requests here - I definitely do want these in cacao, however I think the objc2 PR might muck this PR up. Given that we're starting to look into fixing more internal core stuff, I'd like to do the objc2 stuff first just so we're not backtracking later on - so apologies in advance if I put this into an un-merge-able state.

(Also: icrate has NS[Mutable]Dictionary iterators that doesn't require all the keys to be strings, so if you use that, you get iterators for free).

That's perfectly fine. I think most of this becomes unnecessary with objc2 anyway.


Sanitize user input

This PR sanitizes the text fields of a node.
Also adds a break statement in the foreach over the available nodes. So the correct $renderClass->text() is called.

Thank you Joostb ✨


Allow longer secrets

💡 Feature request
Overview and problem statement
wrangler secret is limited in length. Trying to store firebase private key (as an example) I have to split it into multiple parts and concatenate before using it.
Allowing longer secrets, so that common private-key (RSA/DER) can be stored, would be useful.
I believe that 2k is usually enough, but don't take my word on it.

same issue here. I am trying to store GCP private key.

same issue here. I am trying to store GCP private key.

I ran into that issue as well and ended up splitting the key into multiple keys, works if you use JWK

I ran into that issue as well and ended up splitting the key into multiple keys, works if you use JWK

I ran into this as well.

I ran into this as well.

@xtuc No and it's not a solution I necessarily want to implement

@xtuc No and it's not a solution I necessarily want to implement

Update: our intention is to increase the secret limit to 5Kib. We should have an update in the next 2ish weeks.