Add development option in pm2 config file.

{
  "apps": [

    {
      "name": "feeder.lol-item-sets-generator.org",
      "script": "dist/index.js",
      "env_development": {
        "NODE_ENV": "development",
        "HOST": "http://domain.tld",
        "CRON_GENERATOR": "0 */2 * * *", // Every 2 hours
        "MONGO_URI": "mongodb://localhost:27017/lol-item-sets-generator-org",
        "KEY_CHAMPIONGG": "API_KEY",
        "KEY_RIOT": "API_KEY",
        "PORT": 9000
      },
      "env_production": {
        "NODE_ENV": "production",
        "HOST": "http://domain.tld",
        "CRON_GENERATOR": "0 */2 * * *", // Every 2 hours
        "MONGO_URI": "mongodb://localhost:27017/lol-item-sets-generator-org",
        "KEY_CHAMPIONGG": "API_KEY",
        "KEY_RIOT": "API_KEY",
        "PORT": 9000
      },
      "args": ["--release"],
      "watch": false,
    }

  ]

}

{
  "apps": [

    {
      "name": "feeder.lol-item-sets-generator.org",
      "script": "dist/index.js",
      "env": {
        "NODE_ENV": "production",
        "HOST": "http://domain.tld",
        "CRON_GENERATOR": "0 */2 * * *", // Every 2 hours
        "MONGO_URI": "mongodb://localhost:27017/lol-item-sets-generator-org",
        "KEY_CHAMPIONGG": "API_KEY",
        "KEY_RIOT": "API_KEY",
        "PORT": 9000
      },
      "args": ["--release"],
      "watch": false,
    }

  ]

}


[gold] Update metrics and frontend

[gold] Update metrics and frontend

This lands more metrics around firestore usage
and the frontend changes from earlier this week.

Bug: skia:10399
Change-Id: I6a045fd95e9752c0da3945df83f66b8937b810b8
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/297340
Reviewed-by: Kevin Lubick <7cdab2cfab351f23814786ba39716e90eed69047@google.com>

{
    "BASELINE_SERVER_IMAGE": "gcr.io/skia-public/gold-baseline-server:2020-06-10T13_04_06Z-kjlubick-518a737-clean",
    "DIFF_SERVER_IMAGE":     "gcr.io/skia-public/gold-diff-server:2020-06-18T15_44_27Z-kjlubick-88ed2a7-clean",
    "INGESTION_BT_IMAGE":    "gcr.io/skia-public/gold-ingestion:2020-06-18T15_45_22Z-kjlubick-88ed2a7-clean",
    "SKIACORRECTNESS_IMAGE": "gcr.io/skia-public/gold-skiacorrectness:2020-06-18T15_43_33Z-kjlubick-88ed2a7-clean",

    // Services for testing goldpushk.
    "HEALTHY_SERVER_IMAGE": "gcr.io/skia-public/goldpushk-healthy-server:2019-10-16T18_39_09Z-lovisolo-9b77357-clean",
    "CRASHING_SERVER_IMAGE": "gcr.io/skia-public/goldpushk-crashing-server:2019-10-02T20_06_33Z-lovisolo-485c78d-clean",
}

{
    "BASELINE_SERVER_IMAGE": "gcr.io/skia-public/gold-baseline-server:2020-06-10T13_04_06Z-kjlubick-518a737-clean",
    "DIFF_SERVER_IMAGE":     "gcr.io/skia-public/gold-diff-server:2020-06-10T13_01_14Z-kjlubick-518a737-clean",
    "INGESTION_BT_IMAGE":    "gcr.io/skia-public/gold-ingestion:2020-05-20T13_13_23Z-kjlubick-524ce4e-clean",
    "SKIACORRECTNESS_IMAGE": "gcr.io/skia-public/gold-skiacorrectness:2020-06-12T13_28_57Z-kjlubick-508e7a3-clean",

    // Services for testing goldpushk.
    "HEALTHY_SERVER_IMAGE": "gcr.io/skia-public/goldpushk-healthy-server:2019-10-16T18_39_09Z-lovisolo-9b77357-clean",
    "CRASHING_SERVER_IMAGE": "gcr.io/skia-public/goldpushk-crashing-server:2019-10-02T20_06_33Z-lovisolo-485c78d-clean",
}


[gold] Deploy new gitilesfollower

[gold] Deploy new gitilesfollower

Change-Id: I6d3cf494df14149e3e5430392bf3b1518d53a611
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/473536
Reviewed-by: Leandro Lovisolo <f558143c2568be8d55575d13f30a1fc5cb8009d5@google.com>

{
    "BASELINE_SERVER_IMAGE": "gcr.io/skia-public/gold-baseline-server:2021-10-26T12_06_27Z-kjlubick-8e674c5-clean",
    "DIFFCALCULATOR_IMAGE":  "gcr.io/skia-public/gold-diffcalculator:2021-10-26T12_06_46Z-kjlubick-8e674c5-clean",
    "FRONTEND_IMAGE":        "gcr.io/skia-public/gold-frontend:2021-10-26T12_03_59Z-kjlubick-8e674c5-clean",
    "GITILESFOLLOWER_IMAGE": "gcr.io/skia-public/gold-gitilesfollower:2021-11-18T19_26_44Z-kjlubick-1cdc45c-clean",
    "INGESTION_IMAGE":       "gcr.io/skia-public/gold-ingestion:2021-10-26T12_07_24Z-kjlubick-8e674c5-clean",
    "PERIODICTASKS_IMAGE":   "gcr.io/skia-public/gold-periodictasks:2021-11-08T20_29_19Z-kjlubick-fb49dbb-clean",
}

{
    "BASELINE_SERVER_IMAGE": "gcr.io/skia-public/gold-baseline-server:2021-10-26T12_06_27Z-kjlubick-8e674c5-clean",
    "DIFFCALCULATOR_IMAGE":  "gcr.io/skia-public/gold-diffcalculator:2021-10-26T12_06_46Z-kjlubick-8e674c5-clean",
    "FRONTEND_IMAGE":        "gcr.io/skia-public/gold-frontend:2021-10-26T12_03_59Z-kjlubick-8e674c5-clean",
    "GITILESFOLLOWER_IMAGE": "gcr.io/skia-public/gold-gitilesfollower:2021-10-26T12_07_06Z-kjlubick-8e674c5-clean",
    "INGESTION_IMAGE":       "gcr.io/skia-public/gold-ingestion:2021-10-26T12_07_24Z-kjlubick-8e674c5-clean",
    "PERIODICTASKS_IMAGE":   "gcr.io/skia-public/gold-periodictasks:2021-11-08T20_29_19Z-kjlubick-fb49dbb-clean",
}


chore: add data for 2019-09-07

chore: add data for 2019-09-07


chore: add data for 2020-10-16

chore: add data for 2020-10-16


chore: add data for 2021-06-15

chore: add data for 2021-06-15


chore: add data for 2021-09-21

chore: add data for 2021-09-21


chore: add data for 2021-09-02

chore: add data for 2021-09-02


chore: add data for 2021-08-28

chore: add data for 2021-08-28


Change machine ip.

Change machine ip.

// This is the pm2 configuration file for npms-api
{
    apps: [
        {
            name: 'npms-api',
            script: './server.js',
            instances: 3,
            env : { NODE_ENV: 'production' },
            max_memory_restart: '1500M'
        },
    ],
    deploy: {
        production: {
            user: 'www',
            host: '163.172.160.79',
            ref: 'origin/master',
            repo: 'https://github.com/npms-io/npms-api.git',
            path: '/home/www/npms-api',
            'post-deploy': '\
cp ../local.json5 ./config/ && \
npm update --loglevel http --production && \
pm2 startOrRestart ecosystem.json5 --env production',
        },
    },
}

// This is the pm2 configuration file for npms-api
{
    apps: [
        {
            name: 'npms-api',
            script: './server.js',
            instances: 3,
            env : { NODE_ENV: 'production' },
            max_memory_restart: '1500M'
        },
    ],
    deploy: {
        production: {
            user: 'www',
            host: '212.47.226.136',
            ref: 'origin/master',
            repo: 'https://github.com/npms-io/npms-api.git',
            path: '/home/www/npms-api',
            'post-deploy': '\
cp ../local.json5 ./config/ && \
npm update --loglevel http --production && \
pm2 startOrRestart ecosystem.json5 --env production',
        },
    },
}


Fixed typo that made bot unable to run

Fixed typo that made bot unable to run


chore: add data for 2020-02-17

chore: add data for 2020-02-17


chore: add data for 2018-05-19

chore: add data for 2018-05-19


chore: add data for 2018-07-10

chore: add data for 2018-07-10


chore: add data for 2021-11-19

chore: add data for 2021-11-19


fix: add new Android-specific flag to disable saved search UI

