(PUP-7665) CGI escape JSON facts for uploading

Using the new Puppet::Util.uri_query_encode facility, encode JSON facts for
uploading as we do PSON facts. Update specs to expect encoded facts.
Because we now encode the facts on upload, we also need to unencode them in
the catalog compiler terminus.

Signed-off-by: Moses Mendoza<EMAIL_ADDRESS>

With the following file, on an agent with this PR:
☂ : cat /etc/puppetlabs/facter/facts.d/facts.yaml
---
space: "foo bar"
plus: "foo+bar"
star: "foo*bar"
hash: "foo#bar"
percent: "foo%bar"
ampersand: "foo & bar"

Confirmed that facts are uploaded successfully and facts are retrieved:
<- "POST /puppet/v3/catalog/ubuntu16.localdomain?environment=production HTTP/1.1\r\nAccept: application/json, application/x-msgpack, text/pson\r\nX-Puppet-Version: 5.0.0\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nUser-Agent: Puppet/5.0.0 Ruby/2.3.1-p112 (x86_64-linux-gnu)\r\nHost: centos7.localdomain:8140\r\nContent-Length: 15501\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n"
<- "environment=production&facts_format=application%2Fjson&facts=%257B%2522name%2522%253A%2522ubuntu16.localdomain%2522%252C%2522values%2522%253A%257B%2522puppetversion%2522%253A%25225.0.0%25...%2522ampersand%2522%253A%2522foo%2520%2526%
2520bar%25...
...
-> "HTTP/1.1 200 OK\r\n"
-> "Date: Fri, 16 Jun 2017 06:19:20 GMT\r\n"
-> "Content-Type: application/json;charset=utf-8\r\n"
-> "X-Puppet-Version: 5.0.0\r\n"
...
Info: Caching catalog for ubuntu16.localdomain
Info: Applying configuration version '1497593961'
Notice: Applied catalog in 0.06 seconds

CLA signed by all contributors.


nm bond: Support switch between miimon and arp_interval

The linux kernel document suggest no to use miimon with ARP monitoring:
ARP monitoring should not be used in conjunction with miimon.

Hence nmstate will raise NmstateValueError when both miimon and
arp_interval is bigger than zero.
Fix the NM bug on setting 'arp_internal=0' with 'miimon>0':
https://bugzilla.redhat.com/show_bug.cgi?id=1806549

Coverage remained the same at ?% when pulling 5bf61f56952d29d1052be59c747e36f9603e74b9 on cathay4t:miimon into 6a79a8ff0402e8102e231ecb90654f716b5b8a2b on nmstate:master.

@cathay4t this failed the black lint check

@cathay4t this failed the black lint check

Fixed. Thanks.

@cathay4t this failed the black lint check

Fixed. Thanks.

There seems to be still an error.

@cathay4t this failed the black lint check

Fixed. Thanks.

There seems to be still an error.

Forgot to push. Should be OK now.


Include a note on ARM and x86 agent support

Add a note on ARM and x86 support, as v2.141.0 breaks a the implicit assumption that tasks can only run on x64.

@TingluoHuang another small PR for you to look at 😄

Should we consider exposing this as a function that returns an enum to make it easier for task authors?

@stephenmichaelf how about we merge here and follow up on adding the convenience function in #405 (which was created to address that exact issue). Are you comfortable with that?


Allow returning Result<*mut T, _> and Result<*const T, _> from async functions

The following code does not work currently, the goal of this PR is to fix it.
#[wasm_bindgen]
pub async fn foo() -> Result<*mut (), JsError> {
     Ok(std::ptr::null())
}

The base error is:
the trait bound `std::result::Result<*mut T, _>: wasm_bindgen::__rt::IntoJsResult` is not satisfied
the following other types implement trait `wasm_bindgen::__rt::IntoJsResult`:
  std::result::Result<(), E>
  std::result::Result<T, E>

The same code does compile using a sync function.

You need to update crates/macro/ui-tests/async-errors.stderr to fix CI:
diff --git a/crates/macro/ui-tests/async-errors.stderr b/crates/macro/ui-tests/async-errors.stderr
index 492492a1..f4ebb478 100644
--- a/crates/macro/ui-tests/async-errors.stderr
+++ b/crates/macro/ui-tests/async-errors.stderr
@@ -40,8 +40,8 @@ error[E0277]: the trait bound `wasm_bindgen::JsValue: From<BadType>` is not sati
                <wasm_bindgen::JsValue as From<&'a String>>
                <wasm_bindgen::JsValue as From<&'a T>>
                <wasm_bindgen::JsValue as From<&'a str>>
-               <wasm_bindgen::JsValue as From<JsError>>
-             and 73 others
+               <wasm_bindgen::JsValue as From<*const T>>
+             and 75 others
      = note: required because of the requirements on the impl of `Into<wasm_bindgen::JsValue>` for `BadType`
      = note: required because of the requirements on the impl of `IntoJsResult` for `BadType`
 note: required by `into_js_result`


[GOBBLIN-1089] Refactor policyChecker for extensibility

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA
- https://issues.apache.org/jira/browse/GOBBLIN-1089

Description

A simple refactor for extensibility of internal use cases.

Tests

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

Commits

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

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

Codecov Report

Merging #2930 into master will decrease coverage by 0.95%.
The diff coverage is 19.04%.

@@             Coverage Diff              @@
##             master    #2930      +/-   ##
============================================
- Coverage     45.57%   44.62%   -0.96%
+ Complexity     9147     8976     -171
============================================
  Files          1936     1936
  Lines         73206    73213       +7
  Branches       8080     8081       +1
============================================
- Hits          33363    32668     -695
- Misses        36749    37496     +747
+ Partials       3094     3049      -45

Impacted Files
Coverage Δ
Complexity Δ

...blin/qualitychecker/row/RowLevelPolicyChecker.java
35.80% <0.00%> (-1.86%)
3.00 <0.00> (ø)

...alitychecker/row/RowLevelPolicyCheckerBuilder.java
80.00% <100.00%> (+1.87%)
8.00 <3.00> (+2.00)

...gobblin/runtime/mapreduce/GobblinOutputFormat.java
0.00% <0.00%> (-100.00%)
0.00% <0.00%> (-2.00%)

...askStateCollectorServiceHiveRegHandlerFactory.java
0.00% <0.00%> (-100.00%)
0.00% <0.00%> (-2.00%)

...re/filesystem/FsDatasetStateStoreEntryManager.java
0.00% <0.00%> (-100.00%)
0.00% <0.00%> (-3.00%)

...in/runtime/mapreduce/CustomizedProgresserBase.java
0.00% <0.00%> (-83.34%)
0.00% <0.00%> (-1.00%)

...rg/apache/gobblin/runtime/ZkDatasetStateStore.java
0.00% <0.00%> (-80.77%)
0.00% <0.00%> (-7.00%)

...lin/runtime/locks/LegacyJobLockFactoryManager.java
0.00% <0.00%> (-78.58%)
0.00% <0.00%> (-2.00%)

.../apache/gobblin/metastore/ZkStateStoreFactory.java
0.00% <0.00%> (-71.43%)
0.00% <0.00%> (-2.00%)

...he/gobblin/runtime/ZkDatasetStateStoreFactory.java
0.00% <0.00%> (-71.43%)
0.00% <0.00%> (-2.00%)

... and 40 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 7252f68...ef8f5cc. Read the comment docs.


getInitialPayload is always null

Describe the bug
After tapping the notification the app will come to foreground but the InitialPayload is not set. While debugging the android project it seems that the FCMPluginActivity is never created. (onCreate is never called)
Also on iOS getInitialPayload data is always null. However, on iOS the onNotification event fires, so it is no problem here.
Environment
Plain cordova. No ionic.
Payload
our incoming payload looks like this ('onNotification' result):
"wasTapped":false,
"siteId":"638583848",
"notificationType":"Message",
"alertKey":"0~T~8584cbc0-429f-4490-927c-0d124dd7bbad...",
"title":"Axis Strasse Bewegung",
"click_action":"FCM_PLUGIN_ACTIVITY"

so the click action is set
Package.json of the cordova project
I created a new project to replicate this issue:
{
  "name": "io.cordova.hellocordova",
  "displayName": "HelloCordova",
  "version": "1.0.0",
  "description": "A sample Apache Cordova application that responds to the deviceready event.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "ecosystem:cordova"
  ],
  "author": "Apache Cordova Team",
  "license": "Apache-2.0",
  "devDependencies": {
    "cordova-android": "^9.0.0",
    "cordova-plugin-device": "^2.0.3",
    "cordova-plugin-fcm-with-dependecy-updated": "^7.7.0",
    "cordova-plugin-whitelist": "^1.3.4"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-whitelist": {},
      "cordova-plugin-fcm-with-dependecy-updated": {
        "ANDROID_DEFAULT_NOTIFICATION_ICON": "@mipmap/ic_launcher",
        "ANDROID_FCM_VERSION": "21.0.0",
        "ANDROID_FIREBASE_BOM_VERSION": "26.0.0",
        "ANDROID_GOOGLE_SERVICES_VERSION": "4.3.4",
        "ANDROID_GRADLE_TOOLS_VERSION": "4.1.0"
      },
      "cordova-plugin-device": {}
    },
    "platforms": [
      "android"
    ]
  }
}

config.xml of the cordova project
<?xml version='1.0' encoding='utf-8'?>
<widget id="de.***.app" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>HelloCordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author<EMAIL_ADDRESS>href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html"/>
    <plugin name="cordova-plugin-whitelist" spec="1"/>
    <access origin="*" subdomains="true"/>
    <allow-navigation href="*"/>
    <allow-intent href="http://*/*"/>
    <allow-intent href="https://*/*"/>
    <allow-intent href="tel:*"/>
    <allow-intent href="sms:*"/>
    <allow-intent href="mailto:*"/>
    <allow-intent href="geo:*"/>
    <platform name="android">
        <allow-intent href="market:*" />
        <preference name="android-minSdkVersion" value="26"/>
        <preference name="android-targetSdkVersion" value="29"/>
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
</widget>

