[Bug]: problem with deploy of new app version

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
App
Expected behavior
It should delpoy the new version of our application in shopify
Actual behavior
It is not delpoying it and constantly gives the same error, even if I remove the created shopify.app.relevaai.toml
Verbose output
> shopify app deploy --reset --verbose

2024-07-05T08:00:59.654Z: Running command app deploy
2024-07-05T08:00:59.666Z: Reading cached app information for directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
╭─ warning ────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│  Couldn't find shopify.app.relevaai.toml                                                                 │
│                                                                                │
│  If you have multiple config files, select a new one. If you only have one config file, it's been        │
│  selected as your default.                                                                               │
│                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯

2024-07-05T08:00:59.690Z: Reading cached app information for directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:00:59.690Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:00:59.693Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:00:59.769Z: Storing app information for directory /Users/georgikeranov/Desktop/magellan/connector-shopify:{
  "directory": "/Users/georgikeranov/Desktop/magellan/connector-shopify",
  "configFile": "shopify.app.toml"
}
2024-07-05T08:00:59.775Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:00:59.776Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:00:59.836Z: Reading the .env file at .env
2024-07-05T08:00:59.836Z: Reading the content of file at .env...
2024-07-05T08:00:59.844Z: Reading the content of file at extensions/releva-ai/shopify.theme.extension.toml...
2024-07-05T08:00:59.844Z: Reading the content of file at extensions/tracking-pixel/shopify.extension.toml...
2024-07-05T08:00:59.845Z: Reading the content of file at package.json...
2024-07-05T08:00:59.845Z: Reading the content of file at package.json...
2024-07-05T08:00:59.848Z:
Running system process:
  · Command: npm prefix
  · Working directory: /Users/georgikeranov/Desktop/magellan/connector-shopify

2024-07-05T08:01:00.021Z: Obtaining the dependency manager in directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:01:00.209Z: Reading the content of file at shopify.web.toml...
2024-07-05T08:01:00.211Z: Reading the content of file at package.json...
2024-07-05T08:01:00.214Z: Reading cached app information for directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:01:00.215Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:01:00.215Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:01:00.274Z: Reading the .env file at .env
2024-07-05T08:01:00.274Z: Reading the content of file at .env...
2024-07-05T08:01:00.276Z: Reading the content of file at extensions/tracking-pixel/shopify.extension.toml...
2024-07-05T08:01:00.276Z: Reading the content of file at extensions/releva-ai/shopify.theme.extension.toml...
2024-07-05T08:01:00.277Z: Reading the content of file at package.json...
2024-07-05T08:01:00.278Z: Reading the content of file at package.json...
2024-07-05T08:01:00.279Z:
Running system process:
  · Command: npm prefix
  · Working directory: /Users/georgikeranov/Desktop/magellan/connector-shopify

2024-07-05T08:01:00.463Z: Obtaining the dependency manager in directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:01:00.470Z: Reading the content of file at shopify.web.toml...
2024-07-05T08:01:00.471Z: Reading the content of file at package.json...
2024-07-05T08:01:00.472Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2024-07-05T08:01:00.472Z: Getting session store...
2024-07-05T08:01:00.473Z: Validating existing session against the scopes:
[
  "openid",
  "https://api.shopify.com/auth/shop.admin.graphql",
  "https://api.shopify.com/auth/shop.admin.themes",
  "https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
  "https://api.shopify.com/auth/shop.storefront-renderer.devtools",
  "https://api.shopify.com/auth/partners.app.cli.access",
  "https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
  "partnersApi": {
    "scopes": []
  }
}

2024-07-05T08:01:00.473Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-07-05T08:01:00.473Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:00.710Z: Request to https://accounts.shopify.com/oauth/introspection completed in 228 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"18bc73c1d8480b4b38b08c190d53c197"
 - x-request-id: 8f63ea92-c463-4223-8e5e-3bdb8325604f-1720166460