{
  id: 1,
  name: 'eigen',
  created_at: '2015-07-10T20:59:23.453Z',
  updated_at: '${ECHO_CURRENT_TIME}',
  features: [
    { name: 'ipad_vir', value: false },
    { name: 'iphone_vir', value: true },
    { name: 'ARDisableReactNativeBidFlow', value: false }, // old flag
    { name: 'AREnableBuyNowFlow', value: true },
    { name: 'AREnableMakeOfferFlow', value: true },
    { name: 'AREnableLocalDiscovery', value: true },
    { name: 'ARReactNativeArtworkEnableAlways', value: false },
    { name: 'ARReactNativeArtworkEnableNonCommercial', value: true },
    { name: 'ARReactNativeArtworkEnableNSOInquiry', value: true },
    { name: 'ARReactNativeArtworkEnableAuctions', value: true },
    { name: 'AROptionsPriceTransparency', value: true }, // old flag
    { name: 'AREnableNewPartnerView', value: true }, // old flag
    { name: 'AREnableNewSearch', value: true },
    { name: 'AROptionsLotConditionReport', value: true }, // old flag
    { name: 'AROptionsEnableSales', value: true },
    { name: 'AREnableViewingRooms', value: true }, // old flag
    { name: 'AROptionsNewFirstInquiry', value: true }, // old flag
    { name: 'AROptionsBidManagement', value: true }, // old flag
    { name: 'AROptionsArtistSeries', value: true }, // old flag
    { name: 'AROptionsNewFairPage', value: true },
    { name: 'AROptionsNewShowPage', value: true },
    { name: 'AROptionsNewSalePage', value: true }, // old flag
    { name: 'AREnableCustomSharesheet', value: true },
    { name: 'AROptionsNewInsightsPage', value: false }, // old flag
    { name: 'AREnableReactNativeWebView', value: true },
    { name: 'AROptionsNewArtistInsightsPage', value: true }, // 2021-05-17, removed: artsy/eigen#4753, deployed: 6.4.1
    { name: 'AROptionsInquiryCheckout', value: true },
    { name: 'AREnableOrderHistoryOption', value: true },
    { name: 'AREnableSavedSearch', value: true },
    { name: 'AREnableSavedSearchAndroid', value: false },
    { name: 'AREnableOnlyTargetSupplyConsignments', value: true },
    { name: 'ARHomeAuctionResultsByFollowedArtists', value: true },
  ],
  messages: [
    { name: 'LiveAuctionsCurrentWebSocketVersion', content: '3' },
    {
      name: 'ARVIRVideo',
      content: 'https://files.artsy.net/videos/artsy-eigen-arvir-iphone.mp4',
    },
    { name: 'ExchangeCurrentVersion', content: '1' },
    { name: 'LocalDiscoveryCurrentVersion', content: '2' },
    {
      name: 'LocalDiscoveryAllowListCSV',
      content: '56ec4863139b21562100026e,5c28731d287756002c8f6735,57a9833b6d932d38f000044c,58c7b908139b214de8598d0c,5c8bc82809b9510028404a58,5c8bcabf5a48a511f9925c90,5c8fafe695ac402fc5f1cfa9,502d15746e721400020006fa',
    },
    {
      name: 'StripeProductionPublishableKey',
      content: '${StripeProductionPublishableKey}',
    },
    {
      name: 'StripeStagingPublishableKey',
      content: '${StripeStagingPublishableKey}',
    },
    { name: 'KillSwitchBuildMinimum', content: '5.0.0' },
    { name: 'KillSwitchBuildMinimumAndroid', content: '5.0.0' },
    {
      name: 'LegacyFairSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-2020,highlights-international-art-fair-munich-2020,2020-art-taipei,1-54-london-2020',
    },
    {
      name: 'LegacyFairProfileSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-digital-2020,highlights-munich-2020,art-taipei-2020,1-54-london-2020,ifpda-print-fair,photo-london,highlights-munich,art-taipei,1-54',
    },
  ],
  routes: [
    { name: 'ARArtistRoute', path: '/artist/:id' },
    { name: 'ARProfileArtistRoute', path: '/:profile_id/artist/:id' },
    { name: 'ARArtworkRoute', path: '/artwork/:id' },
    { name: 'ARGeneRoute', path: '/gene/:id' },
    { name: 'ARShowRoute', path: '/show/:id' },
    {
      name: 'ARAuctionRegistrationRoute',
      path: '/auction-registration/:id',
    },
    { name: 'ARAuctionRoute', path: '/auction/:id' },
    {
      name: 'ARAuctionBidArtworkRoute',
      path: '/auction/:id/bid/:artwork_id',
    },
    { name: 'ARFairProfileForYouRoute', path: '/:profile_id/for-you' },
    {
      name: 'ARFairBrowseArtistRoute',
      path: '/:profile_id/browse/artist/:id',
    },
    { name: 'ARBrowseCategoriesRoute', path: '/categories' },
    { name: 'ARLiveAuctionsURLDomain', path: 'live.artsy.net' },
    {
      name: 'ARLiveAuctionsStagingURLDomain',
      path: 'live-staging.artsy.net',
    },
    { name: 'ARBuyNowRoute', path: '/orders/:id' },
  ],
  killedVersions: {
    ios: {},
    android: {},
  },
}

{
  id: 1,
  name: 'eigen',
  created_at: '2015-07-10T20:59:23.453Z',
  updated_at: '${ECHO_CURRENT_TIME}',
  features: [
    { name: 'ipad_vir', value: false },
    { name: 'iphone_vir', value: true },
    { name: 'ARDisableReactNativeBidFlow', value: false }, // old flag
    { name: 'AREnableBuyNowFlow', value: true },
    { name: 'AREnableMakeOfferFlow', value: true },
    { name: 'AREnableLocalDiscovery', value: true },
    { name: 'ARReactNativeArtworkEnableAlways', value: false },
    { name: 'ARReactNativeArtworkEnableNonCommercial', value: true },
    { name: 'ARReactNativeArtworkEnableNSOInquiry', value: true },
    { name: 'ARReactNativeArtworkEnableAuctions', value: true },
    { name: 'AROptionsPriceTransparency', value: true }, // old flag
    { name: 'AREnableNewPartnerView', value: true }, // old flag
    { name: 'AREnableNewSearch', value: true },
    { name: 'AROptionsLotConditionReport', value: true }, // old flag
    { name: 'AROptionsEnableSales', value: true },
    { name: 'AREnableViewingRooms', value: true }, // old flag
    { name: 'AROptionsNewFirstInquiry', value: true }, // old flag
    { name: 'AROptionsBidManagement', value: true }, // old flag
    { name: 'AROptionsArtistSeries', value: true }, // old flag
    { name: 'AROptionsNewFairPage', value: true },
    { name: 'AROptionsNewShowPage', value: true },
    { name: 'AROptionsNewSalePage', value: true }, // old flag
    { name: 'AREnableCustomSharesheet', value: true },
    { name: 'AROptionsNewInsightsPage', value: false }, // old flag
    { name: 'AREnableReactNativeWebView', value: true },
    { name: 'AROptionsNewArtistInsightsPage', value: true }, // 2021-05-17, removed: artsy/eigen#4753, deployed: 6.4.1
    { name: 'AROptionsInquiryCheckout', value: true },
    { name: 'AREnableOrderHistoryOption', value: true },
    { name: 'AREnableSavedSearch', value: true },
    { name: 'AREnableOnlyTargetSupplyConsignments', value: true },
    { name: 'ARHomeAuctionResultsByFollowedArtists', value: true },
  ],
  messages: [
    { name: 'LiveAuctionsCurrentWebSocketVersion', content: '3' },
    {
      name: 'ARVIRVideo',
      content: 'https://files.artsy.net/videos/artsy-eigen-arvir-iphone.mp4',
    },
    { name: 'ExchangeCurrentVersion', content: '1' },
    { name: 'LocalDiscoveryCurrentVersion', content: '2' },
    {
      name: 'LocalDiscoveryAllowListCSV',
      content: '56ec4863139b21562100026e,5c28731d287756002c8f6735,57a9833b6d932d38f000044c,58c7b908139b214de8598d0c,5c8bc82809b9510028404a58,5c8bcabf5a48a511f9925c90,5c8fafe695ac402fc5f1cfa9,502d15746e721400020006fa',
    },
    {
      name: 'StripeProductionPublishableKey',
      content: '${StripeProductionPublishableKey}',
    },
    {
      name: 'StripeStagingPublishableKey',
      content: '${StripeStagingPublishableKey}',
    },
    { name: 'KillSwitchBuildMinimum', content: '5.0.0' },
    { name: 'KillSwitchBuildMinimumAndroid', content: '5.0.0' },
    {
      name: 'LegacyFairSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-2020,highlights-international-art-fair-munich-2020,2020-art-taipei,1-54-london-2020',
    },
    {
      name: 'LegacyFairProfileSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-digital-2020,highlights-munich-2020,art-taipei-2020,1-54-london-2020,ifpda-print-fair,photo-london,highlights-munich,art-taipei,1-54',
    },
  ],
  routes: [
    { name: 'ARArtistRoute', path: '/artist/:id' },
    { name: 'ARProfileArtistRoute', path: '/:profile_id/artist/:id' },
    { name: 'ARArtworkRoute', path: '/artwork/:id' },
    { name: 'ARGeneRoute', path: '/gene/:id' },
    { name: 'ARShowRoute', path: '/show/:id' },
    {
      name: 'ARAuctionRegistrationRoute',
      path: '/auction-registration/:id',
    },
    { name: 'ARAuctionRoute', path: '/auction/:id' },
    {
      name: 'ARAuctionBidArtworkRoute',
      path: '/auction/:id/bid/:artwork_id',
    },
    { name: 'ARFairProfileForYouRoute', path: '/:profile_id/for-you' },
    {
      name: 'ARFairBrowseArtistRoute',
      path: '/:profile_id/browse/artist/:id',
    },
    { name: 'ARBrowseCategoriesRoute', path: '/categories' },
    { name: 'ARLiveAuctionsURLDomain', path: 'live.artsy.net' },
    {
      name: 'ARLiveAuctionsStagingURLDomain',
      path: 'live-staging.artsy.net',
    },
    { name: 'ARBuyNowRoute', path: '/orders/:id' },
  ],
  killedVersions: {
    ios: {},
    android: {},
  },
}


feat: mark AREnableSavedSearchV2 as ready!