Any help is much appreciated :)

I think getInitialPayload() gets triggered when the app is opened by clicking on the notification from killed state, not background state.
Killed state on ios means, that the app is not running in the background.

I think getInitialPayload() gets triggered when the app is opened by clicking on the notification from killed state, not background state.
Killed state on ios means, that the app is not running in the background.

The getInitialPushPayload only load if the app has a notification that was erased from notification center.
Try whit
this.fcm.getInitialPushPayload().then(data => { if(data != null) { 	// show data }}) .catch(e => console.log('ErrorPayload', e))

Hello,
I'm having the same problem, the app is killed -> getInitialPushPayload data null

Update
  ->setNotification(AndroidNotification::create()->setClickAction('FCM_PLUGIN_ACTIVITY')) --> this line solved the problem (using laravel)

Same problem here, but only on Android.. On iOS, getInitialPushPayload() returns with an object. On Android, it returns only with null.

Is there any solution for this? If not then which version is stable to use? @andrehtissot

Is there any update on this issue?

Thanks to @GroupeBEL  at https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated/issues/223#issuecomment-785798244 - this solution worked for me as well.
Stack: Android app running Vue (Quasar framework), notifications sent via npm's firebase-admin package

Is there any solution for this bug? I send message from the Firebase console, and the initialPayload is null (I tried to add "click_action":"FCM_PLUGIN_ACTIVITY" as custom data, but not helped..)

I am experiencing this problem on Android too


Wrap up

This PR hopefully brings the last changes to be able to merge into main.
Mainly:

generate the last pieces of the stm module
some last minutes fixes
new tests
dependencies

History is rewritten and should be correct :crossed_fingers:


chore(flight): unify documentation

#149794556 unify documentation
#### What does this PR do?
#### This PR adds a sort of uniformity to the documentation

#### Description of Tasks to be completed
#### N/A

#### How should this be manually tested?
#### N/A

#### Any background context you want to provide?
#### No

#### What are the relevant pivotal tracker stories?
#### Unify Documentation

#### Screenshots (if appropriate)
#### None

#### Questions:
#### None

Coverage remained the same at 100.0% when pulling 2aa803277c6f0ba1e85ecd9919b36fce8b384e83 on chore/149794556/unify-docs into cde2fe13f0fc0c48108a873a32acd0bdb9e0cb62 on master.


Typo in name

When reviewing your template, we noticed that there is a typo in the name: Google Sheets Weebhook. Otherwise this looks good.

Thanks for the warning, I updated it

Thanks for the warning, I updated it
Andy Lanzone @.***>, 13 Nis 2024 Cmt, 00:18 tarihinde
şunu yazdı:

When reviewing your template, we noticed that there is a typo in the name: Google
Sheets Weebhook. Otherwise this looks good.
—
Reply to this email directly, view it on GitHub
https://github.com/agolca123/google-sheets-webhook/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ATOZMQYJOKAG2FKX65FFVTLY5BFS5AVCNFSM6AAAAABGEZSC3KVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2DAOJTGQ2DEMQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Great, thanks!
Can you also update the sha value in metadata.yaml to match? It should be 531f97a05758506db1f25654c0b97ac5f0f0cde1.

I change it

Thanks!


SPI for Hint

Ref #5017.

Codecov Report

Merging #5169 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##             master    #5169   +/-   ##
=========================================
  Coverage     54.16%   54.17%
  Complexity      406      406
=========================================
  Files          1158     1158
  Lines         20528    20530    +2
  Branches       3703     3703
=========================================
+ Hits          11120    11122    +2
  Misses         8719     8719
  Partials        689      689

Impacted Files
Coverage Δ
Complexity Δ

...trategy/YamlHintShardingStrategyConfiguration.java
100.00% <ø> (ø)
1.00 <0.00> (ø)

...pper/ShardingStrategyConfigurationYamlSwapper.java
95.52% <100.00%> (+0.13%)
0.00 <0.00> (ø)

Continue to review full report at Codecov.

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

Pull Request Test Coverage Report for Build 11018

8 of 8 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.004%) to 57.594%

Totals

Change from base Build 11015:
0.004%

Covered Lines:
11824

Relevant Lines:
20530

💛  - Coveralls


Download Maven rather than bundle it

In order to decrease size of spring boot jar, download Maven from instead the web instead of bundling it.

done


BUG Fix issue with Requirements mangling custom scripts

API Remove deprecated $template parameter from Requirements::includeInHTML
Also includes various PHP style warnings in Requirements.php

I thought I had posted a fix a while back that dealt with all the whitespace errors?

Maybe it was re-introduced from a merge up from 3 branch? It happens regularly.

:shipit:

Thank you.

when I merge up I tend to use the -X ignore-all-space option as it makes merging significantly easier - though I'm not sure who's white-space it keeps :/


Combine _current_display_calc and _current_eval_calc in CalculatorData into a single list

Combine the display and eval strings in calculatordata into a single list, so that we don't get drift between the two formats.  See attached proof of concept for details.

proof_of_concept.py.txt

This could allow a change to how backspace works, once current_input is exhausted it could continue.
It could also change how 1/x and sqrt work, but that would require parsing the current calculation to find matching parenthesis. Could at least allow 1/ or sqrt() at a minimum.
It could also allow addition of an explicit multiplication operator for things like adding an open parenthesis or adding a variable.

Implicit multiplcation will require more thought, splitting into separate issue.

All unit tests are passing, functional testing seems okay, closing issue.


K8SPS-283: Add HAProxy for group replication

CHANGE DESCRIPTION
Problem:
Marco doesn't like MySQL Router.
Solution:
We're allowing users to deploy HAProxy with group replication.
CHECKLIST
Jira

[ ] Is the Jira ticket created and referenced properly?
[ ] Does the Jira ticket have the proper statuses for documentation (Needs Doc) and QA (Needs QA)?
[ ] Does the Jira ticket link to the proper milestone (Fix Version field)?

Tests

[ ] Is an E2E test/test case added for the new feature/change?
[ ] Are unit tests added where appropriate?

Config/Logging/Testability

[ ] Are all needed new/changed options added to default YAML files?
[ ] Are the manifests (crd/bundle) regenerated if needed?
[ ] Did we add proper logging messages for operator actions?
[ ] Did we ensure compatibility with the previous version or cluster upgrade process?
[ ] Does the change support oldest and newest supported PS version?
[ ] Does the change support oldest and newest supported Kubernetes version?

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
failure

demand-backup
passed

gr-bootstrap
failure

gr-demand-backup
failure

gr-ignore-annotations
failure

gr-init-deploy
failure

gr-one-pod
failure

gr-scaling
failure

gr-tls-cert-manager
failure

haproxy
failure

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

semi-sync
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/c43d31918ec4d1d65cf6cc96589d7958e922e168
image: perconalab/percona-server-mysql-operator:PR-399-c43d319

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
failure

demand-backup
passed

gr-bootstrap
failure

gr-demand-backup
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
failure

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 23 out of 23

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/458111bdc9f0ba9e12346d180d26e810e8a4ada6
image: perconalab/percona-server-mysql-operator:PR-399-458111b

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
failure

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 23 out of 23

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/96261513f5151887521937031fa3735c4d5b3492
image: perconalab/percona-server-mysql-operator:PR-399-9626151

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 23 out of 23

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/96261513f5151887521937031fa3735c4d5b3492
image: perconalab/percona-server-mysql-operator:PR-399-9626151

Test name
Status

async-ignore-annotations
failure

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
failure

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 23 out of 23

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/6545f6c942b659965ae60582c10fafea8e503056
image: perconalab/percona-server-mysql-operator:PR-399-6545f6c

Test name
Status

async-ignore-annotations
failure

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
failure

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
failure

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/58d1a318fc801cfe018e47e54d2086204fabd4d1
image: perconalab/percona-server-mysql-operator:PR-399-58d1a31

Test name
Status

async-ignore-annotations
failure

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
failure

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/b0931913c41f0d8a29aa52f60326c17a43f2d075
image: perconalab/percona-server-mysql-operator:PR-399-b093191

Test name
Status

async-ignore-annotations
failure

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
failure

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/275ec015c034d0b8fe55c756086a899920d2fdd4
image: perconalab/percona-server-mysql-operator:PR-399-275ec01

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/988ce81a00abb31aacd0231604cdf5c73e602098
image: perconalab/percona-server-mysql-operator:PR-399-988ce81

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
failure

monitoring
failure

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/0c704be3c36b52561913b540ddc775f2d65ae6e2
image: perconalab/percona-server-mysql-operator:PR-399-0c704be

Test name
Status

async-ignore-annotations
failure

auto-config
failure

config
failure

config-router
passed

demand-backup
failure

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
failure

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
failure

init-deploy
failure

limits
passed

monitoring
failure

one-pod
failure

scaling
failure

service-per-pod
failure

sidecars
failure

tls-cert-manager
passed

users
failure

version-service
failure

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/5f7b5bef0b696e68a318de86aed79ba4250e83bc
image: perconalab/percona-server-mysql-operator:PR-399-5f7b5be

Test name
Status

async-ignore-annotations
failure

auto-config
failure

config
failure

config-router
passed

demand-backup
failure

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
failure

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
failure

init-deploy
failure

limits
passed

monitoring
failure

one-pod
failure

scaling
failure

service-per-pod
failure

sidecars
failure

tls-cert-manager
passed

users
failure

version-service
failure

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/5f7b5bef0b696e68a318de86aed79ba4250e83bc
image: perconalab/percona-server-mysql-operator:PR-399-5f7b5be

Test name
Status

async-ignore-annotations
failure

auto-config
failure

config
failure

config-router
passed

demand-backup
failure

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
failure

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
failure

init-deploy
failure

limits
passed

monitoring
failure

one-pod
failure

scaling
failure

service-per-pod
failure

sidecars
failure

tls-cert-manager
passed

users
failure

version-service
failure

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/c37637250b54609665e11073d1d389d4871e0482
image: perconalab/percona-server-mysql-operator:PR-399-c376372

Test name
Status

async-ignore-annotations
passed

auto-config
passed

config
passed

config-router
passed

demand-backup
passed

gr-bootstrap
passed

gr-demand-backup
passed

gr-haproxy
passed

gr-ignore-annotations
passed

gr-init-deploy
passed

gr-one-pod
passed

gr-scaling
passed

gr-tls-cert-manager
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring
passed

one-pod
passed

scaling
passed

service-per-pod
passed

sidecars
passed

tls-cert-manager
passed

users
passed

version-service
passed

We run 24 out of 24

commit: https://github.com/percona/percona-server-mysql-operator/pull/399/commits/8b99311ca560c17248e9e7e20c6fbb7b5d591758
image: perconalab/percona-server-mysql-operator:PR-399-8b99311


[Request] Changing Squeezer Removal

Right now the Squeezer has the OutputFluid as an option for the removal. However, using the InputStack for the removal would be much more convenient and less tedious.

@Voidi you think you could do this as well? Jared's been off.

Don't have that much time at the moment, let it open

The squeezer needs an ItemStack array to remove... and that would mess up the undo command.


visidata: 2.1 -> 2.1.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for visidata is: "Interactive terminal multitool for tabular data"
meta.homepage for visidata is: "http://visidata.org/"
meta.changelog for visidata is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2.1.1 with grep in /nix/store/1lm34dfi0fm4m7jsdzg58m095x5774ln-visidata-2.1.1

directory tree listing: https://gist.github.com/6e38fd6ac2066e59478e1536bccaed87

du listing: https://gist.github.com/2ad869c76809f9c0090de8e1004c769f

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
visidata

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1lm34dfi0fm4m7jsdzg58m095x5774ln-visidata-2.1.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A visidata https://github.com/r-ryantm/nixpkgs/archive/9708bf6d965fada4ea37fcf5b5d39cd1436004a0.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1lm34dfi0fm4m7jsdzg58m095x5774ln-visidata-2.1.1
ls -la /nix/store/1lm34dfi0fm4m7jsdzg58m095x5774ln-visidata-2.1.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

visidata

Maintainer pings
cc @7c6f434c for testing.

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

1 package successfully build:

visidata

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

1 package successfully build:

visidata

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108393 run on x86_64-darwin 1

1 package built:

visidata

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108393 run on x86_64-darwin 1

1 package built:

visidata


Missing "modules.root" entry in package.json

Please check: https://github.com/ReactTraining/react-router/issues/5576#issuecomment-338150863

The modules spec does not require packages to have a modules.root field, so webpack should not be relying on this field to be present in order to work properly. Besides, we publish a single-file build now, so modules.root would not be necessary for us since there are no relative paths to resolve.


[SUGGESTION]Save To /username/photos or /username/videos

Hey, just tried the software and tried to mass download using txt file with links.
When saving, it saves to /username/videoid_video/video.mp4
What if you can make it so it saves only at /username/videos and photos at /username/photos/
It would be much easier to scroll through everything or even organize them.
If this is not in your vision, make a setting/option inside app to allow users to save them in this method.
Edit: Also, if possible, I don't know if it can be done without breaking anything,but to increase the download speed, can download be in multithreads for faster downloading?

Thanks for trying the downloader and sharing your suggestion!

I'll be adding an option in the app settings for editing the file structure.

just FYI: I made the file structure as it is currently because I noticed that Windows seems to struggle loading all the video and image previews, which increased the loading times by up to 10 seconds depending on how many videos and images are stored in one user folder. And yes, sure, turning off previews would be an option, but it doesn't make it easy finding specific videos, if you ask me.

Regarding multithreaded (faster) downloading, I'll explore ways to implement it without compromising stability.

Thank you for your feedback, Appreciate it :)

Hey @snapboss ,
Just wanted to inform you that I've implemented your request for the file structure change, and it's ready for the next release.
- Regarding multithreaded (faster) downloading, it's a bit harder than I thought at the moment, but it's something I want to add in the next couple of releases to come.

Hey @snapboss , Just wanted to inform you that I've implemented your request for the file structure change, and it's ready for the next release.
- Regarding multithreaded (faster) downloading, it's a bit harder than I thought at the moment, but it's something I want to add in the next couple of releases to come.

Perfect. As per faster downloading, it's fine if it's not possible right now. I can always split the links list in 2 parts and open 2 instances of the app.


reframe-tests outdated on Piz Daint

The release of ReFrame available on Piz daint through the modulefile is 2.17.
If a user loads the modulefile, the private checks available are frozen to the build time.
For instance, the check LoginEnvCheck_rpm looks to a reference file dated April 1st:
Command line: /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/bin/reframe --partition=normal --recursive --strict --exec-policy=async --job-option=--exclusive --keep-stage-files --save-log-files --timestamp=%F_%H-%M-%S --prefix /scratch/snx3000/lucamar/lucamar/reframe -n LoginEnvCheck_rpm -l
Reframe version: 2.17
Launched by user: lucamar
Launched on host: daint106
Reframe paths
=============
    Check prefix      : /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17
(R) Check search path : 'checks/'
    Stage dir prefix     : /scratch/snx3000/lucamar/lucamar/reframe/stage/2019-07-29_14-39-34
    Output dir prefix    : /scratch/snx3000/lucamar/lucamar/reframe/output/2019-07-29_14-39-34
    Perf. logging prefix : /scratch/snx3000/lucamar/lucamar/reframe/perflogs
List of matched checks
======================
  * LoginEnvCheck_rpm (found in /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/checks/private/prgenv/prgenv_check.py)
Found 1 check(s).

The timestamp of the reference file is shown below:
-rw-r--r-- 1 jenscscs jenscscs 2.8K Apr  1 22:53 /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/checks/private/prgenv/prgenv_check.py

The file has been updated several times, but the user would need to manually clone the repository reframe-test and use the option -c ... to add the updated private checks to the checkpath, otherwise the check will fail, as shown in the example below:
Command line: /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/bin/reframe --partition=normal --recursive --strict --exec-policy=async --job-option=--exclusiv
e --keep-stage-files --save-log-files --timestamp=%F_%H-%M-%S --prefix /scratch/snx3000/lucamar/lucamar/reframe -n LoginEnvCheck_rpm -r
Reframe version: 2.17
Launched by user: lucamar
Launched on host: daint105
Reframe paths
=============
    Check prefix      : /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17
(R) Check search path : 'checks/'
    Stage dir prefix     : /scratch/snx3000/lucamar/lucamar/reframe/stage/2019-07-29_10-32-31
    Output dir prefix    : /scratch/snx3000/lucamar/lucamar/reframe/output/2019-07-29_10-32-31
    Perf. logging prefix : /scratch/snx3000/lucamar/lucamar/reframe/perflogs
[==========] Running 1 check(s)
[==========] Started on Mon Jul 29 10:32:32 2019

[----------] started processing LoginEnvCheck_rpm (Environment check: rpm)
[ RUN      ] LoginEnvCheck_rpm on daint:login using PrgEnv-cray
[----------] finished processing LoginEnvCheck_rpm (Environment check: rpm)

[----------] waiting for spawned checks to finish
[     FAIL ] LoginEnvCheck_rpm on daint:login using PrgEnv-cray
[----------] all spawned checks have finished

[  FAILED  ] Ran 1 test case(s) from 1 check(s) (1 failure(s))
[==========] Finished on Mon Jul 29 10:32:33 2019

==============================================================================
SUMMARY OF FAILURES
------------------------------------------------------------------------------
FAILURE INFO for LoginEnvCheck_rpm
  * System partition: daint:login
  * Environment: PrgEnv-cray
  * Stage directory: /scratch/snx3000/lucamar/lucamar/reframe/stage/2019-07-29_10-32-31/daint/login/PrgEnv-cray/LoginEnvCheck_rpm
  * Job type: local (id=6602)
  * Maintainers: ['RS', 'VH']
  * Failing phase: sanity
  * Reason: sanity error: Login environment has changed:
--- ref_rpm_daint.log   2019-04-01 22:53:22.000000000 +0200
+++ captured_rpm.log    2019-07-29 10:32:33.000000000 +0200
@@ -1,2 +1,2 @@
[...]

Is it possible to create a Jenkins project to update the private checks periodically inside the existing reframe installations on the production systems?

The same issue occurs with the tests under cscs-checks:  if I load the module reframe/2.17 on Piz Daint I get the following checks matching cp2k:
  * cp2k_cpu_prod_check (found in /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/checks/apps/cp2k/cp2k_check.py)
  * cp2k_cpu_maint_check (found in /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/checks/apps/cp2k/cp2k_check.py)
  * cp2k_gpu_prod_check (found in /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/checks/apps/cp2k/cp2k_check.py)
  * cp2k_gpu_maint_check (found in /apps/common/UES/jenkins/SLES12/easybuild/software/reframe/2.17/checks/apps/cp2k/cp2k_check.py)

However, if I change the checkpath with -c ... to find the cloned repository in my local folder, I get this list instead:
  * Cp2kCpuCheck_small_maint (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)
  * Cp2kCpuCheck_small_prod (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)
  * Cp2kCpuCheck_large_maint (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)
  * Cp2kCpuCheck_large_prod (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)
  * Cp2kGpuCheck_small_maint (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)
  * Cp2kGpuCheck_small_prod (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)
  * Cp2kGpuCheck_large_maint (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)
  * Cp2kGpuCheck_large_prod (found in /users/lucamar/reframe/cscs-checks/apps/cp2k/cp2k_check.py)

The daily checks run by jenkins use the latter, therefore it should be better to update the cscs-checks folder of the existing installation of reFrame on Piz Daint as well with a separate Jenkins project.

@lucamar Tests currently run on Daint are not using the master, since the master targets CLE7.  The have been frozen to previous change and cannot change. Only those in the private reframe-tests can be changed, which include the environment checks.

@vkarak I think this is no longer relevant.

@teojgo Yes, indeed.


Invalid gemfile generated when using latest rails

New rails applications already have Redis in the gemfile, and the generator just hucks Redis in there without making sure it's not already there.

Rails 8 doesn't have redis anymore, it is easy to solve in older rails versions too.


WinSW does not return error if it cannot delete the running process

If I try to delete the Running service, WinSW neither fails nor prints warnings. It is not what I would expect from the CLI tool.
Expected behavior:

If the service is running, print a warning and returns a non-zero code

Actual behavior:

The service just silently exists

#165 Adds some diagnostics for it, but ideally it should exist with an error code


Allow direct comparison to checkpointed templates

Get attempted checks for a notebook like in Attempt.checks, but also return the nodes of the right-hand-side of assignments. Now get source code snippets given the original source and replace the RHS in code with values from the chk namespace obtained from executing the notebook.
Remove all lines not starting with chk in code cells after the first.
Produce template notebooks in this fashion.

Let the checkpointed template be the source of the input and checkpoints, garnered from astroid. Then, get_inp could be used to pull in those, and get_chk would still be blank.
The checks to compare against will then be embedded in the notebook, and can be represented as an Attempt type or possibly a Checks type?


A way to view all messages sent to and from the server

This should be available on all pages (login, game board, chat etc). I've wanted this feature for a while, it would be very useful for me as a server side developer.
Related to #35, but for development debugging rather than user error reporting.
If possible, I would also like to be able to input hand written messages. This could perhaps be done by exposing a function that can be invoked from the console window.sendMessage = function(msg) {...}.

In #110, it was added as console.log messages, is this sufficient? Or what format would be desired for this?

I suggest using something like debug or something that can be removed using dead-code elimination
if (__DEBUG__) {
  console.log('something')
}

The debug package seems very useful :+1:

The debug package is now being used as of 32082f4827e473e72902f318c4a645ea3a9c8560

I'd like to see (and had initially planned to include) a server console which can be displayed in the HTML client as well. I can't imagine it would be very complicated to just pipe the JSON from the game server to a redux store (or some client-side data structure). Any ideas?

As of Vue.js client #144 all server WebSocket messages are displayed in browser console. We can revisit this if we decide to implement a console for the client, but for now I consider this resolved.


Generate python class for query parameters named object

We name our query parameters with a top-level name (docs here).
This generates a TS type for an object with all the query parameters on it. It would be nice to get a Pydantic type in Python with all the query parameters on it, so if we want to pass around all the query parameters, we don't have to re-define the shape ourselves.
We don't necessarily need to have to update the signatures of the endpoint handlers to use the named object instead of the flattened query parameters.

closing due to inactivity


There is no documentation for how to build with alternative framework versions.

Summary
The build.cmd script will try to build, currently, with sdk version "8.0.100-preview.1.23115.2".
It will try to download and install that SDK.  But what if I don't want to build with a preview of SDK 8.0.100 ?
I have SDK 7.0.104, and I presume yarp builds with the prior SDK.  It has done so, in the past.
I would like the README or a separate .md file (BUILDING.md ? ) to describe the options for building.  What SDKs are supported?  How to modify the global.json file and how to invoke the build.ps1 script to build on other SDKs. An explanation of what is not possible.
Failing that, a blog post, yt video, or a tweet describing how.
To Reproduce
On a machine that does not have SDK 8.0.100-preview.1.23115.2 installed, Run .\build.cmd and you will see a notice that the build script is going to download and install an SDK.
Further technical details

current master of reverse-proxy
Windows 10
.NET SDK 7.0.104

The build script will install the necessary SDK for you. You can also do it manually (the exact version is specified in the global.json).

But what if I don't want to build with a preview of SDK 8.0.100 ?

Why is that?
If you extract just the /src/ReverseProxy folder, that should be buildable standalone with an older SDK.

This project will require the 8.0 SDK once we start working on 8.0 specific features (soon?). Use the SDK provided by build.cmd.

Triage: For building YARP repo, 8.0 SDK is needed. We are about to add 8.0 TFM - see #2083.
Closing as answered. Let us know if you have more concerns.

Thanks for the speedy reply. I understand what you wrote.
Maybe I don't understand the intent of YARP.
What if a team wants to standardize on .NET 7.x, and is not ready to move to 8.0?  This would not be unusual as .NET 8.0 is still preview.  Is there a way to build YARP, or ... am I limited to just using one of the pre-built releases?

YARP consumers should use the nuget package https://www.nuget.org/packages/Yarp.ReverseProxy/2.0.0, that will work with lower SDKs, you don't need to build this repo.

There's also a continuous build package feed if you want newer features, but yes these will be previews:
https://github.com/microsoft/reverse-proxy/blob/main/docs/DailyBuilds.md

ok thanks.


fix: apimanagement/resource-manager/Microsoft.ApiManagement

containining -> containing

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-js

Can one of the admins verify this patch?

Automation for azure-sdk-for-go

Automation for azure-sdk-for-java

@solankisamir PTAL


serviceinformation with custom domains overwritem

When working with custom domains, the extractor don't get that information, therefore when the publish runs it get rid of all custom domains you have configured
maybe related to the issue #46

Extractor no longer generates the serviceinformation.json file


Update _entity-audit.component.html

Related to issue #89

Weird errors on continuous integration

@deepu105 errors seem to be from the jhipster generator

Hi @deepu105
#92 seems to have exactly the same errors. If Node's version need to be upgrade, is this file is correct?


Execute Button Go away after executing a multisig transaction

While this is kinda known issue. as it takes some time before Safe Transaction Service to index the transaction. We do have some polling in place. But we may want to relook at what we can do here. @adamgall changes to the loading proposals could help fix this as we can look into only updating a specific proposal rather than going refreshing all the proposals

@Da-Colon is there a typo in the title? What's the issue here?

Closing due to https://github.com/decentdao/decent-interface/pull/1990#issuecomment-2163179907


[BUG] split_trajectories does not produce the right output

Describe the bug
When using split_trajectories to split a tensordict of shape (150,) into a tensordict of shape (3,50), I get a tensordict of shape (6, 50).
In my setup, 1 episode = 50 steps, I did a test with 3 episodes this gives us a tensordict of shape (3 x 50 = 150).
When looking at the tensordict["collector"]["traj_ids"] we can see the different trajectories and they make sense.
To Reproduce

create a sync data collector with -1 total frames

max_nb_frames = self.eval_num_rollouts * self.env_max_frames_per_traj

assert (
    max_nb_frames % self.eval_frames_per_batch == 0
), "Number of frames per batch should be a divisor of the total number of frames"

nb_iters = max_nb_frames // self.eval_frames_per_batch

rollouts_data = []
for i, eval_data_batch in enumerate(
    tqdm(self.eval_data_collector, "Evaluation", total=nb_iters)
):
    if eval_data_batch.ndim == 2:
        eval_data_batch = eval_data_batch.flatten()
    eval_data_batch = eval_data_batch.select(
        ("collector", "traj_ids"),
        ("next", "reward"),
        ("next", "done"),
        "action",
        "pixels",
        "pixels_masked",
        strict=False,
    ).cpu()
    rollouts_data.append(eval_data_batch)

    if i + 1 == nb_iters:
        break

rollouts_data_concatenated = torch.cat(rollouts_data, dim=0)

output = split_trajectories(rollouts_data_concatenated)

Or you can load the torch tensors that I used to observe the bug :

rollout data: https://filebin.net/zsyi73np2q49anr3/rollouts_data.pt
rollouts_data_concatenated: https://filebin.net/zsyi73np2q49anr3/rollouts_data_concatenated.pt
output : https://filebin.net/zsyi73np2q49anr3/output.pt

Expected behavior
A tensordict of shape (B, T) where T = the biggest trajectory, in my case B = 3 and T = 50.
Actual behavior
A tensordict of shape (6, 50)
System info
Describe the characteristic of your environment:

Describe how the library was installed (pip, source, ...): pip
Python version: 3.10

print(torchrl.__version__, numpy.__version__, sys.version, sys.platform)
0.6.0 1.26.4 3.10.16 | packaged by conda-forge | (main, Dec  5 2024, 14:16:10) [GCC 13.3.0] linux

Checklist

[x] I have checked that there is no similar issue in the repo (required)
[x] I have read the documentation (required)
[x] I have provided a minimal working example to reproduce the bug (required)

In my setup, 1 episode = 50 steps, I did a test with 3 episodes this gives us a tensordict of shape (3 x 50 = 150).
When looking at the tensordict["collector"]["traj_ids"] we can see the different trajectories and they make sense.

Hmm not sure I can see that
rollouts_data[0]["collector", "traj_ids"]
Out[7]:
tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1])
rollouts_data[1]["collector", "traj_ids"]
Out[8]:
tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1])
rollouts_data[2]["collector", "traj_ids"]
Out[9]:
tensor([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
        2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
        3, 3])

