how to Install multiple adapters pointing different prometheus servers

I'm trying to have multiple adapters pointing to different Prometheus servers in K8s cluster, for example, one istio default and one I use to monitor everything else.
Does this support at all?

That would be helpful

@prageethw the only way to have multiple prometheus-adapter installations natively today to point to different prometheus instances is to have separate deployments per API-type, that is a separate prometheus-adapter for resource, custom, and external metrics.
But there is a solution for your problem, that is Thanos Querier: you could deploy that component in front of your Prometheus servers and point prometheus-adapter to thanos-querier instead of the dedicated Prometheus.

Thanos Querier -> https://thanos.io/components/query.md/

There was even a KubeCon talk in Barcelona in May last year! :)

https://www.youtube.com/watch?v=qTxunwzYO0g&t=1517s

to achieve this you need to use partial response strategy for which you need to specify partial_response in the query args which I guess is not possible to do with prometheus-adapter. https://github.com/thanos-io/thanos/blob/master/docs/components/query.md#partial-response
There is no clear way to tell querier that for this metric look at this prometheus.

@smitthakkar96 for partial response, you can specify the query.partial-response flag as a startup parameter. also cc'ing @bwplotka (maintainer and founder of Thanos) and @metalmatze who both are part of the team I am working with here at RedHat if they have additional pointers or advise for your use case. As far as I see querier does not support metric based routing to different Prometheus instances, but if it is configured with partial response, it indeed will simply return the right data, unless i am missing something.
Don't get me wrong, I am not opposed, just careful to add additional complexity here if we have easy workarounds.

/close


Add query response caching to Athena

This PR updates the Athena queries to cache their responses and return the cached response on subsequent requests if a cached response is available.
The cached behavior can be sidestepped by passing reload: true as part of the query options object.
Additionally, the cached query responses have a configurable TTL which defaults to 60 seconds. It can be configured by passing queryTTL as part of the client config object. The TTL should be expressed in milliseconds.

Looks great! Is there a default TTL for the cache to evict data? Is this configurable?

Looks great! Is there a default TTL for the cache to evict data? Is this configurable?

Added a TTL in a subsequent commit


fixed issues : Have exception if playing Chinese song #171

Issues detail is on the here.

Thanks 👍
Will be released in the next days


5.2: Program crashes after updating all asset packs

TSH tends to crash/close without leaving an error message when pressing the "Update all" button in the asset downloader. The assets themselves seem to be updated after the crash

Just tested in latest TSH and didn't notice any crash from the software, so we may have addressed this for the most part.


Support read/write from/to remote endpoints and health check configuration

This pull request involves two enhancements:

Enable configurations for Prometheus remote write and read endpoints(e.g. to Influxdb or VictoriaMetrics)  for cluster and project level monitoring.

Related issue: https://github.com/rancher/rancher/issues/20624

Allow for the configuration of the health check probes on monitoring services including Prometheus, grafana, and exporter-kube-state.

Related issue: https://github.com/rancher/rancher/issues/23874

This would be really great to have this !

The changes look fine but curious if health check probes is going to be an API only thing? Also there should be a docs issue or update related to the changes.

Docs issue https://github.com/rancher/docs/issues/2276

Despite https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#basicauth, I can't get basic auth working.
It either doesn't do anything when I save, or simply doesn't deploy prometheus-cluster-monitoring if I insert the data before enabling monitoring.
prometheus.remoteWrite[0].basicAuth.password: SOME_BASE64=
prometheus.remoteWrite[0].basicAuth.username: USERNAME
prometheus.remoteWrite[0].name: production
prometheus.remoteWrite[0].url: https://url
If I just use the URL, it works, but obviously fails to authenticate.
Is this a known issue?


Add bundle id, name, version, build to app context

Codecov Report

Merging #140 into master will decrease coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #140      +/-   ##
==========================================
- Coverage   89.45%   89.44%   -0.02%
==========================================
  Files          35       35
  Lines        2153     2169      +16
==========================================
+ Hits         1926     1940      +14
- Misses        227      229       +2

Impacted Files
Coverage Δ

Sources/Contexts.swift
86.29% <100%> (+1.21%)
:arrow_up:

Sources/EventOffline.swift
85.11% <0%> (-1.2%)
:arrow_down:

Continue to review full report at Codecov.

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


Remember position and location of apps before reboot

Is there any feature like this?
https://layautoapp.com/

See: #180, #902, https://github.com/koekeishiya/yabai/issues/658#issuecomment-778304023


:bug: imported illumina report multi breeds file have the same FID in output

Description

This PR solve a bug fixes described in #32 (multi breeds illumina report need to solve the proper FID
Related Issue

closes #32
Motivation and Context

This PR solve a bug an give to imported reportfile the correct FID relying on database
How Has This Been Tested?

Code has been tested with unitest and dataset was generated to ensure samples have the proper FID
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Refactoring (non-breaking change which improve code itself)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Coverage increased (+0.004%) to 91.621% when pulling 1209a343f986ecf493cb22c440215c03c120df78 on issue-32 into 678d8c9706cbfdc33761dadd4c90293550f36d6e on devel.


Re-authentication

Good morning.
Since the token obtained in a principal vault through authentication is not valid for a Vault-PR instance. I would like to know if there is currently any mechanism in the framework that allows you to force re-authentication.
Thank you

What is a Vault-PR instance? Care to elaborate on the scenario regarding what you're trying to achieve and what isn't working?
Generally, Spring Vault drops the login (session) token and re-logins when the session token expires. All authentication happens typically against the same server/cluster.

Vault-PR instance = Performance Replication. (Enterprice lincense Hashicorp Vault)
In this scenario, the token has not expired, it is simply not valid for the vault performance replication instance. Therefore, we must force it to re-authenticate

Thanks for the detail. Spring Cloud Vault has no information on cluster changes; hence, we don't know about expiry by promoting a secondary to a primary.

Sorry, de PR instance don't need promote. You always hace a PR intances and primary Intances. It's not a DR intances.
In any case, Is it possible to force re-authentication with vault through spring-cloud-vault?

You can call LifecycleAwareSessionManager.revoke to revoke the current session token. After that call, Spring Vault will re-authenticate. However, revoking the token will also revoke all leases.

Thank you. But it is not possible to directly access the LifecycleAwareSessionManager object of the vultTemplate, right?
I wouldn't want to lose the automatic session management that Spring provides.
Is there no way to force re-authentication without having to lose spring management of sessions?

I have it. Thank you for your help.


[UT] Add a tool to validate any unary expression with all its accepted types

What changes were proposed in this pull request?
There are a few functions that are only partially supported, e.g., some input types are not supported. This PR is just for helping us to know the gaps.
This PR gets expression list and registered expression builders from Spark. The expression's input data doesn't really matter, but input type does. So we can use literal NULL child with specific type to build an expression instance. After this, we simply construct a Gluten plan with a dummy child node. Then, go into Gluten's validation code path.
This is just a first patch for project function validation. Will have more PRs for other functions, like binary expressions, aggregate functions, etc.
See partial output:
## cast validation passes: cast from ByteType to ShortType
## cast validation passes: cast from ByteType to IntegerType
## cast validation passes: cast from ByteType to LongType
## cast validation passes: cast from ByteType to FloatType
## cast validation passes: cast from ByteType to DoubleType
## cast validation passes: cast from ByteType to DecimalType(5,1)
## cast validation passes: cast from ByteType to StringType
## cast validation passes: cast from ByteType to BinaryType
!! cast validation fails: cast from ByteType to TimestampType
## cast validation passes: cast from ShortType to ByteType
## cast validation passes: cast from ShortType to IntegerType
## cast validation passes: cast from ShortType to LongType
## cast validation passes: cast from ShortType to FloatType
## cast validation passes: cast from ShortType to DoubleType
## cast validation passes: cast from ShortType to DecimalType(5,1)
## cast validation passes: cast from ShortType to StringType
## cast validation passes: cast from ShortType to BinaryType
!! cast validation fails: cast from ShortType to TimestampType
## cast validation passes: cast from IntegerType to ByteType
## cast validation passes: cast from IntegerType to ShortType
## cast validation passes: cast from IntegerType to LongType
## cast validation passes: cast from IntegerType to FloatType
## cast validation passes: cast from IntegerType to DoubleType
## cast validation passes: cast from IntegerType to DecimalType(5,1)
## cast validation passes: cast from IntegerType to StringType
## cast validation passes: cast from IntegerType to BinaryType
!! cast validation fails: cast from IntegerType to TimestampType
## cast validation passes: cast from LongType to ByteType
## cast validation passes: cast from LongType to ShortType
## cast validation passes: cast from LongType to IntegerType
## cast validation passes: cast from LongType to FloatType
## cast validation passes: cast from LongType to DoubleType
## cast validation passes: cast from LongType to DecimalType(5,1)
## cast validation passes: cast from LongType to StringType
## cast validation passes: cast from LongType to BinaryType
!! cast validation fails: cast from LongType to TimestampType
## cast validation passes: cast from FloatType to ByteType
## cast validation passes: cast from FloatType to ShortType
## cast validation passes: cast from FloatType to IntegerType
## cast validation passes: cast from FloatType to LongType
## cast validation passes: cast from FloatType to DoubleType
## cast validation passes: cast from FloatType to DecimalType(5,1)
## cast validation passes: cast from FloatType to StringType
!! cast validation fails: cast from FloatType to TimestampType
## cast validation passes: cast from DoubleType to ByteType
## cast validation passes: cast from DoubleType to ShortType
## cast validation passes: cast from DoubleType to IntegerType
## cast validation passes: cast from DoubleType to LongType
## cast validation passes: cast from DoubleType to FloatType
## cast validation passes: cast from DoubleType to DecimalType(5,1)
## cast validation passes: cast from DoubleType to StringType
!! cast validation fails: cast from DoubleType to TimestampType
## cast validation passes: cast from DecimalType(5,1) to ByteType
## cast validation passes: cast from DecimalType(5,1) to ShortType
## cast validation passes: cast from DecimalType(5,1) to IntegerType
## cast validation passes: cast from DecimalType(5,1) to LongType
## cast validation passes: cast from DecimalType(5,1) to FloatType
## cast validation passes: cast from DecimalType(5,1) to DoubleType
## cast validation passes: cast from DecimalType(5,1) to StringType
!! cast validation fails: cast from DecimalType(5,1) to TimestampType
## cast validation passes: cast from StringType to ByteType
## cast validation passes: cast from StringType to ShortType
## cast validation passes: cast from StringType to IntegerType
## cast validation passes: cast from StringType to LongType
## cast validation passes: cast from StringType to FloatType
## cast validation passes: cast from StringType to DoubleType
## cast validation passes: cast from StringType to DecimalType(5,1)
## cast validation passes: cast from StringType to BinaryType
## cast validation passes: cast from StringType to DateType
!! cast validation fails: cast from StringType to TimestampType
## cast validation passes: cast from BinaryType to ByteType
## cast validation passes: cast from BinaryType to ShortType
## cast validation passes: cast from BinaryType to IntegerType
## cast validation passes: cast from BinaryType to LongType
## cast validation passes: cast from BinaryType to FloatType
## cast validation passes: cast from BinaryType to DoubleType
## cast validation passes: cast from BinaryType to DecimalType(5,1)
## cast validation passes: cast from BinaryType to StringType
## cast validation passes: cast from BinaryType to DateType
!! cast validation fails: cast from BinaryType to TimestampType
!! cast validation fails: cast from DateType to ByteType
!! cast validation fails: cast from DateType to ShortType
!! cast validation fails: cast from DateType to IntegerType
!! cast validation fails: cast from DateType to LongType
!! cast validation fails: cast from DateType to FloatType
!! cast validation fails: cast from DateType to DoubleType
!! cast validation fails: cast from DateType to DecimalType(5,1)
## cast validation passes: cast from DateType to StringType
## cast validation passes: cast from DateType to TimestampType
!! cast validation fails: cast from TimestampType to ByteType
!! cast validation fails: cast from TimestampType to ShortType
!! cast validation fails: cast from TimestampType to IntegerType
!! cast validation fails: cast from TimestampType to LongType
!! cast validation fails: cast from TimestampType to FloatType
!! cast validation fails: cast from TimestampType to DoubleType
!! cast validation fails: cast from TimestampType to DecimalType(5,1)
!! cast validation fails: cast from TimestampType to StringType
!! cast validation fails: cast from TimestampType to DateType
!! cast validation fails: cast from ArrayType(IntegerType,true) to StringType
!! cast validation fails: cast from MapType(StringType,IntegerType,true) to StringType
!! cast validation fails: cast from StructType(StructField(a,StringType,true), StructField(b,IntegerType,true)) to StringType