2024-07-05T08:01:00.711Z: The identity token is valid: true
2024-07-05T08:01:00.712Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-07-05T08:01:00.712Z: Verifying that the user has a Partner organization
2024-07-05T08:01:00.716Z: Sending "Partners" GraphQL request:
  {
    organizations(first: 1) {
      nodes {
        id
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:01.019Z: Request to https://partners.shopify.com/api/cli/graphql completed in 280 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"37efee6e84fa440e5c1f783636cccbde"
 - x-request-id: 786f26a1-065c-4be3-a3c8-ba32996df302-1720166460

2024-07-05T08:01:01.026Z: Sending "Partners" GraphQL request:
  query currentAccountInfo {
    currentAccountInfo {
      __typename
      ... on ServiceAccount {
        orgName
      }
      ... on UserAccount {
        email
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:01.305Z: Request to https://partners.shopify.com/api/cli/graphql completed in 269 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"d07b300add6839c8c38b1a83ec300491"
 - x-request-id: 6de48ee0-988b-470c-8925-fc57c0d3e5e3-1720166461

2024-07-05T08:01:01.312Z: Sending "Partners" GraphQL request:
  query AllOrgs {
  organizations(first: 200) {
    nodes {
      id
      businessName
      website
      __typename
    }
    __typename
  }
}

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:01.587Z: Request to https://partners.shopify.com/api/cli/graphql completed in 275 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"84761783ffc96f511636e3501c31f52f"
 - x-request-id: af4b383a-2a84-43aa-ae97-cf8e8f46f6e2-1720166461

2024-07-05T08:01:01.589Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2024-07-05T08:01:01.589Z: Getting session store...
2024-07-05T08:01:01.590Z: Validating existing session against the scopes:
[
  "openid",
  "https://api.shopify.com/auth/shop.admin.graphql",
  "https://api.shopify.com/auth/shop.admin.themes",
  "https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
  "https://api.shopify.com/auth/shop.storefront-renderer.devtools",
  "https://api.shopify.com/auth/partners.app.cli.access",
  "https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
  "partnersApi": {
    "scopes": []
  }
}

2024-07-05T08:01:01.590Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-07-05T08:01:01.590Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:01.834Z: Request to https://accounts.shopify.com/oauth/introspection completed in 243 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"18bc73c1d8480b4b38b08c190d53c197"
 - x-request-id: 16610c6d-6d66-41eb-87bc-80ae4c08a6f5-1720166461

2024-07-05T08:01:01.835Z: The identity token is valid: true
2024-07-05T08:01:01.835Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-07-05T08:01:01.835Z: Verifying that the user has a Partner organization
2024-07-05T08:01:01.839Z: Sending "Partners" GraphQL request:
  {
    organizations(first: 1) {
      nodes {
        id
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:02.104Z: Request to https://partners.shopify.com/api/cli/graphql completed in 263 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"37efee6e84fa440e5c1f783636cccbde"
 - x-request-id: f9dc237c-83fa-4e7f-9238-459854df2004-1720166461

2024-07-05T08:01:02.109Z: Sending "Partners" GraphQL request:
  query currentAccountInfo {
    currentAccountInfo {
      __typename
      ... on ServiceAccount {
        orgName
      }
      ... on UserAccount {
        email
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:02.379Z: Request to https://partners.shopify.com/api/cli/graphql completed in 268 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"d07b300add6839c8c38b1a83ec300491"
 - x-request-id: 4fae70df-1d7b-4c97-a147-3e87d59134a1-1720166462

2024-07-05T08:01:02.389Z: Sending "Partners" GraphQL request:
  query FindOrganization($id: ID!, $title: String) {
    organizations(id: $id, first: 1) {
      nodes {
        id
        businessName
        website
        apps(first: 25, title: $title) {
          pageInfo {
            hasNextPage
          }
          nodes {
            id
            title
            apiKey
          }
        }
      }
    }
  }

With variables:
{
  "id": "1908238"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:02.675Z: Request to https://partners.shopify.com/api/cli/graphql completed in 284 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"54775a4635ea18490fa2a22a9f4611f5"
 - x-request-id: e8c3938d-e7cc-44f1-befd-b98ebf9ebd0d-1720166462

Before proceeding, your project needs to be associated with an app.

?  Create this project as a new app on Shopify?
✔  No, connect it to an existing app

2024-07-05T08:01:11.159Z: Reading the content of file at shopify.app.toml...
?  Which existing app is this for?
✔  Releva.ai

2024-07-05T08:01:11.948Z: Sending "Partners" GraphQL request:
  query FindApp($apiKey: String!) {
    app(apiKey: $apiKey) {
      id
      title
      apiKey
      organizationId
      apiSecretKeys {
        secret
      }
      appType
      grantedScopes
      applicationUrl
      redirectUrlWhitelist
      requestedAccessScopes
      webhookApiVersion
      embedded
      posEmbedded
      preferencesUrl
      gdprWebhooks {
        customerDeletionUrl
        customerDataRequestUrl
        shopDeletionUrl
      }
      appProxy {
        subPath
        subPathPrefix
        url
      }
      developmentStorePreviewEnabled
      disabledFlags
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:12.513Z: Request to https://partners.shopify.com/api/cli/graphql completed in 561 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"cdc4b51649ad217a67002574de619624"
 - x-request-id: 6c00ec7e-9520-4548-ad7c-e367d297ad0b-1720166472

2024-07-05T08:01:12.518Z: Sending "Partners" GraphQL request:
  query fetchSpecifications($api_key: String!) {
    extensionSpecifications(apiKey: $api_key) {
      name
      externalName
      externalIdentifier
      identifier
      gated
      experience
      options {
        managementExperience
        registrationLimit
      }
      features {
        argo {
          surface
        }
      }
      validationSchema {
        jsonSchema
      }
    }
  }

With variables:
{
  "api_key": "5cb5d36559789f53ca88a2f6f453740d"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:12.986Z: Request to https://partners.shopify.com/api/cli/graphql completed in 466 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"57288a82082c55ceb62a4fec2eedc57a"
 - x-request-id: d393b7ac-47fb-4825-8d55-455d21888800-1720166472

2024-07-05T08:01:12.988Z: The following extension specifications were defined locally but not found in the remote specifications: data, payments_extension, tax_calculation
2024-07-05T08:01:12.988Z: The following extension specifications were found in the remote specifications but not defined locally: cloud_terminal_management, customer_accounts_ui_extension
2024-07-05T08:01:12.990Z: Reading cached app information for directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:01:12.990Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:01:12.991Z: Reading the content of file at shopify.app.toml...
2024-07-05T08:01:13.055Z: Reading the .env file at .env
2024-07-05T08:01:13.055Z: Reading the content of file at .env...
2024-07-05T08:01:13.059Z: Reading the content of file at extensions/releva-ai/shopify.theme.extension.toml...
2024-07-05T08:01:13.059Z: Reading the content of file at extensions/tracking-pixel/shopify.extension.toml...
2024-07-05T08:01:13.061Z: Reading the content of file at package.json...
2024-07-05T08:01:13.062Z: Reading the content of file at package.json...
2024-07-05T08:01:13.064Z:
Running system process:
  · Command: npm prefix
  · Working directory: /Users/georgikeranov/Desktop/magellan/connector-shopify

2024-07-05T08:01:13.302Z: Obtaining the dependency manager in directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:01:13.312Z: Reading the content of file at shopify.web.toml...
2024-07-05T08:01:13.313Z: Reading the content of file at package.json...
2024-07-05T08:01:13.314Z: Reading the content of file at shopify.app.toml...
?  Configuration file name:
✔  Releva.ai

2024-07-05T08:01:17.733Z: Sending "Partners" GraphQL request:
  query activeAppVersion($apiKey: String!) {
    app(apiKey: $apiKey) {
      activeAppVersion {
        appModuleVersions {
          registrationId
          registrationUuid
          registrationTitle
          type
          config
          specification {
            identifier
            name
            experience
            options {
              managementExperience
            }
          }
        }
      }
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:18.248Z: Request to https://partners.shopify.com/api/cli/graphql completed in 514 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"fbb4a1460f9843cbf8e2cefc07e853d9"
 - x-request-id: c2aa7d1b-32fb-4a83-a683-5d14898b4299-1720166477

2024-07-05T08:01:18.251Z: Writing app configuration to /Users/georgikeranov/Desktop/magellan/connector-shopify/shopify.app.relevaai.toml
2024-07-05T08:01:18.252Z: File-writing some content to file at shopify.app.relevaai.toml...
2024-07-05T08:01:18.254Z: Storing app information for directory /Users/georgikeranov/Desktop/magellan/connector-shopify:{
  "directory": "/Users/georgikeranov/Desktop/magellan/connector-shopify",
  "configFile": "shopify.app.relevaai.toml"
}
╭─ success ────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│  shopify.app.relevaai.toml is now linked to "Releva.ai" on Shopify                                       │
│                                                                                │
│  Using shopify.app.relevaai.toml as your default config.                                                 │
│                                                                                │
│  Next steps                                                                                │
│    • Make updates to shopify.app.relevaai.toml in your local project                                     │
│    • To upload your config, run `npm run shopify app deploy`                                             │
│                                                                                │
│  Reference                                                                                │
│    • App configuration                                                                                │
│                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯

2024-07-05T08:01:18.266Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2024-07-05T08:01:18.266Z: Getting session store...
2024-07-05T08:01:18.267Z: Validating existing session against the scopes:
[
  "openid",
  "https://api.shopify.com/auth/shop.admin.graphql",
  "https://api.shopify.com/auth/shop.admin.themes",
  "https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
  "https://api.shopify.com/auth/shop.storefront-renderer.devtools",
  "https://api.shopify.com/auth/partners.app.cli.access",
  "https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
  "partnersApi": {
    "scopes": []
  }
}

2024-07-05T08:01:18.267Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-07-05T08:01:18.267Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:18.518Z: Request to https://accounts.shopify.com/oauth/introspection completed in 251 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"18bc73c1d8480b4b38b08c190d53c197"
 - x-request-id: 7b2f6ab6-8f60-45c7-ad7f-2181c251faff-1720166478

2024-07-05T08:01:18.519Z: The identity token is valid: true
2024-07-05T08:01:18.520Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-07-05T08:01:18.520Z: Verifying that the user has a Partner organization
2024-07-05T08:01:18.526Z: Sending "Partners" GraphQL request:
  {
    organizations(first: 1) {
      nodes {
        id
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:18.773Z: Request to https://partners.shopify.com/api/cli/graphql completed in 246 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"37efee6e84fa440e5c1f783636cccbde"
 - x-request-id: c3da6474-ef3e-4d17-b433-06a1deefd065-1720166478

2024-07-05T08:01:18.778Z: Sending "Partners" GraphQL request:
  query currentAccountInfo {
    currentAccountInfo {
      __typename
      ... on ServiceAccount {
        orgName
      }
      ... on UserAccount {
        email
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:19.090Z: Request to https://partners.shopify.com/api/cli/graphql completed in 311 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"d07b300add6839c8c38b1a83ec300491"
 - x-request-id: 44183226-e523-4d4c-983c-16f13f617fef-1720166478

2024-07-05T08:01:19.095Z: Sending "Partners" GraphQL request:
  query FindApp($apiKey: String!) {
    app(apiKey: $apiKey) {
      id
      title
      apiKey
      organizationId
      apiSecretKeys {
        secret
      }
      appType
      grantedScopes
      applicationUrl
      redirectUrlWhitelist
      requestedAccessScopes
      webhookApiVersion
      embedded
      posEmbedded
      preferencesUrl
      gdprWebhooks {
        customerDeletionUrl
        customerDataRequestUrl
        shopDeletionUrl
      }
      appProxy {
        subPath
        subPathPrefix
        url
      }
      developmentStorePreviewEnabled
      disabledFlags
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:19.679Z: Request to https://partners.shopify.com/api/cli/graphql completed in 580 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"cdc4b51649ad217a67002574de619624"
 - x-request-id: 94d3bb8c-3599-4449-9967-79cf36204d47-1720166479

2024-07-05T08:01:19.684Z: Sending "Partners" GraphQL request:
  query fetchSpecifications($api_key: String!) {
    extensionSpecifications(apiKey: $api_key) {
      name
      externalName
      externalIdentifier
      identifier
      gated
      experience
      options {
        managementExperience
        registrationLimit
      }
      features {
        argo {
          surface
        }
      }
      validationSchema {
        jsonSchema
      }
    }
  }

With variables:
{
  "api_key": "5cb5d36559789f53ca88a2f6f453740d"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.63.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-07-05T08:01:20.136Z: Request to https://partners.shopify.com/api/cli/graphql completed in 451 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"57288a82082c55ceb62a4fec2eedc57a"
 - x-request-id: 860006f7-c9aa-4e9d-8a76-90fdf74268da-1720166479

2024-07-05T08:01:20.137Z: The following extension specifications were defined locally but not found in the remote specifications: data, payments_extension, tax_calculation
2024-07-05T08:01:20.137Z: The following extension specifications were found in the remote specifications but not defined locally: cloud_terminal_management, customer_accounts_ui_extension
2024-07-05T08:01:20.139Z: Reading cached app information for directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:01:20.139Z: Reading the content of file at shopify.app.relevaai.toml...
2024-07-05T08:01:20.139Z: Reading the content of file at shopify.app.relevaai.toml...
╭─ error ──────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│                                                                                │
│  Validation errors in shopify.app.relevaai.toml:                                                         │
│                                                                                │
│  • [webhooks.subscriptions.0.uri]: URI isn't correct URI format of https://,                             │
│  pubsub://{project-id}:{topic-id} or Eventbridge ARN                                                     │
│                                                                                │
│                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯

2024-07-05T08:01:20.149Z:
Running system process:
  · Command: npm prefix
  · Working directory: /Users/georgikeranov/Desktop/magellan/connector-shopify

2024-07-05T08:01:20.403Z: Obtaining the dependency manager in directory /Users/georgikeranov/Desktop/magellan/connector-shopify...
2024-07-05T08:01:20.405Z:
Running system process:
  · Command: ruby -v
  · Working directory: /Users/georgikeranov/Desktop/magellan/connector-shopify

2024-07-05T08:01:20.666Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 198 ms
With response headers:
 - x-request-id: 1b353634-92b5-4a2a-a109-77bdcc131be5

2024-07-05T08:01:20.666Z: Analytics event sent: {
  "command": "app deploy",
  "time_start":<PHONE_NUMBER>655,
  "time_end":<PHONE_NUMBER>146,
  "total_time": 20491,
  "success": false,
  "cli_version": "3.63.2",
  "ruby_version": "3.1.2",
  "node_version": "21.6.1",
  "is_employee": false,
  "uname": "darwin arm64",
  "env_ci": false,
  "env_plugin_installed_any_custom": false,
  "env_plugin_installed_shopify": "[\"@shopify/cli\"]",
  "env_shell": "zsh",
  "env_device_id": "dc19bc802d504fcd6255f8290675e9615372bf79",
  "env_cloud": "localhost",
  "env_package_manager": "npm",
  "env_is_global": false,
  "cmd_app_warning_api_key_deprecation_displayed": false,
  "cmd_deploy_flag_message_used": false,
  "cmd_deploy_flag_version_used": false,
  "cmd_deploy_flag_source_url_used": false,
  "cmd_app_all_configs_any": true,
  "cmd_app_all_configs_clients": "{\"shopify.app.toml\":\"47b31a6ece54da2572436f4aa423d0e2\"}",
  "cmd_app_linked_config_used": true,
  "cmd_app_linked_config_name": "shopify.app.toml",
  "cmd_app_linked_config_git_tracked": true,
  "cmd_app_linked_config_source": "cached",
  "cmd_app_linked_config_uses_cli_managed_urls": true,
  "partner_id": 1908238,
  "api_key": "****",
  "project_type": "frontend",
  "app_extensions_any": true,
  "app_extensions_breakdown": "{\"theme\":1,\"web_pixel_extension\":1}",
  "app_extensions_count": 2,
  "app_extensions_custom_layout": false,
  "app_extensions_function_any": false,
  "app_extensions_function_count": 0,
  "app_extensions_theme_any": true,
  "app_extensions_theme_count": 1,
  "app_extensions_ui_any": true,
  "app_extensions_ui_count": 1,
  "app_name_hash": "ca7e3afb626ea2a16e700fcbbb51cba12568067e",
  "app_path_hash": "284bd4eed4d4c4c76f25be24a0726eca775214e4",
  "app_scopes": "[]",
  "app_web_backend_any": false,
  "app_web_backend_count": 0,
  "app_web_custom_layout": true,
  "app_web_frontend_any": true,
  "app_web_frontend_count": 1,
  "env_package_manager_workspaces": false,
  "cmd_all_timing_network_ms": 5542,
  "cmd_all_timing_prompts_ms": 13671,
  "cmd_all_launcher": "npm",
  "cmd_all_topic": "app",
  "cmd_all_plugin": "@shopify/cli",
  "cmd_all_force": false,
  "cmd_all_verbose": true,
  "cmd_all_path_override": true,
  "cmd_all_path_override_hash": "284bd4eed4d4c4c76f25be24a0726eca775214e4",
  "cmd_app_reset_used": true,
  "cmd_all_timing_active_ms": 1277,
  "cmd_all_exit": "expected_error",
  "args": "--reset --verbose",
  "error_message": "\n\u001b[1m\u001b[91mValidation errors\u001b[39m\u001b[22m in shopify.app.relevaai.toml:\n\n• [webhooks.subscriptions.0.uri]: URI isn't correct URI format of https://, pubsub://{project-id}:{topic-id} or Eventbridge ARN\n",
  "app_name": "magellan-plugin-shopify",
  "env_plugin_installed_all": "[\"@shopify/cli\"]",
  "metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"
}
2024-07-05T08:01:20.688Z: Reporting handled error to Bugsnag:
Validation errors in shopify.app.relevaai.toml:

• [webhooks.subscriptions.0.uri]: URI isn't correct URI format of https://, pubsub://{project-id}:{topic-id} or Eventbridge ARN

2024-07-05T08:01:21.455Z:
Running system process:
  · Command: npm prefix
  · Working directory: /Users/georgikeranov/Desktop/magellan/connector-shopify

2024-07-05T08:01:21.630Z: Obtaining the dependency manager in directory /Users/georgikeranov/Desktop/magellan/connector-shopify...

Reproduction steps

Remove the created shopify.app.relevaai.toml
Run npm run deploy -- --reset.
Choose these options:

Before proceeding, your project needs to be associated with an app.

?  Create this project as a new app on Shopify?
✔  No, connect it to an existing app

?  Which existing app is this for?
✔  Releva.ai

?  Configuration file name:
✔  Releva.ai

I have success and then error message which I don't know how to resolve:

╭─ success ────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│  shopify.app.relevaai.toml is now linked to "Releva.ai" on Shopify                                       │
│                                                                                │
│  Using shopify.app.relevaai.toml as your default config.                                                 │
│                                                                                │
│  Next steps                                                                                │
│    • Make updates to shopify.app.relevaai.toml in your local project                                     │
│    • To upload your config, run `npm run shopify app deploy`                                             │
│                                                                                │
│  Reference                                                                                │
│    • App configuration                                                                                │
│                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯

╭─ error ──────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│                                                                                │
│  Validation errors in shopify.app.relevaai.toml:                                                         │
│                                                                                │
│  • [webhooks.subscriptions.0.uri]: URI isn't correct URI format of https://,                             │
│  pubsub://{project-id}:{topic-id} or Eventbridge ARN                                                     │
│                                                                                │
│                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯

I have tried to edit the shopify.app.relevaai.toml but it gets overwritten everytime I run shopify app deploy --reset

This is the shopify.app.relevaai.toml that's get generated:
# Learn more about configuring your app at https://shopify.dev/docs/apps/tools/cli/configuration

client_id = "5cb5d36559789f53ca88a2f6f453740d"
name = "Releva.ai"
handle = "releva-ai-1"
application_url = "https://shop.releva.ai/"
embedded = false

[build]
include_config_on_deploy = true

[auth]
redirect_urls = [
  "https://shop.releva.ai/auth/callback",
  "https://shop.releva.ai/auth/shopify/callback",
  "https://shop.releva.ai/api/auth/callback"
]

[webhooks]
api_version = "2023-10"

  [[webhooks.subscriptions]]
  uri = "webhooks/customers/data_request"
  compliance_topics = [ "customers/data_request" ]

  [[webhooks.subscriptions]]
  uri = "webhooks/customers/redact"
  compliance_topics = [ "customers/redact" ]

  [[webhooks.subscriptions]]
  uri = "webhooks/shops/redact"
  compliance_topics = [ "shop/redact" ]

[pos]
embedded = false

[app_preferences]
url = "https://releva.ai/admin"

Operating System
Ubuntu, Mac OS
Shopify CLI version (check your project's package.json if you're not sure)
3.58.2
Shell
bash, zsh
Node version (run node -v if you're not sure)
v21.6.1
What language and version are you using in your application?
Ruby 3.1.2

Hi! Relative URLs must start with a slash, like uri = "/webhooks/customers/data_request". Could you try that?
I'll improve that error message to mention that.

I think the functionality that creates the file shopify.app.[app-name].toml in the first place needs to produce the uri in the correct format, is that right @gonzaloriestra?
Because if you try to run the command and you do not have this file in your directory it is produced without the slash.

Hmm it should add the slash, I'm not able to reproduce...

Are you using the latest CLI version?
What URLs do you have in your admin panel? The ones shown in the screenshot here?
And your application_url is https://shop.releva.ai?


"curl: (52) Empty reply from server" when posting GELF message

Hi,
I have got docker setup using docker-compose from https://github.com/Graylog2/graylog-docker.
The Graylog server is up and running (web interface). However when I try to post log using following I get "curl: (52) Empty reply from server".
curl -X POST -H 'Content-Type: application/json' -d '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }' 'http://localhost:12201/gelf'
Any idea?
Thanks

Did you setup the HTTP GELF Input?
We are using GitHub issues for tracking bugs in Graylog itself, but this doesn't look like one. Please post this issue to our discussion forum or join the #graylog channel on freenode IRC.
Thank you!


feat: attach .js extension to all relative/absolute file imports/exports

Closes https://github.com/dotansimha/graphql-code-generator/issues/8022
Closes https://github.com/dotansimha/graphql-code-generator/pull/8034

@n1ru4l  Is the extension needed here also?
https://github.com/dotansimha/graphql-code-generator/blob/1479233dfa46f576a02b7dff37fd6a52e7aff80a/dev-test/gql-tag-operations-urql/gql/gql.d.ts#L7-L13

@n1ru4l Is the extension needed here also?
https://github.com/dotansimha/graphql-code-generator/blob/1479233dfa46f576a02b7dff37fd6a52e7aff80a/dev-test/gql-tag-operations-urql/gql/gql.d.ts#L7-L13

Good catch, fixed it in https://github.com/dotansimha/graphql-code-generator/pull/8034/commits/985d167643e1fba396de1c5fd969a2e03eb54d13

this should be rethinked:
https://github.com/dotansimha/graphql-code-generator/blob/d84afec0950b234cd716ea76436e3800a978328c/packages/presets/graphql-modules/src/index.ts#L72
extension are removed, for example
https://github.com/dotansimha/graphql-code-generator/blob/9a5f31cb622f064db58e27962996235d4cf89000/dev-test/codegen.yml#L360
resolves into
https://github.com/dotansimha/graphql-code-generator/blob/faa13973e0022215b57699636a886d70b8b4946e/dev-test/modules/blog/generated.ts#L1

https://github.com/dotansimha/graphql-code-generator/blob/d84afec0950b234cd716ea76436e3800a978328c/packages/plugins/typescript/oclif/src/visitor.ts#L34
default needs extension

https://github.com/dotansimha/graphql-code-generator/blob/d84afec0950b234cd716ea76436e3800a978328c/packages/plugins/typescript/resolvers/tests/ts-resolvers.spec.ts#L239
also, in this file, look for assurances of ../entities

graphql-code-generator/packages/plugins/typescript/resolvers/tests/ts-resolvers.spec.ts

I think this is fine, as it is configured through a user-provided configuration. (https://github.com/dotansimha/graphql-code-generator/blob/d84afec0950b234cd716ea76436e3800a978328c/packages/plugins/typescript/resolvers/tests/ts-resolvers.spec.ts#L234)

@n1ru4l do we have any concerns about breaking changes? older TS version or anything like that? (in the generated files, i mean)

.js worked in all previous TS version afaik

Apparently, this broke Next.js... https://github.com/dotansimha/graphql-code-generator/issues/8065


A preferences manager

Preferences can be stored in multiple locations. Most preferences will be under the settings button of the content window it is related to: #186, but content windows should be able to store preferences using ui in other places as well.
When storing a preference, an api should be availble to tell the manager where the preference will be stored:

content window, local project: The preference will be asigned to the content window where it was modified from. Stored (locally) in the project, i.e. switching to another project, or another device, or another contentwindow, will clear the preference.
content window, workspace: The preference will be assigned to the content window where it was modified from. But stored in the workspace, i.e. all projects will have the preference if they select that workspace.
local project: All content windows in the project will access the same preference.
local machine: All projects will access the same value of the preference.
global project: All content windows and machines, will have the same value. The preference is stored in version control causing it to get transferred to other machines as well.
global machine: Same as 'local machine' but has a lower priority, allowing it to be overridden by the 'global project' location.

Initially we might only implement a subset of this list.

A list of different situations and use cases

Content window exclusive
Workspace exlusive
included in version control
project exclusive
Notes/Use cases

❌
❌
❌
❌
machine global Use case: User prefers inverted mouse controls in entity editor

❌
❌
❌
✅
set by user for specific project Use case: There's a bug with a specific component/plugin/assettype only used in a specific project, and only with specific system conditions (i.e. only on a specific OS). There's a workaround that requires you to change a preference but you don't want to change it for all projects.

❌
❌
✅
n/a
set by repo maintainer Use case: There's a bug with a specific component/plugin/assettype that this project uses, repo maintainer is aware of this issue.

❌
✅
❌
❌
Use case: Creating a workspace for previewing assets in full screen in the entity editor with things like grid and gizmos hidden.

✅
✅
❌
❌
(pretty weak) use case: You create four entity editors for top/left/front/perspective view. You want to disable all gizmos for the perspective view, but want to keep the settings of the three other windows in sync with each other.

❌
✅
❌
✅

❌
✅
✅
n/a
Project makes heavy use of a plugin with extra contentwindow types and you want to be able to quickly switch between workspaces with different settings for these contentwindow types.

✅
❌
❌
❌
Use case: You want two entity editors side by side, one needs a grid, the other doesn't.

✅
❌
❌
✅

✅
❌
✅
n/a

✅
✅
❌
✅

✅
✅
✅
n/a


Support in with documentation

Problem
A list of choices is already supported via {:in, ...}. Unfortunately, there's no easy way to document the choices.
Example:
@pets [:cat, dog]

@schema [
  pet: [
    type: {:in, @pets},
    doc: "Type of pet."
  ]
]

@doc """
## Options

#{NimbleOptions.docs(@schema)}
"""

If you do this, there is no reference in the docs to the actual values the :pet key can assume. If you want to document that, you need to do so manually:
@schema [
  pet: [
    type: {:in, @pets},
    doc: ~s"""
      Type of pet.

      Must be one of:

        * `:cat` - feline
        * `:dog` - canine
      """
  ]
]

This isn't ideal. And it has a habit of growing out of sync with the actual values.
Proposal
We add a struct of some sort that allows choices to self-document. For example:
@pets [
  %NimbleOptions.Choice{
    value: :cat,
    doc: "feline"
  },
  %NimbleOptions.Choice{
    value: :dog,
    doc: "canine"
  },
]

@schema [
  pet: [
    type: {:in, @pets},
    doc: "Type of pet."
  ]
]

@doc """
## Options

#{NimbleOptions.docs(@schema)}
"""

Then if the type is {:in, ...} and the element is a %NimbleOptions.Choice{} (or whatever name makes sense), then the docs builder can add the "Must be one of..." part automatically.

You can basically already do this with just a few more lines of code from what you have above. Something like:
@pets [
  %{value: :cat, doc: "feline"},
  # ...
]

@schema [
  pet: [
    type: {:in, Enum.map(@pets, & &1.value)},
    doc: "Type of pet. Must be one of #{Enum.map_join(@pets, ", ", & &1.doc)}"
  ]
]

In order for this library to stay nimble, I'd say something like the code above is probably the best approach. If we introduce NimbleOptions.Choice, the slope gets pretty slippery and we might start adding a ton of similar things.
Thanks for the proposal anyways! 💟

I hear you on remaining nimble! So no worries is this is still rejected. But do note that your proposed solution is not quite what I was going for.
You'd want something more like:
@schema [
  pet: [
    type: {:in, Enum.map(@pets, & &1.value)},
    doc: """
      Type of pet.

      Must be one of:

      #{Enum.map_join(@pets, "\n\n", &"  * `#{inspect(&1.value)}` - #{&1.doc}")}
      """
  ]
]

But then you start running into indentation issues and it gets messy.
And it also feels like I'm reinventing what ought to be fairly fundamental -- I think I want this literally every time I have a list of atoms as options. If an element of a schema can self-document via :doc, why not an element of an {:in, ...}?
However, again, I do hear you on remaining Nimble. I can make the map_join version work if need be :)

@billylanchantin this sets a "dangerous" precedent though. We don't change documentation for any other type. For example, we don't say something like "must be an integer" if you use :integer as the type. So, this would be a first, and would start what I think would be a slippery slope. I suggest to add helpers to your application that do something like the code you showed above.
Thanks again!

Sure thing! And thanks for the explanation :)


Quick fix and Subtype property problems

While reviewing and testing the changes for #18 and #21 I found two more issues, probably:

The quick fix / add documentation action inserts the doc template, but cuts out the first character of the method name
when generating the markdown documentation for a codeunit with a Subtype property, an error occurs: Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.

Hello @msomp
thank you for reporting the issues.
Unfortunately I was not able to reproduce the problems with my test objects.
Could you pls provide an example and the call stack of the exception?
Thank you very much.

If`ve tested in some more projects and found one where an similar error occured. The documentation is inserted after 'p' of 'procedure'. Pretty strange to be honest, I look into it more deeply but need some example anyway.
Thank you in advance.

Hi,
in the screenshot there's an example of what's happening when I insert a documentation for a procedure with the quick fix function:

Additionally, please find a simple Install Codeunit attached where the exception occurs at my side. The output is:
`AL XML Documentation version 0.4.2
Copyright (C) 365 business development. All rights reserved
Markdown export started for 'c:\NAV\AL\N2S ECM Interface\App\Src\codeunit\N2SInstall.Codeunit copy.al' at '08:32:53'
An error occurred while processing:
Error: Command failed: "c:\Users\Martin.vscode\extensions\365businessdevelopment.bdev-al-xml-doc-0.4.2/bin/ALCodeCommentMarkdownCreator.exe"  -g -o "c:\NAV\AL\N2S ECM Interface\App\doc" -f "c:\NAV\AL\N2S ECM Interface\App\Src\codeunit\N2SInstall.Codeunit copy.al"
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at ALCodeCommentMarkdownCreator.SourceFile.GenerateIndex() in C:\DevOps\365businessdev.ALCodeCommentMarkdownCreator\ALCodeCommentMarkdownCreator\SourceFile.cs:line 273
at ALCodeCommentMarkdownCreator.SourceFile.GenerateMarkdown() in C:\DevOps\365businessdev.ALCodeCommentMarkdownCreator\ALCodeCommentMarkdownCreator\SourceFile.cs:line 266
at ALCodeCommentMarkdownCreator.Program.ProcessSourceFiles(String inputDirectory, String inputFile, String outputDirectory, Boolean verbose, Boolean globalOnly) in C:\DevOps\365businessdev.ALCodeCommentMarkdownCreator\ALCodeCommentMarkdownCreator\Program.cs:line 109
at ALCodeCommentMarkdownCreator.Program.Process(CmdOptions opts) in C:\DevOps\365businessdev.ALCodeCommentMarkdownCreator\ALCodeCommentMarkdownCreator\Program.cs:line 64
at ALCodeCommentMarkdownCreator.Program.<>c.b__0_0(CmdOptions opts) in C:\DevOps\365businessdev.ALCodeCommentMarkdownCreator\ALCodeCommentMarkdownCreator\Program.cs:line 26
at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult1 result, Action1 action)
at ALCodeCommentMarkdownCreator.Program.Main(String[] args) in C:\DevOps\365businessdev.ALCodeCommentMarkdownCreator\ALCodeCommentMarkdownCreator\Program.cs:line 25
`
N2SInstallDocTest.Codeunit.al.zip
I found out that this always seems to happen, when any kind of subtype is specified. When removing the subtype line, everything works like a charm.
Thanks, Martin.

Thank you very much! I fixed it and published the new version 0.4.3 with the bugfixes.

Thank your for the quick fix!


Spreading introduces undeclared fields in object of specific type

This problem not only violates strong typing principles but also introduces memory wasting mechanism which allows to add new/unexpected fields into the strongly typed object.
Code
type MyType = { valueA: string, valueB: string };
const value: MyType = { valueA: 'aaa', valueB: 'bbb' };

const bad = { valueA: 'override A', bad: 'BAD' };
// spreading below overrides valueA which is desired but it also adds `bad` into MyType
const all: MyType = { ...value, ...bad };

function dump(value: MyType) {
  console.log(value); // output contains `bad` which is not in MyType
}

dump(all);

Expected behavior:
value parameter in dump function has only fields declared in MyType.
Actual behavior:
value parameter has a field bad which is not declared in MyType but added into value at run-time by spreading.
Playground Link:
https://www.typescriptlang.org/play?target=99&ts=4.0.2&ssl=1&ssc=1&pln=12&pc=11#code/C4TwDgpgBAsiAq5oF4oG8oDcCGAbArhAIIBcUAzsAE4CWAdgOYA0WehAQmZbY1AL4BuAFABjAPZ1KrAhDJxEkKKgw4ZpKAHJs2jS1UcyGgEYmN-YaIlSj2ACZL00wuo1jMEKrVvQiuqDdtDdiIAETNBIQB6SIowKgg7egZ-CFwxAHcoNw8vCHInYih0gAsaEWKoGnzvchp4+yN8YErmvHIxKDtbfIADAJ7KumAO+SRLSVbcXDkEJAcMADol-QgWJYWA8yEhADN8OhFgGgkoW3wAWzAAChWZhQgASnQhKChxSTFcCAW0hhu2R4CKDRLJNMBNN4SYDYei9fpFUrlSr5OhiZr0WCzSBCPjbM6XK54XAPARAA
Related Issues:
I didn't find similar reports.

This is working as intended. TypeScript is structurally typed. What is structural typing?
You want "Exact Types": #12936

@MartinJohns sorry, maybe I'm missing the point behind your message but how the fact that TypeScript is structurally typed language justifies the fact that the object gets altered structurally during spreading?
console.log in the example above outputs
{ "valueA": "override A", "valueB": "bbb", "bad": "BAD" }

which means that a new field was added to the object.

which means that a new field was added to the object.

And this is fine. The object is still structurally compatible with MyType. All properties that must exist according to MyType are present.

This fact makes strong typing in TypeScript very controversial because this is invalid
type MyType = { valueA: string };
const myValue: MyType = { valueA: 'aaa', valueB: 'bad' };

because of the error
Type '{ valueA: string; valueB: string; }' is not assignable to type 'MyType'.
  Object literal may only specify known properties, but 'valueB' does not exist in type 'MyType'.

which is totally logical and makes sense, but this is valid
type MyType = { valueA: string };
type OtherType = { valueB: string };
const otherValue: OtherType = { valueB: 'bad' };
const myValue: MyType = { valueA: 'aaa', ...otherValue };

and makes myValue equal to [LOG]: { "valueA": "aaa", "valueB": "bad" }
🤷♂

Object literal may only specify known properties, but 'valueB' does not exist in type 'MyType'.

This is the excess property check. According to @RyanCavanaugh it's more of a linter, not really part of the type system. But not every case is covered by this check, as you noticed.
Regardless, the presence of additional properties is fine in a structurally type-system. You can follow #12936 for "Exact Types" that would disallow any additional properties.

Not controversial at all, just very commonly misunderstood. I'd encourage you again to check the documentation I linked earlier.

I checked the document you've linked.
Let's walk through it together:

The idea behind structural typing is that two types are compatible if their members are compatible.
This is not my case. I'm adding a property which wasn't declared by type declaration and the type has no similar property to replace it with value I'm passing.

For example, in C# or Java, two classes named MyPoint and YourPoint, both with public int properties x and y, are not interchangeable, even though they are identical. But in a structural type system, the fact that these types have different names is immaterial.

Not suitable for my example too. I'm not trying to assign an object with the same number of properties which have the same types but different names. I'm adding a completely new property which was never been declared in the type in any form.

Because they have the same members with the same types, they are identical.

Not my case again.
The best answer to this mess with adding undeclared fields is described in this comment and the reason behind it has nothing to do with type system specifics or structurally typed TS.

I'm adding a property which wasn't declared by type declaration and the type has no similar property to replace it with value I'm passing.

You focused on the wrong part of the documentation. :-)

The idea behind structural typing is that two types are compatible if their members are compatible.

The members of your type { valueA: string, valueB: string } are compatible with the members of your other type: { valueA: string }, so the types are compatible.

The best answer to this mess with adding undeclared fields [...]

Honestly, I don't want to imagine the mess TypeScript would be if the behavior would be different. It would require so much additional code and overhead.

But we've reached a point where any further discussion is moot. 🤷 This works as indented, and the feature you want is tracked by #12936.

We really need a FAQ entry on this. Putting it on my TODO list


python3Packages.scp: 0.13.4 -> 0.13.5

Motivation for this change
Update to latest upstream release 0.13.5
Change log: https://github.com/jbardin/scp.py/blob/master/CHANGELOG.md#0135-2021-06-28
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 129242 run on x86_64-linux 1

13 packages built:

ansible (ansible_2_11 ,python38Packages.ansible-core)
ansible-lint (python38Packages.ansible-lint)
ansible_2_10 (python38Packages.ansible-base)
azure-cli
python38Packages.junos-eznc
python38Packages.robotframework-sshlibrary
python38Packages.scp
python39Packages.ansible-base
python39Packages.ansible-core
python39Packages.ansible-lint
python39Packages.junos-eznc
python39Packages.robotframework-sshlibrary
python39Packages.scp

Result of nixpkgs-review pr 129242 at a2704473 run on x86_64-linux 1

13 packages built successfully:

ansible (ansible_2_11 ,python38Packages.ansible-core)
ansible-lint (python38Packages.ansible-lint)
ansible_2_10 (python38Packages.ansible-base)
azure-cli
python38Packages.junos-eznc
python38Packages.robotframework-sshlibrary
python38Packages.scp
python39Packages.ansible-base
python39Packages.ansible-core
python39Packages.ansible-lint
python39Packages.junos-eznc
python39Packages.robotframework-sshlibrary
python39Packages.scp

2 suggestions:

warning: python-include-tests
Consider adding a checkPhase for tests, or if not feasible, pythonImportsCheck.
Near pkgs/development/python-modules/scp/default.nix:30:0:
   |
30 |     description = "SCP module for paramiko";
   | ^

warning: unclear-gpl
lgpl3 is a deprecated license, please check if project uses lgpl3Plus or lgpl3Only and change meta.license accordingly.
Near pkgs/development/python-modules/scp/default.nix:31:5:
   |
31 |     license = licenses.lgpl3;
   |     ^

Result of nixpkgs-review pr 129242 run on x86_64-linux 1

13 packages built:

ansible (ansible_2_11 ,python38Packages.ansible-core)
ansible-lint (python38Packages.ansible-lint)
ansible_2_10 (python38Packages.ansible-base)
azure-cli
python38Packages.junos-eznc
python38Packages.robotframework-sshlibrary
python38Packages.scp
python39Packages.ansible-base
python39Packages.ansible-core
python39Packages.ansible-lint
python39Packages.junos-eznc
python39Packages.robotframework-sshlibrary
python39Packages.scp


v0.17.1 All Debug Output Printed to Console

With qtumd running on Windows 10, 64 bit, after the v0.17.1 upgrade, all debug information is printed to the console. Previous versions (with default settings) did not print debug info to the console.
Is there a config file parameter or command line switch to turn printing of debug info on and off?

Set -printtoconsole=0 to disable it, and set the log file using -debuglogfile


gRPC support for whereami

updated whereami to include a whereami-grpc option where the service(s) listen on port 9090 and support the gRPC protocol. Includes proto definitions and supports the gRPC health check.

Verified that docker build runs successfully.
Verified v1.1.0 against the gRPC readme instructions.
Verified v1.1.0 against the HTTP readme instructions


[Bug] API Requests... and other things slows down after time

I have no idea what's causing this and it may be isolated to me, but VRCX has slowed a lot down recently, getting worse with how long it's been open (or since I clear it's cache). A list of things affected can be:

Fetching Online/Offline statuses
(XS)Overlay Notifications
Portal Drop Notifications
Retrieving/Sending Invites. (Inv Requests or inviting myself can take over a minute to send)
Replacing wrld/usr id with their actual name
Fetching Instance Lists
Possibly World/Avatar Changes
...pretty much everything that can change

Someone noted it can be a IPv6 issue but still occurs with IPv6 disabled.
It seemed to do better after clearing out the AppData VRCX folder completely, but after a couple it days of it running, the slowdown is noticeable again.

Hmmm to me it sounds like API requests are timing out, but resetting the program shouldn't make any difference if that's the case. And cache gets reset on program restart. Could try press Ctrl + Shift + I and paste this in the console $app.debugWebRequests = true; I'm not sure if seeing when the web requests complete will help you but it might.

It recently decided to stop for whatever reason, about a day after reporting and hasn't happened since. I'll close for now.


Use precise delta values for SDL scroll events

Since SDL 2.0.18, there are new "precise" fields for returning floating-point scroll delta values, replacing the integral ones.
I intentionally still haven't set the precise bool in events as the game assumes the scroll amount should be smaller than a non-precise one, and it seems SDL isn't actually applying a scale ratio to the precise deltas at all (not even in macOS/cocoa where CGEventSourceGetPixelsPerLine should be used).
macOS looks fine on non-precise scroll (i.e. mouse wheel), but pending testing on other platforms for double-confirmation:

[ ] Windows
[ ] Linux

For macOS we use or own precise scroll implementation: https://github.com/ppy/osu-framework/blob/1a7c8f22dc5054c9a03076a5ebb129a38ca290e8/osu.Framework/Platform/MacOS/MacOSWindow.cs#L35-L60
Curious if this can all be removed now.
I don't have a precise input device to test on Linux, but it does work with a non-precise device.

It still can't be removed as the macOS one applies a scale ratio to precise events for better scrolling experience, while SDL doesn't apply anything to its preciseX/preciseY fields.
We could consider moving the scale ratio to be applied globally rather than on macOS only, but would mean doing preciseX != x or preciseX % 1 != 0 to ensure the scroll event is from precise device, and I'm unsure how that's going to behave for each platform.

I've tried this on a windows precision touchpad. Having precise scrolling definitely is an improvement, but it needs a little tweaking to feel right.
The scroll should be reported as IsPrecise. Else scrolling in a ScrollContainer is too "flowy" and not very responsive. The increased distance decay really helps here.
Setting only the IsPrecise flag is not correct, as the scrolling amount is scaled down by a factor of 8 (in ScrollContainer, ScrollDistance is 80 by default). Setting this back to 80 feels much closer to scrolling in native windows apps.
https://github.com/ppy/osu-framework/blob/0fdff74e4366536aa060c2a0cc3c073a12092ec3/osu.Framework/Graphics/Containers/ScrollContainer.cs#L385
This raises the question of why precision scrolling is even scaled down. ScrollContainer scales it down by 8, while osu!-side, VolumeMeter and Editor scale it down by 10.
Having drawables locally scale the scroll seems wrong and error prone to me, as some usages are not scaling it. Best to apply this scale at MacOSWindow and have a consistent scroll delta for drawables.
To reiterate: not scaling produces correct results on Windows/SDL.
How to detect precise scrolling
No easy way to do it natively in windows. I've spent way too much time trying to find a win32 function for this. Tried GetPointerType, GetCurrentInputMessageSource, and all report precision touchpads as mice.
Just checking for each event if it's not a whole number may cause minor misbehaviour, as precision scrolling can still come out as a whole number (very rarely).
Have a flag recentPreciseMouseScroll that gets set on any non-integral scroll, and is only cleared after a short delay. This way, one-off integral inputs (in-between precise inputs) can be properly marked as IsPrecise = true.

The flag exists because in general the feel of precise scrolls is a bit different. Also it may trigger a slightly different operation.
Easiest example I can think of is that in the editor while precise scrolling on the timeline, I'd expect it to scroll to-the-pixel accuracy, and potentially snap to the nearest divisor when released.
With a scroll wheel that has discrete notches, I'd expect each notch/increment to move to a divisor.
This kind of difference in behaviour is a pretty common and user expected IMO.

That concrete example doesn't convince me too much, because the described UX seems more or less achievable even if the IsPrecise scroll was gone, as long as it would be replaced by mouse events with fractional scroll deltas - but I'll defer to your judgement since again I don't really have proper means to feel the difference (if any).

The issue is that precision needs to be 1:1 with finger movement. It's hard to do that in fractional terms. It should be akin to dragging a finger on the screen, except you are dragging it on a surface that isn't the screen.
Example of precision scroll in safari on iOS:
https://user-images.githubusercontent.com/191335/169392005-89624872-c6e6-457e-992c-2281747142c9.mp4
(note that while not shown here, scroll will keep inertia if released during a flick. it's the same as touch so i'm sure you can understand what I mean)
Example of non-precision scroll:
https://user-images.githubusercontent.com/191335/169391899-32622cda-680e-4ee2-b8f5-eba4004d43d2.mov
(no inertia, only slight smoothing, custom acceleration applied)

Would say it's best to leave improving the general precise-scrolling experience on Windows/Linux to another PR, or close this one as incomplete if having the precise delta values is worse rather than better.
Was only making this change after seeing that such field exists while not being used, and asked for platform testing to ensure those fields aren't potentially producing bad results.

@Susko3 now that your adjustment PR is in, can you check this and confirm things feel good on windows?

I've tested this myself on windows and all seems to be in shape. Roughly matches non-precision scroll rates.

Ideally precise scroll should use IsPrecise = true. But this is fine for now.

Oh, that's weird. is there a reason we're not setting that to true? Because we don't have the information right now?

I think it's worth at least adding a TODO regarding that fallacy.

Oh, that's weird. is there a reason we're not setting that to true? Because we don't have the information right now?

I explained it in more detail here: https://github.com/ppy/osu-framework/pull/5186#issuecomment-1132064369


Ahmed aldermaki

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Please fill out the issue template correctly when submitting feature requests.


use nix to bring in the project selection committee

wip
fixes #15
we can manage the project selection committee in the main org repo, and bring them in using this "one trick nix users don't want you to know about"
maybe it's a nice idea?
see also - https://github.com/FixPlanet/org/pull/25
-- edit:
probably worth noting i've done this in a terrible way. there's probably a more "nix-y" way to do it; so if anyone knows, please do fix/advise.
Todo:

[x] The nix-shell thing needs to run as part of the CI build

i'm not sure if the CI thing i've done is going to work; but the only way to find out is to merge!

wow it worked first time! - https://fixplanet.club/committee.html
i'm amazing at CI/nix. great work me.


Wanting to understand the difference between QuranUthmaniHaf and QuranUthmaniEnc.

If the author of the API could clarify the difference between Quran Uthmani Hafs and Quran Uthmani Enc, I would be most grateful.

Quran Uthmani Enc doesn't follow unicode standard, you need to use specific fonts for it.
Quran Uthmani Hafs follows unicode standard, you can use any unicode font
For example see verse 2:7

Application for translation and commentary to be added to the Quran "API".
Assalamualaikum friends, I hope you are doing well.
My name is Mohammad Shahzad, I am 20 years old.
I have spent the last two years composing the complete translation and interpretation of the Holy Quran in MS Word.
Now I wish to include it in the "API" of Quran.
I want to add it with another script.
I have no knowledge of coding.
But if someone guides me, I can work hard.
Please friends help me in this good work.
JzakAllah


[$1000] App displays phone number in result for brief moment even for invalid numbers (Bad UX)

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app
Open search
Search for long invalid number eg:<PHONE_NUMBER>1111 (observe result while writing the 14th digit)

Expected Result:
App should display invalid phone number error and shouldn't display phone number in result
Actual Result:
App displays invalid phone number error but also displays phone number in result for 1-2 seconds before removing it
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number:  v1.2.97-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/230750920-0a068e4f-fdb9-450e-a5ae-fb326fa48ce3.mp4
https://user-images.githubusercontent.com/43996225/230750922-82b9bc21-a35c-4ce1-90bc-712dbae8ccee.mp4
Expensify/Expensify Issue URL:
Issue reported by: @Dhanashree-Sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1680968836716639
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01bee86ec37b82125e
Upwork Job ID:<PHONE_NUMBER>589475328
Last Price Increase: 2023-04-17

Triggered auto assignment to @MitchExpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Whats odd is that there is an account tied to an "invalid" number that exists ("+11111111111111"), so I guess the question is if we should show the "Please enter a valid phone number.." message at all when an account that matches the search exists. Also, what valid phone number is 14 digits long? Seems weird to me

Either way, it seems we've defined anything over 14 digits as "invalid" and this behaviour is weird so should be fixed

Current assignee @MitchExpensify is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @fedirjh (External)

Proposal
Please re-state the problem that we are trying to solve in this issue.
App displays phone number in result for brief moment even for invalid numbers (Bad UX)
What is the root cause of that problem?
When user type something it will  trigger this.onChangeText as shown below:
https://github.com/Expensify/App/blob/3abe7b2f9e38dba42edf406ca1b1e19087f5599d/src/pages/SearchPage.js#L185
WithinonChangeText() at line 80 it will trigger this.debouncedUpdateOptions.
https://github.com/Expensify/App/blob/3abe7b2f9e38dba42edf406ca1b1e19087f5599d/src/pages/SearchPage.js#L79-L81
https://github.com/Expensify/App/blob/3abe7b2f9e38dba42edf406ca1b1e19087f5599d/src/pages/SearchPage.js#L58
Debounce is eventually calling updateOptions() function as shown below:
https://github.com/Expensify/App/blob/3abe7b2f9e38dba42edf406ca1b1e19087f5599d/src/pages/SearchPage.js#L126-L142
During every render header message and sections data generated via this code:
https://github.com/Expensify/App/blob/3abe7b2f9e38dba42edf406ca1b1e19087f5599d/src/pages/SearchPage.js#L166-L171
So here it will trigger multiple render and due to that, it will show Phone number in result for a moment and disappear thereafter. This is the root cause of the problem.
What changes do you think we should make in order to solve the problem?
Here we can see that within updateOptions() we are calling OptionsListUtils.getSearchOptions() function with parameter as this.props.reports, this.props.personalDetails, this.state.searchValue.trim(), and  this.props.betas etc.
So here we are not calling any backend api to generate search result, but passing value from props and state to OptionsListUtils.getSearchOptions() function. So here no need for debounce as it trigger render.
So we can remove debounce as shown in code below.
It will solve the problem and make user experience better as shown in result.
    //this.debouncedUpdateOptions = _.debounce(this.updateOptions.bind(this), 75);   // *** Old Code
    this.updateOptions = this.updateOptions.bind(this);    // *** Updated Code

    onChangeText(searchValue = '') {
        // this.setState({searchValue}, this.debouncedUpdateOptions);  // *** Old Code
        this.setState({searchValue}, this.updateOptions);      // *** Updated Code
    }

What alternative solutions did you explore? (Optional)
None

Results
https://user-images.githubusercontent.com/7823358/230777279-e4f1a0c7-ab00-45ec-8ce2-1244b9b1104e.mov

Proposal
Please re-state the problem that we are trying to solve in this issue.
App displays invalid phone number error but also displays phone number in result for 1-2 seconds before removing it
What is the root cause of that problem?
The root cause is here https://github.com/Expensify/App/blob/cdcb3358ad8509ad436f5e28c7699a78bd8bf485/src/pages/SearchPage.js#L58 where we're debouncing the updateOptions, so 75ms after the user enters the input, we'll update the result list.
Debouncing is a good thing to prevent exessive re-rendering and was added on purpose here https://github.com/Expensify/App/pull/3669. The actual problem is that we're delaying out input validation with the debounce.
If we notice in the OP video it's clear that the header message Please enter a valid phone number without brackets or dashes. If you're outside the US please include your country code (e.g. +15005550006). is shown immediately for an incorrect input. That's because the validation logic in https://github.com/Expensify/App/blob/main/src/libs/OptionsListUtils.js#L794 is not contained in the debounce, while the validation of the option list is.
What changes do you think we should make in order to solve the problem?

We need to make sure input validation-related logic is extracted out of the debounce so that invalid input is highlighted immediately.
The header message is already doing it correctly, so we should apply the same for the option list.
As soon as the user type, if the input is invalid email/invalid phone, we should reset the options list immediately. This can be done by creating a function to wrap the phone and email validation logic in https://github.com/Expensify/App/blob/cdcb3358ad8509ad436f5e28c7699a78bd8bf485/src/libs/OptionsListUtils.js#L610.
And in https://github.com/Expensify/App/blob/5eccf992b54b318cdeb4caf4d4c3e4f8dee89f1d/src/pages/SearchPage.js#L94 we use the above function to check if the input is invalid phone/email. If it is, we already know that the userToInvite will be null and can set it to null in the state without involving any debounce.
The overhead of the validation is minimal and will provide the UX improvement needed for this error validation case.
What alternative solutions did you explore? (Optional)
NA

Proposal
Please re-state the problem that we are trying to solve in this issue.
What is the root cause of that problem?
We update searchValue in onChangeText, and we also modify headerMessage in render at the same time, but our [recentReports, personalDetails, userToInvite] are modified after debounce, so the data is inconsistent
What changes do you think we should make in order to solve the problem?
We can also modify headerMessage in debounce to ensure data consistency, so we add a new state.headerMessage, and then we update state.headerMessage in updateOptions
What alternative solutions did you explore? (Optional)
Not Yet

Proposal
Please re-state the problem that we are trying to solve in this issue.
App displays phone number in result for brief moment even for invalid numbers (Bad UX)
What is the root cause of that problem?
The main reason is getting sections when we don't need them, because we shouldn't show sections when we have a validation message
What changes do you think we should make in order to solve the problem?
const sections = headerMessage ? [] : this.getSections();
we can pass an empty array of sections options when the header message property exists (meaning that if we have a validation message we shouldn't show sections), and when we pass sections of an empty array they disappear immediately.
Demo video:
https://user-images.githubusercontent.com/77809907/231476890-98a15ed5-4f3e-4449-8434-471fae4642fe.mov
What alternative solutions did you explore? (Optional)
Not Yet

📣 @arayiksuqiasyan! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: upwork.com/freelancers/~010bf3aba21bc10d87

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

@fedirjh
Hello, I assume you mean we can add the if (hasSelectableOptions || hasUserToInvite) { return '' } to OptionsListUtils.getHeaderMessage
We all call getHeaderMessage in [NewChatPage, IOUParticipantsRequest, IOUParticipantsSplit, WorkspaceInvitePage], sometimes, maybe it is not just used to display error messages,  so it seems likely to cause a regression if we modify getHeaderMessage.
Only SearchPage uses debounce(updateOptions), so we should treat it specially, so I think we'd better update sections and debounce(headerMessage) together in updateOptions

Great! @hellohublot mind applying to the Upwork Job here for eventual payment? Thank you!

Offers sent to everyone else for eventual payment :)

@MitchExpensify Thanks, but I haven't been assigned yet, we are still waiting for confirmation from Expensify Reviewer

thanks for the bump. Proposal LGTM. Feel free to create the PR @hellohublot

📣 @hellohublot You have been assigned to this job by @chiragsalian!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Note to myself that timeline bonus will apply here 🎉

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.3.3-2 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/17643

If no regressions arise, payment will be issued on 2023-04-28. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@fedirjh] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@fedirjh] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@fedirjh] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@MitchExpensify] Determine if we should create a regression test for this bug.
[ ] [@fedirjh] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ] [@MitchExpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Looking for a buddy check on any required addition to test rail @isagoico, I thiiink our existing tests should catch this, do you agree?

@MitchExpensify I don't think that our current tests would catch this atm BUT I also don't think this is a regular user behavior flow that would affect a big pool of customers.
Imo this is a good example of an edge case issue that can be tested on a monthly basis. Wdty of adding this one to the edge cases list? (Context on edge cases here)

I love that idea @isagoico !

Nice! Just to be sure, should I create a regression test in that case @isagoico?
@hellohublot mins applying to this Upwork job for payment? https://www.upwork.com/jobs/~01bee86ec37b82125e Thank you!

Paid reporter & C+, just waiting on @hellohublot 😄

@MitchExpensify Thanks, I have submitted a proposal in upwork, the name and avatar are the same
if you can't find me (I have encountered it before), you can send me an offer directly

I see this as the only proposal but I found you via search and sent an offer! Thanks again

Nice! Just to be sure, should I create a regression test in that case @isagoico?

No need! This will be tested directly from the issue. No test steps or test cases are needed.

@MitchExpensify Thanks, Accepted

Great! Thanks everyone.


[Feature] add support for payments via stripe

Use case
I'd like to sell access to a self-hosted VPN.
Description
I'd like to sell access to a self-hosted VPN.
Contribution

[X] I can write the design doc for this feature
[X] I can contribute this feature

How can it be implemented?
I'd like to sell access to a self-hosted VPN.

I think this is totally out of scope.
It is a individual use-case that has no advantage for others.
Furthermore it would implement a proprietary payment service.
Going to close this feature request.


Ability to disable the filter count

Is your feature request related to a problem? Please describe
Sometimes, you just don't want to know how many images you just filtered. Gelbooru does not describe this stat, and is better for it.
Describe the solution you'd like
Some sort of toggle in the settings that would disable all texts about how many images were filtered, or at least does not display the number of filtered images, whether this be per page or total downloaded.
Describe alternatives you've considered
I looked around the settings, and couldn't find anything like this.

Are you talking about this?

Sorry to ask bluntly, but why does it matter to show it or not? 😅
Wouldn't hiding it make it more confusing, especially when all images are filtered and it says "no results"?

Well, if you're asking if it'd be confusing or not, I'm just requesting if it'd be a toggle. I know that it would totally make troubleshooting much harder if that stat wasn't displayed, but if you're asking why I'm requesting a toggle, it's a little specific. Personally, I really hate to do a search on an artist and see like one third of their stuff get filtered from my blacklist. For me, knowing this kind of makes things harder for me. I filter the images I do for a reason, so seeing that they were there at all is a negative for me. Sometimes, you just really don't want to know. I know this is a fairly selfish request, but I at least hope you're able to kind of understand where I'm coming from when I ask about it.

Just wanted to note, checked this with 7.10.0. , and the count still appears after a download is completed. Otherwise, works great. Thanks!


[ Full Stack Cert ] - update demo and add missing information for event flyer lab

There are a few things that need to be updated in the lab.
The first thing is that the message for reminding campers to link their CSS to the HTML document is missing.
Here is the massage we use
**Note:** Be sure to link your stylesheet in your HTML and apply your CSS.

This message needs to go just before the # --hints--
Then in the # --solutions-- section, the height seems off here

Using min-height for the body selector resolves that
body {
  padding: 50px 10px;
  margin: 0 auto;
  width: 90vw;
  min-height: calc(100vh - 100px);
  background-color: white;
  font-family: sans-serif;
  text-align: center;
}

Here is the file you need to update
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/25-front-end-development/lab-event-flyer-page/66e45c8140f9fda5c105ae26.md

This has been opened for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors.
If you would like to contribute and have not read the contributors docs, please do so here: https://contribute.freecodecamp.org/#/
If you have any issues with contributing, be sure to join us on the contributors channel, or on the contributors sub-forum
Happy coding


trigger rebuild

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin please rerender

@conda-forge/help-python any idea why this fails checks when it's unchanged from (original recipe merge)[https://github.com/conda-forge/staged-recipes/pull/9857]?

@conda-forge-admin please rerender

Hi! This is the friendly automated conda-forge-webservice.
I tried to re-render for you but ran into some issues, please ping conda-forge/core for further assistance.


Add ssh-key to publish docs

About this change - What it does
This PR fixes docs publishing for Guardian by using a SSH key that has permissions to push to a different github branch
Why this way
See https://github.com/webfactory/ssh-agent#usage for implementation details.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 76.385%

Files with Coverage Reduction
New Missed Lines
%

core-s3/src/main/scala/io/aiven/guardian/kafka/s3/Config.scala
1
90.63%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
262

Relevant Lines:
343

💛  - Coveralls


Metric: % of GPs and hospitals

https://data.spatialhub.scot/dataset/gp_practices-is/resource/8389fd1d-563d-4c05-9833-26d9f07fd6cd
https://data.spatialhub.scot/dataset/nhs_hospitals-is

Mostly working now


littlefs/lfs.c:1228:error: Corrupted dir pair at {0x0, 0x1} littlefs/lfs.c:1886:debug: Bad block at 0x0 littlefs/lfs.c:1891:warn: Superblock 0x0 has become unwritable.

Hello, I am STM32L5 microcontroller, 16MBytes Flash in QuadSPI mode and im using lfs im  getting the error, but i think its due to incorrect device configuration or not enough frequency to run the memory can anyone tell me correct configuration for my memory and my memory type is Winbond W25Q128FV(waveshare W25Q DataFlash Board) im posting my configuration below.
// block device configuration
.read_size = 64,
.prog_size = 64,
.block_size = 4096,
.block_count = 4096,
.cache_size = 16,
.lookahead_size = 512,
.block_cycles = 500,
can any one tell how to make this configuration and what is the minimum frequency to work the memory?
even the memory is disconnected, i am  getting the error given below
littlefs/lfs.c:1228:error: Corrupted dir pair at {0x0, 0x1}
littlefs/lfs.c:1886:debug: Bad block at 0x0
littlefs/lfs.c:1891:warn: Superblock 0x0 has become unwritable.
Does anyone faced the issue, please help me resolving it.

我也是这个问题,我追踪到是在lfs_dir_commitcrc
for (lfs_off_t i = off; i < noff+sizeof(uint32_t); i++) {
// check against written crc, may catch blocks that
// become readonly and match our commit size exactly
if (i == off1 && crc != crc1) {
DEBUGMSG("%d %d %d %d\r\n",i,off1,crc,crc1);//1051 1051<PHONE_NUMBER> -1185462968
return LFS_ERR_CORRUPT;
}
这个if这里报的错,现在不知道如何处理

have you resolved this issue? i have same issue like you

I also have similar issue and have tracked it down to wrap-around of block allocator.
 I also use a lookahead_size of 512 assuming it can store entire flash area of 4096 blocks. My superblocks are located in block 0 and 1.
What I found is that depending on seed, it will start allocating at a random position in flash and while writing a large file it will overwrite the superblocks when allocation free.off + free.i wraps.
I do not know why this is. Does it not understand that storage area and superblocks share common flash?


Add property-based testing example #108

Adds property-based testing example to goes with #108

@naripok thanks for doing this - I just had a read of the docs and it is an interesting concept.
The POC is nice, but it omits the elements you mentioned would be hard to grok, would it be possible for you to extend it to some matching scenarios?
What I am missing is that we have to define some properties that hold true for audience matching, what would they look like without specifying exact examples like you would in normal testing?

What I am missing is that we have to define some properties that hold true for audience matching, what would they look like without specifying exact examples like you would in normal testing?

That is exactly the element which is hard to grok.
I already have done it and will commit it so you can check it out. Give me just a second.


syslog-address with tcp+tls protocol rejected by docker run

I see the following behavior trying to use the new tcp+tls transport for the syslog log driver:
$ docker run --rm --log-driver=syslog --log-opt syslog-address=tcp+tls://logs.papertrailapp.com:1234 alpine:3.3 echo hello world
docker: Error response from daemon: syslog-address should be in form proto://address, got tcp+tls://logs.papertrailapp.com:1234.
$ docker -v
Docker version 1.10.0, build 590d5108

It looks like the relevant code is here: urlutil.

This was added in https://github.com/docker/docker/pull/18998, looks indeed that  tcp+tls was added there, but the validation was not updated.
ping @calavera


Incorrect installation guide at readme.md and demo

HI, thanks for maintaining this great repo all the time.
Found out that the install guide in readme.md is not updated:
npm i --save luxon ngx-mat-timepicker (should be ts-luxon)
as well in the demo webpage which showing:
npm i @popperjs/core
npm i ngx-popperjs
Apart form this, any plan for making ts-luxon as part of the library dependency instead of as peer-dependency? It would be great just to do it like:
npm i --save ngx-mat-timepicker
without to worry install a wrong version of ts-luxon
Let me know if you need any helps from my side, tq

Hi, I think you're right...
I'm about to publish an update for v10 and v11 (fixing appendToInput) so I'll add these!
Thanks for reporting!
I'll also look into the other issue...v10 doesn't seem to have the focus issue, maybe they changed something in cdk v11


Completing PR #881

Added the php_cs_fixer config and CI according to the template.

This PR forked from #881. Merging this PR should also close the #881. Thanks, @erikgaal for your contributions.

Yes, I just added the php-cs-fixer job like

It seems different — I was asking what changes you made

I mean changes compared to the template. For example, the email is different. So I'm asking why, and what other changes you made.

I mean changes compared to the template. For example, the email is different. So I'm asking why, and what other changes you made.

I just changed the email. The rest of the workflow is the same as in the template.

Make it the same as it is in the template.


flake8Path not working

Error:

$ ls -la /Users/jimbrannlund/Library/Python/3.7/lib/python/site-packages/ | grep flake8
drwxr-xr-x  17 jimbrannlund  staff     544 Jun 19 01:15 flake8
drwxr-xr-x   9 jimbrannlund  staff     288 Jun 19 01:15 flake8-3.7.7.dist-info

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.4
BuildVersion:	18E226

$ python --version
Python 3.7.3

$ pipenv --version
pipenv, version 2018.11.26

$ code --version
1.35.1
c7d83e57cd18f18026a8162d042843bda1bcf21f
x64

Extension is: 2019.5.18875 (June 6 2019)
settings.json:
{
    "python.formatting.provider": "black",
    "files.autoSave": "afterDelay",
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    "editor.formatOnType": true,
    "[python]": {
        "editor.formatOnPaste": false
    },
    "python.linting.flake8Args": [
        "--max-line-length=88"
    ],
    "python.linting.flake8Path": "/Users/jimbrannlund/Library/Python/3.7/lib/python/site-packages/flake8/",
    "window.zoomLevel": -1,
}

What am I doing wrong?

Path should be to the bin catalog of your chosen python and environment:
/Users/jimbrannlund/Library/Python/3.7/bin/flake8
Wouldn't hurt if the docs reflected that, maybe with a clear example.  ;)
Big thanks to @DonJayamanne for leading me down the right path! ❤


NyoPon

Source name
NyoPon Scan
Source link
https://www.nyo-pon.com
Source language
Spanish
Other details
18+/NSFW = yes

Acknowledgements

[X] I have checked that the extension does not already exist by searching the extension listing and verified it does not appear there.
[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a meaningful title with the source name.
[X] I will fill out all of the requested information in this form.

It's a test, don't take it seriously, thank you.

Isn't it anime site? If it is, go to https://aniyomi.org/


Changed to debug log

Describe changes
I wanted to clean up log output
Pre-requisites
Please ensure you have done the following:

[ ] I have read the CONTRIBUTING.md document.
[ ] If my change requires a change to docs, I have updated the documentation accordingly.
[ ] If I have added an integration, I have updated the integrations table and the corresponding website section.
[ ] I have added tests to cover my changes.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other (add details above)

@schustmi I understand but this should only be given once and it shouldnt be in the constructor..  I think we can raise it when people are registering a component

Registering seems like a good compromise to me!

Maybe we can add a parameter like warn_about_plain_text_secrets to StackComponentConfig.__init__ which defaults to False, and then in Client.create_stack_component(...) we explicitly set it to True? This would only show the warning when registering a component, but the warning will not be shown in the dashboard (which should probably handle it differently anyway, e.g. using a dynamic warning message or automatically creating a secret)


lib/tasks: added a task to create users

See issues #179 and #283
Signed-off-by: Miquel Sabaté Solà<EMAIL_ADDRESS>

LGTM


error on postinstall: node scripts/build.js python command failed

Hi
I'm simply trying to install the latest version of node-sass.  Here is the log output:
gyp info it worked if it ends with ok
gyp verb cli [ 'C:\\Program Files (x86)\\nodejs\\node.exe',
gyp verb cli   'C:\\Users\\r\\Documents\\x\\node_modules\\node-sass\\node_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library=' ]
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at F (C:\Users\r\Documents\x\node_modules\node-sass\node_modules\node-gyp\node_modules\which\which.js:78:19)
gyp verb `which` failed     at E (C:\Users\r\Documents\x\node_modules\node-sass\node_modules\node-gyp\node_modules\which\which.js:82:29)
gyp verb `which` failed     at C:\Users\r\Documents\x\node_modules\node-sass\node_modules\node-gyp\node_modules\which\which.js:93:16
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:82:15)
gyp verb `which` failed  python2 [Error: not found: python2]
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python C:\Python33\python.EXE
gyp ERR! configure error
gyp ERR! stack Error: Command failed: C:\Python33\python.EXE -c import platform; print(platform.python_version());
gyp ERR! stack Traceback (most recent call last):
gyp ERR! stack   File "<string>", line 1, in <module>
gyp ERR! stack TypeError: source code string cannot contain null bytes
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:203:12)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at maybeClose (internal/child_process.js:818:16)
gyp ERR! stack     at Socket.<anonymous> (internal/child_process.js:319:11)
gyp ERR! stack     at emitOne (events.js:77:13)
gyp ERR! stack     at Socket.emit (events.js:169:7)
gyp ERR! stack     at Pipe._onclose (net.js:469:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Users\\r\\Documents\\x\\node_modules\\node-sass\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild
" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\Users\r\Documents\x\node_modules\node-sass
gyp ERR! node -v v4.2.1
gyp ERR! node-gyp -v v3.2.0
gyp ERR! not ok
Build failed
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "--proxy=null" "node-sass" "--save-dev"
npm ERR! node v4.2.1
npm ERR! npm  v2.14.7
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'node scripts/build.js'.
npm ERR! This is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/build.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\r\Documents\x\npm-debug.log

Thanks for your help.

Node Sass is a native extension. Native extensions are compiled via node-gyp which requires python2. Node Sass should attempt to download the precompiled binary for you system if can. It appears it was unable to in this case but that part of the log hasn't been provided.
Please follow our troubleshooting guide and provide all the output as a github gist. Do not post the output in this issue.

Gyp utility used be chromium and other projects (including node) does not work with Python 3.

Gyp utility used be chromium and other projects (including node) does not work with Python 3.

@wisetc without full output we cannot help you. You need to check why the download failed.