The trajs go 0 -1 - 0 - 1 - 2 - 3
It should be strictly increasing. Any idea what could be going on?
If I correct them split_trajectories works fine
rollouts_data_concatenated["collector", "traj_ids"][50:] += 2
output = split_trajectories(rollouts_data_concatenated)
output["collector", "traj_ids"]
Out[15]:
tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
         1],
        [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
         2],
        [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
         3],
        [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
         4],
        [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
         5]])

@vmoens I see, I'm using Maniskill3 (2 parallel env) which is why it is outputting traj_ids [0,...,0,...,1,...,1] then [0,...,0,...,1,...,1] in the next iteration.
If sorting them to be strictly increasing fixes the issue then I believe this is more of a documentation issue so that people can sort their data correctly for split_trajectories (or should split_trajectories do it?)

Can you elaborate on what format the data comes in?
I don't think it's split_traj responsibility of sorting the data, it'd be very hard to get something generic and efficient enough.

The format is (B, T) where B = nb of batched envs and T = time.

I don't think it's split_traj responsibility of sorting the data, it'd be very hard to get something generic and efficient enough.

Fair enough!

This gives me the right result
import torch
from torchrl.collectors.utils import split_trajectories

rollouts_data = torch.load("/Users/vmoens/Downloads/rollouts_data.pt", weights_only=False)
rollouts_data = [r.view(2, -1) for r in rollouts_data]
rollouts_data_concatenated = torch.cat(rollouts_data, -1)