@rui-mo, do you have any comment?

Does the change apply to CH backend as well?

Does the change apply to CH backend as well?

CH backend will also run this. But as it doesn't implement doValidate API for native validation, this tool doesn't produce correct result. I will disable it for CH backend. Thanks!

When doing expression converter, it can go into CH's expression validation path in scala code. So maybe we can keep it run for CH. cc @zzcclp

@zhztheplayer, do you have any other comment? Thanks!


Label customization in circle pack charts

In which part of the interface would this feature applies?

[ ] 1. Load your data
[ ] 2. Choose a chart
[ ] 3. Mapping
[x] 4. Customize
[ ] 5. Export
Is your feature request related to a problem? Please describe.
I was hoping that the new release would solve the issue of lack of customization of labels. When using the circle pack charts, I still cannot change the font size of the labels in the circles or change them so that they fit withiin the circle. At the moment they are coming out of the circle for circles that are small. It would be a huge improvement to be able to increase the font size of labels and where in the circle they sit.
Describe the solution you'd like
It would be a huge improvement to be able to increase the font size of labels, which is very small, and where in the circle they sit (ie, in one line, two lines etc, so that they do not spill over outside the circle).
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

see #237


ENH: Add @DbComment with DDL generation of table and column comments

using FileWriter may cause messy code when write out
see# com.avaje.ebeaninternal.server.ddl.DdlGenerator.writeFile
maybe should use FileOutputStream to solve this
/* FileWriter fw = new FileWriter(f);
try {
  fw.write(fileContent);
  fw.flush();
} finally {
  fw.close();
}*/

FileOutputStream out = null;
try {
  out = new FileOutputStream(f, false);
  out.write(fileContent.getBytes("UTF-8"));
  out.flush();
} finally {
  out.close();
}

What do you mean by 'messy code'?  Do you mean some problem with UTF8
encoding?

As below, the COMMENT will be ??? or some other messy code generated , not the UTF8 encoding
@Column(columnDefinition = "varchar(30) COMMENT'角色名称'")
private String name;

Additionally , Can Ebean provide annotation @Comment to add COMMENT to table gen ,not the current way in the  columnDefinition part

DB Migration has column comments? @rbygrave

Yes but they are not used in 'diff'.
On 9 December 2015 at 17:31, icode<EMAIL_ADDRESS>wrote:

DB Migration has column comments? @rbygrave https://github.com/rbygrave
—
Reply to this email directly or view it on GitHub
https://github.com/ebean-orm/avaje-ebeanorm/issues/365#issuecomment-163106514
.

I don't understand for DbMigration, DbMigration how to know the current database versio? I'm not see a dbversion table.


feat: use netty's own unpacking decoder

use the LengthFieldBasedFrameDecoder decoder provided by netty to parse custom protocols and avoid other problems.

@spacewander @dmsolr pls review


feat: add support for Harmony One (SushiSwap V2)

both mainnet and testnet
using SushiSwap's V2 factory/router contract

Neat, thanks!


Mongo DB connection Failed , App is not starting

I,ve changed confing details in server.js and server.production.js files like this
const dbHost = process.env.DB_HOST || '<IP_ADDRESS>'; const dbPort = process.env.DB_PORT || 27017; const dbName = process.env.DB_NAME || 'shop'; const dbUser = process.env.DB_USER || 'user'; const dbPass = process.env.DB_PASS || 'password'; const dbCred = 	dbUser.length > 0 || dbPass.length > 0 ? ${dbUser}:${dbPass}@` : '';
const dbUrl =
process.env.DB_URL || mongodb://${dbCred}${dbHost}:${dbPort}/${dbName};
`
And this is the output ,

<EMAIL_ADDRESS>start C:\Users\iClick Digital\Documents\ZerotoMastery\frontendprojects\cezerin
concurrently npm:start-*

