Skip to content

Conversation

@imenattatra
Copy link

@imenattatra imenattatra commented Nov 19, 2025

What type of PR is this?

  • Merge with upstream branch

Description

  • This is part of the process of updating our fork repository with the upstream repository.
  • merge-v25.8.0 branch has been created from metr-main and then we merged the upstream v25.8.0 into it.
  • There were some conflicts that i resolved locally.
  • I was worried about the changes in this commit 9f76fda and my worries were right because when i did run the frontend tests, our tests concerning the dashboard layout failed , so i did revert this exact commit later in 4af6c53 as a temporary solution
  • I also did resolve multiple heads conflict in db.

Next steps

  • Merge this branch into our metr-main branch (through this PR)
  • Add tag and deploy

How is this tested?

  • Unit tests (pytest, yarn)
  • Manually on Staging (but only that pages are loading and i clicked here and there, no detailed test scenarios )

dependabot bot and others added 30 commits January 14, 2025 01:45
Co-authored-by: Ezra Odio <eodio@starfishstorage.com>
* Split out secrets requiring workflows

* Update target

* Update Cypress run command
…RY_RESULT_TABLE. (getredash#7296)

* prevent text values in payload being detected as 'set' on send.
Webex send ERROR:: Object of type set is not JSON serializable

Signed-off-by: Matt Nelson <metheos@gmail.com>

* add support for formatted QUERY_RESULT_TABLE in webex card

Signed-off-by: Matt Nelson <metheos@gmail.com>

* don't try to send to blank destinations

Signed-off-by: Matt Nelson <metheos@gmail.com>

* fix handling of the encoded QUERY_RESULTS_TABLE text

Signed-off-by: Matt Nelson <metheos@gmail.com>

* re-sort imports for ruff

Signed-off-by: Matt Nelson <metheos@gmail.com>

* change formatter to black

Signed-off-by: Matt Nelson <metheos@gmail.com>

* Add additional tests for Webex notification handling

ensure blank entries are handled for room IDs and person emails.
ensure that the API is not called when no valid destinations are provided.
ensure proper attachment formatting for alerts containing 2D arrays.

Signed-off-by: Matt Nelson <metheos@gmail.com>

* Add test for Webex notification with 1D array handling

This commit introduces a new test case to verify that the Webex
notification function correctly handles a 1D array input in the alert body.
The test ensures that the expected payload is constructed properly and that
the requests.post method is called with the correct parameters.

Signed-off-by: Matt Nelson <metheos@gmail.com>

---------

Signed-off-by: Matt Nelson <metheos@gmail.com>
When MULTI_ORG is enabled, 'static/' resolves to '<org>/static/'
Co-authored-by: snickerjp <snickerjp@gmail.com>
This fixes the following exception:

```
UnboundLocalError: local variable 'value_is_number' referenced before assignment
  File "rq/worker.py", line 1431, in perform_job
    rv = job.perform()
  File "rq/job.py", line 1280, in perform
    self._result = self._execute()
  File "rq/job.py", line 1317, in _execute
    result = self.func(*self.args, **self.kwargs)
  File "redash/tasks/alerts.py", line 36, in check_alerts_for_query
    new_state = alert.evaluate()
  File "redash/models/__init__.py", line 1002, in evaluate
    new_state = next_state(op, value, threshold)
  File "redash/models/__init__.py", line 928, in next_state
    elif not value_is_number and op not in [OPERATORS.get("!="), OPERATORS.get("=="), OPERATORS.get("equals")]:
```
…eSQL JSON getredash#7339 (2nd try) (getredash#7348)

* Sanitize NaN, Infinite, -Infinite causing error when saving as PostgreSQL JSON getredash#7339 (2nd try)

* Move json nsanitaize to on the top of json_dumps

* Fix comment
Co-authored-by: snickerjp <snickerjp@gmail.com>
…h#7359)

* Upgrade plotly.js to version 2

* Fix styling error reported by styled
Fix query list item list sorting

- descending order, no triangle mark
- ascending order, up triangle mark(▲)
- descending order, down triangle mark(▼)
- ascending order, no triangle mark
- descending order, up triangle mark(▲)
- ascending order, down triangle mark(▼)
- descending order, no triangle mark

"sorting order" have 2-click cycle, but "triangle mark" have 3-click cycle.
To allow user arikfr to publish images to redash/redash and redash/preview.
Only use vars.DOCKER_USER and secrets.DOCKER_PASSWORD for authorization.
…" (getredash#7327)

This workaround was missing 'if view is not None ' as found in
https://github.com/pallets-eco/flask-wtf/pull/419/files

Tested with MULTI_ORG enabled.
emaincourt and others added 17 commits July 9, 2025 12:09
* Make NULL value visible
* Make the representation of NULL value configurable
* use display-as-null css class for null-value styling
* Use 12-column layout for dashboard grid

Set minSizeX, minSizeY for widgets to 2 since a value of 1 breaks all
assumptions of the UI layout.

Migration provide transition from 6 to 12 columns for all widgets.

* Restyled by prettier
* Added support for Google Oauth Scheme Override (through environment variable)

* Refactoring

* Refactoring

* Applied formatting

* Refactoring

* Refactoring

* Updated comment for `GOOGLE_OAUTH_SCHEME_OVERRIDE` variable

* Updated comment for `GOOGLE_OAUTH_SCHEME_OVERRIDE` variable

* Removed duplication of url_for function

---------

Co-authored-by: kostiantyn-dementiev-op <kostiantyn.dementiev@observepoint.com>
* diff locations ignore

* add logging message

* Processing Location is not specified
As with other query runners, do not show system tables in the schema list.
@imenattatra imenattatra requested a review from a team November 19, 2025 16:50
@imenattatra imenattatra self-assigned this Nov 19, 2025
This reverts commit 9f76fda.

It does not revert the migrations automatically but keeps the migration file
and created a contrary migration file to revert the behavior.
Copy link
Member

@thiagogds thiagogds left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking care of the conflicts, especially related to the database :)

Can you coordinate with the @metr-systems/se-team and @helenalebreton for a deeper QA test? I think we should copy a dashboard from production and use the same data sources to make sure it's all working as we expect.

@helenalebreton
Copy link

@thiagogds @imenattatra I am happy to help QA this but I will I guess need a bit of guidance to what we would like to test.

@imenattatra
Copy link
Author

imenattatra commented Nov 27, 2025

Thank you @helenalebreton for your help

I have created this issue with the QA processes to test and to keep it as documentation also for next time.
I also updated it after the session with @helenalebreton with the steps i was missing in the dynamic widgets tests.

It would be great if later-on we can work on making these processes automatic sincethey already use cypress in redash , we can have our own tests using cypress for our customized cases like dashboard permissions and especially dynamic widgets. Knowing that we do have unit tests for our customized cases and they were helpful during the merge.

@imenattatra imenattatra merged commit cacb29f into metr-main Nov 27, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.