output = split_trajectories(rollouts_data_concatenated)
print(output["collector", "traj_ids"])

so you just need to separate the batch and time dim (like you suggested above) and split_traj will know what to do
tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0],
        [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
         2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
         1, 1],
        [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
         3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0]])


add cloud tasks protos

Superseded by https://github.com/google/go-genproto/pull/68; an update to the cloudtasks dir.


geterr only returning syntaxDiag

From https://github.com/microsoft/vscode/issues/88209

TypeScript Version:  3.7.4

Symptoms
@dbaeumer Has reported seeing stale typescript errors in VS code. When looking over a trace of what  VS Code gets back from TypeScript, it seems that at some point we only start getting back syntaxDiag errors from geterr and not semanticDiag (look at request 1433 for example)
This starts around request 1380, which is a geterr request that is canceled before being fully completed. I wonder if this would be leaving the server in an inconsistent state.
@dbaeumer Can you also please try collecting the TS Server log for this case

I attach trace log of my scenario: https://github.com/microsoft/vscode/issues/88209#issuecomment-572219893
This is the same issue.
ts-trace.log

@epranka Is that the complete log? I don't see any calls to format.

@epranka Is that the complete log? I don't see any calls to format.

It's only TS server log

we need tsserver log using typescript nightly drop to take a look at this.
You can upload logs by following these steps:

Set "typescript.tsserver.log": "verbose"
Restart vscode or vscode insiders
Reproduce the problem
In vscode or vscode insiders, run the TypeScript: Open TS Server log command
This should open a large file called tsserver.log. Please share this file.

tsserver.log

tsserver.log.txt

Looking at the log and the TS server code the problem seems to be a thrown Error when computing the diagnostics caused here: https://github.com/Microsoft/TypeScript/blob/release-3.7/src/compiler/checker.ts#L30455
Shouldn't the code check if iterationTypes !== noIterationTypes as well and not only for undefined.
At least my case looks like a dup of https://github.com/microsoft/TypeScript/issues/32953

@sheetalkamat @RyanCavanaugh any news on this. I see this quite frequent (ever ~10 minutes).


What version of the Graph API does fb use?

The graph API is set for an upgrade in April: https://developers.facebook.com/docs/apps/upgrading

I was also wondering about this too since I can't find which version of the Facebook API this library supports up to listed anywhere.


chore: Add skipped unit test to cover setup->nonSetup->setup

Signed-off-by: Sebastian Malton<EMAIL_ADDRESS>

We made a minimal reproduction of this, and have full understanding of the issue described. However...
The solution is to stop using setuppable as it has now been removed for being deprecated. Instead, proposed solution is to do something delegate-like as such: di.injectMany(someRunnableToken).forEach(runnable => runnable.run());. This is more clear in intent, controllable and simple.


Update Ruby version to latest (2.2.5)

Rails 5 depends on Ruby >= 2.2.2. I'm updating here to the latest available in the 2.2.x series as suggested in #224.
We should consider how existing users will migrate - hopefully there'll be no impact if they re-deploy to Heroku, but are there other providers or situations that we should document in the release notes, perhaps?
Also, we could just make the leap to 2.3.x directly - I'm not aware of any breaking changes, but we'd have to change the "minimum requirements" in the README and there aren't any important improvements in 2.3.x that we can't live without, so probably no need yet.

Please add to Rails 5 Update milestone.

I think ruby version should be removed from Gemfile. It should be managed by ruby version managers live rvm or rbenv. Otherwise, its impossible to use any other version and another point of maintenance of code.

Ruby version should be in Gemfile. Both Flynn and Heroku setup the latest version if it isn't. which could be an issue in future

Hey Oleg, I understand what you mean, and agree it seems arbitrary to "lock" the Ruby version.
The logic is that we require a minimum Ruby version (e.g. 2.2.2 beyond Rails 5), and need to convey this dependency, ideally with no user input.
I have noticed that the following is actually valid in the Gemfile, although I've never seen it used before (no idea why not)+:
ruby ">= 2.2.2", "< 2.4.0"

This - as you would expect - allows us to specify a valid range of Ruby versions, and also addresses @hadifarnoud's concerns about unexpected future changes (eg. in Ruby 2.4 or above).
On a side note, it's still advisable to use rbenv (or rvm) to manage Ruby versions and install the (required) version.
+ I haven't checked whether this Gemfile syntax is supported on Heroku (for example) yet.

@hadifarnoud @olliebennett Hey! Thanks for the answers.
Is Heroku only one real target?

https://devcenter.heroku.com/articles/ruby-support#libraries
Here's the Bundler version on Heroku right now, I'm surprised it hasn't been updated in the last two months.

Ruby version specifiers now supported
https://devcenter.heroku.com/changelog-items/1014

#339 seems related

Great, let's close this as the linked issue is indeed related, and more up to date.


Upgrading to 0.10.2 leads to exceptiongroup error

After upgrading to v0.10.2 my CI system started failing, giving the following error:
Traceback (most recent call last):
  File "/home/alex/code/FINESSE/.venv/bin/pytest", line 5, in <module>
    from pytest import console_main
  File "/home/alex/code/FINESSE/.venv/lib/python3.9/site-packages/pytest/__init__.py", line 5, in <module>
    from _pytest._code import ExceptionInfo
  File "/home/alex/code/FINESSE/.venv/lib/python3.9/site-packages/_pytest/_code/__init__.py", line 2, in <module>
    from .code import Code
  File "/home/alex/code/FINESSE/.venv/lib/python3.9/site-packages/_pytest/_code/code.py", line 60, in <module>
    from exceptiongroup import BaseExceptionGroup
ModuleNotFoundError: No module named 'exceptiongroup'

Full output here: https://github.com/ImperialCollegeLondon/FINESSE/pull/58
It appears that the exceptiongroup package is not being installed via poetry, though it isn't obvious why.
Any ideas?

This does not appear to be related to pytest-mypy. Please reopen if that's not correct.


Main branch pauses videos when app background

Yesterday i used main branch and now i am seeing videos pauses when put app in background.
Is it related to latest changes ?

Hi @kalismeras61,
The videos were always meant to pause in background on Android & iOS. We have an option to configure it:
https://github.com/media-kit/media-kit/blob/88c49c6c0f6187a131a4053f0f1a3a42f2922a8a/media_kit_video/lib/src/video/video_texture.dart#L129-L130
I can think further if you specify your platform.

I was testing IOS it was working fine before but yesterday i wanted to use main branch but seems it is not working.
this.pauseUponEnteringBackgroundMode = false
this.resumeUponEnteringForegroundMode = true,
Above one is correct for working background and still keeps playing on foreground?

Yes. It should work.

Do share any update.

Do share any update.

Tested an seems not working!. Now reverted back to pub.dev version


[Avocado] False Positive MISSING_APIS_IN_DEFAULT_TAG

Avocado PR pipeline check in PR 24518 reports MISSING_APIS_IN_DEFAULT_TAG for two operations that were removed from a preview version but not present in the prior GA version.

These two operations were removed intentionally, and it is allowed to remove operations that are only in preview in the next preview version.

This came up in Breaking Change office hours on 7/3. There was some discussion about whether a preview version should be specified as the default tag. I don't know if there is any documentation on this.


Help:Can I access Cordova SQLite database within Capacitor SQLite plugin to fetch those data