[start-api]
[start-api] ><EMAIL_ADDRESS>start-api C:\Users\iClick Digital\Documents\ZerotoMastery\frontendprojects\cezerin
[start-api] > node -r esm src/api/server/index.js
[start-api]
[start-store]
[start-store] ><EMAIL_ADDRESS>start-store C:\Users\iClick Digital\Documents\ZerotoMastery\frontendprojects\cezerin
[start-store] > node -r esm dist/store/server/index.js
[start-store]
[start-store] info: Store running at http://localhost:3000
[start-api] info: API running at http://localhost:3001
[start-api] error: MongoDB connection was failed: failed to connect to server [<IP_ADDRESS>:27017] on first connect [MongoNetworkError: connect EADDRNOTAVAIL 255.255.255
How can I fix this?

What do you want to achieve with this? I belive you typed in the wrong IP address for database, MongoDB usually listens on <IP_ADDRESS>:27017.
Anyway, I belive "Issues" thread in this repo is not for your problems setting up database and API, but rather for specific bugs dealing with this repo's code / implementation.

I raised this issue because documentation should be up to date, check configuration section yourself DB_HOST=<IP_ADDRESS> \ and I done this and its still not working, some one should look into this.
MongoDB usually listens on <IP_ADDRESS>:27017. but it's advised to cahnge these in env variables.
This is an implementation issue and that is why this is in "Issues" thread.
Let me know if you can help me to fix this , many thanks

Changing db IP to DB_HOST=<IP_ADDRESS> is optional, on master branch there is this configuration in server.production.js:
// config used by server side only const dbHost = process.env.DB_HOST || '<IP_ADDRESS>'; const dbPort = process.env.DB_PORT || 27017; const dbName = process.env.DB_NAME || 'shop'; const dbUser = process.env.DB_USER || ''; const dbPass = process.env.DB_PASS || ''; const dbCred = 	dbUser.length > 0 || dbPass.length > 0 ? ${dbUser}:${dbPass}@ : '';
and it works out of the box, if you init mongodb with given script (npm run setup).
Also don't forget to start mongodb daemon with sudo mongod.

Thank you , it worked


Unable to add plugin on a Docker Matterbridge installation

Hi,
provided an installation of Matterbridge using Docker latest image, no problem with it.
When trying to add matterbridge-zigbee2mqtt plugin, the installation process seems ok but after the needed Matterbridge restart the plugin looks not installed.  Full restart required.

As previously told, after an installation no zigbee2mqtt plugin appears at "Registered plugins" box.
KC

Solved. I needed to "add" it after installing.

Solved. I needed to "add" it after installing.

Hi,
thank you for your interest and the test.
You solved by yourself but actually I'm thinking that probably I should also add the plugin when you install it.
What do you think?

Hi, thank you for your interest and the test. You solved by yourself but actually I'm thinking that probably I should also add the plugin when you install it. What do you think?

Would be surely appriciated 👍

Since you are an expert on docker maybe you find of some interest my docker compose:
services:
matterbridge:
container_name: matterbridge
image: luligu/matterbridge:latest # Matterbridge image with the latest tag
restart: always # Ensures the container always restarts automatically
network_mode: host # Ensures the Matter mdns works
volumes:
- "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
- "${HOME}/.matterbridge:/root/.matterbridge" # Mounts the Matterbridge storage directory
environment:
- TZ=Europe/Paris
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto:latest
restart: always
network_mode: host
volumes:
- "${HOME}/mosquitto/config:/mosquitto/config"
- "${HOME}/mosquitto/data:/mosquitto/data"
- "${HOME}/mosquitto/log:/mosquitto/log"
environment:
- TZ=Europe/Paris
user: 1000:1000
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
restart: always
network_mode: host
volumes:
- ${HOME}/zigbee2MQTT:/app/data
environment:
- TZ=Europe/Paris
devices:
- /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_caf863ac3a3bec11bace9c957a0af07f-if00-port0:/dev/ttyACM0
group_add:
- dialout
user: 1000:1000
depends_on:
- mosquitto
If you can test it and is working for you like it does for me maybe I could add it to the readme.
Or if you have something better share it if you like.

This is, plus or minus, the configuration I'm using to test matterbridge and matterbridge-zigbee2mqtt plugin.
matterbridge-zigbee2mqtt plugin seems having some problems; I just opened this issue about it.


#229 Add OpenTelemetry Collector Server Auth Extensions to Receivers

PR Description
Adds server authentication support to otelcol.receivers.* that support the OpenTelemetry collector auth extension model. Some receivers are not wrappers of the collector so they are excluded from this PR.
Receivers that now support server auth:

Datadog
Jaeger
Otlp
Opencensus
Zipkin
Jaeger_Remote_Sampling

Which issue(s) this PR fixes
Fixes #229
Notes to the Reviewer
TestAuthServer in auth_basic_test.go is consistently failing due to a race condition in startup. Any ideas or potential solutions to this problem would be appreciated. The auth_basic plugin appears to function as expected when running from the binary.
User interface for client auth has not changed.
PR Checklist

[ x ] CHANGELOG.md updated
[ x ] Documentation added
[ x ] Tests updated

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

@grafana/grafana-agent-maintainers I am going to hold back on reviewing the doc input until after a technical code review has been completed. There are some questions I have about the way things are phrased in the docs that may be resolved with the code review.

@grafana/grafana-alloy-maintainers I am going to hold back on reviewing the doc input until after a technical code review has been completed. There are some questions I have about the way things are phrased in the docs that may be resolved with the code review.

Thanks for taking a look! Happy to clarify anything further once the code review is complete.

Looks like some errors with the auth tests.

Yeah, I dug into why this test was failing for a couple of hours and my assessment was that it was an issue with the test infrastructure incorrectly reporting that the component is running. See auth_test.go and I have a detailed comment explaining what is happening. Do you have any suggestions or comments on how to wait for the underlying extension to be running on the host?

Will try to take a look at this but for full transparency most of the team is gonna be unavailable for a week or so due to the holidays.

Will try to take a look at this but for full transparency most of the team is gonna be unavailable for a week or so due to the holidays.

Not a problem, I'm not in any rush to get this PR merged. I did see a PR go through recently that added a /healthy endpoint to a component. I will try using that and let you know. Thanks for the help so far.

The latest commits should fix the issue with the race condition in auth_basic.go. I have also addressed the outstanding comments on the PR.


Outdated docs for WOTKernel.compute_transition_matrix

Description
The docs for the WOTKernel.compute_transition_matrix are outdated. They still list last_time_point as a possible argument, for example, which was changed to self_transitions in #828.

The docs should be now updated on latest docs (after the pandoc fix), but I found docrep was not correctly interpolating some parameters.

Ah sorry, yes, I was on stable. But they are still not shown correctly on latest.

[...] but I found docrep was not correctly interpolating some parameters.

Is this what you mean?

Is this what you mean?

Yes, should be fixed now.


LibGfx: Use Skia for TinyVG rendering

There are three questions regarding this PR that I'm unsure of:

Will there be significant performance/memory gain if we create one Gfx::PainterSkia and load different bitmaps into it? Now, we create a painter per image?
Is it safe not to call painter->clear_rect before actually drawing the image?
Why does the previous code create BGRA8888 Bitmap to load it into ARGB32 QImage? I kept this, but I'm suspicious..

With this merged, we can remove both AntiAliasingPainter and EdgeFlagPathRasterizer

With this merged, we can remove both AntiAliasingPainter and EdgeFlagPathRasterizer

Why not add that to this PR as well?

Also, it's a subject of discussion if we want to delete AntiAliasingPainter and EdgeFlagPathRasterizer, or if we want to delete entire deprecated painter

@gmta because "one feature per PR" is easier for me to maintain and, I hope, easier to review. Removing AntiAliasingPainter and EdgeFlagPathRasterizer requires a lot of minor changes here and there and I definitely don't want to mix that with this

Alright, "requires a lot of minor changes here and there" does not sound the same as "we can remove both AntiAliasingPainter and EdgeFlagPathRasterizer", hence my confusion.

@gmta done

@gmta I have looked into deleting AntiAliasingPainter and EdgeFlagPathRasterizer might affect android version, so I won't do that until we either deprecate Android, or switch it to use Skia.
And when we solve Android thing, there's no need to keep old painter at all


Update variables.md

Grammar fixes in first paragraph;
Minor tweaks to third, fourth and fifth paragraph to make the format for examples consistent;
Revisions to last paragraph to shorten and improve flow of sentences.

Thank you!


Command line choices prevent batch creation

At v0.6, console commands like "zf2rapid create-module Shop" provide human entry choices. For example, module creation provides a choice between development and production config. This seems to prevent forming batch files for bulk creation: non-human input is difficult at batch level.
Requiring a command line filename parameter instead of a command line choice would enable building several module skeletons in one go. Is this something to be considered?
I used Windows 7 for my tests.

Currently, when creating a module the /config path of the project is scanned for all *.config.php files and a list of all available config files is shown to collect one of them. The config files are ordered alphabetically and marked with an char. It could look like this:
[ PICK] Which configuration file should be updated to activate the module?
       a) development.config.php
       b) production.config.php
       c) testing.config.php

If we add a filename parameter we could either ask for this char or for the full filename. Maybe like this
$ zf2rapid create-module Shop --configFile=development.config.php

Or for just activating a module:
$ zf2rapid activate-module Shop --configFile=production.config.php

What that make sense to you?

Yes, perfect! This way a batch file in any operating system can add the filename parameter. Developers can therefore add many modules/controllers/actions at the same time.

It was much easier to implement than I thought. But here you go:
https://github.com/ZFrapid/zf2rapid/commit/d5e7eebe9a9d6fe1202ef7e756f327c7ebb437a5
Please test it. I will close the issue. Please reopen it, if you encounter any problems.


Added CLI option to specify server port

Just a small step, but providing the ability to configure the server with CLI options would be great.

Thanks Matteo!


Not creating credentials in .aws/credentials file after login

Hey,
I succesfully Loginned with my azure account and choose a role - no error presented.
But when i'm running aws s3 ls command im getting - Unable to locate credentials. You can configure credentials by running "aws configure".
My .aws/credentials file empy even after succesfull connection ,
Please help with this issue .
thanks

Did you run aws-azure-login --configure?

@kennethaasan  Sure,
I did this procedure from Linux Server and it works fine , with Windows I have some issues.

I see. I don't have access to Windows, so I'm not able to help you. I'll happily accept a PR that fixes Windows.

@arikbidny Do you use the dockerized version on windows?
If yes, verify that you enabled sharing the drive (Should be drive C) in the docker settings. (https://token2shell.com/howto/docker/sharing-windows-folders-with-containers/)
Restart docker after the setting change and try it again.
If that's already the case or you don't use the docker version I also have no idea what could be wrong.

@larsschumachenko thanks but I'm using windows 10 machine with nom install not a docker,
I figured it out how to solve the issue:
I'm running: was-azure-login --mode gui --no-disable-extensions
and now it works fine , I also changed the Login.js code in order to work with eu-central-1 amazon sts service.
Anyway thanks all for your responses .


[Proof] More improvements to proptests and code structure

Motivation
As title.
Have you read the Contributing Guidelines on pull requests?
Y.
Test Plan
CI.
Related PRs
None.

@bors-libra delegate+

:v: @wqfish can now approve this pull request

@bors-libra r=msmouse

:pushpin: Commit 3cfb0cf has been approved by msmouse

:hourglass: Testing commit 3cfb0cf9ca672a5a0a02adcf01f26575258efba8 with merge 12d92a44b6d1f2ab6134eaee543daf83a1948aad...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: msmouse
Pushing 12d92a44b6d1f2ab6134eaee543daf83a1948aad to master...


fix: remove redundant ValidateBasic check in BroadcastTx

this check is redundant because ValidateBasic on the messages will be run by the chain binary anyway, running it prematurely leads to strange version issues
context: writing an e2e test for upgrading ibc-go v6 -> v7 runs automatic migrations which bump the client and consensusstate versions of the tendermint client and solo machine, we would need the msg to be broadcasted and validated by the v6 binary rather than the v7 code.

looks like the test failure is coming from an rpc not found in the interchain accounts test, but something went wrong with the docker container not starting :)

looks like the test failure is coming from an rpc not found in the interchain accounts test, but something went wrong with the docker container not starting :)

I'm re-running the failed one. As common with e2e tests, there's flakiness (especially when dealing with networks).

interesting, it looks like the same test is failing. so something on the interchain account creation is failing -- but i am not sure how my changes would have caused that since the BroadcastTx function doesnt seem to be called in the test flow that is failing

interesting, it looks like the same test is consistently failing, even on your main branch. it looks like the interchain account creation is failing, which is why the rpc query returns an error.
looks like this error started with this commit: 9359b06

You're right. See https://github.com/strangelove-ventures/ibctest/pull/354#issuecomment-1343007663

@DavidNix is it possible to merge this PR before the failing test is fixed?

@DavidNix is it possible to merge this PR before the failing test is fixed?

Sure. I normally dislike merging when CI is failing. But this seems like a valid exception.


Initial build for 0.23.5 ❄

xtensor 0.23.5 :snowflake:
Destination channel: Snowflake
Links

PKG-3844
Upstream repository

Explanation of changes:
Depends on:

https://github.com/AnacondaRecipes/xtl-feedstock/pull/1
https://github.com/AnacondaRecipes/xsimd-feedstock/pull/8

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_29pui1mu5k/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:24: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_11gts380_u/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:24: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_8cavu8s0px/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:24: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found


Drop guard API for ranges

Would you be interested in accepting a PR that adds a drop guard API for working with ranges? This would be convenient for cases where a function could return in multiple places and matching range_start!()/range_end!() or range_push!()/range_pop!() is tricky. I'm thinking of an API that would allow the following:
fn example() -> Result<()> {
    let _range = nvtx::range!("Hello World!");
    fallible_operation()?
    if some_condition {
        return;
    }
    Ok(())
    // _range goes out of scope and ends the NVTX range
}