{
  id: 1,
  name: 'eigen',
  created_at: '2015-07-10T20:59:23.453Z',
  updated_at: '${ECHO_CURRENT_TIME}',
  features: [
    { name: 'ipad_vir', value: false },
    { name: 'iphone_vir', value: true },
    { name: 'ARDisableReactNativeBidFlow', value: false }, // old flag
    { name: 'AREnableBuyNowFlow', value: true },
    { name: 'AREnableMakeOfferFlow', value: true },
    { name: 'AREnableLocalDiscovery', value: true },
    { name: 'ARReactNativeArtworkEnableAlways', value: false },
    { name: 'ARReactNativeArtworkEnableNonCommercial', value: true },
    { name: 'ARReactNativeArtworkEnableNSOInquiry', value: true },
    { name: 'ARReactNativeArtworkEnableAuctions', value: true },
    { name: 'AROptionsPriceTransparency', value: true }, // old flag
    { name: 'AREnableNewPartnerView', value: true }, // old flag
    { name: 'AREnableNewSearch', value: true },
    { name: 'AROptionsLotConditionReport', value: true }, // old flag
    { name: 'AROptionsEnableSales', value: true },
    { name: 'AREnableViewingRooms', value: true }, // old flag
    { name: 'AROptionsNewFirstInquiry', value: true }, // old flag
    { name: 'AROptionsBidManagement', value: true }, // old flag
    { name: 'AROptionsArtistSeries', value: true }, // old flag
    { name: 'AROptionsNewFairPage', value: true },
    { name: 'AROptionsNewShowPage', value: true },
    { name: 'AROptionsNewSalePage', value: true }, // old flag
    { name: 'AREnableCustomSharesheet', value: true },
    { name: 'AROptionsNewInsightsPage', value: false }, // old flag
    { name: 'AREnableReactNativeWebView', value: true },
    { name: 'AROptionsNewArtistInsightsPage', value: true }, // 2021-05-17, removed: artsy/eigen#4753, deployed: 6.4.1
    { name: 'AROptionsInquiryCheckout', value: true },
    { name: 'AREnableOrderHistoryOption', value: true },
    { name: 'AREnableSavedSearch', value: true },
    { name: 'AREnableSavedSearchAndroid', value: false },
    { name: 'AREnableSavedSearchV2', value: true },
    { name: 'AREnableOnlyTargetSupplyConsignments', value: true },
    { name: 'AREnableAuctionResultsKeywordFilter', value: true },
    { name: 'ARHomeAuctionResultsByFollowedArtists', value: true },
  ],
  messages: [
    { name: 'LiveAuctionsCurrentWebSocketVersion', content: '3' },
    {
      name: 'ARVIRVideo',
      content: 'https://files.artsy.net/videos/artsy-eigen-arvir-iphone.mp4',
    },
    { name: 'ExchangeCurrentVersion', content: '1' },
    { name: 'LocalDiscoveryCurrentVersion', content: '2' },
    {
      name: 'LocalDiscoveryAllowListCSV',
      content: '56ec4863139b21562100026e,5c28731d287756002c8f6735,57a9833b6d932d38f000044c,58c7b908139b214de8598d0c,5c8bc82809b9510028404a58,5c8bcabf5a48a511f9925c90,5c8fafe695ac402fc5f1cfa9,502d15746e721400020006fa',
    },
    {
      name: 'StripeProductionPublishableKey',
      content: '${StripeProductionPublishableKey}',
    },
    {
      name: 'StripeStagingPublishableKey',
      content: '${StripeStagingPublishableKey}',
    },
    { name: 'KillSwitchBuildMinimum', content: '5.0.0' },
    { name: 'KillSwitchBuildMinimumAndroid', content: '5.0.0' },
    {
      name: 'LegacyFairSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-2020,highlights-international-art-fair-munich-2020,2020-art-taipei,1-54-london-2020',
    },
    {
      name: 'LegacyFairProfileSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-digital-2020,highlights-munich-2020,art-taipei-2020,1-54-london-2020,ifpda-print-fair,photo-london,highlights-munich,art-taipei,1-54',
    },
  ],
  routes: [
    { name: 'ARArtistRoute', path: '/artist/:id' },
    { name: 'ARProfileArtistRoute', path: '/:profile_id/artist/:id' },
    { name: 'ARArtworkRoute', path: '/artwork/:id' },
    { name: 'ARGeneRoute', path: '/gene/:id' },
    { name: 'ARShowRoute', path: '/show/:id' },
    {
      name: 'ARAuctionRegistrationRoute',
      path: '/auction-registration/:id',
    },
    { name: 'ARAuctionRoute', path: '/auction/:id' },
    {
      name: 'ARAuctionBidArtworkRoute',
      path: '/auction/:id/bid/:artwork_id',
    },
    { name: 'ARFairProfileForYouRoute', path: '/:profile_id/for-you' },
    {
      name: 'ARFairBrowseArtistRoute',
      path: '/:profile_id/browse/artist/:id',
    },
    { name: 'ARBrowseCategoriesRoute', path: '/categories' },
    { name: 'ARLiveAuctionsURLDomain', path: 'live.artsy.net' },
    {
      name: 'ARLiveAuctionsStagingURLDomain',
      path: 'live-staging.artsy.net',
    },
    { name: 'ARBuyNowRoute', path: '/orders/:id' },
  ],
  killedVersions: {
    ios: {},
    android: {},
  },
}

{
  id: 1,
  name: 'eigen',
  created_at: '2015-07-10T20:59:23.453Z',
  updated_at: '${ECHO_CURRENT_TIME}',
  features: [
    { name: 'ipad_vir', value: false },
    { name: 'iphone_vir', value: true },
    { name: 'ARDisableReactNativeBidFlow', value: false }, // old flag
    { name: 'AREnableBuyNowFlow', value: true },
    { name: 'AREnableMakeOfferFlow', value: true },
    { name: 'AREnableLocalDiscovery', value: true },
    { name: 'ARReactNativeArtworkEnableAlways', value: false },
    { name: 'ARReactNativeArtworkEnableNonCommercial', value: true },
    { name: 'ARReactNativeArtworkEnableNSOInquiry', value: true },
    { name: 'ARReactNativeArtworkEnableAuctions', value: true },
    { name: 'AROptionsPriceTransparency', value: true }, // old flag
    { name: 'AREnableNewPartnerView', value: true }, // old flag
    { name: 'AREnableNewSearch', value: true },
    { name: 'AROptionsLotConditionReport', value: true }, // old flag
    { name: 'AROptionsEnableSales', value: true },
    { name: 'AREnableViewingRooms', value: true }, // old flag
    { name: 'AROptionsNewFirstInquiry', value: true }, // old flag
    { name: 'AROptionsBidManagement', value: true }, // old flag
    { name: 'AROptionsArtistSeries', value: true }, // old flag
    { name: 'AROptionsNewFairPage', value: true },
    { name: 'AROptionsNewShowPage', value: true },
    { name: 'AROptionsNewSalePage', value: true }, // old flag
    { name: 'AREnableCustomSharesheet', value: true },
    { name: 'AROptionsNewInsightsPage', value: false }, // old flag
    { name: 'AREnableReactNativeWebView', value: true },
    { name: 'AROptionsNewArtistInsightsPage', value: true }, // 2021-05-17, removed: artsy/eigen#4753, deployed: 6.4.1
    { name: 'AROptionsInquiryCheckout', value: true },
    { name: 'AREnableOrderHistoryOption', value: true },
    { name: 'AREnableSavedSearch', value: true },
    { name: 'AREnableSavedSearchAndroid', value: false },
    { name: 'AREnableSavedSearchV2', value: false },
    { name: 'AREnableOnlyTargetSupplyConsignments', value: true },
    { name: 'AREnableAuctionResultsKeywordFilter', value: true },
    { name: 'ARHomeAuctionResultsByFollowedArtists', value: true },
  ],
  messages: [
    { name: 'LiveAuctionsCurrentWebSocketVersion', content: '3' },
    {
      name: 'ARVIRVideo',
      content: 'https://files.artsy.net/videos/artsy-eigen-arvir-iphone.mp4',
    },
    { name: 'ExchangeCurrentVersion', content: '1' },
    { name: 'LocalDiscoveryCurrentVersion', content: '2' },
    {
      name: 'LocalDiscoveryAllowListCSV',
      content: '56ec4863139b21562100026e,5c28731d287756002c8f6735,57a9833b6d932d38f000044c,58c7b908139b214de8598d0c,5c8bc82809b9510028404a58,5c8bcabf5a48a511f9925c90,5c8fafe695ac402fc5f1cfa9,502d15746e721400020006fa',
    },
    {
      name: 'StripeProductionPublishableKey',
      content: '${StripeProductionPublishableKey}',
    },
    {
      name: 'StripeStagingPublishableKey',
      content: '${StripeStagingPublishableKey}',
    },
    { name: 'KillSwitchBuildMinimum', content: '5.0.0' },
    { name: 'KillSwitchBuildMinimumAndroid', content: '5.0.0' },
    {
      name: 'LegacyFairSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-2020,highlights-international-art-fair-munich-2020,2020-art-taipei,1-54-london-2020',
    },
    {
      name: 'LegacyFairProfileSlugs', // 2021-05-17, removed: artsy/eigen#4785, wait for few or no users with version 6.9.0 to remove from echo
      content: 'ifpda-fine-art-print-fair-online-fall-2020,photo-london-digital-2020,highlights-munich-2020,art-taipei-2020,1-54-london-2020,ifpda-print-fair,photo-london,highlights-munich,art-taipei,1-54',
    },
  ],
  routes: [
    { name: 'ARArtistRoute', path: '/artist/:id' },
    { name: 'ARProfileArtistRoute', path: '/:profile_id/artist/:id' },
    { name: 'ARArtworkRoute', path: '/artwork/:id' },
    { name: 'ARGeneRoute', path: '/gene/:id' },
    { name: 'ARShowRoute', path: '/show/:id' },
    {
      name: 'ARAuctionRegistrationRoute',
      path: '/auction-registration/:id',
    },
    { name: 'ARAuctionRoute', path: '/auction/:id' },
    {
      name: 'ARAuctionBidArtworkRoute',
      path: '/auction/:id/bid/:artwork_id',
    },
    { name: 'ARFairProfileForYouRoute', path: '/:profile_id/for-you' },
    {
      name: 'ARFairBrowseArtistRoute',
      path: '/:profile_id/browse/artist/:id',
    },
    { name: 'ARBrowseCategoriesRoute', path: '/categories' },
    { name: 'ARLiveAuctionsURLDomain', path: 'live.artsy.net' },
    {
      name: 'ARLiveAuctionsStagingURLDomain',
      path: 'live-staging.artsy.net',
    },
    { name: 'ARBuyNowRoute', path: '/orders/:id' },
  ],
  killedVersions: {
    ios: {},
    android: {},
  },
}


Support "x" values in connections. (#61)

Yosys can produce "x" (don't care) values for connections. They appear
in a similar manner to the constants "1" and "0".

{
  "description": "JSON Schema Yosys netlists JSON format",
  "type": "object",
  // an empty object is invalid
  "required": ["modules"],
  "errorMessage": {
    "type": "netlist must be a JSON object",
    "required": "netlist must have a modules property",
  },
  "properties": {
    "modules": {
      "type": "object",
      // there must be at least one module
      "minProperties": 1,
        "errorMessage": {
          "type": "netlist modules must be objects",
          "minProperties": "netlist must have at least one module",
        },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "ports": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              // all ports must have bits and a direction
              "required": ["direction", "bits"],
              "properties": {
                "direction": {
                  "enum": ["input", "output"]
                },
                "bits": {
                  "type": "array",
                  // bits can be the string "0", "1", "x", or a number.
                  "items": {
                    "oneOf":[{"type":"number"}, {"enum":["0","1","x"]}]
                  }
                }
              }
            }
          },
          "cells": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              // all cells must have a type and connections
              "required": [
                "type",
                "connections"
              ],
              "properties": {
                "type":{"type":"string"},
                "connections": {
                  "type": "object",
                  "additionalProperties": {
                    "type":"array",
                    "items": {
                      "oneOf":[{"type":"number"}, {"enum":["0","1","x"]}]
                    }
                  }
                },
                // port directions are optional
                "port_directions":{
                  "type": "object",
                  "additionalProperties": {
                    "enum": ["input", "output"]
                  }
                },
                // netlistsvg doesn't use these yet
                "hide_name": {"enum":[0, 1]},
                "parameters": {"type": "object"},
                "attributes": {"type": "object"}
              }
            }
          },
          // not yet used by netlistsvg
          "netnames": {
            "type": "object",
            "properties":{
              "bits": {
                "type": "array",
                // bits can be the string "0", "1", "x", or a number.
                "items": {
                  "oneOf":[{"type":"number"}, {"enum":["0","1","x"]}]
                }
              },
              "hide_name": {"enum":[0, 1]}
            }
          }
        },
        // there must either be ports or cells attribute
        "anyOf": [{"required": ["ports"]},{"required": ["cells"]}]
      }
    }
  }
}