Hi,
I have an old Ionic 3/ Angular native app. It has used this Cordova Sqlite plugin: https://github.com/storesafe/cordova-sqlite-storage
The new version of the app has Ionic 6/Angular and Capacitor SQLite plugin. i.e. it is a completely new app. But we need to use the same bundle id as Ionic 3.
My question is this. Can I access the old SQLite Cordova database and its table within this new SQLite capacitor plugin? Because I need to fetch those old data to the new tables of the new app. i.e. all the tables and database names and etc are all new to the new SQLite capacitor plugin app. i.e. old Cordova SQLite tables are having different names and etc.
Please let me know. Thanks!
This is the package.json file of the Ionic 3 app:
{
    "name": "test",
    "version": "1.0.1",
    "author": "Ionic Framework",
    "dependencies": {
        "@angular/animations": "5.2.11",
        "@angular/common": "5.2.11",
        "@angular/compiler": "5.2.11",
        "@angular/compiler-cli": "5.2.11",
        "@angular/core": "5.2.11",
        "@angular/forms": "5.2.11",
        "@angular/http": "5.2.11",
        "@angular/platform-browser": "5.2.11",
        "@angular/platform-browser-dynamic": "5.2.11",
        "@ionic-native/app-version": "4.20.0",
        "@ionic-native/camera": "4.20.0",
        "@ionic-native/contacts": "4.20.0",
        "@ionic-native/core": "4.20.0",
        "@ionic-native/device": "4.20.0",
        "@ionic-native/diagnostic": "4.20.0",
        "@ionic-native/file": "4.20.0",
        "@ionic-native/file-chooser": "4.20.0",
        "@ionic-native/file-opener": "4.20.0",
        "@ionic-native/file-path": "4.20.0",
        "@ionic-native/geolocation": "4.20.0",
        "@ionic-native/keyboard": "4.12.0",
        "@ionic-native/local-notifications": "4.20.0",
        "@ionic-native/location-accuracy": "4.12.0",
        "@ionic-native/network": "4.20.0",
        "@ionic-native/safari-view-controller": "4.20.0",
        "@ionic-native/screen-orientation": "4.20.0",
        "@ionic-native/secure-storage": "4.20.0",
        "@ionic-native/social-sharing": "4.20.0",
        "@ionic-native/splash-screen": "4.20.0",
        "@ionic-native/sqlite": "4.20.0",
        "@ionic-native/sqlite-porter": "4.20.0",
        "@ionic-native/status-bar": "4.20.0",
        "@ionic-native/zip": "4.20.0",
        "@ionic/storage": "2.2.0",
        "@ngx-translate/core": "9.1.1",
        "@ngx-translate/http-loader": "2.0.1",
        "accounting-js": "1.1.1",
        "angular-oauth2-oidc": "3.1.4",
        "angular2-draggable": "1.4.2",
        "cordova-ios": "6.1.1",
        "cordova-plugin-add-swift-support": "2.0.2",
        "cordova-plugin-app-version": "0.1.9",
        "cordova-plugin-appavailability": "0.4.2",
        "cordova-plugin-badge": "0.8.8",
        "cordova-plugin-camera": "4.1.0",
        "cordova-plugin-device": "2.0.3",
        "cordova-plugin-file": "6.0.2",
        "cordova-plugin-file-transfer": "1.7.1",
        "cordova-plugin-filechooser": "1.2.0",
        "cordova-plugin-filepath": "1.5.8",
        "cordova-plugin-inappbrowser": "4.0.0",
        "cordova-plugin-ionic-webview": "4.2.1",
        "cordova-plugin-local-notification": "0.9.0-beta.3",
        "cordova-plugin-network-information": "2.0.2",
        "cordova-plugin-safariviewcontroller": "1.6.0",
        "cordova-plugin-secure-storage-android10": "6.0.2",
        "cordova-background-geolocation-plugin": "1.0.0",
        "cordova-plugin-splashscreen": "5.0.4",
        "cordova-plugin-statusbar": "2.4.3",
        "cordova-plugin-whitelist": "1.3.4",
        "cordova-plugin-x-socialsharing": "5.6.4",
        "cordova-plugin-zip": "3.1.0",
        "css-element-queries": "1.2.3",
        "es6-promise-plugin": "4.2.2",
        "ionic-angular": "3.9.10",
        "ionic-plugin-keyboard": "2.2.1",
        "ionicons": "4.6.3",
        "jszip": "3.3.0",
        "moment": "2.24.0",
        "npm": "6.14.4",
        "rxjs": "5.5.12",
        "sw-toolbox": "3.6.0",
        "text-encoding": "0.7.0",
        "tus-js-client": "2.1.1",
        "uk.co.workingedge.cordova.plugin.sqliteporter": "1.1.1",
        "web-animations-js": "2.3.2",
        "zone.js": "0.9.1"
    },
    "devDependencies": {
        "@ionic/app-scripts": "3.2.3",
        "@types/jasmine": "2.8.9",
        "@types/node": "8.0.45",
        "ajv": "6.12.0",
        "angular2-template-loader": "0.6.2",
        "cordova-android": "9.1.0",
        "cordova-ios": "5.1.0",
        "cordova-plugin-secure-storage-echo": "5.1.1",
        "html-loader": "0.5.5",
        "istanbul-instrumenter-loader": "3.0.1",
        "jasmine": "2.5.3",
        "jasmine-spec-reporter": "4.1.0",
        "karma": "1.5.0",
        "karma-chrome-launcher": "2.0.0",
        "karma-coverage-istanbul-reporter": "1.3.0",
        "karma-jasmine": "1.1.0",
        "karma-jasmine-html-reporter": "0.2.2",
        "karma-sourcemap-loader": "0.3.7",
        "karma-webpack": "2.0.3",
        "null-loader": "0.1.1",
        "protractor": "5.1.1",
        "ts-loader": "3.5.0",
        "ts-node": "3.3.0",
        "typescript": "2.7.2",
        "webpack": "2.7.0",
        "webpack-dev-server": "2.11.5",
        "webpack-merge": "3.0.0"
    },
    "description": "An Ionic project",
    "cordova": {
        "plugins": {
            "cordova-plugin-whitelist": [],
            "cordova-plugin-device": [],
            "cordova-plugin-splashscreen": [],
            "ionic-plugin-keyboard": [],
            "cordova-plugin-camera": [],
            "cordova-plugin-file": [],
            "cordova-plugin-file-transfer": [],
            "cordova-plugin-filechooser": [],
            "cordova-plugin-appavailability": [],
            "cordova-plugin-network-information": [],
            "cordova-plugin-statusbar": [],
            "cordova-plugin-x-socialsharing": {
                "ANDROID_SUPPORT_V4_VERSION": "24.1.1+"
            },
            "cordova-sqlite-storage": [],
            "cordova-plugin-filepath": [],
            "cordova-plugin-safariviewcontroller": [],
            "cordova-plugin-ionic-webview": {
                "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
            },
            "cordova-plugin-app-version": [],
            "cordova-plugin-zip": [],
            "cordova-plugin-add-swift-support": [],
            "uk.co.workingedge.cordova.plugin.sqliteporter": [],
            "cordova-plugin-local-notification": [],
            "cordova-plugin-secure-storage-echo": [],
            "cordova-plugin-inappbrowser": [],
            "cordova-background-geolocation-plugin": {
                "GOOGLE_PLAY_SERVICES_VERSION": "11+",
                "ANDROID_SUPPORT_LIBRARY_VERSION": "26+",
                "ICON": "@mipmap/icon",
                "SMALL_ICON": "@mipmap/icon",
                "ACCOUNT_NAME": "@string/app_name",
                "ACCOUNT_LABEL": "@string/app_name",
                "ACCOUNT_TYPE": "$PACKAGE_NAME.account",
                "CONTENT_AUTHORITY": "$PACKAGE_NAME"
            }
        },
        "platforms": [
            "ios"
        ]
    }
}

Hi,
I have seen this doc https://github.com/capacitor-community/sqlite/blob/master/docs/MigratingCordovaDatabases.md
Please let me know how can I use it in my situation above? i.e. I need to read the old db table values and then fetch those dat to the new db schema on the Capacitor plugin. Thanks!

@Sampath-Lokuge there are two ways

migrate the databases from where they where stored by the cordova plugin as shown in the doc your mentioned and then you can use them with the standard plugin commands. The database will have the SQLite suffix.
use a non-conform connection which allow to connect to the database where there are stored by the cordova plugin without the SQLite suffix.  ( case where this database is used by several cordova plugin look at the NCcreateConnection method.

@Sampath-Lokuge look at the doc non-conformed databases. Hope this clarify

Ok sure. I'll try with the first workflow and will let you know. Thanks!

All are working fine. Thanks a lot for the nice utility methods.

@Sampath-Lokuge i am happy of this. Have a good development of your app

Great! Yes, of course. Thanks!


feat(strm-1882): add micro-aggregation batch job & FieldMetaData support

:tada: This PR is included in version 3.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Information left in the entry point announce plugin is not present in data

Hi! I just realised that in the latest version of the server the information declared in the announce plugin is not present in the data. For instance, we use this field to record the 'computer number' using box: 31, the Box value was present in earlier versions but seem to have disappeared.
I am just putting below the way the data is entered in case that is the source of the problem, but I don't think so.
Cheers!

Noted, I'll try to replicate it when I get a chance. Does this happen with every experiment?

I just checked experiments from Nov 2022 and the field is missing, I suspect this happened during the last update and I did not notice until now.

I cannot reproduce the issue. Could it simply be that automatic logging of all variables is disabled, and that the box variable is not explicitly included in the logger item?

Yes, automatic logging of all variables is disabled.
"that the box variable is not explicitly included in the logger item"
It is not, I thought the logger item was for variables in the experiment, not in the entry point... so each variable in the entry point needs to go into the logger item? That explains the problem.
Do you think it would be useful to make the entry point variables implicitly included in the logger?

Do you think it would be useful to make the entry point variables implicitly included in the logger?

No ;-) The entry point variables are no different from the perspective of the experiment from any other experimental variable. They only have a different source. So if you use them, the same rules apply as for other variables: they are logged either if all variables are automatically logger or if they are explicitly marked for logging.

Ok let's go with that.


Feature Request: Monogram Gas Range (or Dual Fuel) - Addition of cooktop status (burner is on or off).

The Monogram gas or dual fuel ranges report if a burner is on/off within SmartHQ.  Great for one to understand if the range has been left on.
SmartHQ reports the cooktop burner status (for each burner), but the GEhome repository does not include this status. Would you please consider adding this reporting?  If there is a way I can assist, please reach out and am happy to do so.  Thanks!

Closing as a duplicate of #159, let's figure it out over there.  The support has potentially been added to the SDK, just need some people to help test to confirm.


issue with MathJax Latin Modern fonts on Firefox using native MathML output [was Upgrade latin modern math to 1.959]

see https://bugs.launchpad.net/ubuntu/+source/lmodern/+bug/1502701

Thanks for filing this.
Their README seems to only contain a comment on the changes. Those indicate only one relevant change (fixing contour integrals positions); we could fix that without regenerating the fonts if we wanted.

it says:

Changes were made to the HHEA and OS/2 tables (all fonts) and the contour integrals (Pagella, Termes, Latin Modern).

and the important bugfix is the OS/2 thing. without it, firefox displays everything as if the line height was super tall

MathJax repackaged the fonts for its internal use, and I don't believe that the HHEA and OS/2 tables are taken from the original, but rather are created anew.  Also, MathJax's HTML-CSS output does its own positioning and clipping, so the line height would not affect the surroundings even if it were.  The SVG output uses font paths, not the font itself, so the change is immaterial.  Finally, the CommonHTML output doesn't support Latin Modern at the moment.  So I don't think there should be any issue with the current version of the Latin Modern fonts that MathJax uses.

i had the described problem because my system chose to use mathjax’ version of Latin Modern Math from https://github.com/mathjax/MathJax/archive/2.7.0.tar.gz (fontforge says it’s 1.958)
this means the font’s OS/2 table packaged there has the bug.
so either the way that table is created has to be fixed or the source font has to be upgraded.