If this is something you'd be interested in, I'll open a PR sometime soon.

Yeah, I'd accept this.


[BUG] Login Issue: Bad Request Error Encountered

Description
Encountering an issue with the login functionality. Attempting to log in results in a 'Bad Request' error, preventing successful login. Investigating and addressing this issue.
Screenshots

Additional information
No response
🥦 Browser
Google Chrome
👀 Have you checked if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Contributing Guidelines?

[X] I have read and understood the rules in the Contributing Guidelines

Are you willing to work on this issue ?
Yes I am willing to submit a PR!

thanks for raising but there's a reason why, it's intentional, thanks for raising tho


fix insecure-skip-tls-verify flag does't work on helm install

Signed-off-by: yxxhero<EMAIL_ADDRESS>
What this PR does / why we need it:
fix insecure-skip-tls-verify flag does't work on helm install, Keep FindChartInRepoURL and FindChartInAuthRepoURL functions signatures intact.
issue: https://github.com/helm/helm/issues/8492
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[x] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

Can you please also make sure to write some unit tests to cover this case moving forward. Thanks.

@bacongobbler Given your busy schedule, wish you can give feedback to you soon.  Thanks very much. Look forward to your reply.

In order to test it manually. First of all, nginx should be used as the reverse proxy. Nginx uses private certificate and key to provide the HTTPS service, and the upstream service is helm serve. @hickeyma

@hickeyma Looking forward to your review. Thanks very much.

I am testing this manually but I am getting strange results as follows:
$ curl https://helm.example.repo.com
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

$ curl --insecure -I https://helm.example.repo.com
HTTP/1.1 200 OK
Date: Wed, 26 Aug 2020 07:46:17 GMT
Server: Apache/2.4.29 (Ubuntu)
Content-Type: text/html;charset=UTF-8

$ helm3 repo list
Error: no repositories to show

$ helm3 install mysql  mysql --repo=https://helm.example.repo.com
Error: failed to download "https://helm.example.repo.com/charts/mysql-1.6.6.tgz" (hint: running `helm repo update` may help)

$ helm3 install mysql  mysql --repo=https://helm.example.repo.com --username <user> --password <passwd>
NAME: mysql
LAST DEPLOYED: Wed Aug 26 07:50:19 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
MySQL can be accessed via port 3306 on the following DNS name from within your cluster:
mysql.default.svc.cluster.local
To get your root password run:
    MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo)
To connect to your database:
1. Run an Ubuntu pod that you can use as a client:
    kubectl run -i --tty ubuntu --image=ubuntu:16.04 --restart=Never -- bash -il
2. Install the mysql client:
    $ apt-get update && apt-get install mysql-client -y
3. Connect using the mysql cli, then provide your password:
    $ mysql -h mysql -p
To connect to your database directly from outside the K8s cluster:
    MYSQL_HOST=<IP_ADDRESS>
    MYSQL_PORT=3306
    # Execute the following command to route the connection:
    kubectl port-forward svc/mysql 3306
    mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}

It seems in my testing that helm install  doesn't require --insecure. This is unexpected. The same is happening from master branch also.
Maybe someone can shed some light on this?

@hickeyma How are your private certificates and keys generated?  thanks very much

Here you go @yxxhero:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

I think you shoud use a private CA. @hickeyma

Any updates? Thanks very much!

To manually test:

Configure an HTTPS server to use a broken SSL config. I use this:
On master, run an install against it
On this branch, run an install against it.

Here's what I get on master:
$ helm install --dry-run mysql mysql --repo=https://<IP_ADDRESS>:58443
Error: looks like "https://<IP_ADDRESS>:58443" is not a valid chart repository or cannot be reached: Get "https://<IP_ADDRESS>:58443/index.yaml": x509: certificate signed by unknown authority

Now with the skip header:
helm install --dry-run mysql mysql --repo=https://<IP_ADDRESS>:58443 --insecure-skip-tls-verify
Error: looks like "https://<IP_ADDRESS>:58443" is not a valid chart repository or cannot be reached: Get "https://<IP_ADDRESS>:58443/index.yaml": x509: certificate signed by unknown authority

Checking out this branch, building, and re-running the two commands I get:
$ helm install --dry-run mysql mysql --repo=https://<IP_ADDRESS>:58443
Error: looks like "https://<IP_ADDRESS>:58443" is not a valid chart repository or cannot be reached: Get "https://<IP_ADDRESS>:58443/index.yaml": x509: certificate signed by unknown authority

Which is expected, and then:
$ helm install --dry-run mysql mysql --repo=https://<IP_ADDRESS>:58443 --insecure-skip-tls-verify
Error: failed to download "https://kubernetes-charts.storage.googleapis.com/mysql-1.6.7.tgz" (hint: running `helm repo update` may help)

Which means I got past the TLS handshake and am now dealing with the fact that I screwed up my registry doing all this testing. :-)

@technosophos  What should I do? Thank you very much.


Moving forward/backward

This tool was exactly what I wanted and I searched a long time before finding it. It's really cool, but it is missing an important feature: moving forward and backward in the movie's timeline.
This missing feature make the tool hard to use for real because we need to stay through the entire start of the movie instead of scrolling to the middle...
Hope to see this feature or at least speed adjustment.

Glad to hear the tool is useful, Dan. If you see the readme file, the feature you requested is already in the "Feature upgrades possible" section. I didn't proceed with implementing any feature upgrades as I didn't know if anyone would want them. As of now, if you play two videos, the first of 1 minute duration and the second of 2 minutes duration, when the first one finishes playing, the second one stops being a split video and takes up the entire screen space. So moving the video forward and backward requires some additional planning to re-integrate the first video in split-screen mode.
I'm the guy who wrote The Real Cure for Eye Strain, and it's difficult for me to use the computer for long periods of time. I'm currently working on another personal project at a pace I can manage, so any work on the split video quality viewer will take some time to even get started with. If you'd like to fork it and improve it or join as a contributor and improve the project, please feel free to.
It would help to know what work you do, why and how you use this software, and how many others may be using it.

Hope to see this feature or at least speed adjustment.
I've implemented speed adjustment and seek. Details are in the readme file. When attempting to add the feature, I remembered that I didn't add the seek feature due to this long standing bug of the seek happening to the wrong frame. I had to use caching to ensure that the video displayed the correct frames on seeking, so you can only seek within any part of the video which has been played normally. So if only one minute of the video has played, you won't be able to seek forward to the second minute of the video. An unfortunate constraint.
Do try it and see if it feels comfortable to use. I'll wait a while until I close this issue. My apologies for the delay, and I'm glad you raised this issue. It's likely that there would be many others who'd have wanted this feature.


Define future of Option.None

We switched from Option.None() to Option.None:
however Option.None() is currently not even Obsoleted. How to we progress from here?
1.) obsolete Option.None and remove in Funcky 3.1
1.) obsolete Option.None and remove in Funcky 4
2.) Remove completley

The purpose of the Option.None<T> method is for use as method group.
You should use Option<T>.None for all other cases.
We could either bury the method, or have an analyzer maybe?

I would prefer a differnt name on the same class:

Option.GetNone
Option.NoneFunc

I can live with that too

Another option would be to remove this function with no replacement.
There aren't that much use cases for passing None as method group imo.
(Most cases we have in Funcky can and probably should be replaced with Option<X>.None.)
The cases I can think of are mostly in combination with Funcky.DiscriminatedUnion.
But you can't use an Option.GetNone function there, because each Func has exactly one parameter:
myDiscriminatedUnion.Match(foo: _ => Option<T>.None, bar: _ => ...);

The recommended alternative would be a lambda expression: () => Option<int>.None.

True: in 2 out of 3 cases in Funcky I replaced it with the None getter.
We could obviously make The function generic.
Option<T>.None<T1>()
Option<T>.None<T1, T2>()
Option<T>.None<T1, T2, T3>()
Option<T>.None<...>()

I think we decided to remove the method IRL.
There are two PRs:

Removal for 3.0 #628
Obsoletion for 2.7.x #627

Resolved with #628 and #627 merged


fix: ignore node_gyp_bins if it exists

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[x] The changes are appropriately documented (if applicable).
[x] The changes have sufficient test coverage (if applicable).
[x] The testsuite passes successfully on my local machine (if applicable). (Passes on MacOS Monterey x64 & arm64)

Addresses https://github.com/electron/electron-rebuild/issues/1024
In node-gyp v9.0.0, node-gyp adds a python symlink for older versions of python. This symlink is added to a ${module_name}/build/node_gyp_bins/ directory within the build directory, which electron-rebuild then tries to rebuild.
This PR ignores the node_gyp_bins directory, and adds tests for making sure that the directory is not added to the packaged app.

Hmmm. Separate PR to fix the xcode version in use, so the tests pass?

@malept Yeah, hilariously that image failure is new as of this afternoon's rerun 😄 I'll fix that in another PR and then rebase


What are the CONCEPTNET_TRAIN_CORPUS?

Hello,
could you tell me more details about the CONCEPTNET_TRAIN_CORPUS for lm_finetuning?

Hi @chaitanyamalaviya, I have the same question. Thanks!