{
  "description": "JSON Schema Yosys netlists JSON format",
  "type": "object",
  // an empty object is invalid
  "required": ["modules"],
  "errorMessage": {
    "type": "netlist must be a JSON object",
    "required": "netlist must have a modules property",
  },
  "properties": {
    "modules": {
      "type": "object",
      // there must be at least one module
      "minProperties": 1,
        "errorMessage": {
          "type": "netlist modules must be objects",
          "minProperties": "netlist must have at least one module",
        },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "ports": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              // all ports must have bits and a direction
              "required": ["direction", "bits"],
              "properties": {
                "direction": {
                  "enum": ["input", "output"]
                },
                "bits": {
                  "type": "array",
                  // bits can be the string "0", "1", or a number.
                  "items": {
                    "oneOf":[{"type":"number"}, {"enum":["0","1"]}]
                  }
                }
              }
            }
          },
          "cells": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              // all cells must have a type and connections
              "required": [
                "type",
                "connections"
              ],
              "properties": {
                "type":{"type":"string"},
                "connections": {
                  "type": "object",
                  "additionalProperties": {
                    "type":"array",
                    "items": {
                      "oneOf":[{"type":"number"}, {"enum":["0","1"]}]
                    }
                  }
                },
                // port directions are optional
                "port_directions":{
                  "type": "object",
                  "additionalProperties": {
                    "enum": ["input", "output"]
                  }
                },
                // netlistsvg doesn't use these yet
                "hide_name": {"enum":[0, 1]},
                "parameters": {"type": "object"},
                "attributes": {"type": "object"}
              }
            }
          },
          // not yet used by netlistsvg
          "netnames": {
            "type": "object",
            "properties":{
              "bits": {
                "type": "array",
                // bits can be the string "0", "1", or a number.
                "items": {
                  "oneOf":[{"type":"number"}, {"enum":["0","1"]}]
                }
              },
              "hide_name": {"enum":[0, 1]}
            }
          }
        },
        // there must either be ports or cells attribute
        "anyOf": [{"required": ["ports"]},{"required": ["cells"]}]
      }
    }
  }
}


chore: add data for 2018-10-29

chore: add data for 2018-10-29


chore: add data for 2018-06-23

chore: add data for 2018-06-23


chore: add data for 2019-08-01

chore: add data for 2019-08-01


chore: add data for 2019-03-27

chore: add data for 2019-03-27


chore: add data for 2019-03-22

chore: add data for 2019-03-22


chore: add data for 2020-08-07

chore: add data for 2020-08-07


chore: add data for 2020-08-26

chore: add data for 2020-08-26


chore: add data for 2020-03-06

chore: add data for 2020-03-06


chore: add data for 2021-09-24

chore: add data for 2021-09-24


chore: add data for 2021-07-09

chore: add data for 2021-07-09


Decrease instances.

Decrease instances.

// This is the pm2 configuration file for npms-badges
{
    apps: [
        {
            name: 'npms-badges',
            script: './server.js',
            instances: 2,
            env : { NODE_ENV: 'production' },
            max_memory_restart: '1500M'
        },
    ],
    deploy: {
        production: {
            user: 'www',
            host: '212.47.226.136',
            ref: 'origin/master',
            repo: 'https://github.com/npms-io/npms-badges.git',
            path: '/home/www/npms-badges',
            'post-deploy': '\
cp ../local.json5 ./config/ && \
npm update --loglevel http --production && \
pm2 startOrRestart ecosystem.json5 --env production',
        },
    },
}

// This is the pm2 configuration file for npms-badges
{
    apps: [
        {
            name: 'npms-badges',
            script: './server.js',
            instances: 3,
            env : { NODE_ENV: 'production' },
            max_memory_restart: '1500M'
        },
    ],
    deploy: {
        production: {
            user: 'www',
            host: '212.47.226.136',
            ref: 'origin/master',
            repo: 'https://github.com/npms-io/npms-badges.git',
            path: '/home/www/npms-badges',
            'post-deploy': '\
cp ../local.json5 ./config/ && \
npm update --loglevel http --production && \
pm2 startOrRestart ecosystem.json5 --env production',
        },
    },
}


Add: default Renovate labels

Add: default Renovate labels

Signed-off-by: Nicolas Lamirault <57a11b2dec5b8363280015e1663433805cc2169e@gmail.com>