I'm a little confused as the archive you mention doesn't include Latin Modern Math.  All the MathJax Latin Modern fonts should be named LatinModernMathJax_ followed by something like Main or Monospace or any of 2 dozen other names.  But none of them is Math.  The internal names should be "Latin Modern MathJax Main", etc., if you are looking at them in FontForge.
I'm not sure what you mean by "your system chose" MathJax's versions, since these are non-standard names and should not be ones used by other applications.  They are not intended for use by other applications, and the font has been broken up into pieces that are only useful to MathJax.  Can you be more specific about what is actually happening?
The only thing I can think of is that "Latin Modern MathJax Main" is being truncated by your system to "Latin Modern Math" for some reason (but since that is 17 characters, that doesn't seem likely).

this means the font’s OS/2 table in that font has the bug.

For its use in MathJax that doesn't matter.  The MathJax fonts are not meant to be system fonts used in other ways, so if your system is picking them up for use outside of MathJax, perhaps you can block the MathJax directory from your font system?

and the important bugfix is the OS/2 thing. without it, firefox displays everything as if the line height was super tall

I'm guessing you use the NativeMML output and somehow force Firefox to use  LatinModernMathJax_xxx fonts; neither is advisable from a MathJax point of view. But you should be able to install a font that Firefox supports (e.g., the original Latin Modern fonts) and then configure Firefo to force that font for MathML content (there's a configuration option nowadays).

the internal name is “Latin Modern Math”:
$ fc-match 'Latin Modern Math'
LatinModernMathJax_Alphabets-Regular.woff: "Latin Modern Math" "Regular"

disabling “Latin Modern Math” with KDE’s systemsettings weirdly renames all font files so that they start with a dot and adds a disabledfonts.xml with this content:
<disabledfonts>
  <font family="Latin Modern Math" weight="80" width="100" slant="0" >
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Arrows-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Normal-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_NonUnicode-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Size5-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Latin-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Shapes-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_DoubleStruck-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Size3-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Operators-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Monospace-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Size2-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Size1-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Alphabets-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Size7-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Misc-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Script-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Size6-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Size4-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Variants-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Symbols-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Fraktur-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Main-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_Marks-Regular.woff" foundry="PfEd"/>
   <file path="/usr/share/fonts/mathjax/HTML-CSS/Latin-Modern/woff/.LatinModernMathJax_SansSerif-Regular.woff" foundry="PfEd"/>
  </font>
</disabledfonts>

I did nothing of the sort.