Hi! This variable is the path to the preprocessed ConceptNet training corpus linked in the readme (https://drive.google.com/file/d/1R4C2s8QWwdNE9CUwtfhsYevmM7V-01YT/view) or found here.

I see, so when you say "train corpus", in this case it just means a set of KB triples?

For the purpose of lm finetuning, the training corpus is actually the set of unique natural language phrases represented by the nodes in the graph (and not KB triples).

Hm, still not clear to me - say you have a set of    KB triples. If I understand correctly, the corpus is just the (unique) head/tail node phrases, and the relations are excluded?

That's right, the corpus is just the (unique) head/tail node phrases, and relations are excluded. And yes, the single token node names were also treated as phrases for finetuning.

👍 thanks for your help!


Core name change for Atari 2600 and 7800

The author requested a change in the name of the cores:
2600 -> Atari 2600 (Old)
7800 -> Atari 2600/7800
I thought that you would be ok with that, so I hope you don't mind that I changed it already. Maybe some correction in the spelling should be done for consistency, though.
The 7800 core also implements 2600, and it's more advanced, that's why people should try to look for playing 2600 in the 7800 core.

I would appreciate this

Of course and thanks for requesting this change.
"Atari 2600/7800" is in line with the naming of other multi system cores and fits all length versions.
I would suggest to name the old core "Atari 2600 (Deprecated)" in the 28 and 54 character long variants.
Did you have any other correction in spelling in mind that I missed?

Not from my side, thanks.

Will the average person seeing it understand the meaning of "Deprecated"?

I have no doubt that the MiSTer's target audience is tech savvy enough to have heard this term before, it is the correct term to use here. Besides, it is easy to look up :)
Thanks again for pointing out these changes, it is much appreciated! They have been implemented and as such I am closing this ticket now. Feel free to open a new ticket if there is anything else we can help with.


'Call to a member function getUniqueId() on a non-object' when running to console commands at once

Hi!
I get this error when trying to run two console jobs at once:
root@-3://yii2# php yii cron & php yii cron & wait
[1] 5532
[2] 5533
PHP Fatal error:  Call to a member function getUniqueId() on a non-object in /yii2/vendor/yiisoft/yii2/base/Controller.php on line 318
PHP Fatal Error 'yii\base\ErrorException' with message 'Call to a member function getUniqueId() on a non-object'

in /yii2/vendor/yiisoft/yii2/base/Controller.php:318

Stack trace:
#0 [internal function]: yii\base\ErrorHandler->handleFatalError()
#1 {main}
[1]-  Done                    php yii cron
[2]+  Exit 255                php yii cron

The line that fails is this:
return $this->module instanceof Application ? $this->id : $this->module->getUniqueId() . '/' . $this->id;

So obviously there is no module in my application. Bug or configuration error?
The console command runs fine when only running one at a time. But I need to make sure there won't be any race conditions.
Grateful for any help.

Weird.

Yeah. :) Can you reproduce?

No.

I'm getting the same issue as well, but with web application.
Situation in my case is a bit more complicated, than a cron script, cause I'm trying to have hybrid app with Yii1 and Yii2. The controller which fails is yii\web\Controller extended class. Not a module.
Is there anything I can look at?
Thank you.

I'm having exactly the same issue, but with web Controller. My situation is a bit more complicated - I have app on Yii1 and I'm trying to add Yii2 as hybrid. Yii1 controllers works fine, but single Yii2 controller fails with the same error in the same line.
I have only Yii2 controller, no models or views and it looks super simple:
`<?php
use yii\web\Controller;
class InvoiceController extends Controller
{
public function actionIndex()
{
    print 123;
    \Yii::$app->end();
    return $this->render('index');
}

}`
Do I have any options?

@EvgeniySpinovSell what is the output of var_dump(\Yii::$app) when you add that to getUniqueId() method in controller?

@cebe
Thank you for your prompt reply.
Here you go:
Yii_app.txt

that is weird, how did you create the controller?

I've created the folder "controllers", created file mentioned above.
Added route to an controllerMap in the config of yii1, so the request would be routed to a proper controller, like this:
'invoice' => [ 'class' => 'webroot.controllers.InvoiceController' ],
and rule to url manager so it won't do default processing for this module, instead, just proceed with /
Then I call in browser:
http://url/invoice/index

And just to clarify the thing: I've added var_dump() which I've attached to a yii2\web\Controller class itself ( i.e. modified framework controller to get a dump ), cause adding the function to my controller won't make it working, cause it won't reach it.

seems like you want to use a yii2 controller in the yii1 routing process. This does not work because controllers in yii2 are created differently from yii1.

This is exactly my impression, but how would I add Yii2 code to a Yii1 project? According to migration guide published on Yii2 site, which I've followed, it should be possible by modifying entry point and configs.

you can not mix yii1 and yii2 controllers in one app. If you run the Yii2 application, you need to use yii2 controllers, if you run the Yii1 application, you need to use yii1 controllers.

This is actually a very valuable feedback cause it's not mentioned anywhere. Probably you should state this in the guide. Thank you for your help, won't offtopic here anymore, cause my issue have a different root as figured.


Starting service is too slow

Is there a way to quickly restart the service? For example, just modify the configuration and start hot directly.

yes you can set OVWRITE_CHROMA=false in your .env (we just put it in the .env.example), it will only take a few secs to run.
You can then use the --reload feature of uvicorn so everytime you make some change it will reload automatically

yes you can set OVERWRITE_CHROMA=false in your .env (we just put it in the .env.example), it will only take a few secs to run. You can then use the --reload feature of uvicorn so everytime you make some change it will reload automatically

Thanks!


Possible bug with barWidth or SoundCloud's peak data?

I have a waveform that looks like this:

But when I use barWidth it looks like this:

I partly understand why this is happening, I'm not generating the peak data with Wavesurfer (when I do it does displays correctly) I'm grabbing this peak data from SoundCloud (here) which you'll notice only provides mono peak data (top half of the waveform) I generate the bottom half by looping through the array and generating a negative of every number.
I totally understand this isn't Wavesurfers fault but I'm trying to figure out why the peak data looks fine without barWidth and so mangled with it? As it would be great if users could use Soundclouds peak data to avoid generating it client side.
There's a full demo here http://codepen.io/SeanBannister/pen/rOQqEN

barWidth is probably a bit broken. You can try adding reflection: true as a quick fix:
http://codepen.io/katspaugh/pen/NGEeMb?editors=101


Add Functionality to the Search Bar

Issue Number
fixes #6

Describe the changes you've made
Add Functionality to the Search Bar using an API we fetch data from imdb for searched movie and display on ApnaTheatre webpage and add a movie button detail on clicking this the button will redirect to another page which will show all the details of that movie
Describe if there is any unusual behavior of your code(Write NA if there isn't)
spelling should be correct in search bar otherwise it will not fetch information of the movie
Additional context (OPTIONAL)
Add any other context or screenshots about the feature request here.
Test plan (OPTIONAL)
A good test plan should give instructions that someone else can easily follow.
How someone can test your code?
Checklist

[ ] I have added my name in the contributors list at the end of README.md file.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] The title of my pull request is a short description of the requested changes.
[ ] Open Source Program names(OPTIONAL: If you participated in any open-source program then please mention the program name here)

Share live demo link.
Host it on github page and share link.

Resolve conflicts as well.


New Rule: UnnecessaryNotNullOperator

As suggested in #2572, I'm adding a rule to detect unnecessary usages of the  not-null (!!) operator.

Codecov Report

Merging #2578 into master will increase coverage by 1.73%.
The diff coverage is 54.54%.

@@             Coverage Diff              @@
##             master    #2578      +/-   ##
============================================
+ Coverage     25.14%   26.88%   +1.73%
+ Complexity      392      391       -1
============================================
  Files           377      378       +1
  Lines          7381     6699     -682
  Branches       1219     1220       +1
============================================
- Hits           1856     1801      -55
+ Misses         5394     4767     -627
  Partials        131      131

Impacted Files
Coverage Δ
Complexity Δ

...ch/detekt/rules/bugs/UnnecessaryNotNullOperator.kt
50.00% <50.00%> (ø)
1.00 <1.00> (?)

...sch/detekt/rules/providers/PotentialBugProvider.kt
100.00% <100.00%> (ø)
2.00 <0.00> (ø)

...itlab/arturbosch/detekt/api/internal/Validation.kt
33.33% <0.00%> (-16.67%)
0.00% <0.00%> (ø%)

.../gitlab/arturbosch/detekt/cli/console/Colorizer.kt
61.53% <0.00%> (-9.90%)
0.00% <0.00%> (ø%)

...h/detekt/api/internal/DisabledAutoCorrectConfig.kt
55.55% <0.00%> (-8.09%)
4.00% <0.00%> (ø%)

...otlin/io/gitlab/arturbosch/detekt/core/TaskPool.kt
33.33% <0.00%> (-6.67%)
3.00% <0.00%> (ø%)

...in/io/gitlab/arturbosch/detekt/api/SingleAssign.kt
60.00% <0.00%> (-6.67%)
3.00% <0.00%> (ø%)

...in/kotlin/io/gitlab/arturbosch/detekt/api/Issue.kt
50.00% <0.00%> (-5.56%)
2.00% <0.00%> (ø%)

...n/io/gitlab/arturbosch/detekt/api/ConsoleReport.kt
75.00% <0.00%> (-5.00%)
4.00% <0.00%> (ø%)

...tlab/arturbosch/detekt/api/internal/EmptyConfig.kt
66.66% <0.00%> (-4.77%)
4.00% <0.00%> (ø%)

... and 260 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 b037a55...a83fce6. Read the comment docs.

My bad I forgot to rebuild the docs


Scripts to launch stress tests in GKE.

Description

test/cpp/interop/metrics_client.cc :  Added timeout for the APIs
test/cpp/util/metrics_server.cc: Log level correction
tools/big_query/big_query_utils.py: Helper functions to interact with BigQuery
tools/dockerfile/grpc_interop_stress_cxx/Dockerfile: Install google-api-python-client in the image for BigQuery APIs (since the stress client/server now write status to BigQuery)
tools/dockerfile/grpc_interop_stress_cxx/build_interop_stress.sh:  Package metrics client as well in the base docker image for stress tests
tools/gke/kubernetes_api.py : Minor cosmetic changes
tools/gke/run_stress_tests_on_gke.py: This is the main script that will orchestrate everything. NOTE: This still needs a little bit of work (to query BigQuery for status, print summary, accept args etc. I will send it in a separate PR)
tools/run_tests/stress_test/run_client.py: This is a wrapper python scripts that runs inside the stress client pod is launches the actual stress client program. The wrapper performs other housekeeping tasks like writing status to bigquery, querying metrics and uploading to BigQuery and more importantly NOT exiting in case of an error (this way, we get a chance to connect to the pod and examine error logs etc)
tools/run_tests/stress_test/run_server.py: The wrapper program for stress server. Similar to run_client.py
tools/run_tests/stress_test/stress_test_utils.py: Common utils used by run_client.py and run_server.py

Remaining work

Finish run_stress_tests_on_gke.py
Setup a jenkins worker to call run_stress_tests_on_gke.py once a day

/cc @nicolasnoble @adelez

Can one of the admins verify this patch?

