newrelic / opensource-website

Source code for New Relic's Opensource site.
https://opensource.newrelic.com
Apache License 2.0
153 stars 91 forks source link

Fix OSS apps that may be using deprecated functions #674

Closed jpvajda closed 3 years ago

jpvajda commented 3 years ago

Related issue: https://github.com/newrelic/developer-website/issues/1033

Summary

There are many apps in the OSS app library that have been built by a hand full of Relics, in order to ensure that the deprecation of nerdlet functions doesn't introduce any problems into those apps, it would be ideal to have some automation to detect if a deprecated function or prop existing in a code base and then automatically fix that problem.

Alternatively if we want to just inventory and check the apps for these deprecation that is a possibility as well. Depending on how much time there is to spend on.

Solution Idea

Can we build in a Github Action into The Catalog Manager (or each repo) that can detect the use of the @deprecated tags in an app’s code base?

App List

Account Maturity
384de6e5-8e57-4d56-9d13-299ee7ae8641

New Relic.org Donor Analyzer 
173db02e-53c8-4893-87bc-d3da6978d7f0

Workload GeoOps 
02f8775c-c248-42d4-be54-2f96443f786a

NRQL Lessons
34b6d49a-d824-4f99-b337-1d9a5467094d

nr1-customer-journey
67804983-939f-40af-87aa-d3b7af1d3c82

GitHub Integration
4ee1cd5f-0f5e-4326-b153-5468c888ba8d

PageView Map
51fc02d9-d39b-4aac-a782-0b7a64c18b0c

Metric Aggregator
932f5c04-5ab6-47d9-90ab-0e716237a4a3

Top
b9616a2a-9543-4162-8e9f-30dbb50c5cba

Browser Analyzer
e782da4a-7e4b-46db-8b1b-bb7c45a07877

Status Pages
dd63659f-6f57-42f2-9428-c5ad151c35af

Datalyzer
2d20b55d-1939-4b76-abcd-60eea0d0e10a

Network Telemetry
57edc75e-339e-4703-a3d5-c253ad116e15

GraphiQL Notebook
8432e742-6910-4957-b34f-c5115eb8cda3

Integrations Manager
e9074d13-3fae-46e5-bffd-f271253649bf

Groundskeeper
4a13b4e8-3129-467b-a099-ba5f503fe47f

Deployment Analyzer
dff857dd-6a9b-4fc4-b223-93087465625c

Nerdgraph Queries

to retrieve the ID of the user that published a nerdpack version

{
  actor {
    nerdpacks {
      nerdpack(id: "") {
        versions {
          results {
            createdByUser
            version
          }
        }
      }
    }
  }
}

to retrieve owner email

{
  user(id: 0) {
    email
  }
}
jpvajda commented 3 years ago

I've checked all these application using the query and the publishers are @tangollama / @jbeveland27 / @devfreddy. I'm curious what would be the best way to check these apps programmatically for the deprecated functions and props being removed from the SDK on Feb 28th. Would there be a way to automate this check and replacement or would it be easier to do it manually?

This issue has all the details of what is changing in Feb 2021. https://github.com/newrelic/developer-website/issues/1033

jpvajda commented 3 years ago

I've pinged the opensource slack channel for some advice on how to proceed with this.

jpvajda commented 3 years ago

I've spoken to @tangollama about this, and he's going to look into if there is an automated way to audit these applications or if it's something we'll need to do manually to identify the changes that need to made in each individual app.

jpvajda commented 3 years ago

@tangollama Is looking into if it's possible to include the pattern matching and report the issues in the repolinter rule set(s). https://github.com/newrelic/.github/blob/main/repolinter-rulesets/new-relic-one-catalog-project.json

jpvajda commented 3 years ago

All the automation is in place for this, so closing.. https://discuss.newrelic.com/t/one-core-3rd-party-component-deprecations/127159