{
  "extends": [
    "config:base",
    ":gitSignOff"
  ],
  "enabled": true,
  "timezone": "Europe/Paris",
  "dependencyDashboard": true,
  "dependencyDashboardTitle": "Renovate Dashboard",
  // "gitAuthor": "Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // "commitBody": "Signed-off-by: Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // Do not notify on closed unmerged PRs
  "suppressNotifications": ["prIgnoreNotification"],
  // Do not rebase PRs
  "rebaseWhen": "conflicted",
  "assignees": ["@nlamirault"],
  "reviewersFromCodeOwners": true,
  "labels": ["area/renovate"],
  "helm-values": {
    "fileMatch": ["kubernetes/.+\\.yaml$"]
  },
  "regexManagers": [
    {
      "fileMatch": ["kubernetes/.+\\.yaml$"],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart: (?<depName>.*?)\n *version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
    {
      "fileMatch": [
        "iac/alicloud/kubernetes/.+\\.tfvars$",
        "iac/aws/kubernetes/.+\\.tfvars$",
        "iac/azure/kubernetes/.+\\.tfvars$",
        "iac/digitalocean/kubernetes/.+\\.tfvars$",
        "iac/gcp/kubernetes/.+\\.tfvars$"
      ],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart_name: (?<depName>.*?)\n *chart_version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
  ],
  "packageRules": [
    // Setup datasources
    {
      "datasources": ["helm"],
      "commitMessageTopic": "Helm chart {{depName}}",
      "separateMinorPatch": true
    },
    // Labels for Terraform
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/terraform", "priority/high", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/terraform", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/terraform", "priority/low", "size/xs"]
    },
    // Labels for Docker
    {
      "datasources": ["docker"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/docker", "priority/high", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/docker", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/docker", "priority/low", "size/xs"]
    },
    // Labels for Helm
    {
      "datasources": ["helm"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/helm", "priority/high", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/helm", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/helm", "priority/low", "size/xs"]
    },
    // Enable auto-merge docker
    // {
    //   "datasources": ["docker"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["minor", "patch"],
    // },
    // Enable auto-merge helm
    // {
    //   "datasources": ["helm"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["patch"],
    // }
  ]
}

{
  "extends": [
    "config:base",
    ":gitSignOff"
  ],
  "enabled": true,
  "timezone": "Europe/Paris",
  "dependencyDashboard": true,
  "dependencyDashboardTitle": "Renovate Dashboard",
  // "gitAuthor": "Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // "commitBody": "Signed-off-by: Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // Do not notify on closed unmerged PRs
  "suppressNotifications": ["prIgnoreNotification"],
  // Do not rebase PRs
  "rebaseWhen": "conflicted",
  "assignees": ["@nlamirault"],
  "reviewersFromCodeOwners": true,
  "helm-values": {
    "fileMatch": ["kubernetes/.+\\.yaml$"]
  },
  "regexManagers": [
    {
      "fileMatch": ["kubernetes/.+\\.yaml$"],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart: (?<depName>.*?)\n *version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
    {
      "fileMatch": [
        "iac/alicloud/kubernetes/.+\\.tfvars$",
        "iac/aws/kubernetes/.+\\.tfvars$",
        "iac/azure/kubernetes/.+\\.tfvars$",
        "iac/digitalocean/kubernetes/.+\\.tfvars$",
        "iac/gcp/kubernetes/.+\\.tfvars$"
      ],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart_name: (?<depName>.*?)\n *chart_version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
  ],
  "packageRules": [
    // Setup datasources
    {
      "datasources": ["helm"],
      "commitMessageTopic": "Helm chart {{depName}}",
      "separateMinorPatch": true
    },
    // Labels for Terraform
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/terraform", "priority/high", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/terraform", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/terraform", "priority/low", "size/xs"]
    },
    // Labels for Docker
    {
      "datasources": ["docker"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/docker", "priority/high", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/docker", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/docker", "priority/low", "size/xs"]
    },
    // Labels for Helm
    {
      "datasources": ["helm"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/helm", "priority/high", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/helm", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/helm", "priority/low", "size/xs"]
    },
    // Enable auto-merge docker
    // {
    //   "datasources": ["docker"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["minor", "patch"],
    // },
    // Enable auto-merge helm
    // {
    //   "datasources": ["helm"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["patch"],
    // }
  ]
}


Chore(renovate): Ignore d3-scale-chromatic until we move to esm modules (#40819)

Co-authored-by: Ashley Harrison <5b142ca007d0a9ee4b1e6fe8fe62d38a909a4050@grafana.com>

{
  "extends": [
    "config:base"
  ],
  "enabledManagers": ["npm"],
  "ignoreDeps": [
    "@types/systemjs",
    "@types/d3-force", // we should bump this once we move to esm modules
    "@types/d3-scale-chromatic", // we should bump this once we move to esm modules
    "d3",
    "d3-force", // we should bump this once we move to esm modules
    "d3-scale-chromatic", // we should bump this once we move to esm modules
    "eslint", // wait until `eslint-plugin-react-hooks>4.2.0` is released
    "globby", // we should bump this once we move to esm modules
    "slate",
    "slate-plain-serializer",
    "systemjs",
    "ts-loader", // we should remove ts-loader and use babel-loader instead
    "ora" // we should bump this once we move to esm modules
  ],
  "ignorePaths": ["emails/**", "plugins-bundled/**", "**/mocks/**"],
  "labels": ["area/frontend", "dependencies"],
  "minor": {
    "enabled": false
  },
  "packageRules": [
    {
      "matchPaths": ["grafana-toolkit/package.json"],
      "ignoreDeps": [
        "copy-webpack-plugin", // need to wait for Grafana 9 to upgrade toolkit to webpack 5
        "css-loader", // need to wait for Grafana 9 to upgrade toolkit to webpack 5
      ]
    }
  ],
  "patch": {
    "enabled": false
  },
  "pin": {
    "enabled": false
  },
  "prConcurrentLimit": 10,
  "reviewers": ["team:grafana/frontend-ops"],
  "separateMajorMinor": false,
  "vulnerabilityAlerts": {
    "addLabels": ["area/security"]
  }
}

{
  "extends": [
    "config:base"
  ],
  "enabledManagers": ["npm"],
  "ignoreDeps": [
    "@types/systemjs",
    "@types/d3-force",
    "d3",
    "d3-force", // we should bump this once we move to esm modules
    "eslint", // wait until `eslint-plugin-react-hooks>4.2.0` is released
    "globby", // we should bump this once we move to esm modules
    "slate",
    "slate-plain-serializer",
    "systemjs",
    "ts-loader", // we should remove ts-loader and use babel-loader instead
    "ora" // we should bump this once we move to esm modules
  ],
  "ignorePaths": ["emails/**", "plugins-bundled/**", "**/mocks/**"],
  "labels": ["area/frontend", "dependencies"],
  "minor": {
    "enabled": false
  },
  "packageRules": [
    {
      "matchPaths": ["grafana-toolkit/package.json"],
      "ignoreDeps": [
        "copy-webpack-plugin", // need to wait for Grafana 9 to upgrade toolkit to webpack 5
        "css-loader", // need to wait for Grafana 9 to upgrade toolkit to webpack 5
      ]
    }
  ],
  "patch": {
    "enabled": false
  },
  "pin": {
    "enabled": false
  },
  "prConcurrentLimit": 10,
  "reviewers": ["team:grafana/frontend-ops"],
  "separateMajorMinor": false,
  "vulnerabilityAlerts": {
    "addLabels": ["area/security"]
  }
}


Chore: group some packages to reduce number of PRs (#57912)

* group some packages to reduce number of PRs

* Group slate + slate-react together

* kick drone

{
  "extends": [
    "config:base"
  ],
  "enabledManagers": ["npm"],
  "ignoreDeps": [
    "@types/systemjs",
    "@types/d3-force", // we should bump this once we move to esm modules
    "@types/d3-interpolate", // we should bump this once we move to esm modules
    "@types/d3-scale-chromatic", // we should bump this once we move to esm modules
    "@types/react-icons", // jaeger-ui-components is being refactored to use @grafana/ui icons instead
    "commander", // we are planning to remove this, so no need to update it
    "d3",
    "d3-force", // we should bump this once we move to esm modules
    "d3-interpolate", // we should bump this once we move to esm modules
    "d3-scale-chromatic", // we should bump this once we move to esm modules
    "execa", // we should bump this once we move to esm modules
    "history", // we should bump this together with react-router-dom
    "@mdx-js/react", // storybook peer-depends on its 1.x version, we should upgrade this when we upgrade storybook
    "monaco-editor", // due to us exposing this via @grafana/ui/CodeEditor's props bumping can break plugins
    "node-fetch", // we should bump this once we move to esm modules
    "react-hook-form", // due to us exposing these hooks via @grafana/ui form components bumping can break plugins
    "react-icons", // jaeger-ui-components is being refactored to use @grafana/ui icons instead
    "react-redux", // react-beautiful-dnd depends on react-redux 7.x, we need to update that one first
    "react-router-dom", // we should bump this together with history
    "systemjs",
    "copy-webpack-plugin", // try to upgrade with newer yarn release. Not working with 3.1.1
    "ts-loader", // we should remove ts-loader and use babel-loader instead
    "ora", // we should bump this once we move to esm modules

    // dep updates blocked by React 18
    "@testing-library/react",
    "@types/react",
    "@types/react-dom",
    "@types/react-test-renderer",
    "react",
    "react-dom",
    "react-test-renderer"
  ],
  "ignorePaths": ["packages/grafana-toolkit/package.json", "emails/**", "plugins-bundled/**", "**/mocks/**"],
  "labels": ["area/frontend", "dependencies", "no-backport", "no-changelog"],
  "packageRules": [
    {
      "matchUpdateTypes": ["patch"],
      "excludePackagePatterns": ["@storybook"],
      "extends": ["schedule:monthly"],
      "groupName": "Monthly patch updates"
    },
    {
      "matchPackagePatterns": ["@storybook"],
      "extends": ["schedule:monthly"],
      "groupName": "Storybook updates"
    },
    {
      "groupName": "React Aria",
      "matchPackagePrefixes": [
        "@react-aria/",
        "@react-stately/"
      ]
    },
    {
      "groupName": "Moveable",
      "matchPackageNames": [
        "moveable",
        "react-moveable"
      ]
    },
    {
      "groupName": "Slate",
      "matchPackageNames": [
        "slate",
        "slate-react"
      ]
    }
  ],
  "pin": {
    "enabled": false
  },
  "prConcurrentLimit": 10,
  "reviewers": ["team:grafana/frontend-ops"],
  "separateMajorMinor": false,
  "vulnerabilityAlerts": {
    "addLabels": ["area/security"]
  }
}

{
  "extends": [
    "config:base"
  ],
  "enabledManagers": ["npm"],
  "ignoreDeps": [
    "@types/systemjs",
    "@types/d3-force", // we should bump this once we move to esm modules
    "@types/d3-interpolate", // we should bump this once we move to esm modules
    "@types/d3-scale-chromatic", // we should bump this once we move to esm modules
    "@types/react-icons", // jaeger-ui-components is being refactored to use @grafana/ui icons instead
    "commander", // we are planning to remove this, so no need to update it
    "d3",
    "d3-force", // we should bump this once we move to esm modules
    "d3-interpolate", // we should bump this once we move to esm modules
    "d3-scale-chromatic", // we should bump this once we move to esm modules
    "execa", // we should bump this once we move to esm modules
    "history", // we should bump this together with react-router-dom
    "@mdx-js/react", // storybook peer-depends on its 1.x version, we should upgrade this when we upgrade storybook
    "monaco-editor", // due to us exposing this via @grafana/ui/CodeEditor's props bumping can break plugins
    "node-fetch", // we should bump this once we move to esm modules
    "react-hook-form", // due to us exposing these hooks via @grafana/ui form components bumping can break plugins
    "react-icons", // jaeger-ui-components is being refactored to use @grafana/ui icons instead
    "react-redux", // react-beautiful-dnd depends on react-redux 7.x, we need to update that one first
    "react-router-dom", // we should bump this together with history
    "systemjs",
    "copy-webpack-plugin", // try to upgrade with newer yarn release. Not working with 3.1.1
    "ts-loader", // we should remove ts-loader and use babel-loader instead
    "ora", // we should bump this once we move to esm modules

    // dep updates blocked by React 18
    "@testing-library/react",
    "@types/react",
    "@types/react-dom",
    "@types/react-test-renderer",
    "react",
    "react-dom",
    "react-test-renderer"
  ],
  "ignorePaths": ["packages/grafana-toolkit/package.json", "emails/**", "plugins-bundled/**", "**/mocks/**"],
  "labels": ["area/frontend", "dependencies", "no-backport", "no-changelog"],
  "packageRules": [
    {
      "matchUpdateTypes": ["patch"],
      "excludePackagePatterns": ["@storybook"],
      "extends": ["schedule:monthly"],
      "groupName": "Monthly patch updates"
    },
    {
      "matchPackagePatterns": ["@storybook"],
      "extends": ["schedule:monthly"],
      "groupName": "Storybook updates"
    }
  ],
  "pin": {
    "enabled": false
  },
  "prConcurrentLimit": 10,
  "reviewers": ["team:grafana/frontend-ops"],
  "separateMajorMinor": false,
  "vulnerabilityAlerts": {
    "addLabels": ["area/security"]
  }
}


Fixed padded-blocks eslint rule.

Fixed padded-blocks eslint rule.

{
  root: true,
  parser: 'babel-eslint',
  extends: ['airbnb/base'],
  plugins: ['flowtype', 'promise', 'unicorn', 'jest'],
  env: {
    node: true,
    jest: true,
  },
  globals: {
    __DEV__: true,
  },
  settings: {
    flowtype: {
      onlyFilesWithFlowAnnotation: true,
    },
  },
  parserOptions: {
    sourceType: 'module',
    ecmaVersion: 2018,
    ecmaFeatures: {
      jsx: true,
      experimentalObjectRestSpread: true,
    },
  },
  rules: {
    'class-methods-use-this': 'off',
    'padded-blocks': ['error', {
      // Dont apply either rule to blocks
      // blocks: 'never',
      classes: 'never',
      switches: 'never',
    }],
    'flowtype/boolean-style': 'error',
    'flowtype/define-flow-type': 'error',
    'flowtype/delimiter-dangle': ['error', 'always-multiline'],
    'flowtype/generic-spacing': ['error', 'never'],
    'flowtype/no-dupe-keys': 'error',
    'flowtype/no-primitive-constructor-types': 'error',
    'flowtype/no-types-missing-file-annotation': 'error',
    'flowtype/no-weak-types': ['error', {
      any: true,
      'Object': false,
      'Function': true,
    }],
    'flowtype/object-type-delimiter': ['error', 'comma'],
    'flowtype/require-parameter-type': ['error', {
      excludeArrowFunctions: true,
    }],
    'flowtype/require-return-type': ['error', {
      excludeArrowFunctions: true,
    }],
    'flowtype/require-valid-file-annotation': ['error', 'always'],
    'flowtype/require-variable-type': 'off',
    'flowtype/semi': ['error', 'always'],
    'flowtype/sort-keys': ['error', 'asc', {
      natural: true,
    }],
    'flowtype/space-after-type-colon': ['error', 'always', {
      allowLineBreak: false,
    }],
    'flowtype/space-before-generic-bracket': ['error', 'never'],
    'flowtype/space-before-type-colon': ['error', 'never'],
    'flowtype/type-id-match': 'off',
    'flowtype/union-intersection-spacing': ['error', 'always'],
    'flowtype/use-flow-type': 'error',
    'import/no-extraneous-dependencies': 'off',
    'promise/always-return': 'error',
    'promise/avoid-new': 'off',
    'promise/catch-or-return': 'error',
    'promise/no-callback-in-promise': 'error',
    'promise/no-native': 'off',
    'promise/no-nesting': 'off',
    'promise/no-promise-in-callback': 'error',
    'promise/no-return-wrap': 'error',
    'promise/param-names': 'error',
    'unicorn/catch-error-name': ['error', {
      name: 'error',
    }],
    'unicorn/custom-error-definition': 'error',
    'unicorn/escape-case': 'error',
    'unicorn/explicit-length-check': 'error',
    'unicorn/filename-case': 'off',
    'unicorn/no-abusive-eslint-disable': 'off',
    'unicorn/no-array-instanceof': 'error',
    'unicorn/no-hex-escape': 'error',
    'unicorn/no-new-buffer': 'error',
    'unicorn/no-process-exit': 'error',
    'unicorn/number-literal-case': 'error',
    'unicorn/prefer-starts-ends-with': 'error',
    'unicorn/prefer-type-error': 'error',
    'unicorn/throw-new-error': 'error',

    // New and not in Airbnb yet
    'no-multi-spaces': ['error', {
      ignoreEOLComments: true,
    }],
    'import/no-anonymous-default-export': ['error', {
      allowObject: true,
    }],

    // Want to support but disabled in Airbnb
    'complexity': ['error', 11],
    'getter-return': 'error',
    'jsx-quotes': ['error', 'prefer-double'],
    'newline-before-return': 'error',
    'no-compare-neg-zero': 'error',
    'no-constant-condition': 'error',
    'no-div-regex': 'error',
    'no-eq-null': 'error',
    'no-implicit-coercion': 'error',
    'no-magic-numbers': ['error', {
      ignore: [-1, 0, 1],
      ignoreArrayIndexes: true,
      enforceConst: true,
    }],
    'no-native-reassign': 'error',
    'no-negated-condition': 'error',
    'no-unused-vars': ['error', {
      vars: 'all',
      args: 'none', // Required for Flow
      ignoreRestSiblings: true,
    }],
    'no-useless-call': 'error',
    'prefer-destructuring': 'error',
    'prefer-promise-reject-errors': ['error', {
      allowEmptyReject: true,
    }],
    'import/default': 'error',
    'import/named': 'error',

    // Does not work with Flow
    'no-extra-parens': 'off',
    'sort-imports': 'off',
    'import/order': 'off',

    // Does not work with class properties
    'no-invalid-this': 'off',

    // Temporary for tests
    // 'no-magic-numbers': 'off',
    'jest/no-identical-title': 'error',
    'jest/valid-expect': 'error',
  },
  // overrides: [
  //   {
  //     files: ['tests/**/*.test.js'],
  //     plugins: ['jest'],
  //     env: {
  //       jest: true,
  //     },
  //     rules: {
  //       'no-magic-numbers': 'off',
  //       'jest/no-identical-title': 'error',
  //       'jest/valid-expect': 'error',
  //     },
  //   },
  // ],
}

{
  root: true,
  parser: 'babel-eslint',
  extends: ['airbnb/base'],
  plugins: ['flowtype', 'promise', 'unicorn', 'jest'],
  env: {
    node: true,
    jest: true,
  },
  globals: {
    __DEV__: true,
  },
  settings: {
    flowtype: {
      onlyFilesWithFlowAnnotation: true,
    },
  },
  parserOptions: {
    sourceType: 'module',
    ecmaVersion: 2018,
    ecmaFeatures: {
      jsx: true,
      experimentalObjectRestSpread: true,
    },
  },
  rules: {
    'class-methods-use-this': 'off',
    'padded-blocks': ['error', {
      blocks: 'never',
      classes: 'never',
      switches: 'never',
    }],
    'flowtype/boolean-style': 'error',
    'flowtype/define-flow-type': 'error',
    'flowtype/delimiter-dangle': ['error', 'always-multiline'],
    'flowtype/generic-spacing': ['error', 'never'],
    'flowtype/no-dupe-keys': 'error',
    'flowtype/no-primitive-constructor-types': 'error',
    'flowtype/no-types-missing-file-annotation': 'error',
    'flowtype/no-weak-types': ['error', {
      any: true,
      'Object': false,
      'Function': true,
    }],
    'flowtype/object-type-delimiter': ['error', 'comma'],
    'flowtype/require-parameter-type': ['error', {
      excludeArrowFunctions: true,
    }],
    'flowtype/require-return-type': ['error', {
      excludeArrowFunctions: true,
    }],
    'flowtype/require-valid-file-annotation': ['error', 'always'],
    'flowtype/require-variable-type': 'off',
    'flowtype/semi': ['error', 'always'],
    'flowtype/sort-keys': ['error', 'asc', {
      natural: true,
    }],
    'flowtype/space-after-type-colon': ['error', 'always', {
      allowLineBreak: false,
    }],
    'flowtype/space-before-generic-bracket': ['error', 'never'],
    'flowtype/space-before-type-colon': ['error', 'never'],
    'flowtype/type-id-match': 'off',
    'flowtype/union-intersection-spacing': ['error', 'always'],
    'flowtype/use-flow-type': 'error',
    'import/no-extraneous-dependencies': 'off',
    'promise/always-return': 'error',
    'promise/avoid-new': 'off',
    'promise/catch-or-return': 'error',
    'promise/no-callback-in-promise': 'error',
    'promise/no-native': 'off',
    'promise/no-nesting': 'off',
    'promise/no-promise-in-callback': 'error',
    'promise/no-return-wrap': 'error',
    'promise/param-names': 'error',
    'unicorn/catch-error-name': ['error', {
      name: 'error',
    }],
    'unicorn/custom-error-definition': 'error',
    'unicorn/escape-case': 'error',
    'unicorn/explicit-length-check': 'error',
    'unicorn/filename-case': 'off',
    'unicorn/no-abusive-eslint-disable': 'off',
    'unicorn/no-array-instanceof': 'error',
    'unicorn/no-hex-escape': 'error',
    'unicorn/no-new-buffer': 'error',
    'unicorn/no-process-exit': 'error',
    'unicorn/number-literal-case': 'error',
    'unicorn/prefer-starts-ends-with': 'error',
    'unicorn/prefer-type-error': 'error',
    'unicorn/throw-new-error': 'error',

    // New and not in Airbnb yet
    'no-multi-spaces': ['error', {
      ignoreEOLComments: true,
    }],
    'import/no-anonymous-default-export': ['error', {
      allowObject: true,
    }],

    // Want to support but disabled in Airbnb
    'complexity': ['error', 11],
    'getter-return': 'error',
    'jsx-quotes': ['error', 'prefer-double'],
    'newline-before-return': 'error',
    'no-compare-neg-zero': 'error',
    'no-constant-condition': 'error',
    'no-div-regex': 'error',
    'no-eq-null': 'error',
    'no-implicit-coercion': 'error',
    'no-magic-numbers': ['error', {
      ignore: [-1, 0, 1],
      ignoreArrayIndexes: true,
      enforceConst: true,
    }],
    'no-native-reassign': 'error',
    'no-negated-condition': 'error',
    'no-unused-vars': ['error', {
      vars: 'all',
      args: 'none', // Required for Flow
      ignoreRestSiblings: true,
    }],
    'no-useless-call': 'error',
    'prefer-destructuring': 'error',
    'prefer-promise-reject-errors': ['error', {
      allowEmptyReject: true,
    }],
    'import/default': 'error',
    'import/named': 'error',

    // Does not work with Flow
    'no-extra-parens': 'off',
    'sort-imports': 'off',
    'import/order': 'off',

    // Does not work with class properties
    'no-invalid-this': 'off',

    // Temporary for tests
    // 'no-magic-numbers': 'off',
    'jest/no-identical-title': 'error',
    'jest/valid-expect': 'error',
  },
  // overrides: [
  //   {
  //     files: ['tests/**/*.test.js'],
  //     plugins: ['jest'],
  //     env: {
  //       jest: true,
  //     },
  //     rules: {
  //       'no-magic-numbers': 'off',
  //       'jest/no-identical-title': 'error',
  //       'jest/valid-expect': 'error',
  //     },
  //   },
  // ],
}


chore: add data for 2019-10-13

chore: add data for 2019-10-13


chore: add data for 2020-04-09

chore: add data for 2020-04-09


chore: add data for 2019-04-13

chore: add data for 2019-04-13


chore: add data for 2019-01-14

chore: add data for 2019-01-14


chore: add data for 2021-11-29

chore: add data for 2021-11-29


Fix AFDO copypasta

Fix AFDO copypasta

Bug: skia:
Change-Id: I878e847d0c4f06bbe1dfb22f7d1d4f759d96e08d
Reviewed-on: https://skia-review.googlesource.com/105621
Reviewed-by: Ravi Mistry <9fa2e7438b8cb730f96b74865492597170561628@google.com>
Commit-Queue: Eric Boren <0e499112533c8544f0505ea0d08394fb5ad7d8fa@google.com>

{
  "Servers": {
    "afdo-chromium-autoroll": {
      "AppNames": [
        "afdo-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "android-master-autoroll": {
      "AppNames": [
        "android-master-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "android-o-autoroll": {
      "AppNames": [
        "android-o-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "angle-chromium-autoroll": {
      "AppNames": [
        "angle-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "angle-skia-autoroll": {
      "AppNames": [
        "angle-skia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "catapult-autoroll": {
      "AppNames": [
        "catapult-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "depot-tools-chromium-autoroll": {
      "AppNames": [
        "depot-tools-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "fuchsia-autoroll": {
      "AppNames": [
        "fuchsia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "google3-autoroll": {
      "AppNames": [
        "google3-autorolld",
        "pulld",
      ],
    },
    "ios-internal-chromium-autoroll": {
      "AppNames": [
        "ios-internal-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "nacl-autoroll": {
      "AppNames": [
        "nacl-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "pdfium-autoroll": {
      "AppNames": [
        "pdfium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "skcms-skia-autoroll": {
      "AppNames": [
        "skcms-skia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "skia-autoroll": {
      "AppNames": [
        "skia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "skia-internal-autoroll": {
      "AppNames": [
        "skia-internal-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "src-internal-chromium-autoroll": {
      "AppNames": [
        "src-internal-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "webrtc-chromium-autoroll": {
      "AppNames": [
        "webrtc-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
  }
}

{
  "Servers": {
    "angle-chromium-autoroll": {
      "AppNames": [
        "afdo-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "android-master-autoroll": {
      "AppNames": [
        "android-master-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "android-o-autoroll": {
      "AppNames": [
        "android-o-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "angle-chromium-autoroll": {
      "AppNames": [
        "angle-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "angle-skia-autoroll": {
      "AppNames": [
        "angle-skia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "catapult-autoroll": {
      "AppNames": [
        "catapult-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "depot-tools-chromium-autoroll": {
      "AppNames": [
        "depot-tools-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "fuchsia-autoroll": {
      "AppNames": [
        "fuchsia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "google3-autoroll": {
      "AppNames": [
        "google3-autorolld",
        "pulld",
      ],
    },
    "ios-internal-chromium-autoroll": {
      "AppNames": [
        "ios-internal-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "nacl-autoroll": {
      "AppNames": [
        "nacl-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "pdfium-autoroll": {
      "AppNames": [
        "pdfium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "skcms-skia-autoroll": {
      "AppNames": [
        "skcms-skia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "skia-autoroll": {
      "AppNames": [
        "skia-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "skia-internal-autoroll": {
      "AppNames": [
        "skia-internal-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "src-internal-chromium-autoroll": {
      "AppNames": [
        "src-internal-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
    "webrtc-chromium-autoroll": {
      "AppNames": [
        "webrtc-chromium-autorolld",
        "git-cookie-authdaemon",
        "pulld",
      ],
    },
  }
}


Perf - Probers for androidx-perf.skia.org

Bug: skia:9315
Change-Id: I110c7a34091cb3c5caf2eb046b0a363f53d519c6
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/233165
Reviewed-by: Kevin Lubick <7cdab2cfab351f23814786ba39716e90eed69047@google.com>
Commit-Queue: Joe Gregorio <b9cf2471ff6d33504cafe8e6f356b732b2cadced@google.com>

{
   "skiaperf": {
     "urls": [
       "https://perf.skia.org/e/",
       "https://androidx-perf.skia.org/e/",
     ],
     "method": "GET",
     "expected": [200],
     "body": "",
     "mimetype": ""
   },
   "skiaperf_protected": {
     "urls": [
       "https://android-master-perf.skia.org/e/",
       "https://ct-perf.skia.org/e/",
     ],
     "method": "GET",
     "expected": [307],
     "body": "",
     "mimetype": ""
   },
   "android_ingest": {
     "urls": [
       "https://android-master-ingest.skia.org",
     ],
     "method": "GET",
     "expected": [307],
     "body": "",
     "mimetype": "",
     "responsetest": ""
   },
   "skiaperf_untriaged": {
     "urls": [
       "https://perf.skia.org/_/reg/count",
       "https://android-master-perf.skia.org/_/reg/count",
       "https://ct-perf.skia.org/_/reg/count",
       "https://androidx-perf.skia.org/_/reg/count",
     ],
     "method": "GET",
     "expected": [200],
     "body": "",
     "mimetype": "",
     "responsetest": "validJSON",
   },
}

{
   "skiaperf": {
     "urls": [
       "https://perf.skia.org/e/",
     ],
     "method": "GET",
     "expected": [200],
     "body": "",
     "mimetype": ""
   },
   "skiaperf_protected": {
     "urls": [
       "https://android-master-perf.skia.org/e/",
       "https://ct-perf.skia.org/e/",
     ],
     "method": "GET",
     "expected": [307],
     "body": "",
     "mimetype": ""
   },
   "android_ingest": {
     "urls": [
       "https://android-master-ingest.skia.org",
     ],
     "method": "GET",
     "expected": [307],
     "body": "",
     "mimetype": "",
     "responsetest": ""
   },
   "skiaperf_untriaged": {
     "urls": [
       "https://perf.skia.org/_/reg/count",
       "https://android-master-perf.skia.org/_/reg/count",
       "https://ct-perf.skia.org/_/reg/count",
     ],
     "method": "GET",
     "expected": [200],
     "body": "",
     "mimetype": "",
     "responsetest": "validJSON",
   },
}


:art:

:art:

{
	id: '8c539dc1-0fab-4d47-9194-39c508e9bfe1',

	name: 'Black',
	author: 'syuilo',
	desc: '',

	base: 'dark',

	props: {
		divider: '#2d2d2d',
		messageBg: '#1d1d1d',
	},
}

{
	id: '8c539dc1-0fab-4d47-9194-39c508e9bfe1',

	name: 'Black',
	author: 'syuilo',
	desc: '',

	base: 'dark',

	props: {
		divider: '#2b2b2b',
	},
}


Fix a card in the Purple Expansion

Fix a card in the Purple Expansion

{
  questions: [
    { text: "911, what's your emergency?" },
    { text: "'Cause girls just wanna have %s." },
    { text: "The first thing I do in any emergency is secure my stash of %s." },
    { text: "%s. Now THAT's going on my screensaver." },
    { text: "My girlfriend and I make a great couple. We're always finishing each other's %s." },
    { text: "What is love?" },
    { text: "My day started well: I took some acid and went for a bike ride. I'm not quite sure how I ended up %s." },
    { text: "Humanity is declining; we wasted all of our resources on %s." },
    { text: "My high school nickname was %s." },
    { text: "%s. All the cool kids are doing it!" },
    { text: "I have never loved anything quite as much as I love %s." },
    { text: "%s almost doomed us all, but %s saved us just in time." },
    { text: "I can't decide if I get more of a thrill from ruining %s or %s." },
    { text: "Humanity at its core: %s." },
    { text: "I commissioned %s to make me %s." },
    { text: "%s is NOT a good substitute for %s." },
    { text: "Wow, I've never seen %s made out of %s before!" },
    { text: "Civilisation is in ruins. The alien invasion is imminent. Only one thing stands between us and them: %s." },
    { text: "Dear Santa: this year, I want %s and %s for Christmas." },
    { text: "That's it! That's enough %s! BRING ME %s!" },
    { text: "As of next month, %s will be freely available in every school nationwide." },
    { text: "The NHS is to be shut down due to a shortage of %s and an overabundance of %s." },
    { text: "Though it may seem unlikely, in some countries, %s is actually very common." },
    { text: "Is that %s in your pocket or are you just happy to see me?" },
    { text: "After his uncle Hans told him a bedtime story, Timmy has been having nightmares about The %s Fairy." },
    { text: "So, I'm left wondering... why did %s suddenly appear on my computer screen?" },
    { text: "%s was inside you all along." },
    { text: "North Korea claim to have discovered the secret lair of %s." },
    { text: "%s. The best thing since sliced bread." },
    { text: "I used to maintain a blog about %s." },
    { text: "%s and %s. All you need for a DIY sex change." },
    { text: "Today we'll be observing %s in its natural habitat. Look, it's %s!" },
    { text: "So, I'm slipping her panties down and %s just pops out." },
    { text: "The opposite of love is not hate, it is %s." },
    { text: "I like my e-cigarettes like I like my condoms: %s flavoured." },
    { text: "For the love of all that is holy, how did %s end up stapled to %s?" },
    { text: "What a lovely present, Grandma! I've never owned %s before. Er... what's it for?" },
    { text: "%s in one hand, %s in the other, it's %s time." },
    { text: "%s really fucks you up, man, I was seeing %s for days." },
    { text: "I can't stop chewing on %s." },
    { text: "God, I'm such an idiot. I can't believe I traded %s for %s." },
    { text: "I read a book about %s. It really changed how I think about %s." },
    { text: "School sucked for me, bullies stuffed %s down my shorts every lunchtime." },
    { text: "I never, ever go to bed without %s." },
    { text: "The doctor told me %s would fix all of my problems." },
  ],
  answers: [
    "The perfect sandwich",
    "The back seat of a Volkswagen Beetle",
    "Orgies",
    "Going down on a girl and getting pubes stuck in your teeth",
    "A surly French waiter",
    "Dancing naked in the rain",
    "Indigestion",
    "Apologising to your father",
    "Breaking into people's houses and moving everything a few inches",
    "Spraypainting yourself black and moving to the ghetto",
    "The sound of nails on a chalkboard",
    "The soft walls of my colon",
    "The distant sound of children playing",
    "A leather whip",
    "DIY abortion kits",
    "Dolphin rape caves",
    "Death by guacamole",
    "A kinky dwarf",
    "A mug saying \"#1 dad\"",
    "The turgid terror truncheon",
    "Josef Fritzl",
    "Surreptitiously chewing on the fingernails of strangers",
    "Having worms. Not tapeworms: earthworms",
    "Bring your plane to work day",
    "Paper cuts",
    "An autofellating chinchilla",
    "Burping farts",
    "Crusty socks",
    "Quality control",
    "Domestic violence",
    "A very noisy librarian",
    "Castration",
    "A drunk person burping into your mouth",
    "Fucking tree gnomes",
    "Grandma's dusty dildo",
    "Faking a suicide attempt for attention",
    "Toast",
    "Animal cruelty",
    "A sexy kangaroo",
    "Suspicious stains",
    "Overexerting yourself to the point you defecate",
    "A Vladimir Putin buttplug",
    "A fortune cookie containing a wasp",
    "Grandma's rusty dildo",
    "Prostate orgasms",
    "A spare tube of toothpaste",
    "The Last Supper",
    "Getting your own spunk in your eye",
    "Unveiling my flaccid penis to children to prove I'm not a paedophile",
    "Squishiness",
    "Gradually becoming numb to everything until only the most bizarre shit will give you an erection",
    "Grandma's not so dusty dildo",
    "Tabasco® sauce",
    "Overcatering to racial minorities",
    "Jizz scissors!",
    "Dragon dildos",
    "Licking the inside of a homeless man's mouth",
    "Ideological conflict",
    "The distant sound of clown shoes gradually getting louder",
    "Rick Astley",
    "Racial profiling",
    "Masturbating on the train home from London",
    "Erotic fanfiction",
    "Banter",
    "Watching the blended remains of kittens bubble in the microwave",
    "Team-building exercises",
    "Obama's cock",
    "SPLAT!",
    "Semen fruitcake",
    "Stifling a moan while screwing in a quiet corner of the library",
    "Non-Newtonian fluids",
    "A gallon of blood",
    "Period globs",
    "An abnormally strong urge to masturbate in public",
    "Spinach",
    "Creative juices",
    "Pee",
    "Super Glue",
    "My supple cheeks",
    "The Queen's beef curtains",
    "Slime",
    "The \"plop, plop\" sound of his bollocks being slowly extracted from my anus",
    "The rumble vibration on an Xbox 360 controller",
    "Shitty acting",
    "Reincarnating into a squirrel",
    "Prom night",
    "Sweaty gooch smell",
    "The school bell",
    "Dipping one's nipples in spicy salsa",
    "Savage ducks",
    "Not being able to pull out",
    "Japanese game shows",
    "A large ham",
    "Bowing to Asian people on the street",
    "A bed full of chocolate biscuits",
    "A big German sausage",
    "A pair of scissors",
    "Breaking and entering",
  ],
  meta: {
    name: "Unofficial Purple Expansion",
  }
}

{
  questions: [
    { text: "911, what's your emergency?" },
    { text: "'Cause girls just wanna have %s." },
    { text: "The first thing I do in any emergency is secure my stash of %s." },
    { text: "%s. Now THAT's going on my screensaver." },
    { text: "My girlfriend and I make a great couple. We're always finishing each other's %s." },
    { text: "What is love?" },
    { text: "My day started well: I took some acid and went for a bike ride. I'm not quite sure how I ended up %s." },
    { text: "Humanity is declining; we wasted all of our resources on %s." },
    { text: "My high school nickname was %s." },
    { text: "%s. All the cool kids are doing it!" },
    { text: "I have never loved anything quite as much as I love %s." },
    { text: "%s almost doomed us all, but %s saved us just in time." },
    { text: "I can't decide if I get more of a thrill from ruining %s or %s." },
    { text: "Humanity at its core: %s." },
    { text: "I commissioned %s to make me %s." },
    { text: "%s is NOT a good substitute for %s." },
    { text: "Wow, I've never seen %s made out of %s before!" },
    { text: "Civilisation is in ruins. The alien invasion is imminent. Only one thing stands between us and them: %s." },
    { text: "Dear Santa: this year, I want %s and %s for Christmas." },
    { text: "That's it! That's enough %s! BRING ME %s!" },
    { text: "As of next month, %s will be freely available in every school nationwide." },
    { text: "The NHS is to be shut down due to a shortage of %s and an overabundance of %s." },
    { text: "Though it may seem unlikely, in some countries, %s is actually very common." },
    { text: "Is that in %s your pocket or are you just happy to see me?" },
    { text: "After his uncle Hans told him a bedtime story, Timmy has been having nightmares about The %s Fairy." },
    { text: "So, I'm left wondering... why did %s suddenly appear on my computer screen?" },
    { text: "%s was inside you all along." },
    { text: "North Korea claim to have discovered the secret lair of %s." },
    { text: "%s. The best thing since sliced bread." },
    { text: "I used to maintain a blog about %s." },
    { text: "%s and %s. All you need for a DIY sex change." },
    { text: "Today we'll be observing %s in its natural habitat. Look, it's %s!" },
    { text: "So, I'm slipping her panties down and %s just pops out." },
    { text: "The opposite of love is not hate, it is %s." },
    { text: "I like my e-cigarettes like I like my condoms: %s flavoured." },
    { text: "For the love of all that is holy, how did %s end up stapled to %s?" },
    { text: "What a lovely present, Grandma! I've never owned %s before. Er... what's it for?" },
    { text: "%s in one hand, %s in the other, it's %s time." },
    { text: "%s really fucks you up, man, I was seeing %s for days." },
    { text: "I can't stop chewing on %s." },
    { text: "God, I'm such an idiot. I can't believe I traded %s for %s." },
    { text: "I read a book about %s. It really changed how I think about %s." },
    { text: "School sucked for me, bullies stuffed %s down my shorts every lunchtime." },
    { text: "I never, ever go to bed without %s." },
    { text: "The doctor told me %s would fix all of my problems." },
  ],
  answers: [
    "The perfect sandwich",
    "The back seat of a Volkswagen Beetle",
    "Orgies",
    "Going down on a girl and getting pubes stuck in your teeth",
    "A surly French waiter",
    "Dancing naked in the rain",
    "Indigestion",
    "Apologising to your father",
    "Breaking into people's houses and moving everything a few inches",
    "Spraypainting yourself black and moving to the ghetto",
    "The sound of nails on a chalkboard",
    "The soft walls of my colon",
    "The distant sound of children playing",
    "A leather whip",
    "DIY abortion kits",
    "Dolphin rape caves",
    "Death by guacamole",
    "A kinky dwarf",
    "A mug saying \"#1 dad\"",
    "The turgid terror truncheon",
    "Josef Fritzl",
    "Surreptitiously chewing on the fingernails of strangers",
    "Having worms. Not tapeworms: earthworms",
    "Bring your plane to work day",
    "Paper cuts",
    "An autofellating chinchilla",
    "Burping farts",
    "Crusty socks",
    "Quality control",
    "Domestic violence",
    "A very noisy librarian",
    "Castration",
    "A drunk person burping into your mouth",
    "Fucking tree gnomes",
    "Grandma's dusty dildo",
    "Faking a suicide attempt for attention",
    "Toast",
    "Animal cruelty",
    "A sexy kangaroo",
    "Suspicious stains",
    "Overexerting yourself to the point you defecate",
    "A Vladimir Putin buttplug",
    "A fortune cookie containing a wasp",
    "Grandma's rusty dildo",
    "Prostate orgasms",
    "A spare tube of toothpaste",
    "The Last Supper",
    "Getting your own spunk in your eye",
    "Unveiling my flaccid penis to children to prove I'm not a paedophile",
    "Squishiness",
    "Gradually becoming numb to everything until only the most bizarre shit will give you an erection",
    "Grandma's not so dusty dildo",
    "Tabasco® sauce",
    "Overcatering to racial minorities",
    "Jizz scissors!",
    "Dragon dildos",
    "Licking the inside of a homeless man's mouth",
    "Ideological conflict",
    "The distant sound of clown shoes gradually getting louder",
    "Rick Astley",
    "Racial profiling",
    "Masturbating on the train home from London",
    "Erotic fanfiction",
    "Banter",
    "Watching the blended remains of kittens bubble in the microwave",
    "Team-building exercises",
    "Obama's cock",
    "SPLAT!",
    "Semen fruitcake",
    "Stifling a moan while screwing in a quiet corner of the library",
    "Non-Newtonian fluids",
    "A gallon of blood",
    "Period globs",
    "An abnormally strong urge to masturbate in public",
    "Spinach",
    "Creative juices",
    "Pee",
    "Super Glue",
    "My supple cheeks",
    "The Queen's beef curtains",
    "Slime",
    "The \"plop, plop\" sound of his bollocks being slowly extracted from my anus",
    "The rumble vibration on an Xbox 360 controller",
    "Shitty acting",
    "Reincarnating into a squirrel",
    "Prom night",
    "Sweaty gooch smell",
    "The school bell",
    "Dipping one's nipples in spicy salsa",
    "Savage ducks",
    "Not being able to pull out",
    "Japanese game shows",
    "A large ham",
    "Bowing to Asian people on the street",
    "A bed full of chocolate biscuits",
    "A big German sausage",
    "A pair of scissors",
    "Breaking and entering",
  ],
  meta: {
    name: "Unofficial Purple Expansion",
  }
}


chore: add data for 2019-11-30

chore: add data for 2019-11-30


Add: renovate and Terraform version

Add: renovate and Terraform version

Signed-off-by: Nicolas Lamirault <57a11b2dec5b8363280015e1663433805cc2169e@gmail.com>

{
  "extends": [
    "config:base",
    ":gitSignOff"
  ],
  "enabled": true,
  "timezone": "Europe/Paris",
  "dependencyDashboard": true,
  "dependencyDashboardTitle": "Renovate Dashboard",
  // "gitAuthor": "Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // "commitBody": "Signed-off-by: Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // Do not notify on closed unmerged PRs
  "suppressNotifications": ["prIgnoreNotification"],
  // Do not rebase PRs
  "rebaseWhen": "conflicted",
  "assignees": ["@nlamirault"],
  "reviewersFromCodeOwners": true,
  "helm-values": {
    "fileMatch": ["kubernetes/.+\\.yaml$"]
  },
  "regexManagers": [
    {
      "fileMatch": ["kubernetes/.+\\.yaml$"],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart: (?<depName>.*?)\n *version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
    {
      "fileMatch": [
        "iac/alicloud/kubernetes/.+\\.tfvars$",
        "iac/aws/kubernetes/.+\\.tfvars$",
        "iac/azure/kubernetes/.+\\.tfvars$",
        "iac/digitalocean/kubernetes/.+\\.tfvars$",
        "iac/gcp/kubernetes/.+\\.tfvars$"
      ],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart_name: (?<depName>.*?)\n *chart_version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
  ],
  "packageRules": [
    // Setup datasources
    {
      "datasources": ["helm"],
      "commitMessageTopic": "Helm chart {{depName}}",
      "separateMinorPatch": true
    },
    // Labels for Terraform
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/terraform", "priority/high", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/terraform", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-version", "terraform-provider", "terraform-module"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/terraform", "priority/low", "size/xs"]
    },
    // Labels for Docker
    {
      "datasources": ["docker"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/docker", "priority/high", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/docker", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/docker", "priority/low", "size/xs"]
    },
    // Labels for Helm
    {
      "datasources": ["helm"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/helm", "priority/high", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/helm", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/helm", "priority/low", "size/xs"]
    },
    // Enable auto-merge docker
    // {
    //   "datasources": ["docker"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["minor", "patch"],
    // },
    // Enable auto-merge helm
    // {
    //   "datasources": ["helm"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["patch"],
    // }
  ]
}

{
  "extends": [
    "config:base",
    ":gitSignOff"
  ],
  "enabled": true,
  "timezone": "Europe/Paris",
  "dependencyDashboard": true,
  "dependencyDashboardTitle": "Renovate Dashboard",
  // "gitAuthor": "Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // "commitBody": "Signed-off-by: Nicolas Lamirault <nlamirault@users.noreply.github.com>",
  // Do not notify on closed unmerged PRs
  "suppressNotifications": ["prIgnoreNotification"],
  // Do not rebase PRs
  "rebaseWhen": "conflicted",
  "assignees": ["@nlamirault"],
  "reviewersFromCodeOwners": true,
  "helm-values": {
    "fileMatch": ["kubernetes/.+\\.yaml$"]
  },
  "regexManagers": [
    {
      "fileMatch": ["kubernetes/.+\\.yaml$"],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart: (?<depName>.*?)\n *version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
    {
      "fileMatch": [
        "iac/alicloud/kubernetes/.+\\.tfvars$",
        "iac/aws/kubernetes/.+\\.tfvars$",
        "iac/azure/kubernetes/.+\\.tfvars$",
        "iac/digitalocean/kubernetes/.+\\.tfvars$",
        "iac/gcp/kubernetes/.+\\.tfvars$"
      ],
      "matchStrings": [
        "registryUrl=(?<registryUrl>.*?)\n *chart_name: (?<depName>.*?)\n *chart_version: (?<currentValue>.*)\n"
      ],
      "datasourceTemplate": "helm"
    },
  ],
  "packageRules": [
    // Setup datasources
    {
      "datasources": ["helm"],
      "commitMessageTopic": "Helm chart {{depName}}",
      "separateMinorPatch": true
    },
    // Labels for Terraform
    {
      "datasources": ["terraform", "terraform-provider", "terraform-module"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/terraform", "priority/high", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-provider", "terraform-module"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/terraform", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["terraform", "terraform-provider", "terraform-module"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/terraform", "priority/low", "size/xs"]
    },
    // Labels for Docker
    {
      "datasources": ["docker"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/docker", "priority/high", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/docker", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["docker"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/docker", "priority/low", "size/xs"]
    },
    // Labels for Helm
    {
      "datasources": ["helm"],
      "updateTypes": ["major"],
      "labels": ["area/renovate", "dependency/helm", "priority/high", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["minor"],
      "labels": ["area/renovate", "dependency/helm", "priority/medium", "size/xs"]
    },
    {
      "datasources": ["helm"],
      "updateTypes": ["patch"],
      "labels": ["area/renovate", "dependency/helm", "priority/low", "size/xs"]
    },
    // Enable auto-merge docker
    // {
    //   "datasources": ["docker"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["minor", "patch"],
    // },
    // Enable auto-merge helm
    // {
    //   "datasources": ["helm"],
    //   "automerge": true,
    //   "requiredStatusChecks": null,
    //   "updateTypes": ["patch"],
    // }
  ]
}