A system for managing CI data for Mozilla projects
Перейти к файлу
Nazım Can Altınova eba34f5d12
Bug 1910864/1887138 - Fix how we handle profiler urls on the perfherder backend (#8156)
* Bug 1910864 - Return None for profiler urls instead of "N/A"

Perfherder frontend has a check if the profiler urls are null, but it
doesn't check if it's "N/A" or not. That's why this was causing us to
see all the invalid links in the perfherder when user clicks on "Copy
Summary" or file a bug directly through perfherder. By changing this to
`None`, this API endpoint will return `null` to the frontend, which can
successfully understand and omit.

* Bug 1887138 - Refactor how we compute the profile urls on the backend

There were two issues with how we compute the profile urls in the
backend:

1. When we encounter an error, we were returning an error string. This
   is not good because frontend doesn't know how to handle the error
   strigs and it thinks that they are simply urls. Then it was trying to
   append the error strings on the back of profiler urls, which was
   causing invalid urls in the perf alerts.
2. We had a caching mechanism for the taskcluster metadata. But this
   caching mechanism wasn't really caching things by adding task id to
   the cache key. This was resulting a single cache for the whole "push"
   or multiple pushes. We were caching the latest metadata, and use that
   last metadata for all the alerts, which is wrong because all
   individual alerts might have differnet metadata. The good thing is,
   the taskcluseter metadata was already available to us inside the
   `alert` variable since we computed it prior this function. So we
   didn't have to do anything special, just read that from the
   dictionary.

There is one remaining piece I would like to fix still, which is how we
cache `tc_root_url`. But that's actually okay for now because a single
push should only have one `tc_root_url`. And I'm not so sure how to
pass that information to the other function where we genereate the
profile urls.
2024-08-16 10:48:49 +03:00
.circleci Bug 1908165 - don't restart any services after apt-get, suppress prompt 2024-07-16 22:10:44 +02:00
.github Bug 1881540 - Enable Dependabot for pyproject.toml too 2024-03-04 17:20:41 +01:00
bin Remove heroku v2 (#7271) 2021-09-16 11:30:12 +01:00
deployment/gcp Make changes to docs (#7184) 2021-06-22 16:49:41 -07:00
docker Update entrypoint.sh 2024-06-26 01:30:49 +02:00
docs Remove MySQL integration and dedicated code (#7814) 2024-05-30 15:19:56 +02:00
misc N806: variables in functions should be lowercase 2024-03-05 16:17:10 +01:00
requirements Bump pytest from 8.2.2 to 8.3.2 2024-08-05 16:50:37 +02:00
schemas Add Safari Tech Preview to perf schema (#8050) 2024-05-07 07:26:14 -04:00
tests Allow for bugzilla management to use a minimum threshold for 'reopened bugs' (#8144) 2024-08-05 17:48:55 -07:00
treeherder Bug 1910864/1887138 - Fix how we handle profiler urls on the perfherder backend (#8156) 2024-08-16 10:48:49 +03:00
ui Bug 1837998 - File regression bugs using the API (#8048) 2024-07-26 15:36:19 +03:00
.codecov.yml Codecov: Show UI coverage as subproject and require minimum coverage (#5922) 2020-04-03 09:40:55 -04:00
.eslintignore Upgrade eslint 2023-09-04 22:07:12 +02:00
.eslintrc.js Update dependency eslint-config-airbnb to v19 (#7330) 2022-08-11 15:47:47 -07:00
.git-blame-ignore-revs Bug 1823654 - Ignore standardized use of f-strings in git blame 2024-02-02 21:41:37 +01:00
.gitattributes Remove heroku v2 (#7271) 2021-09-16 11:30:12 +01:00
.gitignore Bug 1810048 - add ui/glean/generated/ to .gitignore 2023-01-13 11:52:35 +01:00
.markdownlint.json Add markdownlint pre-commit hook and fixed docs 2020-04-07 09:41:54 -04:00
.markdownlintignore Bug 1646244 - pre-commit in Travis takes a long time (#6613) 2020-07-14 10:06:51 -04:00
.pre-commit-config.yaml Bug 1823654 - show fixes applied by ruff 2024-02-02 21:42:15 +01:00
.prettierignore Publish ingestion metrics on statsd (#7875) 2023-11-21 20:37:53 +01:00
.prettierrc.js Bug 1507172 - Use Prettier for formatting JS/JSX (#4276) 2018-11-16 08:28:34 +00:00
.readthedocs.yml remove deprecated python.version (#7485) 2022-07-13 11:53:13 -07:00
.renovaterc Change renovate pr reviewers to treeherder-admins (#7375) 2022-02-04 12:04:44 +00:00
.yarnrc Don't run preinstall/install/postinstall hooks during yarn install (#4432) 2019-01-08 18:15:01 +00:00
CODEOWNERS set Beatrice and Andra as code owners for perfherder (#8125) 2024-07-08 17:12:18 +03:00
CODE_OF_CONDUCT.md This is from PR #4840. I'm just rebasing since Travis would not pass. 2019-11-12 16:25:42 -05:00
LICENSE.txt Bug 1192801 - List the full MPL v2 license in LICENSE.txt 2015-08-18 23:29:32 +01:00
README.md Add ruff pre-commit hook, remove flake8 configuration and port settings to ruff's 2024-01-24 13:15:15 +01:00
babel.config.json Use babel config 2022-05-19 15:36:14 +02:00
docker-compose.yml Add platform to `statsd` in docker-compose.yml 2024-08-02 00:10:26 +02:00
initialize_data.sh Remove MySQL integration and dedicated code (#7814) 2024-05-30 15:19:56 +02:00
jest-puppeteer.config.js Fix conflict, add pollyjs dependecies (#7084) 2021-05-31 15:12:57 +03:00
jest.config.js add glean to treeherder for measuring failure outcomes (#7583) 2023-01-04 14:58:12 -08:00
manage.py Bug 1823654 - Mostly use double quotes (#7900) 2024-01-31 16:59:20 +01:00
mkdocs.yml Update docs (#7368) 2022-02-08 18:09:41 +00:00
newrelic.ini Bug 1730918 - use default security groups as defined by product in Bugzilla (#7281) 2021-10-07 11:25:06 +01:00
package.json Update dependency @mozilla/glean to v5.0.3 2024-08-12 08:24:24 +00:00
pylintrc Bug 1452420 - Update pylintrc to reduce noise 2018-04-10 19:22:28 +01:00
pyproject.toml Update dependency docs/mkdocs-material to v9.5.31 2024-08-05 03:52:30 +00:00
setup.cfg Add ruff pre-commit hook, remove flake8 configuration and port settings to ruff's 2024-01-24 13:15:15 +01:00
tox.ini Remove MySQL integration and dedicated code (#7814) 2024-05-30 15:19:56 +02:00
version.json Add CloudOps-ready Docker builds (#7072) 2021-03-26 16:21:57 -04:00
webpack.config.js Upgrade to React 18 (#8095) 2024-07-04 14:56:23 +02:00
yarn.lock Update dependency @mozilla/glean to v5.0.3 2024-08-12 08:24:24 +00:00

README.md

Treeherder

What's Deployed Build Status Node dependencies Status Documentation Status Code style: black Ruff

Description

Treeherder is a reporting dashboard for Mozilla checkins. It allows users to see the results of automatic builds and their respective tests. The Treeherder service manages the etl layer for data ingestion, web services, and the data model behind Treeherder.

Instances

Treeherder exists on two instances: staging for pre-deployment validation, and production for actual use.

Installation

The steps to run Treeherder are provided here.

The steps to run only the UI are provided here.

Visit our project tracking Wiki here.

For other setup and configuration, visit our readthedocs page here.

File any bugs you may encounter here.

Contributing

Everyone is welcome to contribute!

If a bug is not assigned to someone, you can request the bug be assigned to you. You should ask the component owner with your request ("Request information" in Bugzilla and mention in Github).

If you do not receive a response within 2-3 days, you can follow up in the #treeherder matrix channel.

After addressing the issue, make sure every test passes before sending a pull request.

We also recommend setting an upstream remote that points to the Mozilla's Github repo, in addition to origin that points to your fork. You should then frequently use git rebase upstream rather than merging from your fork to keep your branch current. There are less conflicts this way and the git history is cleaner.

Sending a Pull Request

We receive contributions from both Bugzilla and Github. We have some specifications to keep track of them:

  1. If your bug comes from Bugzilla

    After addressing the issue, please send a pull request to this repository, with the Bugzilla's number ID in the title, so that our bot attaches your patch to the corresponding Bugzilla bug.

    "Bug xxxxxx - [title of the bug or brief explanation]"

    For example: "Bug 123456 - Fix scrolling behavior in Perfherder"

  2. If your bug comes from Github

    In the description of the pull request, please mention the issue number. That can be done by typing #[issue's number].

    For example: "This pull request fixes #5135".

    Github automatically links both issue and pull request to one another.