Sorry, I didn't mean to imply any intention, just that your system configuration ends up doing what it's doing.
Thanks for the additional data on the family; we'll check what we can do. As @dpvc wrote, blocking those MathJax fonts would be the sensible.
And as I wrote, you should be able to install the original Latin Modern fonts (they're on debian/ubuntu) and set the preference in Firefox to use them for MathML.

I apologize too, that first sentence was too harsh! I wanted to say that I didn’t force firefox to use the font, I guess it’s just used because of its “Preferred Family” being in a font stack used for MathML rendering.
I don’t know how to priorize fonts of the same name, especially not from firefox. Firefox asks fontconfig, fontconfig probably just uses whatever if there’s no rule telling it otherwise (so I can just use a rule to block those files to work around this bug)

I don’t know how to priorize fonts of the same name, especially not from firefox.

Check Preferences => Content => Fonts advanced => "fonts for" => Math

I’d say this isn’t a [Question], right?

On the one hand, I've filed a bug in the dev-tools repo regarding font updates. On the other hand, your issue is unrelated to MathJax itself -- it can't control what fonts are installed on a system, let alone what fonts Firefox uses with its native MathML rendering. That is why we advise not to use MathML output anymore -- the results are unpredictable and outside our control.

Hi, since I had to circumvent this again on another system, I came across this bug again.
It might be unrelated to MathJax-the-tool, but it’s an issue with a patched font you ship in this repo, which is clearly bugged in two ways:

It is an old version with bugged metrics that can be fixed by upgrading it
Your renaming procedure was incomplete. The “Preferred Family” TTF name is still “Latin Modern Math”

It would be nice to fix one or both of these issues.
In 337361c1cd4c9465385bc267a7b14dcc09ab0a53/#611 you “regenerated the fonts”. What does that mean? Is there a script somewhere?

Is there a script somewhere?

That would be https://github.com/mathjax/MathJax-dev.

Closing this in favor of https://github.com/mathjax/MathJax-dev/issues/21


List project headnodes

We said a while ago that we wanted this, and now one of our early adopters at MIT has specifically asked about it.

This looks good to me +1

+1


NEW Set many_many_extraFields data via the ORM

There is currently no easy way to set extra fields on a many_many relationship using the ORM after items have already been added. This PR fills that gap.
The implementation closely follows the way these fields are set in add().
I did try using an SQLUpdate but it didn't work with composite fields.
See silverstripe/developer-docs#10 for docs.
Parent issue

https://github.com/silverstripe/silverstripe-framework/issues/10425

Rebased on 4 to get latest CI fixes

Not sure why that one unit test is failing, but it's not related to this PR.


Removing the „AirDrop“-Entry in macOS High Sierra

On macOS Sierra the AirDrop-Entry in the Finder SideBar can be removed with the following line:
mysides remove domain-AirDrop nwnode://domain-AirDrop
On macOS High Sierra this is no longer possible. It seams that the AirDrop Entry has no name on High Sierra:
mysides list
 -> nwnode://domain-AirDrop
I've tried to simply omit the name:
mysides remove nwnode://domain-AirDrop
but this doesn't work:
neq all
Could not find sidebar item with display name: nwnode://domain-AirDrop
am i missing something? how could this be accomplished?

The only way I found to get rid of items like that was to do: /usr/local/bin/mysides" remove all
every time and rebuild the items I wanted on the sidebar from scratch.

I'm trying to do the opposite - I want to add AirDrop. To no avail.

I'll review the code again and see if I can get anything working.


Do not block the database during archive creation

The database transaction in doArchive is currently held open for the entirety of the archive generation process. For larger repositories this could be a long time. If the database is sqlite3 (others not tested) then this can block other processes from using the database, which e.g. leads to long load times for the web UI route of all repositories on the gitea server, among other things. This patch finishes the transaction right before generating the archive and starts a new one to update the database afterwards.
You can reproduce the issue with the following steps:

create a git repository with a large file (e.g. 1GB seems sufficient to see the issue)
commit the file and push to a gitea instance using a sqlite database
from the web UI start a .tar.gz (or .zip) download
try to navigate to the same or another repository
observe a long loading time until the archive is created (i.e. the download starts)

I am new to Go and therefore not sure if this is the most idiomatic way to fix this. I essentially just copied the way the transaction is created in the beginning to after the archive is created and .Commit and .Closed before that. Specifically I am not sure if I would have to propagate the err from .Close as well, since that is deferred in the beginning which would silence the error as well, right? Is this "double .Close" from the defer and the explicit call OK to do?

How about moving the archive generation before database updates?

That would work if the doArchive function is only ever called when the archive should definitely be created, but the existence of https://github.com/go-gitea/gitea/blob/170177c40527716d938b4e7f05a27cfb9a52be86/services/repository/archiver/archiver.go#L189-L194 suggests that this is not the case, i.e. there can be a situation in which the archive shouldn't be created. I am not familiar enough with the codebase to judge if that would be a real issue though, or if it would "just" be unnecessary work.

That would work if the doArchive function is only ever called when the archive should definitely be created, but the existence of
https://github.com/go-gitea/gitea/blob/170177c40527716d938b4e7f05a27cfb9a52be86/services/repository/archiver/archiver.go#L189-L194
suggests that this is not the case, i.e. there can be a situation in which the archive shouldn't be created. I am not familiar enough with the codebase to judge if that would be a real issue though, or if it would "just" be unnecessary work.

Yes, that's a simpler lock mechanism based on database. And I think this is only affecting sqlite but for other database, it works.

And I think this is only affecting sqlite but for other database, it works.

Yes, I think the underlying issue is sqlite's limitations in regard to concurrent reads/writes. Holding the transaction open for the entire duration of archive creation seems to even block read access to the database.
Other databases do not have these limitations, although keeping the transaction open for a long time might have some effect there as well, like increased resource usage and such to accommodate this situation.
Some sqlite options, like WAL mode, might also have an effect on how this issue manifests itself, but I haven't tested out anything in that regard.

It's better to use the current globallock modules to instead of database operations.

Can you help to confirm that #32186 can resolve the problem?

Replaced by #32186


Enable reverse engineering of an exsiting Azure SQL Data Warehouse database

fixes #15487

@smitpatel Updated

@aspnet/build - to advice on the error in YAML file.

@natemcmaster I think you were looking at the variable group issue? (BTW RaaS doesn't support this repo apparently: https://github.com/aspnet/AspNetCore-Internal/issues/2321)

@ErikEJ - Thanks for contribution.
I ran tests locally and they all passed fine.
Also pushing to master was failing so did merge from here
D:\code\ExternalContributions\EntityFrameworkCore [master ↑1]> git push
Counting objects: 7, done.
Delta compression using up to 6 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (7/7), 707 bytes | 707.00 KiB/s, done.
Total 7 (delta 5), reused 5 (delta 4)
remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Required status check "license/cla" is expected.
To github.com:aspnet/EntityFrameworkCore.git
 ! [remote rejected]     master -> master (protected branch hook declined)
error: failed to push some refs to 'git@github.com:aspnet/EntityFrameworkCore.git'

Any ideas @bricelam @natemcmaster ?

Opened https://github.com/dotnet/core-eng/issues/6161. The error message you are seeing is consistent between PRs and CI builds.


Explicit return type of array_to_vector utility function

There are two types of dense vectors:

pyspark.ml.linalg.DenseVector
pyspark.mllib.linalg.DenseVector

In spark-3.1.1, array_to_vector returns instances of pyspark.ml.linalg.DenseVector.
The documentation is ambiguous & can lead to the false conclusion that instances of
pyspark.mllib.linalg.DenseVector will be returned.
Conversion from ml versions to mllib versions can easly be achieved with
mlutils.convertVectorColumnsToML helper.
What changes were proposed in this pull request?
Make documentation more explicit
Why are the changes needed?
The documentation is a bit misleading and users can lose time investigating & realizing there are two DenseVector types.
Does this PR introduce any user-facing change?
No
How was this patch tested?
No test were run as only the documentation was changed

Can one of the admins verify this patch?

ok to test

Test build #137792 has started for PR 32255 at commit 66b2564.

Test build #137792 has finished for PR 32255 at commit 66b2564.

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

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

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/42321/

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

Merged to master


Normalized to Data Centre in Swedish.

And fixed the name in English.

Minor changes, will merge directly.


[6.x] Allow runwayListing scope to modify the order

This PR moves the orderBy clause to after runwayListing has been run, and make it conditional on whether an orderBy clause already exists.
Let me know where to make a test for this as I cant see any coverage of the scopes?
Replaces https://github.com/statamic-rad-pack/runway/pull/433

@ryanmitchell Unfortunately, this appears to have broken sort ordering in the admin panel for models that do not apply an order in the runwayListing scope. See https://github.com/statamic-rad-pack/runway/issues/437


WIP: Typed bindings

What does the pull request do?
Still a work in progress, but opening a PR for visibility.
Implements typed bindings which provide a non-boxing, no-reflection pipeline for binding values.
The TypedBinding{TIn, TOut} class represents a strongly-typed binding as opposed to Binding which boxes value types. It is represented as a set of delegates:

Read reads the value given a binding input
Write writes a value given a binding input
Links holds a collection of delegates which when passed a binding input return each object traversed by Read. For example if Read is implemented as x => x.Foo.Bar.Baz then there would be three links: x => x.Foo, x => x.Foo.Bar and x => x.Foo.Bar.Baz. These links are used to subscribe to change notifications.

Basic code should mostly work but still needs integration with the XAML compiler. Currently typed bindings can only be created from lambda expressions at runtime.

Closing this; will reopen in a slightly different form soon.


dyld: lazy symbol binding failed: Symbol not found

dyld: lazy symbol binding failed: Symbol not found:
_$s10Kingfisher0A7WrapperVAASo11UIImageViewCRbzlE8setImage4with11placeholder7options13progressBlock17completionHandlerAA12DownloadTaskVSgAA8Resource_pSg_AA11Placeholder_pSgSayAA0A15OptionsInfoItemOGSgys5Int64V_AXtcSgyAA6ResultOyAA08RetrievefV0VAA0A5ErrorOGcSgtF
Referenced from: /Users/xyz/Library/Developer/CoreSimulator/Devices/0AE1C996-FDAD-4CB5-9936-F2387C5A1C9F/data/Containers/Bundle/Application/72A4B378-39B4-4337-BAB9-D4D6458281DC/PodTest.app/Frameworks/MyOwn.framework/MyOwn
Expected in: /Users/xyz/Library/Developer/CoreSimulator/Devices/0AE1C996-FDAD-4CB5-9936-F2387C5A1C9F/data/Containers/Bundle/Application/72A4B378-39B4-4337-BAB9-D4D6458281DC/PodTest.app/Frameworks/Kingfisher.framework/Kingfisher

I've been facing this issue. Did you find the fix?
dyld[1348]: Symbol not found: _$s10Kingfisher0A15OptionsInfoItemO10transitionyAcA15ImageTransitionOcACmFWC

Add this to the app that using framework
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
        config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
    end
  end
end


Add individual word timestamps

It looks like speech currently returns some timestamp information for what look like sections.
Would you be able to add timestamps for individual words?
Something like this:
https://cloud.google.com/speech-to-text/docs/async-time-offsets#speech-async-recognize-gcs-python

I think the ideal way to do this would be to add a Block class and a Word class that both extend str, then just have them have have a time property, so the block.time would have the current time of the block (which would be equivalent to current functionality), while for word in block.words: word.time would be able to have the time per word in the block.
Then modify speech.Speech.__iter__ to just return blocks instead of a tuple of time, string and that block would just have a list of words accessibly via Block.words that would return the individual Word instances where you could get the time of that word.
I won't have time to add something like this for a bit, if you want to take a stab at it I'm happy to code review the pull requests and answer any questions
In the meantime, you can get around this by just making a custom script by doing something like this:
s = Speech(path_to_sound_file, lang='en-US')
google_response = s.scan()
for result in google_response.results:
    for word_info in result.alternatives[0].words:
        print(word_info, word_info.start_time, word_info.end_time)

This would give you access to the raw google response.

Sure thing - I'd love to take a stab at it.
Ultimately I want to search for keyword phrases in order to automate editing audio clips.
For example, I will record audio for a list of items, saying something like "Item 1 start", then talk about item 1, and when done, say "Item 1 end".
From there I'd use transcribe to get the timestamps. I could then use another program to create separate clips, one for each item.
...
Hopefully I'll have time to work on this soon. I'll definitely have questions.


SensoManager problem

Steps to Reproduce
Hi,
Can you help me? If i running camera controller that always printing SensorManager TYPE_LIGHT (5) : [Sensor value].
Can you delete it?
It is problem or ok?
If i already closed that camera page it is always printing debuggin value.
Describe how to reproduce the error
Expected results
What it should be
Stop printing that SensorManager value. Close and dispose that manager if i close camera page.
Actual results
What you see
About your device
SAMSUNG GALAXY S21 Ultra

Brand
Model
OS

*SAMSUNG *
GALAXY S21 Ultra
13.6.1

problem still persists


sameold: decode EOMs faster

Per the SAME spec [1 pp. 19], receivers are not required to wait for three bursts of "NNNN" to end a message. One burst which starts with "NN" is sufficient.
To improve standards-compliance, add dedicated decoding logic for the EOM which is independent of the error-correction. Every individual "NNNN" burst which decodes will output a separate Message::EndOfMessage. The framer now accepts two N characters as an EOM. The framer must still decode all four N characters with no greater than max_prefix_bit_errors in order to qualify as an EOM.
This is an API-breaking change. samedec documentation is updated.
Supersedes and closes #5.
References

https://www.nws.noaa.gov/directives/sym/pd01017012curr.pdf

@A-c0rN: upon reflection and another reading of the SAME spec, I'd like to make the "fast EOM" behavior from #5 the default and only implementation. The --fast-eom is not implemented here as it is no longer necessary. This version is always "fast EOM."
I have also loosened the requirements for detecting EOMs somewhat.
Would you be willing to test out this branch? If it works for you, this is what I'm going to merge.

I'll test it as soon as I get home from work lol

I have done a 24-hour test which included an RWT. It also tests just fine on some historical recordings of NWR stations.

@A-c0rN, did you have any comments or test results on this PR?

Despite what the "closed" status may say, this is actually merged.


[Bug] Log host path access denied when UID is different from GID

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I have searched in the issues and found no similar issues.

Describe the bug
My Spark application's UID is different from GroupID, ie. use 999:1000 to access /data/rssadmin. In the init container command, why do you setup the permission via GID:GID instead of the format of UID:GID for the host paths?
The pod securityContext I set is:
    securityContext:
      runAsUser: 999
      fsGroup: 1000

Both coordinator and server pods threw the permission error:
/data/rssadmin/rss/bin/start-coordinator.sh: line 73: /data/rssadmin/rss/logs/coordinator.out: Permission denied
AND
/data/rssadmin/rss/bin/start-shuffle-server.sh: line 96: /data/rssadmin/rss/logs/shuffle_server.out: Permission denied

Affects Version(s)
0.7.0-snapshot
Uniffle Server Log Output
No response
Uniffle Engine Log Output
No response
Uniffle Server Configurations
No response
Uniffle Engine Configurations
No response
Additional context
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Sorry, this part of the feature does have a bug. Because there are so many arguments in SecurityContext, we initially used fsgroup for convenience and assumed that uid and gid were the same by default. We will fix this as soon as possible, or can you help submit a PR? @a140262

Sorry, this part of the feature does have a bug. Because there are so many arguments in SecurityContext, we initially used fsgroup for convenience and assumed that uid and gid were the same by default. We will correct this as soon as possible, or we really appreciate that you can help to submit a PR?

@a140262  have modified it for time reasons, thanks for pointing this out. If possible, we would really appreciate your help in reviewing.


[WIP] Upgrade to version 2 of the aws-sdk

Upgrade to version 2 of the aws-sdk from version 1.
Version 2 uses a separate name space, "Aws", from version 1. The intent was to allow
simultaneous use of both versions of the API.
The intent of this PR will be to discontinue use of version 1 and migrate fully to version 2
Fixes #4794

@Fryguy, @matthewd & @blomquisg Comments, flames, helpful suggestions :)

@Fryguy, and anyone else interested, This is not ready for review yet. I just wanted to get my WIP saved. Once I get things functional I want to refactor the code a bit.

Closing in favor of #6297


Custom std::fmt::Debug for Line & Ray

fn main() {
    println!("{:?}", Line3::new(Point3::new(1,2,3),Point3::new(4,5,6)));
    println!("{:?}", Ray3::new(Point3::new(1,2,3),Vector3::new(4,5,6)));
}

Usually prints this:
Line { origin: Point3 [1, 2, 3], dest: Point3 [4, 5, 6], phantom_s: PhantomData, phantom_v: PhantomData }
Ray { origin: Point3 [1, 2, 3], direction: Vector3 [4, 5, 6], phantom_s: PhantomData }

This patch changes the output to look like this:
Line(Point3 [1, 2, 3], Point3 [4, 5, 6])
Ray(Point3 [1, 2, 3], Vector3 [4, 5, 6])

Is this something you want a PR for?
Suggestions, reviews and other feedback is welcome.

Sounds useful!

#134