Can one of the admins verify this patch?

oops.  I accidentally deleted the branch... (i.e did a git push origin :stress_test_wrapper_scripts instead :()
I am going to resubmit this PR. Sorry about that


[embassy-rp] I2C transaction sends SR between operations of equal type

I encountered this bug in rp-rs/rp-hal#825, and a look at the I2C code in embassy-rp shows that it has the same bug.
In essence an SR is sent between operations of equal type, this can cause unexpected behavior in e.g:
fn write(&mut self, mut reg: u16, data: &[u8]) -> Result<(), Error<I2C::Error>> {
    self.i2c.transaction(self.address, &mut [Operation::Write(&reg.to_be_bytes()), Operation::Write(data)])?;
}

as to avoid the SR all data must be copied into a single slice.

It turns out the bug wasn't in the place I thought it was, and embassy-rp seems to handle it correctly, my bad.


selfCSSData.original is undefined at line 545

Hey Ben
I ran into an case where selfCSSData.original is undefined at line 545:
css(selfCSSData.original).
jQuery therefore throws: Uncaught TypeError: Cannot call method 'replace' of undefined.
I fixed it temporarily because i have a pretty tight deadline by defaulting to null: css(selfCSSData.original || null), but that propably isn't a good fix.
Michael Wolthers

I get the error in newest chrome, chrome beta channel, newest firefox, newest safari

I can confirm this.
jQuery therefore throws: Uncaught TypeError: Cannot call method 'replace' of undefined.
The variable selfCSSData is an empty object sometimes, thats why it fails.
It seems to appear only on the latest browsers...?

This should now be fixed - it needed a default .original = {} setting
Can you please re-test if you have a minute?

Seems fixed to me. I don't get error anymore, anyway. Thanks.


Update keyboard shortcuts menu button & dialog icon to a new 'keyboard' icon

Fixes #11767
After :

I think another step is still needed.

Go to the styleguide and copy the Wagtail icons table according to instructions in the template, pasting the result in wagtail_icons_table.txt.

https://docs.wagtail.org/en/stable/contributing/ui_guidelines.html#adding-icons
The rest of the code looks good, thank you. I'll do a proper review with the code checked out locally soon.

Done!

@rohitsrma could you get the browser script working for you?
https://github.com/wagtail/wagtail/blob/24f5a4a14ce3df580ce5fc7f085f3e6a8357237e/wagtail/contrib/styleguide/templates/wagtailstyleguide/base.html#L507
When I ran that I did not get the actual SVG content, only the svg use references.
I tried Firefox & Chrome, e.g.

<svg class="icon icon-keyboard w-w-8 w-h-8" aria-hidden="true"><use href="#icon-keyboard"></use></svg>
keyboard
 keyboard (solid): Font Awesome Free 6.5.1
wagtailadmin/icons/keyboard.svg

Observe the use href= is there but not the actual SVG content.

Docs are working now (from when I broke it in the last push)

CI issues are not related this PR, merging as it all ran fine just before.

@rohitsrma could you get the browser script working for you?
https://github.com/wagtail/wagtail/blob/24f5a4a14ce3df580ce5fc7f085f3e6a8357237e/wagtail/contrib/styleguide/templates/wagtailstyleguide/base.html#L507
When I ran that I did not get the actual SVG content, only the svg use references.
I tried Firefox & Chrome, e.g.

<svg class="icon icon-keyboard w-w-8 w-h-8" aria-hidden="true"><use href="#icon-keyboard"></use></svg>
keyboard
 keyboard (solid): Font Awesome Free 6.5.1
wagtailadmin/icons/keyboard.svg

Observe the use href= is there but not the actual SVG content.

Thanks @lb- , Should I check this, or is it all sorted?.

@lb- Yes i am also getting similar results for all icons.

<svg class="icon icon-folder-inverse w-w-8 w-h-8" aria-hidden="true"><use href="#icon-folder-inverse"></use></svg>
folder-inverse
 folder (solid): Font Awesome Pro 6.4.0
wagtailadmin/icons/folder-inverse.svg

Thanks @rohitsrma  - I have raised an issue for this https://github.com/wagtail/wagtail/issues/11771
No need to worry about it for now though, it's easy-ish enough to manually get the SVG content.


Usage with lygia

Hello! I'm having using shader functions from lygia... It doesn't seem possible with glsify (as it's currently setup) to load shader parts with the #include method.
This vite GLSL loader looks promising and I tried to swap out your hot-shader-reload.js with the vite plugin, but I got an error when hot-reloading:
node:internal/errors:466
    ErrorCaptureStackTrace(err);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined
    at utimes (node:fs:2000:10)
    at file:///Users/ben/Documents/personal-repos/fragment/node_modules/vite-plugin-glsl/src/watchShader.js:60:7

So it's clearly not as straightforward as a one-to-one replacement.
Do you think there's a way of getting #include to work in a shader (or any other means of loading in lygia files)?

Hello! Thanks for raising that issue and trying the vite GLSL loader! It's actually on the roadmap as I'm looking into lygia as well and thought it would be great to have that. I haven't had the time yet to put some work on it, and that error doesn't tell me much. I'll have a look at it!

Ah that's great to hear! Thank you :)
You're right the error isn't super helpful! I think the plugin was working initially, it just threw that error when trying to hot reload...

The common-used #include directives (also used by Lygia) are now supported in shader files since https://github.com/raphaelameaume/fragment/releases/tag/v0.1.14


Fixed versioning in kaggle workflow

Codecov Report

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

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage        ?   86.27%
=======================================
  Files           ?       23
  Lines           ?      510
  Branches        ?        0
=======================================
  Hits            ?      440
  Misses          ?       70
  Partials        ?        0

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

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


User password updates via trusted clients

Currently if a trusted client makes a PATCH request to /v1/users/:id and includes an updated password it is ignored as it is a 'private' field. There are some instances where updating a password through the REST API would be very useful, such as from an administration interface or from an 'update password' form on a separate domain.
This raises a number of questions:

Conceptually, should password updates be allowed through the regular /v1/user/:id endpoint? I think it makes sense, as email address updates are allowed already which are also a key component for users and for user security (e.g if a malicious user updated an email address to their own they could easily take over an account through the password recovery facility).
If updating passwords through /user/:id is not desirable, would a separate endpoint (e.g /changePassword) purely for modifying passwords be a sensible alternative? The OIDC spec seems to not make much mention of password changes so it should fit in with the spec and the general design of Connect, however this could make for more API calls and might not fit so obviously with REST principles.
A separate but related feature would be to allow users to update their own password by adding a new view within Anvil. This could even be extended to a whole 'edit my profile' view. How this view operates and which endpoints it uses would make sense to be in-line with how clients access & update this information.

I thought I'd open this issue before putting forward any code as there may be other design and security considerations here.
One way I figured out how to quickly allow password updates via REST is:
routes/rest/v1/users.js

server.patch('/v1/users/:id', authorize, function (req, res, next) {
- User.patch(req.params.id, req.body, function (err, instance)
+ User.patch(req.params.id, req.body, { private: true }, function (err, instance)

After some initial testing it seems that allowing password updates through /v1/users/:id by enabling private fields (as I outlined in the diff in the original post) causes an issue whereby if the password field is ever omitted from a PATCH request then the 'hash' field is entirely removed from the user model. This causes a user to not be able to log in at all as they have no password set.
I suspect this is caused by the way modinha-redis loads and updates the document and it could even be a bug in modinha-redis?
Anyway, this highlighted how if something goes wrong when updating a password via PATCH /users/:id it could have really bad consequences and I think this gives even more weight to the argument for having a separate route just to update a password.
I've created a proof-of-concept for a PATCH route /v1/rest/userpassword/:id which has been working well during my testing. @christiansmith if you have any thoughts around this from an architectural standpoint let me know and I can tidy up the code and submit as a PR for further review?

@hedleysmith, I don't believe there's a bug in modinha-redis, this is simply a model-specific bit of logic. You can see how we handled password setting for user creation in User.insert(), which is overridden from the default method provided by modinha-redis. There's also a setter method for hash defined in the schema.
A distinct endpoint for updating passwords via API does make sense vs just handling it with PATCH /v1/users/:id. For implementing this, there's already the User.changePassword() method that's used at the /resetPassword endpoint (see routes/recovery.js). You can see that this uses the existing User.patch() implementation.
Having a view for authenticated users to update their passwords (and profile) is certainly a necessity. I'd prefer to handle that in a separate issue as it warrants a broader discussion. We've had some users in the past ask about prompting for missing/required profile information and password creation after the first completion of an outbound auth flow (e.g., "sign in with GitHub"). Seems like an opportunity to solve both of those problems at once.

@christiansmith brilliant, thanks for clarifying that. I've just added a pull request of how this could work here: #321 - I've tested this out and it seems to work fine, happy to iterate on this if you have any comments and then write some tests / update documentation.
Have created a new issue here #322 for discussing the ability for users to update their profile and password information directly from Anvil.

@hedleysmith thanks for the PR. I'll pull down your fork, kick the tires manually, and get back to you with feedback. At first glance it looks pretty good.


Dev08

Changes in order in "Files changed":
.travis.yml - 24 tests merged into 12 tests
appveyor.yml - added VC++ tests
mem.h, xxhash.c - fixes for Intel Compiler with Windows
zstd_compress.c - fix for tree update
zstd_opt.h - added usage of rep[0]-1
zstd_decompress.c, zstd_v0x.c - fixes for Intel Compiler with Windows
datagen.c - fixes for VC++
projects/VS2005/* - added VS2005 project (only Release works fine)
test-zstd-speed.py - added md5sum, clang


Remove RectFeature

Why do we still have RectFeature?
RectFeature inherits from BaseFeature and is used only in StackedLabelProvider and one sample to draw a frame around an area. So I would say it isn't useful and should be dropped. It could be replaced by a GeometryFeature with a Polygon Geometry. That is the reason for this PR.
Btw. what is with PointFeature? This is more widely used, but is now a double for GeometryFeature(Point()). The only problem is, that this could only access, if Mapsui.NTS is added. So I would say, that this takes more effort to realize.

Perfect. I expected this and I'm fully with you regarding PointFeature. With this in mind, could you look also into #2399?


Fix unit test script make github action work correctly.

When unit test run fail，the PR cannot be merge.

Fix the unit test script , it should return 1 when unit-test fails
update unit-test go version to 1.18.
Fix the service-events_test unit test.
Fix the backends/windows/userspace unit test

to fix https://github.com/kubernetes-sigs/kpng/issues/247

Github action do not support Golang 1.18. So there are some package cannot be compiled

@yankay thanks for this initial work :)
@nehaLohia27 this touches github actions
@knabben this touches userspace
@hanamantagoudvk this touches serviceevents tests and it's weird that we find the "want:" line in the output comment of the example test.

/approve
/lgtm


how to use modes with API calls ?

Is your feature request related to a problem? Please describe.
probably feature
Describe the solution you'd like
currently i cant find a way to chose one of the modes in https://github.com/kucherenko/jscpd/tree/master/packages/jscpd#mode with the detectClones API

Hi, it is really a feature request. The mode it is not about application usage, it is about the detection process, I have plans to add web API for jscpd

perfect, can u for now plz give me an example of how to use the modes option function?


fs/timerfd/eventfd: using anonymous inodes and using isr to notify poll waiter.

Summary

using anonymous inodes to manage timerfd and eventfd.
using isr to notify poll waiter to optimize notification speed and avoid race condition.

Impact
Remove /var/event/xxx and /var/timer/xxx character file.
Testing
daily test.

LGTM!


[macro] Refs do not work for CommaDelimitedList types

I would like to be able to create reusable CloudFormation templates that are customized through parameters. Part of this means that I would have a parameter that is a list of AWS Account IDs.
This does not work using this macro because the macro keeps the value as-is -- a Ref to the parameter. CloudFormation then fails because the generated Assignment contains a list of Account IDs instead of a single ID.
To get around this limitation, I would love if this macro resolved parameter refs by replacing them with the parameter value, and expanding comma-delimited lists if necessary. Then, the rest of the macro's code would generate each Assignment as usual.
Alternatively, the logic of replacing parameter refs with the parameter values can be done in an independent Transform. I'm not aware of any existing solutions for this.

This is interesting. In general I'd say OUs as targets tend to be better than parameterized lists of accounts, but of course that's not always possible. I'm not sure I can accomplish this, though. The macro does not receive the resolved parameter value, and does not know the length of the list, so I don't think the information needed to unroll the list is present.

@benbridts do you have any ideas as to how this could be accomplished?

(besides a new Fn::Map function, of course)

I completely forgot that OUs are supported. That should work in my case. If you would like to keep it open to explore the idea further, feel free. Otherwise it can be closed.

Oh, I'm not realizing the OUs do not fix this problem. A parameterized OU results in this error:
[ERROR]	2021-04-19T20:43:31.753Z	e5b3b56f-376e-43ab-b30b-607b30a6fcd3	An error occurred: 'dict' object has no attribute 'startswith'
Traceback (most recent call last):
  File "/var/task/aws_sso_util/cfn_lib/macro.py", line 227, in handler
    output_template, max_stack_resources, resource_collection_dict = process_template(input_template,
  File "/var/task/aws_sso_util/cfn_lib/macro.py", line 111, in process_template
    resource_collection = resources.get_resources_from_config(
  File "/var/task/aws_sso_util/cfn_lib/resources.py", line 413, in get_resources_from_config
    for account in ou_fetcher(ou, recursive=False):
  File "/var/task/aws_sso_lib/lookup.py", line 518, in lookup_accounts_for_ou
    ou_type = "root" if ou.startswith("r-") else "OU"
AttributeError: 'dict' object has no attribute 'startswith'

It's a very similar scenario as this issue's original problem: Ref's are not being resolved to their actual value before the Assignment expansion takes place.

Oh, of course. I don't see much way around that either.

@benkehoe Has there been any progress on this? I haven't been following this project since I was last poking at it last April.

Thanks for the poke; I have not made progress on this. I have some other changes in progress with the macro, I will look into this again.

Found this issue after trying to !Ref an OU id as a param. Might be good to just catch the error and spit back a more useful error message at least?

My use case is that I may have to maintain multiple organizations. In theory each organization would have matching Identity Center setups. Of course the OU IDs would be different, so to avoid duplicate templates I want to parametrize the values.
@benkehoe , would you accept a pull request to address this? #30 was closed without a clear resolution.
A good start would be to implement the expected behavior below.
Environment:

The macro is already deployed
The organization has an OU ou-zzzz-zzzzzzzz that contains AWS accounts<PHONE_NUMBER>11 and<PHONE_NUMBER>22

Given a template file ou-ref-template.yaml:
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS-SSO-Util-2020-11-08

Parameters:
  TargetOU1:
    Type: String
    Default: ou-zzzz-zzzzzzzz

Resources:
  Group:
    Type: SSOUtil::SSO::AssignmentGroup
    Properties:
      Principal:
        - Type: USER
          Id: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
      PermissionSet:
        - ps-aaaaaaaaaaaaaaaa
      Target:
        - Type: AWS_OU
          Id: {"Ref": "TargetOU1"}

And given a Bash function to give me the transformed template:
function test-macro {
    template_file="$1"

    aws cloudformation create-change-set \
    --stack-name MacroTest \
    --template-body "file://$template_file" \
    --change-set-name ChangeSet1 \
    --change-set-type CREATE \
    --capabilities CAPABILITY_AUTO_EXPAND \
    > /dev/null

    aws cloudformation wait change-set-create-complete \
    --stack-name MacroTest \
    --change-set-name ChangeSet1

    aws cloudformation get-template \
    --stack-name MacroTest \
    --change-set-name ChangeSet1 \
    --template-stage Processed \
    --query TemplateBody

    aws cloudformation delete-stack \
    --stack-name MacroTest

    aws cloudformation wait stack-delete-complete \
    --stack-name MacroTest
}

Instead of giving me the transformed template, the function shows that that CloudFormation fails to create the change set.
$ test-macro ou-ref-template.yaml

Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state: For expression "Status" we matched expected path: "FAILED"

An error occurred (ValidationError) when calling the GetTemplate operation: ChangeSet template with id ChangeSet1 and stack id MacroTest does not exist

The macro log gives the error AttributeError: 'dict' object has no attribute 'startswith'.
[ERROR]	2023-07-17T07:38:02.391Z	aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa	An error occurred: 'dict' object has no attribute 'startswith'
Traceback (most recent call last):
  File "/var/task/aws_sso_util/cfn_lib/macro.py", line 228, in handler
    output_template, max_stack_resources, resource_collection_dict = process_template(input_template,
  File "/var/task/aws_sso_util/cfn_lib/macro.py", line 112, in process_template
    resource_collection = resources.get_resources_from_config(
  File "/var/task/aws_sso_util/cfn_lib/resources.py", line 413, in get_resources_from_config
    for account in ou_fetcher(ou, recursive=False):
  File "/var/task/aws_sso_lib/lookup.py", line 526, in lookup_accounts_for_ou
    ou_type = "root" if ou.startswith("r-") else "OU"
AttributeError: 'dict' object has no attribute 'startswith'
END RequestId: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa

I expected to get output like this:
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Parameters": {
        "TargetOU1": {
            "Type": "String",
            "Default": "ou-zzzz-zzzzzzzz"
        }
    },
    "Resources": {
        "GroupAssignmentF7CC77_1": {
            "Type": "AWS::SSO::Assignment",
            "Metadata": {
                "SSO": {
                    "AssignmentGroupResourceName": "Group"
                }
            },
            "Properties": {
                "InstanceArn": "arn:aws:sso:::instance/ssoins-aaaaaaaaaaaaaaaa",
                "PrincipalType": "USER",
                "PrincipalId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
                "PermissionSetArn": "arn:aws:sso:::permissionSet/ssoins-aaaaaaaaaaaaaaaa/ps-aaaaaaaaaaaaaaaa",
                "TargetType": "AWS_ACCOUNT",
                "TargetId": "111111111111"
            }
        },
        "GroupAssignmentF7CC77_2": {
            "Type": "AWS::SSO::Assignment",
            "Metadata": {
                "SSO": {
                    "AssignmentGroupResourceName": "Group"
                }
            },
            "Properties": {
                "InstanceArn": "arn:aws:sso:::instance/ssoins-aaaaaaaaaaaaaaaa",
                "PrincipalType": "USER",
                "PrincipalId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
                "PermissionSetArn": "arn:aws:sso:::permissionSet/ssoins-aaaaaaaaaaaaaaaa/ps-aaaaaaaaaaaaaaaa",
                "TargetType": "AWS_ACCOUNT",
                "TargetId": "222222222222"
            }
        }
    }
}

Another use case for this: I want to test my infrastructure configuration in a sandbox organization before I deploy it to my production organization.
There's no easy way to do that when I must embed a literal OU ID in the template.
I could accept duplication for this part of the configuration and deploy one version or the other in my CI pipeline depending on whether the target is sandbox or production.
I could use a Jinja2 template to inject the correct value depending on the target. Sceptre supports this. This might be okay if I can store the sets of values in Sceptre's config. But one of the main selling points of the macro is to avoid templating, right? :slightly_smiling_face:


Doc: Write about add_entry_mapping

Related: #53

I've changed my mind and think that the eager-loading mechanism belongs into the Rails::Engine as it's part of the Rails configuration pattern

I found that entry mapping could return wrong classes when using associations, and contentful_model will not support auto eager-loading for now.
However, since contenful_rails is still work in progress, some people (including me) are using contentful_model directly from Rails. So it seems that adding tips (instead of feature) for eager-loading may help avoiding pitfalls.

Thanks!
Merging


promql: marshal sample pairs to JSON tuples.

@juliusv

:+1: otherwise

Actually, hold off. It also needs a change to the JS to understand the new vector result format.

Adjusted the JSON, added string and scalar.


Looking for a new maintainer

As you may have noticed, development and maintenance of this project has stalled.
imgur-screenshot started when I wanted a simple shell script to take a screenshot and upload it to imgur, usually to paste the link into a chat. Obviously I never expected this many people to use this script, but I'm glad you like it! It somehow™ ended up with a lot of features (and thus more complexity). People keep asking for more features, more support of operating systems, and so forth. While I'm still willing to fix small bugs and help out with issues, I have lost motivation to continue development of this project for the following reasons:

I'm barely using it myself anymore

I mostly use a shortcut that copies a screenshot to the clipboard and paste it wherever I need
If I do use it, it's either a simple screenshot or a plain file. I don't really need and don't use the account, album or any other features.

All of the features add complexity and some require interaction with imgur's API – both of which I believe aren't well suited for a shell script
imgur was first introduced as "an image hosting service that doesn't suck". It has now become a video-focused social media platform (and it sucks, IMO).

If there is a demand for continued development of this script, someone needs to take over the maintainer role. Please let me know below if you're willing to do this! Preferably, but not necessarily someone who has contributed to imgur-screenshot in the past.
So long, and thanks for all the fish.

Not here to maintain your project, but just wanted to thank you for v2

My curiosity in taking part is piqued by the fact that the project is focused on shell scripting.
Shellcheck has been run on imgur-screenshot script and has been inspected.
During shellcheck, a huge number of problems were identified which can be easily fixed.
mvdan/sh may be used with a program named shfmt to format shell scripts.

I actually used shellcheck during development. Out of the "huge number of problems" nearly all of them are intentional decisions where the suggestion of shellcheck doesn't work. I guess -n could be used instead of ! -z, though.

I actually used shellcheck during development. Out of the "huge number of problems" nearly all of them are intentional decisions where the suggestion of shellcheck doesn't work. I guess -n could be used instead of ! -z, though.

If they're intentional decisions then you could just put: # shellcheck disable=SCXXXX at the top.


Plugins: gitfast: show only local branches when autocomplete for "git checkout"

In my work i'm very often use git checkout for switching between branches, and for this help gitfast plugin. But, when i type git checkout and press tab, he show me all branches, local, remote, all. I don't need all, i need only my local (for my work) branches.
Here i make some little changes for this and then think it can be good not only for me.

Hi, and thanks for contributing.
I understand you want to complete only local branches, but the thing is git checkout is not only dedicated to local branches. And since there is a possibility to checkout remote branches as well, they definitely should be offered for completion.
The only way I see this could be acceptable is with a setting, for instance $GITFAST_CHECKOUT_LOCAL_ONLY, that you can set somewhere in your ~/.zshrc.


Boneworks - Ambient A, Boneworks - Existence, Demon's Souls - Souls of Mist, XMB sounds

Insert Pack Name(s) Here
Boneworks - Ambient A
Boneworks - Existence
Demon's Souls - Souls of Mist
XMB
Checklist
Failure to complete this checklist or deleting boxes from the checklist will result in the closing of your pull request unless this is a pack update. Please write any comments regarding this checklist at the bottom of your pull request.
Check every box.

[x] I am the original author of this pack or have permission from the original author to make this pull request.
[x] All copyright of this pack's contents belong to the listed author or is cited in the description and repository linked above.
[x] This theme works properly on the latest versions of SteamOS for Steam Deck, decky-loader and SDH-AudioLoader.
[x] This pack is under 10MB in size and uses the least disk space possible.
[x] This pack is safe for work and does not contain any sexual, drug-related, or profane content.
[x] This pack does not contain loud, distorted, or otherwise bad faith sound files.
[x] This pack is only for either music or sounds and only adds or modifies the intended sound files.

The repo commit that you have listed for all of your packs is not one that exists.
Change it to "03aa1ac" as that is the most recent commit of your repo.

Didn't catch that, should be resolved now.

The repo commit that you have listed for all of your packs is not one that exists.
Change it to 03aa1ac as that is the most recent commit of your repo.

Missed that, should be resolved now.

Thanks for fixing that so quickly, however there appears to be another issue.
Your XMB sound pack has some sounds that have a file and are referenced in the ignore field.
Please go through it and ensure that each sound effect is either a file, or ignored, then the CI should run successfully.

Updated the XMB ignores, didn't realize it would cause an issue since it didn't seem to cause issues when I was testing it. Hopefully all good now.

Pack is missing ui_steam_message_old_smooth.m4a
It appears not every sound was fixed lol.
The pack will still work locally, it's just that the CI ensures there are no duplicates in order for a theme to be merged.

Should hopefully, actually be good now, Windows shuffled that one to the end of the folder because it was .m4a so I didn't catch it. Sorry about hitting every branch on the way down the tree here, I couldn't get the checker to work locally.

Should hopefully, actually be good now, Windows shuffled that one to the end of the folder because it was .m4a so I didn't catch it. Sorry about hitting every branch on the way down the tree here, I couldn't get the checker to work locally.

All good lol, glad we could sort it out


Imagestream naming

This PR makes sure we get three things right:

imagestream argument for ImportImagePlugin
docker_image_repo argument for ImportImagePlugin
name of trigger that built image depends on

Also, the second commit fixes minor issue, where openshift url for check_and_set_rebuild wasn't previously substituted in BuildRequest.

The thing I'm not sure about is whether we want to limit osbs-client to Dockerfiles that have Name label specified (which this PR effectively does). IMO this is ok, but if someone thinks otherwise, speak up.

I've made a separate pull request for the check_and_set_rebuild fix, so that this pull request can be examined independently.

I'll remote the commit from this PR, then. (Just for reference, the commit is now in PR #195).

Just a note: the BuildConfigs and ImageStreams are both tracking the same units, so they ought to use the same names as each other.

Done, should be ready for merge.

I added a commit that addresses issues found in previous commits. Everything should be fine now.

Good catch. I'll just do a force push to not introduce a new commit...

LGTM


Hub Snapshots

Overview
A Hub snapshot contains the DB and bucket/file data. They can be used to prime an instance for demos, backup/restore and reverting to a snapshot in time.

Created
Listed
Exported
Imported
Deployed
Deleted

Snapshot Anatomy (tarball):

/snapshot.yaml - manifest YAML file about the snapshot.

name: The name of the snapshot.
key: (optional) The encryption key (encrypted using a password).

/hub.db - The sqlite3 DB file.
/bucket - The bucket tree.

Snapshots stored on the /snapshot PV.
Workflows:
List
route: GET /snapshots
returns: A list of created or uploaded snapshots.  (Listing of name: found in manifests).
Export
route: POST /snapshots/export
body: A password used to encrypt the encryption key.
returns: streamed snapshot (tarball).
Create
route: POST /snapshots/:name
actions:

Create /snapshot/uuid/snapshot.yaml (with name).
Create /snapshot/uuid/snapshot.tar.gz

Import
route: POST /snapshots/import/:name
body:  multi-part file upload of a tarball and the password used to encrypt the encryption key.
action:

Store the uploaded in snapshot (tarball) in /snapshot/uuid
Extract /snapshot.yaml and decrypt the key using the password.
Encrypt key in /snapshot.yaml using the (local) encryption key and update the extracted file.

Deploy
route: POST /snapshot/deploy/:name
action: Create a symlink /snapshot/deploy => the snapshot (directory) to be deployed.
Deploy Flow in Hub main.

Detect /snapshot/deploy
Extract the tarball
Update Settings.Hub.DB.Path = /snapshot/deploy/hub.db.
Update Settings.Hub.Bucket.Path = /snapshot/deploy/bucket
Run migration
Re-Encrypt identities using the key in /snapshot/deploy/snapshot.yaml and the (local) encryption key.
Replace the Live hub.db and /bucket (tree) snapshot.
Delete (unlink) /snapshot/deploy.
Reload Settings.Hub.
Start services.

Hey Jeff, sounds good, I'm adding few quick notes on this topic from slightly different point of view (to ideally get the best solution in the end).
Generally
Use the sqlite database file (with buckets) for export/import/backup/restore seems reasonable to me.
Few cons about exporting the raw database file first

partial imports are not possible (e.g. python script does GETs on all resources from import dump before actual POST calls, so if there is no collision in IDs, data can be imported even to non-empty Hub)
it will be harder to change exported data manually before import

However pros are winning IMO

database versioning&migrations => allows import (most of) older export archives (Hub API doesn't have anything like that)
work with all-in-one archive, not needed to update this feature with each API resources change
...

Flow
A logic managing Snapshots might not be that far from some kind of Tenancy (separation of Konveyor data to Projects). Not exactly with the Flow described above, but if such feature would be reasonable to PM/Ramon, implement a switching of data files (sqlite&buckets) might be worth discussion.
Identities encryption
Just to be sure I understand correctly. An encryption key is not part of database, but comes fom Hub env (so will not be exported from the Konveyor instance and thats reason an export key is needed to re-encrypt idetities without exporting original key)?

The encryption key is stored in a secret.  The original (source) encryption key is needed to decrypt the identities when the snapshot is imported at the destination.  The key encrypted using a password supplied by the user when the snapshot is created/exported.  The password is used to encrypt the encryption key so that it is not stored in the clear in the tarball. The same password is supplied by the user when the snapshot is imported and used to decrypt the key which is then encrypted using the destination encryption key.

One thing to consider is how does this work with OADP/velero and if we need/should write instructions for users. I think we would have to use some hook and then teach OADP how to back up the hub.
Just some thoughts but something to consider as I think this will work for a lot of users, and honestly how I would probably use it, but I wonder how easy it would be to use with a tool like velero

Just note, I think this feature should be used from UI as well as from automated tools or scripts (e.g. RHPDS), so we'd need provide curl commands or put these calls to a simple CLI (or kantra).

Could you explain the user case from a user experience perspective?
I understand, as a user, that I want to backup and restore. But it sounds like there are other use cases that we are discussing and trying to follow them.
Sorry if this is somewhere else and I just have not read it

One thing to consider is how does this work with OADP/velero and if we need/should write instructions for users. I think we would have to use some hook and then teach OADP how to back up the hub.
Just some thoughts but something to consider as I think this will work for a lot of users, and honestly how I would probably use it, but I wonder how easy it would be to use with a tool like velero

@shawn-hurley I don't know anything about how to use OADP .  Can you describe the steps for using OADP to accomplish the use cases?

OADP is an operator that installs velero, I would look into this: https://docs.openshift.com/container-platform/4.14/backup_and_restore/application_backup_and_restore/oadp-intro.html
If you need more help we can reach out to the team internally