Repository navigation
chore: remove v1 health score computation and columns from Tinybird (IN-1222) - #4922
Closed
gaspergrom wants to merge 4 commits into
Closed
gaspergrom wants to merge 4 commits into
gaspergrom wants to merge 4 commits into
Conversation
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
The destructive cross-repository rollout remains gated on consumer sign-off, prerequisite deployments, usage checks, and manual production sequencing.
0 open findings
What changed in this PR
Removes legacy Health Score v1 Tinybird resources and fields while retaining Health Score v2.
Changes:
- Deletes v1 pipes and datasource.
- Removes v1 fields, joins, and outputs.
- Updates OSS index tuple layouts and documentation.
| File | Description |
|---|---|
pipes/projects_list.pipe |
Removes v1 sorting documentation. |
pipes/project_repo_insights.pipe |
Removes repository v1 outputs. |
pipes/project_insights.pipe |
Removes project v1 outputs. |
pipes/project_insights_copy.pipe |
Removes v1 joins and fields. |
pipes/insightsProjects_filtered.pipe |
Removes the v1 list field. |
pipes/insights_projects_populated_copy.pipe |
Removes v1 population logic. |
pipes/health_score_security.pipe |
Deletes the v1 security signal. |
pipes/health_score_overview.pipe |
Deletes the v1 overview endpoint. |
pipes/health_score_copy.pipe |
Deletes v1 computation and scheduling. |
pipes/health_score_contributions_outside_work_hours.pipe |
Deletes the deprecated signal. |
pipes/collections_oss_index.pipe |
Removes v1 tuple entries. |
pipes/category_groups_oss_index.pipe |
Removes v1 tuple entries. |
pipes/categories_oss_index.pipe |
Removes v1 tuple entries. |
datasources/project_insights_copy_ds.datasource |
Drops five v1 columns. |
datasources/insights_projects_populated_ds.datasource |
Drops the v1 score column. |
datasources/health_score_copy_ds.datasource |
Deletes the v1 datasource definition. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…etrics (IN-1222) Add healthScoreV2, healthLabel and healthScoreV2Normalized to insights_projects_populated_ds, insightsProjects_filtered and projects_list, and append them to the OSI topProjects tuples. The v1 healthScore slot keeps its index. Read project and repository dependency metrics from the live health_score_*_dependency and repo_health_score_*_dependency pipes instead of health_score_copy_ds and repo_health_score_copy_ds, and fail the project_insights_copy job when a row type has no non-zero dependency metric. Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
Add healthMaxScore to insights_projects_populated_ds, insightsProjects_filtered and projects_list, and append it as the last element of the OSI topProjects tuples, so the UI can mark partial scores. Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
…IN-1222) Drop health_score_overview, health_score_copy and health_score_copy_ds, plus the two signal pipes only the benchmark route used (health_score_security and health_score_contributions_outside_work_hours). Remove the v1 healthScore and contributor, popularity, development and security columns from project_insights_copy_ds, insights_projects_populated_ds, project_insights, project_repo_insights, insightsProjects_filtered and projects_list, and the v1 slot from the OSI topProjects tuples. The v2 values appended in the previous commit move down one index. Deleting the files does not remove the live resources: see the removal runbook in the PR. Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
…egate pipe (IN-1222) Signed-off-by: Gašper Grom <gasper.grom@gmail.com>
gaspergrom
force-pushed
the
feat/IN-1222-health-v2-osi-dependency-source
branch
from
October 12, 2026 22:42
97349cb to
84e7b83
Compare
gaspergrom
force-pushed
the
chore/IN-1222-remove-health-score-v1-tinybird
branch
from
October 12, 2026 22:42
fc35762 to
4d043c4
Compare
This was referenced Oct 12, 2026
Base automatically changed from
feat/IN-1222-health-v2-osi-dependency-source
to
main
October 13, 2026 13:22
Contributor
Author
|
Closing for now: org-dashboard still reads the v1 health score ( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Do not merge until Joana Maia confirms consumer sign-off (LFX One, Org Lens, OD, Self Serve, CNCF) and a deprecation date — IN-1222 PRE2/PRE4.
Summary
health_score_copypipe andhealth_score_copy_dsdatasource. The copy ran at 00:50 UTC. Deleting the pipe also removes its schedule.health_score_overviewpipe, which served the v1 overview route.health_score_securityandhealth_score_contributions_outside_work_hours. Only the benchmark route called them. Insights PR 2 stops those calls first.healthScore,contributorHealthScore,popularityHealthScore,developmentHealthScoreandsecurityHealthScorefromproject_insights_copy_ds. AlsohealthScorefrominsights_projects_populated_ds, and the v1 fields fromproject_insights,project_repo_insights,insightsProjects_filteredandprojects_list.repo_health_score_copy_dsjoin fromproject_insights_copy.health_score_active_contributors__checkeralone. It is a live Tinybird pipe that this repo does not contain.activity_heatmap_by_weekday_and_2hours_blocks.Deploy notes
Prerequisites
health_score_sink.pipe, which readshealth_score_copy_ds. Rebase on main after PR 2 merges, so the sink deletion comes with main.tinybird.pipe_stats_rtshows zero requests tohealth_score_securityandhealth_score_contributions_outside_work_hourssince insights PR 2 deployed. Any request means an unknown caller. Stop and ask.Steps
Run each step on staging first, then on prod. The commands below run on prod. Staging could not run
project_insights_copyor the OSI pipes for crowd.dev PR 1, so prod is the only real test for those steps.Run every command from
services/libs/tinybird.tbppandtbpdadd thepipes/anddatasources/prefix themselves, so pass bare file names.Readers go before writers, and writers before datasources.
Before you change anything on prod, check for direct SQL readers of what this PR drops. Query API calls show up in
tinybird.pipe_stats_rtunderpipe_name = 'query_api'. Run this withtb sqlor in the Tinybird UI:Ignore rows from your own token. The word boundaries keep
healthScoreV2andrepo_health_score_copy_dsout of the match. On 2026-10-13 only the ticket author's own token matched. Any other caller: stop and coordinate before the drops.healthScore. Neither is in any repo, and nobody owns them. Both must go before the column drops in steps 3 and 4. If staging lacks either one, skip it there.collections_oss_index__checker: an endpoint with 0 requests in the last 30 days.collection_insights_aggregate_copy_pipe: an orphan copy pipe, created 2026-07-29, scheduled daily at 02:50 UTC. Its output is already junk, becausetest_copy_pipeoverwrites it with onetestrow. Left in place, it fails every night after step 4 and pages insights-critical-alerts.project_insights_copy_ds.tbpdprints the planned operations and any dependent pipes, then asks you to confirm (y/N). Expect fiveDROP COLUMNoperations and no dependent pipes. Answer N and stop if you see anything else. (tb push --dry-runskips the ALTER planning, so it shows nothing useful here.) If the server rejects a drop, stop and ask. Do not recreate a datasource with about 13 dependents. Then push the copy pipe and run it. Poll until done.*/15runs, drophealthScorefrominsights_projects_populated_ds. The copy pipe from step 3 must already be live, because it no longer reads that column. Expect oneDROP COLUMNat thetbpdprompt. Poll until done.Check
tinybird.pipe_stats_rtforhealth_score_securityandhealth_score_contributions_outside_work_hours. Expect zero requests since insights PR 2 deployed. Any request means stop and ask.Remove the two signal pipes.
Deleting the files does not remove live pipes, datasources or schedules. The commands above do.
After the deploy, prod
/api/projectresponses can still carry the v1healthScorefield for up to a day. Insights caches them in Redis for one day, and only an insights deploy runsFLUSHALL. Insights PR 2 no longer reads that field, so the stale entries do no harm. No manual flush needed: they expire on their own.Cross-repo order
crowd.dev PR 1 is already live, and insights PR 1 deploys after it.
What breaks if out of order
/api/project/[slug]/overview/health-score-overviewand/api/project?healthScore=truecall deleted pipes and return 500.Promise.all. If either of the two removed pipes is missing,/overview/health-scorefails. Project pages lose their benchmark callouts, and the widget area shows "Error fetching benchmarks".active. Categories and category groups get the wrong description and status. Insights PR 2 reads every field from the end and works with either layout.health_score_copy_dsdisappears whilehealth_score_sinkstill reads it. Sink exports fail.tbpdprompt lists dependent pipes. Answer N if any appear.collection_insights_aggregate_copy_pipefails at its next 02:50 UTC run and pages insights-critical-alerts.Related PRs
JIRA
IN-1222: Deprecate v1 health score sinks and tables
https://linuxfoundation.atlassian.net/browse/IN-1222