[stable/airflow] can't use kubernetes executor

Describe the bug
Can't use Kubernetes executor  - inexisting config section is required
Version of Helm and Kubernetes:
helm 3.1.2
k8s 1.14 (EKS)
Which chart:
stable/airflow
What happened:
Install chart with custom values. Config works properly with CeleryExecutor, but after change to KubernetesExecutor there was an error from scheduler:
airflow.exceptions.AirflowConfigException: In kubernetes mode the following must be set in the kubernetes config section: dags_volume_claim or dags_volume_host or dags_in_image or git_repo and git_branch and git_dags_folder_mount_point
What you expected to happen:
Airflow starts to create tasks as kubernetes pods
How to reproduce it (as minimally and precisely as possible):

install helm chart with executor as KubernetesExecutor

Anything else we need to know:

docker image of airflow does not contain kubernetes python package. It should be installed via requirements or manually in pod

If you want to use k8s executor with this chart, you have to:

use a docker image with airflow kubernetes extra features (example)

fill some mandatory kubernetes configurations in airflow.cfg, this is a basic example to deploy the chart:

airflow:
  image:
    repository: pcc1488/docker-airflow-kubernetes-executor
    tag: latest
  executor: Kubernetes
  config:
    AIRFLOW__CORE__FERNET_KEY: 'R3r6tZ9h4M12cIshn1FSwskYd1-9_Y_S4E6hvNruAAI='
    # Kubernetes Configuration
    AIRFLOW__KUBERNETES__NAMESPACE: default # Or Set when you deploy with helm
    AIRFLOW__KUBERNETES__WORKER_CONTAINER_REPOSITORY: pcc1488/docker-airflow-kubernetes-executor
    AIRFLOW__KUBERNETES__WORKER_CONTAINER_TAG: latest
    AIRFLOW__KUBERNETES_ENVIRONMENT_VARIABLES__AIRFLOW__CORE__FERNET_KEY: 'R3r6tZ9h4M12cIshn1FSwskYd1-9_Y_S4E6hvNruAAI='
    AIRFLOW__KUBERNETES__DAGS_IN_IMAGE: 'True'

# No need for kubernetes executor
workers:
  enabled: false
redis:
  enabled: false
flower:
  enabled: false

In kubernetes executor mode, you have to define how the dags are recovered. You could choose to put dags in the docker image (like in the example),  create a git sync or used a volume claim.

Which is the right config to use the storage defined in logPersistence or is it better to disable that in the helm chart and use AIRFLOW__KUBERNETES__LOGS_VOLUME_CLAIM instead?

I am getting the same error. I would like to sync my git repo which has dag folder and this is what I am giving in the values.yaml in config
AIRFLOW__KUBERNETES__GIT_REPO: "xxx" AIRFLOW__KUBERNETES__GIT_BRANCH: "xxx" AIRFLOW__KUBERNETES__GIT_SUBPATH: "xxx"
I can even see that the environment variables are set in the container

I forgot to define AIRFLOW__KUBERNETES__GIT_DAGS_FOLDER_MOUNT_POINT that is why that error. The error is gone but it does not sync the git repo to the local folder. Is it something else that needs to be enabled in the stable/airflow helm chart values.yaml for it to sync

Can you share your values.yaml? Assuming that is the only file changed based on the stable/airflow chart

Is it a private repo? Can you share your values.yaml? Assuming that is the only file changed based on the stable/airflow chart.

Thanks @christinaet. Resolved all my problems. I switched to persistence storage with Azure file share. Worked like a charm

@PierreC1024 Is it still the case since this chart has moved to using the official apache/airflow image that we need to use a special image with enabled Kubernetes features?

I also have this problem, using Kubernetes executor and git-sync. I am using AWS, but ELB doesn't support proper accessModes and EFS is way too expensive.
```airflow.exceptions.AirflowConfigException: In kubernetes mode the following must be set in the kubernetes config section: dags_volume_claim or dags_volume_host or dags_in_image or `git_repo and git_branch and git_dags_folder_mount_point````
# Airflow - Common Configs
###################################
airflow:
  ## configs for the docker image of the web/scheduler/worker
  ##
  image:
    repository: apache/airflow
    tag: 1.10.10-python3.6
    ## values: Always or IfNotPresent
    pullPolicy: IfNotPresent
    pullSecret: ""

  ## the airflow executor type to use
  ##
  ## NOTE:
  ## - this should be `CeleryExecutor` or `KubernetesExecutor`
  ## - if set to `KubernetesExecutor`:
  ##   - ensure that `workers.enabled` is `false`
  ##   - ensure that `flower.enabled` is `false`
  ##   - ensure that `redis.enabled` is `false`
  ##   - ensure that K8S configs are set in `airflow.config`
  ##   - we set these configs automatically:
  ##     - `AIRFLOW__KUBERNETES__NAMESPACE`
  ##     - `AIRFLOW__KUBERNETES__WORKER_SERVICE_ACCOUNT_NAME`
  ##     - `AIRFLOW__KUBERNETES__ENV_FROM_CONFIGMAP_REF`
  ##
  executor: KubernetesExecutor

  ## the fernet key used to encrypt the connections/variables in the database
  ##
  ## WARNING:
  ## - you MUST customise this value, otherwise the encryption will be somewhat pointless
  ##
  ## NOTE:
  ## - to prevent this value being stored in your values.yaml (and airflow-env ConfigMap),
  ##   consider using `airflow.extraEnv` to define it from a pre-created secret
  ##
  ## GENERATE:
  ##   python -c "from cryptography.fernet import Fernet; FERNET_KEY = Fernet.generate_key().decode(); print(FERNET_KEY)"
  ##
  fernetKey: "rGs6asdasdalsd HERE IS MY KEY"

  ## environment variables for the web/scheduler/worker Pods (for airflow configs)
  ##
  ## WARNING:
  ## - don't include sensitive variables in here, instead make use of `airflow.extraEnv` with Secrets
  ## - don't specify `AIRFLOW__CORE__SQL_ALCHEMY_CONN`, `AIRFLOW__CELERY__RESULT_BACKEND`,
  ##   or `AIRFLOW__CELERY__BROKER_URL`, they are dynamically created from chart values
  ##
  ## NOTE:
  ## - airflow allows environment configs to be set as environment variables
  ## - they take the form: AIRFLOW__<section>__<key>
  ## - see the Airflow documentation: https://airflow.apache.org/docs/stable/howto/set-config.html
  ##
  ## EXAMPLE:
  ##   config:
  ##     ## Security
  ##     AIRFLOW__CORE__SECURE_MODE: "True"
  ##     AIRFLOW__API__AUTH_BACKEND: "airflow.api.auth.backend.deny_all"
  ##     AIRFLOW__WEBSERVER__EXPOSE_CONFIG: "False"
  ##     AIRFLOW__WEBSERVER__RBAC: "False"
  ##
  ##     ## DAGS
  ##     AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL: "30"
  ##     AIRFLOW__CORE__LOAD_EXAMPLES: "False"
  ##
  ##     ## Email (SMTP)
  ##     AIRFLOW__EMAIL__EMAIL_BACKEND: "airflow.utils.email.send_email_smtp"
  ##     AIRFLOW__SMTP__SMTP_HOST: "smtpmail.example.com"
  ##     AIRFLOW__SMTP__SMTP_STARTTLS: "False"
  ##     AIRFLOW__SMTP__SMTP_SSL: "False"
  ##     AIRFLOW__SMTP__SMTP_PORT: "25"
  ##     AIRFLOW__SMTP__SMTP_MAIL_FROM<EMAIL_ADDRESS>  ##
  ##     ## Disable noisy "Handling signal: ttou" Gunicorn log messages
  ##     GUNICORN_CMD_ARGS: "--log-level WARNING"
  ##
  ##     ## Proxy Config
  ##     HTTP_PROXY: "http://proxy.example.com:8080"
  ##
  config: {}

  ## extra annotations for the web/scheduler/worker Pods
  ##
  ## EXAMPLE:
  ##   podAnnotations:
  ##     iam.amazonaws.com/role: airflow-Role
  ##
  podAnnotations: {}

  ## extra environment variables for the web/scheduler/worker (AND flower) Pods
  ##
  ## EXAMPLE:
  ##   extraEnv:
  ##     - name: AIRFLOW__CORE__FERNET_KEY
  ##       valueFrom:
  ##         secretKeyRef:
  ##           name: airflow-fernet-key
  ##           key: value
  ##     - name: AIRFLOW__LDAP__BIND_PASSWORD
  ##       valueFrom:
  ##         secretKeyRef:
  ##           name: airflow-ldap-password
  ##           key: value
  ##
  extraEnv: []

  ## extra configMap volumeMounts for the web/scheduler/worker Pods
  ##
  ## EXAMPLE:
  ##   extraConfigmapMounts:
  ##     - name: airflow-webserver-config
  ##       mountPath: /opt/airflow/webserver_config.py
  ##       configMap: airflow-webserver-config
  ##       readOnly: true
  ##       subPath: webserver_config.py
  ##
  extraConfigmapMounts: []

  ## extra containers for the web/scheduler/worker Pods
  ##
  ## EXAMPLE: (a sidecar that syncs DAGs from object storage)
  ##   extraContainers:
  ##     - name: s3-sync
  ##       image: my-user/s3sync:latest
  ##       volumeMounts:
  ##     - name: synchronised-dags
  ##       mountPath: /dags
  ##
  extraContainers: []

  ## extra pip packages to install in the web/scheduler/worker Pods
  ##
  ## EXAMPLE:
  ##   extraPipPackages:
  ##     - "airflow-exporter==1.3.1"
  ##
  extraPipPackages: []

  ## extra volumeMounts for the web/scheduler/worker Pods
  ##
  ## EXAMPLE:
  ##   extraVolumeMounts:
  ##     - name: synchronised-dags
  ##       mountPath: /opt/airflow/dags
  ##
  extraVolumeMounts: []

  ## extra volumes for the web/scheduler/worker Pods
  ##
  ## EXAMPLE:
  ##   extraVolumes:
  ##     - name: synchronised-dags
  ##       emptyDir: {}
  ##
  extraVolumes: []

###################################
# Airflow - Scheduler Configs
###################################
scheduler:
  ## resource requests/limits for the scheduler Pod
  ##
  ## EXAMPLE:
  ##   resources:
  ##     requests:
  ##       cpu: "1000m"
  ##       memory: "1Gi"
  ##
  resources: {}

  ## the nodeSelector configs for the scheduler Pods
  ##
  nodeSelector: {}

  ## the affinity configs for the scheduler Pods
  ##
  affinity: {}

  ## the toleration configs for the scheduler Pods
  ##
  tolerations: []

  ## labels for the scheduler Deployment
  ##
  labels: {}

  ## Pod labels for the scheduler Deployment
  ##
  podLabels: {}

  ## annotations for the scheduler Deployment
  ##
  annotations: {}

  ## Pod Annotations for the scheduler Deployment
  ##
  podAnnotations: {}

  ## configs for the PodDisruptionBudget of the scheduler
  ##
  podDisruptionBudget:
    ## if a PodDisruptionBudget resource is created for the scheduler
    ##
    enabled: true

    ## the maximum unavailable pods/percentage for the scheduler
    ##
    ## NOTE:
    ## - as there is only ever a single scheduler Pod,
    ##   this must be 100% for Kubernetes to be able to migrate it
    ##
    maxUnavailable: "100%"

    ## the minimum available pods/percentage for the scheduler
    ##
    minAvailable: ""

  ## custom airflow connections for the airflow scheduler
  ##
  ## NOTE:
  ## - connections are created with a script that is stored in a K8s secret and mounted into the scheduler container
  ##
  ## EXAMPLE:
  ##   connections:
  ##     - id: my_aws
  ##       type: aws
  ##       extra: |
  ##         {
  ##           "aws_access_key_id": "XXXXXXXXXXXXXXXXXXX",
  ##           "aws_secret_access_key": "XXXXXXXXXXXXXXX",
  ##           "region_name":"eu-central-1"
  ##         }
  ##
  connections: []

  ## custom airflow variables for the airflow scheduler
  ##
  ## NOTE:
  ## - THIS IS A STRING, containing a JSON object, with your variables in it
  ##
  ## EXAMPLE:
  ##   variables: |
  ##     { "environment": "dev" }
  ##
  variables: |
    {}

  ## custom airflow pools for the airflow scheduler
  ##
  ## NOTE:
  ## - THIS IS A STRING, containing a JSON object, with your pools in it
  ##
  ## EXAMPLE:
  ##   pools: |
  ##     {
  ##       "example": {
  ##         "description": "This is an example pool with 2 slots.",
  ##         "slots": 2
  ##       }
  ##     }
  ##
  pools: |
    {}

  ## the value of the `airflow --num_runs` parameter used to run the airflow scheduler
  ##
  ## NOTE:
  ## - this is the number of 'dag refreshes' before the airflow scheduler process will exit
  ## - if not set to `-1`, the scheduler Pod will restart regularly
  ## - for most environments, `-1` will be an acceptable value
  ##
  numRuns: -1

  ## if we run `airflow initdb` when the scheduler starts
  ##
  initdb: true

  ## if we run `airflow initdb` inside a special initContainer
  ##
  ## NOTE:
  ## - may be needed if you have custom database hooks configured that will be pulled in by git-sync
  ##
  preinitdb: false

  ## the number of seconds to wait (in bash) before starting the scheduler container
  ##
  initialStartupDelay: 0

  ## extra init containers to run before the scheduler Pod
  ##
  ## EXAMPLE:
  ##   extraInitContainers:
  ##     - name: volume-mount-hack
  ##       image: busybox
  ##       command: ["sh", "-c", "chown -R 1000:1000 logs"]
  ##       volumeMounts:
  ##         - mountPath: /opt/airflow/logs
  ##           name: logs-data
  ##
  extraInitContainers: []

###################################
# Airflow - WebUI Configs
###################################
web:
  ## resource requests/limits for the airflow web Pods
  ##
  ## EXAMPLE:
  ##   resources:
  ##     requests:
  ##       cpu: "500m"
  ##       memory: "1Gi"
  ##
  resources: {}

  ## the number of web Pods to run
  ##
  replicas: 1

  ## the nodeSelector configs for the web Pods
  ##
  nodeSelector: {}

  ## the affinity configs for the web Pods
  ##
  affinity: {}

  ## the toleration configs for the web Pods
  ##
  tolerations: []

  ## labels for the web Deployment
  ##
  labels: {}

  ## Pod labels for the web Deployment
  ##
  podLabels: {}

  ## annotations for the web Deployment
  ##
  annotations: {}

  ## Pod annotations for the web Deployment
  ##
  podAnnotations: {}

  ## configs for the Service of the web Pods
  ##
  service:
    annotations: {}
    sessionAffinity: "None"
    sessionAffinityConfig: {}
    type: NodePort
    externalPort: 8080
    loadBalancerIP: ""
    loadBalancerSourceRanges: []
    nodePort:
      http: ""

  ## sets `AIRFLOW__WEBSERVER__BASE_URL`
  ##
  ## NOTE:
  ## - should be compatible with `ingress.web.path` config
  ##
  baseUrl: "http://localhost:8080"

  ## sets `AIRFLOW__CORE__STORE_SERIALIZED_DAGS`
  ##
  ## NOTE:
  ## - setting true will disable `git-sync` and `git-clone` containers in the web Pod
  ## - Docs: https://airflow.apache.org/docs/stable/dag-serialization.html
  ##
  serializeDAGs: false

  ## extra pip packages to install in the web container
  ##
  ## EXAMPLE: ( packages used by RBAC UI for OAuth )
  ##   extraPipPackages:
  ##     - "apache-airflow[google_auth]==1.10.10"
  ##
  extraPipPackages: []

  ## the number of seconds to wait (in bash) before starting the web container
  ##
  initialStartupDelay: 0

  ## the number of seconds to wait before declaring a new Pod available
  ##
  minReadySeconds: 5

  ## configs for the web Service readiness probe
  ##
  readinessProbe:
    enabled: false
    scheme: HTTP
    initialDelaySeconds: 10
    periodSeconds: 10
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 3

  ## configs for the web Service liveness probe
  ##
  livenessProbe:
    enabled: true
    scheme: HTTP
    ## the number of seconds to wait before checking pod health
    ##
    ## NOTE:
    ## - make larger if you are installing many packages with:
    ##   `airflow.extraPipPackages`, `web.extraPipPackages`, or `dags.installRequirements`
    ##
    initialDelaySeconds: 300
    periodSeconds: 30
    timeoutSeconds: 3
    successThreshold: 1
    failureThreshold: 2

  ## the directory in which to mount secrets on web containers
  ##
  secretsDir: /var/airflow/secrets

  ## secret names which will be mounted as a file at `{web.secretsDir}/<secret_name>`
  ##
  ## EXAMPLE:
  ##   secrets:
  ##     - airflow-web-secret
  ##
  secrets: []

  ## you can use secretsMap to specify a map and all the secrets will be stored within it
  ## secrets will be mounted as files at `{web.secretsDir}/<secrets_in_map>`
  ## If you use web.secretsMap, then it overrides web.secrets.
  ##
  ## EXAMPLE:
  ## secretsMap: airflow-secrets
  ##
  secretsMap:

###################################
# Airflow - Worker Configs
###################################
workers:
  ## if the airflow workers StatefulSet should be deployed
  ##
  enabled: false

  ## resource requests/limits for the airflow worker Pods
  ##
  ## EXAMPLE:
  ##   resources:
  ##     requests:
  ##       cpu: "1000m"
  ##       memory: "2Gi"
  ##
  resources: {}

  ## the number of workers Pods to run
  ##
  ## NOTE:
  ## - when `workers.autoscaling.enabled` is true, this is the minimum
  ##
  replicas: 1

  ## the nodeSelector configs for the worker Pods
  ##
  nodeSelector: {}

  ## the affinity configs for the worker Pods
  ##
  affinity: {}

  ## the toleration configs for the worker Pods
  ##
  tolerations: []

  ## labels for the worker StatefulSet
  ##
  labels: {}

  ## Pod labels for the worker StatefulSet
  ##
  podLabels: {}

  ## annotations for the worker StatefulSet
  ##
  annotations: {}

  ## Pod annotations for the worker StatefulSet
  ##
  podAnnotations: {}

  ## configs for the HorizontalPodAutoscaler of the worker Pods
  ##
  ## EXAMPLE:
  ##   autoscaling:
  ##     enabled: true
  ##     maxReplicas: 16
  ##     metrics:
  ##     - type: Resource
  ##       resource:
  ##         name: memory
  ##         target:
  ##           type: Utilization
  ##           averageUtilization: 80
  ##
  autoscaling:
    enabled: true
    maxReplicas: 5
    metrics:
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 80

  ## the number of seconds to wait (in bash) before starting each worker container
  ##
  initialStartupDelay: 0

  ## configs for the celery worker Pods
  ##
  ## NOTE:
  ## - only takes effect if `airflow.executor` is `CeleryExecutor`
  ##
  celery:
    ## the number of tasks each celery worker can run at a time
    ##
    ## NOTE:
    ## - sets AIRFLOW__CELERY__WORKER_CONCURRENCY
    ##
    instances: 1

    ## if we should wait for tasks to finish on a celery worker before SIGTERM of Pod
    ##
    ## NOTE:
    ## - `workers.terminationPeriod` is still the overall timeout before worker Pods are killed using SIGKILL
    ##
    gracefullTermination: false

  ## how many seconds to wait for tasks on a worker to finish before SIGKILL
  ##
  terminationPeriod: 60

  ## directory in which to mount secrets on worker containers
  ##
  secretsDir: /var/airflow/secrets

  ## secret names which will be mounted as a file at `{workers.secretsDir}/<secret_name>`
  ##
  ## EXAMPLE:
  ##   secrets:
  ##     - airflow-worker-secret
  ##
  secrets: []

  ## you can use secretsMap to specify a map and all the secrets will be stored within it
  ## secrets will be mounted as files at `{workers.secretsDir}/<secrets_in_map>`
  ## If you use web.secretsMap, then it overrides workers.secrets.
  ##
  ## EXAMPLE:
  ## secretsMap: airflow-secrets
  ##
  secretsMap:

###################################
# Airflow - Flower Configs
###################################
flower:
  ## if the Flower UI should be deployed
  ##
  ## NOTE:
  ## - only takes effect if `airflow.executor` is `CeleryExecutor`
  ##
  enabled: false

  ## resource requests/limits for the flower Pods
  ##
  ## EXAMPLE:
  ##   resources:
  ##     requests:
  ##       cpu: "100m"
  ##       memory: "126Mi"
  ##
  resources: {}

  ## the nodeSelector configs for the flower Pods
  ##
  nodeSelector: {}

  ## the affinity configs for the flower Pods
  ##
  affinity: {}

  ## the toleration configs for the flower Pods
  ##
  tolerations: []

  ## labels for the flower Deployment
  ##
  labels: {}

  ## Pod labels for the flower Deployment
  ##
  podLabels: {}

  ## annotations for the flower Deployment
  ##
  annotations: {}

  ## Pod annotations for the flower Deployment
  ##
  podAnnotations: {}

  ## the name of a pre-created secret containing the basic authentication value for flower
  ##
  ## NOTE:
  ## - This sets `AIRFLOW__CELERY__FLOWER_BASIC_AUTH`
  ##
  basicAuthSecret: ""

  ## the key within `flower.basicAuthSecret` containing the basic authentication string
  ##
  basicAuthSecretKey: ""

  ## sets `AIRFLOW__CELERY__FLOWER_URL_PREFIX`
  ##
  ## NOTE:
  ## - should match `ingress.flower.path` config
  ##
  urlPrefix: ""

  ## configs for the Service of the flower Pods
  ##
  service:
    annotations: {}
    type: ClusterIP
    externalPort: 5555
    loadBalancerIP: ""
    loadBalancerSourceRanges: []
    nodePort:
      http: ""

  ## the number of seconds to wait (in bash) before starting the flower container
  ##
  initialStartupDelay: 0

  ## extra ConfigMaps to mount on the flower Pods
  ##
  ## EXAMPLE:
  ##   extraConfigmapMounts:
  ##     - name: extra-cert
  ##       mountPath: /etc/ssl/certs/extra-cert.pem
  ##       configMap: extra-certificates
  ##       readOnly: true
  ##       subPath: extra-cert.pem
  ##
  extraConfigmapMounts: []

###################################
# Airflow - Logs Configs
###################################
logs:
  ## the airflow logs folder
  ##
  path: /opt/airflow/logs

  ## configs for the logs PVC
  ##
  persistence:
    ## if a persistent volume is mounted at `logs.path`
    ##
    enabled: false

    ## the name of an existing PVC to use
    ##
    existingClaim: ""

    ## sub-path under `logs.persistence.existingClaim` to use
    ##
    subPath: ""

    ## the name of the StorageClass used by the PVC
    ##
    ## NOTE:
    ## - if set to "", then `PersistentVolumeClaim/spec.storageClassName` is omitted
    ## - if set to "-", then `PersistentVolumeClaim/spec.storageClassName` is set to ""
    ##
    storageClass: default

    ## the access mode of the PVC
    ##
    ## WARNING:
    ## - must be: `ReadWriteMany`
    ##
    ## NOTE:
    ## - different StorageClass support different access modes:
    ##   https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
    ##
    accessMode: ReadWriteMany

    ## the size of PVC to request
    ##
    size: 1Gi

###################################
# Airflow - DAGs Configs
###################################
dags:
  ## the airflow dags folder
  ##
  path: /opt/airflow/dags

  ## whether to disable pickling dags from the scheduler to workers
  ##
  ## NOTE:
  ## - sets AIRFLOW__CORE__DONOT_PICKLE
  ##
  doNotPickle: false

  ## install any Python `requirements.txt` at the root of `dags.path` automatically
  ##
  ## WARNING:
  ## - if set to true, and you are using `dags.git.gitSync`, you must also enable
  ## `dags.initContainer` to ensure the requirements.txt is available at Pod start
  ##
  installRequirements: true

  ## configs for the dags PVC
  ##
  persistence:
    ## if a persistent volume is mounted at `dags.path`
    ##
    enabled: false

    ## the name of an existing PVC to use
    ##
    existingClaim: ""

    ## sub-path under `dags.persistence.existingClaim` to use
    ##
    subPath: ""

    ## the name of the StorageClass used by the PVC
    ##
    ## NOTE:
    ## - if set to "", then `PersistentVolumeClaim/spec.storageClassName` is omitted
    ## - if set to "-", then `PersistentVolumeClaim/spec.storageClassName` is set to ""
    ##
    storageClass: default

    ## the access mode of the PVC
    ##
    ## WARNING:
    ## - must be one of: `ReadOnlyMany` or `ReadWriteMany`
    ##
    ## NOTE:
    ## - different StorageClass support different access modes:
    ##   https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
    ##
    accessMode: ReadWriteMany

    ## the size of PVC to request
    ##
    size: 8Gi

  ## configs for the DAG git repository & sync container
  ##
  git:
    ## url of the git repository
    ##
    ## EXAMPLE: (HTTP)
    ##   url: "https://github.com/torvalds/linux.git"
    ##
    ## EXAMPLE: (SSH)
    ##   url: "ssh://git@github.com:torvalds/linux.git"
    ##
    url: "git@gitlab.com:MyRepoHere/airflow.git"

    ## the branch/tag/sha1 which we clone
    ##
    ref: master

    ## the name of a pre-created secret containing files for ~/.ssh/
    ##
    ## NOTE:
    ## - this is ONLY RELEVANT for SSH git repos
    ## - the secret commonly includes files: id_rsa, id_rsa.pub, known_hosts
    ## - known_hosts is NOT NEEDED if `git.sshKeyscan` is true
    ##
    secret: "airflow-git-keys"

    ## if we should implicitly trust [git.repoHost]:git.repoPort, by auto creating a ~/.ssh/known_hosts
    ##
    ## WARNING:
    ## - setting true will increase your vulnerability ot a repo spoofing attack
    ##
    ## NOTE:
    ## - this is ONLY RELEVANT for SSH git repos
    ## - this is not needed if known_hosts is provided in `git.secret`
    ## - git.repoHost and git.repoPort ARE REQUIRED for this to work
    ##
    sshKeyscan: false

    ## the name of the private key file in your `git.secret`
    ##
    ## NOTE:
    ## - this is ONLY RELEVANT for PRIVATE SSH git repos
    ##
    privateKeyName: id_rsa

    ## the host name of the git repo
    ##
    ## NOTE:
    ## - this is ONLY REQUIRED for SSH git repos
    ##
    ## EXAMPLE:
    ##   repoHost: "github.com"
    ##
    repoHost: "gitlab.com"

    ## the port of the git repo
    ##
    ## NOTE:
    ## - this is ONLY REQUIRED for SSH git repos
    ##
    repoPort: 22

    ## configs for the git-sync container
    ##
    gitSync:
      ## enable the git-sync sidecar container
      ##
      enabled: true

      ## resource requests/limits for the git-sync container
      ##
      ## NOTE:
      ## - when `workers.autoscaling` is true, YOU MUST SPECIFY a resource request
      ##
      ## EXAMPLE:
      ##   resources:
      ##     requests:
      ##       cpu: "50m"
      ##       memory: "64Mi"
      ##
      resources:
        requests:
          cpu: "50m"
          memory: "64Mi"

      ## the docker image for the git-sync container
      image:
        repository: alpine/git
        tag: latest
        ## values: Always or IfNotPresent
        pullPolicy: Always

      ## the git sync interval in seconds
      ##
      refreshTime: 60

  ## configs for the git-clone container
  ##
  ## NOTE:
  ## - use this container if you want to only clone the external git repo
  ##   at Pod start-time, and not keep it synchronised afterwards
  ##
  initContainer:
    ## enable the git-clone sidecar container
    ##
    ## NOTE:
    ## - this is NOT required for the git-sync sidecar to work
    ## - this is mostly used for when `dags.installRequirements` is true to ensure that
    ##   requirements.txt is available at Pod start
    ##
    enabled: false

    ## resource requests/limits for the git-clone container
    ##
    ## EXAMPLE:
    ##   resources:
    ##     requests:
    ##       cpu: "50m"
    ##       memory: "64Mi"
    ##
    resources: {}

    ## the docker image for the git-clone container
    image:
      repository: alpine/git
      tag: latest
      ## values: Always or IfNotPresent
      pullPolicy: Always

    ## path to mount dags-data volume to
    ##
    ## WARNING:
    ## - this path is also used by the git-sync container
    ##
    mountPath: "/dags"

    ## sub-path under `dags.initContainer.mountPath` to sync dags to
    ##
    ## WARNING:
    ## - this path is also used by the git-sync container
    ## - this MUST INCLUDE the leading /
    ##
    ## EXAMPLE:
    ##   syncSubPath: "/subdirWithDags"
    ##
    syncSubPath: ""

###################################
# Kubernetes - Ingress Configs
###################################
ingress:
  ## if we should deploy Ingress resources
  ##
  ## NOTE:
  ## - if you want to change url prefix for web ui or flower (even if you do not use this Ingress),
  ##   you can change `web.baseUrl` and `flower.urlPrefix`
  ##
  enabled: true

  ## configs for the Ingress of the web Service
  ##
  web:
    ## annotations for the web Ingress
    ##
    annotations:
        kubernetes.io/ingress.class: alb
        alb.ingress.kubernetes.io/scheme: internet-facing

    ## the path for the web Ingress
    ##
    ## WARNING:
    ## - do NOT include the trailing slash (for root, set an empty string)
    ##
    ## NOTE:
    ## - should be compatible with `web.baseUrl` config
    ##
    ## EXAMPLE: (if set to "/airflow")
    ## - UI:     http://example.com/airflow/admin
    ## - API:    http://example.com/airflow/api
    ## - HEALTH: http://example.com/airflow/health
    ##
    path: ""

    ## the hostname for the web Ingress
    ##
    host: "airflow.imla.az"

    ## the livenessPath for the web Ingress
    ##
    ## NOTE:
    ## - if set to "", defaults to: `{ingress.web.path}/health`
    ##
    livenessPath: ""

    ## configs for web Ingress TLS
    ##
    tls:
      ## enable TLS termination for the web Ingress
      ##
      enabled: false

      ## the name of a pre-created Secret containing a TLS private key and certificate
      ##
      ## NOTE:
      ## - this MUST be specified if `ingress.web.tls.enabled` is true
      ##
      secretName: ""

    ## http paths to add to the web Ingress before the default path
    ##
    ## EXAMPLE:
    ##   precedingPaths:
    ##     - path: "/*"
    ##       serviceName: "ssl-redirect"
    ##       servicePort: "use-annotation"
    ##
    precedingPaths: []

    ## http paths to add to the web Ingress after the default path
    ##
    ## EXAMPLE:
    ##   succeedingPaths:
    ##     - path: "/extra-service"
    ##       serviceName: "extra-service"
    ##       servicePort: "use-annotation"
    ##
    succeedingPaths: []

  ## configs for the Ingress of the flower Service
  ##
  flower:
    ## annotations for the flower Ingress
    ##
    annotations: {}

    ## the path for the flower Ingress
    ##
    ## WARNING:
    ## - do NOT include the trailing slash (for root, set an empty string)
    ##
    ## NOTE:
    ## - should match `flower.urlPrefix` config
    ##
    ## EXAMPLE: (if set to "/airflow/flower")
    ## - UI: http://example.com/airflow/flower
    ##
    path: ""

    ## the hostname for the flower Ingress
    ##
    host: ""

    ## the livenessPath for the flower Ingress
    ##
    ## WARNING:
    ## - keep the trailing slash
    ##
    ## NOTE:
    ## - if set to "", defaults to: `{ingress.flower.path}/`
    ##
    livenessPath: ""

    ## configs for flower Ingress TLS
    ##
    tls:
      ## enable TLS termination for the flower Ingress
      ##
      enabled: false

      ## the name of a pre-created Secret containing a TLS private key and certificate
      ##
      ## NOTE:
      ## - this MUST be specified if `ingress.flower.tls.enabled` is true
      ##
      secretName: ""

###################################
# Kubernetes - RBAC
###################################
rbac:
  ## if Kubernetes RBAC resources are created
  ##
  ## NOTE:
  ## - these allow the service account to create/delete Pods in the airflow namespace,
  ##   which is required for the KubernetesPodOperator() to function
  ##
  create: true

###################################
# Kubernetes - Service Account
###################################
serviceAccount:
  ## if a Kubernetes ServiceAccount is created
  ##
  ## NOTE:
  ## - if false, you must create the service account outside of this helm chart,
  ##   with the name: `serviceAccount.name`
  ##
  create: true

  ## the name of the ServiceAccount
  ##
  ## NOTE:
  ## - by default the name is generated using the `airflow.serviceAccountName` template in `_helpers.tpl`
  ##
  name: ""

  ## annotations for the ServiceAccount
  ##
  ## EXAMPLE: (to use WorkloadIdentity in Google Cloud)
  ##   annotations:
  ##     iam.gke.io/gcp-service-account<EMAIL_ADDRESS>  ##
  annotations: {}

###################################
# Kubernetes - Extra Manifests
###################################
## additional Kubernetes manifests to include with this chart
##
## EXAMPLE:
##   extraManifests:
##    - apiVersion: cloud.google.com/v1beta1
##      kind: BackendConfig
##      metadata:
##        name: "{{ .Release.Name }}-test"
##      spec:
##        securityPolicy:
##          name: "gcp-cloud-armor-policy-test"
##
extraManifests: []

###################################
# Database - PostgreSQL Chart
# - https://github.com/helm/charts/tree/master/stable/postgresql
###################################
postgresql:
  ## if the `stable/postgresql` chart is used
  ##
  ## WARNING:
  ## - this is NOT SUITABLE for production deployments of Airflow,
  ##   you should seriously consider using an external database service,
  ##   which can be configured with values under: `externalDatabase`
  ##
  ## NOTE:
  ## - set to `false` if using an external database
  ##
  enabled: true

  ## the postgres database to use
  ##
  postgresqlDatabase: airflow

  ## the postgres user to create
  ##
  postgresqlUsername: postgres

  ## the postgres user's password
  ##
  ## WARNING:
  ## - you should NOT use this, instead specify `postgresql.existingSecret`
  ##
  postgresqlPassword: airflow

  ## the name of a pre-created secret containing the postgres password
  ##
  existingSecret: "airflow-secret"

  ## the key within `postgresql.existingSecret` containing the password string
  ##
  existingSecretKey: "postgresql-password"

  ## configs for the PVC of postgresql
  ##
  persistence:
    ## if postgres will use Persistent Volume Claims to store data
    ##
    ## WARNING:
    ## - if false, data will be LOST as postgres Pods restart
    ##
    enabled: true

    ## the name of the StorageClass used by the PVC
    ##
    storageClass: ""

    ## the access modes of the PVC
    ##
    accessModes:
      - ReadWriteOnce

    ## the size of PVC to request
    ##
    size: 16Gi

###################################
# Database - External Database
# - these configs are only used when `postgresql.enabled` is false
###################################
externalDatabase:
  ## the type of external database: {mysql,postgres}
  ##
  type: postgres

  ## the host of the external database
  ##
  host: localhost

  ## the port of the external database
  ##
  port: 5432

  ## the database/scheme to use within the the external database
  ##
  database: airflow

  ## the user of the external database
  ##
  user: airflow

  ## the name of a pre-created secret containing the external database password
  ##
  passwordSecret: ""

  ## the key within `externalDatabase.passwordSecret` containing the password string
  ##
  passwordSecretKey: "postgresql-password"

###################################
# Database - Redis Chart
# - https://github.com/helm/charts/tree/master/stable/redis
###################################
redis:
  ## if the `stable/redis` chart is used
  ##
  ## NOTE:
  ## - set to `false` if using an external redis database
  ## - set to `false` if `airflow.executor` is `KubernetesExecutor`
  ##
  enabled: false

  ## the redis password
  ##
  ## WARNING:
  ## - you should NOT use this, instead specify `redis.existingSecret`
  ##
  password: airflow

  ## the name of a pre-created secret containing the redis password
  ##
  existingSecret: "airflow-secret"

  ## the key within `redis.existingSecret` containing the password string
  ##
  existingSecretKey: "redis-password"

  ## configs for redis cluster mode
  ##
  cluster:
    ## if redis runs in cluster mode
    ##
    enabled: false

    ## the number of redis slaves
    ##
    slaveCount: 1

  ## configs for the redis master
  ##
  master:
    ## resource requests/limits for the master Pod
    ##
    ## EXAMPLE:
    ##   resources:
    ##     requests:
    ##       cpu: "100m"
    ##       memory: "256Mi"
    ##
    resources: {}

    ## configs for the PVC of the redis master
    ##
    persistence:
      ## use a PVC to persist data
      ##
      enabled: false

      ## the name of the StorageClass used by the PVC
      ##
      storageClass: ""

      ## the access mode of the PVC
      ##
      accessModes:
      - ReadWriteOnce

      ## the size of PVC to request
      ##
      size: 8Gi

  ## configs for the redis slaves
  ##
  slave:
    ## resource requests/limits for the slave Pods
    ##
    ## EXAMPLE:
    ##   resources:
    ##     requests:
    ##       cpu: "100m"
    ##       memory: "256Mi"
    ##
    resources: {}

    ## configs for the PVC of the redis slaves
    ##
    persistence:
      ## use a PVC to persist data
      ##
      enabled: false

      ## the name of the StorageClass used by the PVC
      ##
      storageClass: ""

      ## the access mode of the PVC
      ##
      accessModes:
        - ReadWriteOnce

      ## the size of PVC to request
      ##
      size: 8Gi

###################################
# Database - External Database
# - these configs are only used when `redis.enabled` is false
###################################
externalRedis:
  ## the host of the external redis
  ##
  host: localhost

  ## the port of the external redis
  ##
  port: 6379

  ## the database number to use within the the external redis
  ##
  databaseNumber: 1

  ## the name of a pre-created secret containing the external redis password
  ##
  passwordSecret: ""

  ## the key within `externalRedis.passwordSecret` containing the password string
  ##
  passwordSecretKey: "redis-password"

###################################
# Prometheus - ServiceMonitor
###################################
serviceMonitor:
  ## if the ServiceMonitor resources should be deployed
  ##
  ## WARNING:
  ## - you will need an exporter in your airflow docker container, for example:
  ##   https://github.com/epoch8/airflow-exporter
  ##
  ## NOTE:
  ## - you can install pip packages with `airflow.extraPipPackages`
  ## - ServiceMonitor is a resource from: https://github.com/coreos/prometheus-operator
  ##
  enabled: false

  ## labels for ServiceMonitor, so that Prometheus can select it
  ##
  selector:
    prometheus: kube-prometheus

  ## the ServiceMonitor web endpoint path
  ##
  path: /admin/metrics

  ## the ServiceMonitor web endpoint interval
  ##
  interval: "30s"

###################################
# Prometheus - PrometheusRule
###################################
prometheusRule:
  ## if the PrometheusRule resources should be deployed
  ##
  ## WARNING:
  ## - you will need an exporter in your airflow docker container, for example:
  ##   https://github.com/epoch8/airflow-exporter
  ##
  ## NOTE:
  ## - you can install pip packages with `airflow.extraPipPackages`
  ## - PrometheusRule a resource from: https://github.com/coreos/prometheus-operator
  ##
  enabled: false

  ## labels for PrometheusRule, so that Prometheus can select it
  ##
  additionalLabels: {}

  ## alerting rules for Prometheus
  ##
  ## NOTE:
  ## - documentation: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
  ##
  groups: []

resolved issue by adding config info to aiflow.config
    AIRFLOW__KUBERNETES__GIT_DAGS_FOLDER_MOUNT_POINT: "/dags"
    AIRFLOW__KUBERNETES__GIT_BRANCH: "master"
    AIRFLOW__KUBERNETES__GIT_REPO: "git@gitlab.com:repo_patht"


Minor improvements to examples-debian.md

Include docker push in the example and name distribution correctly.
Description
Unify documentation
Why is this needed
For clarity
Fixes: #
How Has This Been Tested?
In Preview
How are existing users impacted? What migration steps/scripts do we need?
Checklist:
I have:

[ ] updated the documentation and/or roadmap (if required)
[ ] added unit or e2e tests
[ ] provided instructions on how to upgrade

Hey @teadur this looks great but we need you to signoff on the commit following DCO https://github.com/tinkerbell/tinkerbell-docs/blob/main/DCO.md

Manually set DCO because the content changes were minor and original.

Manually set DCO because the content changes were minor and original.

@displague thank you, sorry I did not manage to sign it myself in timely fashion.


release substrate-client-keystore to crates.io

this crate is missing so far. Even if it's a fork of sc-keystore we need this because of private fn in upstream

@brenzi We renamed the crate to ac-keystore and it is now available on crates.io: https://crates.io/crates/ac-keystore
Still working on a readme and some meta-infos but I don't expect changes of the code. Please let us know if this works for you

implemented, including documentation of new crate.


I'm about to delete all my data, not "log out"

Usually logging out of an app implies later on you can log back in and all your data is there. This is clearly not the case. When I click "logout" I'm given a kind of bland warning that I need to have backed up my data. There should be a stern warning that proceeding will result in a loss of all funds and to get them back, a person must restore their account from a seed that has to have been backed up.
Also, for somebody with a clumsy thumb, a little bit of miss press and all my funds are gone when I instead meant to click "Cancel".  The UX should really be a firm warning, then a checkbox that somebody has to click, then a confirm. It should not be easy to delete all your money. And for many new users, "logging out" doesn't mean full wipe of one's private keys. Technically this is a "delete all accounts and private keys" button.

@Peersyst button name was changed, but what about translations? Would be bad if we don't update it.

@Peersyst button name was changed, but what about translations? Would be bad if we don't update it.

@AdriaCarrera @jabo38 @cryptoBeliever with Eng translation it fixed, but there are still a few issues with Rus translation I created another ticket for this https://github.com/nemgrouplimited/symbol-mobile-wallet/issues/117

Yes. I mentioned it here https://github.com/nemgrouplimited/symbol-mobile-wallet/issues/74#issuecomment-770301139
Translation should be updated for all languages.

Fixed.


Add live templates for test, pauseTest, and andThen

Added a few live templates that I usually set up locally:

'test' inserts a test case

'pt' inserts a pauseTest

'then' inserts an andThen

the test template unfortunately only works for qunit,  not for mocha, but I don't think there's much we can do about it. thanks  😃


dask/bytes/tests/test_http.py tries to run the python2 interpreter on Debian

Hello
I was updating the Dask packaging for Debian to Dask 0.17.2 and had test failures during the build in dask/bytes/tests/test_httpy.
E           requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8999): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8be024b160>: Failed to establish a new connection: [Errno 111] Connection refused',))

/usr/lib/python3/dist-packages/requests/adapters.py:508: ConnectionError

During handling of the above exception, another exception occurred:

    @pytest.fixture(scope='module')
    def dir_server():
        with tmpdir() as d:
            for fn in files:
                with open(os.path.join(d, fn), 'wb') as f:
                    f.write(b'a' * 10000)

            if PY2:
                cmd = ['python', '-m', 'SimpleHTTPServer', '8999']
            else:
                cmd = ['python', '-m', 'http.server', '8999']
            p = subprocess.Popen(cmd, cwd=d)
            timeout = 10
            while True:
                try:
                    requests.get('http://localhost:8999')
                    break
                except requests.exceptions.ConnectionError:
                    time.sleep(0.1)
                    timeout -= 0.1
                    if timeout < 0:
>                       raise RuntimeError('Server did not appear')
E                       RuntimeError: Server did not appear

dask/bytes/tests/test_http.py:36: RuntimeError

I'm only building a Python 3 version, and I realized this piece of code in dir_server test_http.py was going to run the wrong version of Python.
      if PY2:
            cmd = ['python', '-m', 'SimpleHTTPServer', '8999']
        else:
            cmd = ['python', '-m', 'http.server', '8999']

On Debian (and I believe other Linux systems) the system Python 3 interpreter is installed as
/usr/bin/python3, and /usr/bin/python is the Python 2 interpreter.
So because the test is running under Python 3 it uses the Python 3 arguments, but launches the default Python 2 interpreter.
I think it works for you because you're doing most of your testing in conda or a virtualenv where the first python on the path is the expected python version.
My idea to solve the problem robustly is to replace 'python' with sys.executable, which should guarantee that the test HTTP server is running under the same python that the tests are using regardless of the test environment.
I have a pull request, but I thought I should file the issue before making the pull request.

I agree that using sys.executable is preferable and a PR would be welcome.
At first glance the exception doesn't mean much to me.  @martindurant may have more experience here though.

As always @detrout thank you for keeping the project up-to-date on Debian.  I appreciate it.

@detrout I wonder if replacing localhost with <IP_ADDRESS> would work for you?  Sometimes different machines treat localhost differently.

It looks like I was tired and my test environment wasn't clean enough and the some of the unpatched code was still around. I cleaned, and rebuilt and the tests all pass now.

Excellent.  Thank you for tracking this down and fixing it!
On Mon, Apr 30, 2018 at 1:12 AM, Diane Trout<EMAIL_ADDRESS>wrote:

It looks like I was tired and my test environment wasn't clean enough and
the some of the unpatched code was still around. I cleaned, and rebuilt and
the tests all pass now.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/3449#issuecomment-385314627, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszFaYTDs2OUfyHouuhlqXj0vEyuQiks5ttp1LgaJpZM4TrrdO
.

I think this is resolved.


Distinguish repr away from str and use it for nested types

Bazel's Starlark (very similarly to Python) has a separation between str and repr and consistently uses repr for nested objects.
For example, this always holds for lists, no matter what foo is:
repr([foo]) == '[' + repr(foo) + ']'

However in starlark-go str and repr are backed by the exact same interface:

https://github.com/google/starlark-go/blob/e6e8e7ce1b7a8dff097a7e16bdacc53590e942ae/starlark/library.go#L963
https://github.com/google/starlark-go/blob/e6e8e7ce1b7a8dff097a7e16bdacc53590e942ae/starlark/library.go#L1096

With the only 2 exceptions to this being hardcoded - only strings and bytestrings use a different code path inside str that doesn't simply use value.String().
So, except for strings, it is basically repr([foo]) == '[' + str(foo) + ']'
This can lead to some limitations and confusion.

Consider a Label object like in Bazel, per issue #535.
For Bazel compatibility, the following would need to hold:

print(Label("//:hi")) prints //:hi
print([Label("//:hi")]) prints [Label("//:hi")]

With starlark-go, I am pretty sure there is only one shared implementation allowed for str and repr so I would have to choose one of the below options if I were to try to implement such a Label, both very suboptimal:

print(Label("//:hi")) prints Label("//:hi")
print([Label("//:hi")]) prints ["Label(\"//:hi\")"]

print(Label("//:hi")) prints //:hi
print([Label("//:hi")]) prints [//:hi]

Actually we can simplify this even further and don't need to talk about "labels". It is not even possible to implement an object like the native str. You are forced to choose between one of these suboptimal options:

print(MyStr("hi")) prints "hi"  - bad
print([MyStr("hi")]) prints ["hi"] - good

print(MyStr("hi")) prints hi - good
print([MyStr("hi")]) prints [hi] - bad

I think at the very least, the repr-like behavior would need to be chosen for the list case, rather than the str-like behavior, even if the two aren't allowed to have a separate interface that backs them.

Let me reiterate my main point very briefly:

Bazel and Python:
repr([foo]) == '[' + repr(foo) + ']'

starlark-go (and I consider this basically a bug):
repr([foo]) == '[' + str(foo) + ']'

Let me reiterate my main point very briefly:
Bazel and Python:
repr([foo]) == '[' + repr(foo) + ']'

Thanks, I didn't realize that. Looking at the Starlark spec, the precise behavior of str and repr for each type does seem to be underspecified. That said, I'm not sure we can reasonably change the behavior of repr for built-in types at this point; we could ask our friends on the Bazel team (@brandjon @tetromino) to evaluate how much damage this change would cause in Google's large corpus.
For user-defined types, we could define a Reprable interface, analogous to fmt.GoStringer method, which would allows a type to define a variant string representation for Printf("%#v", x). (Perhaps it would even make sense to identify these two, so that the host Go application could choose among str or repr semantics in a printf expression.)
But before we add more API, I would like to have a more coherent understanding of the theory of repr vs str and any invariants that we should be striving to establish or maintain.

Thanks for consideration.
I think this is possible to handle without necessarily changing anything, only clarifying the spec and adding an override point in the API.
I was also wrong to directly call this a bug because the main invariant that I named does hold in starlark-go for all built-in types. It's just not specified whether String() is supposed to mean repr or str, instead it backs both.

The current state is that String() backs the implementation of repr and backs the implementation of str except for two string types.
This actually suffices to fully correctly cover all of the current built-in types in starlark-go because in fact only the string types need this different treatment.
I think this is the summary of the philosophy of Python:

print(foo) applies str() on the object first.

In starlark-go this is not part of the spec but for all built-in types whatever the implementation of print() does to get a string matches whatever the implementation of str() does. For custom types this falls back to .String().

Implementers of repr() should apply repr() on all nested objects. I.e. repr([foo]) == '[' + repr(foo) + ']'.

In starlark-go this is not part of the spec but again this happens to perfectly hold in all cases with builtin types because writeValue has specific handling for strings. For other types this falls back to .String().

For most objects, str() is just the same as repr(). I.e. str([foo]) == repr([foo]) == '[' + repr(foo) + ']'.
But some objects do want to have distinct behaviors, when there's a useful distinction between "human-readable" str and "machine-readable" repr.

The first step might be to formalize the above (because it does fully hold and the moment)
and formalize the situation with .String() in one of two ways:
a. .String() backs the implementation of str for an object, and repr just does the same and is impossible to override.
b. .String() backs the implementation of repr for an object and str just does the same and is impossible to override.
       (I actually like this one better because it currently fully holds - repr does fully correspond to .String(), it's only str that has special cases.)
And the next step would be to add the ability to override the latter one through a new interface.

Also important to mention: '%s' and '%r' as well as '{!s}' and '{!r}' need to be backed directly by str and repr respectively. Which is correctly implemented and documented in the spec, just similarly not extensible by custom types.

Also important to mention: '%s' and '%r' as well as '{!s}' and '{!r}' need to be backed directly by str and repr respectively. Which is correctly implemented and documented in the spec, just similarly not extensible by custom types.

Right, but those delegations are straightforward and unambiguous, and orthogonal to the question of the desired behavior of str and repr.

I have implemented my suggestion - it's actually really straightforward and doesn't modify any existing behavior or API (no effect on unittests), just replaces the checks for "is it the str type" with "does it implement the new interface" in the places that should be backed by str() behavior per the spec.
https://github.com/oprypin/starlark-go/commit/544984fc13612299ab6c373a6f67a8cbb20dcf4e
Of course no obligation to do anything with this code, it just also illustrates my proposal well. But do let me know if I should open a pull request. Any suggestions for how to name the interface are very welcome; consider the current naming mostly a placeholder.

Mm I should note - the commit does affect the behavior of the bytestring type in some cases. I was debating back and forth whether it should be string-like in this context because this distinction is applied inconsistently at the moment. This may need to be formalized first as well.

So pushed an alternate commit that doesn't touch bytestrings and should actually have 0 effect on existing behavior.
https://github.com/oprypin/starlark-go/commit/7b230293571a1d17f28fae4cea6a7f30109f638e


Rename EditRequirement to EditSingleRequirement

Depends on #262.
Summary
I'm about to introduce a RequirementEditor that supports all the requirement edits, so I renamed this to disambiguate.
Test Plan
NewCourse modal still shows the requirement editor correctly.

LGTM! So to confirm: Will this Requirement Editor be handling the case where a user wants to edit an existing course, specifically which requirements the course is applied to? For example: When I added Course A, I applied it to Req 1. But now, I want to edit Course A so that it applies to Req 2 not Req 1.

I plan to make it more general purposed. I will make it take in a bunch of requirements and report what user selected. It doesn't contain any requirement logic, so it should be able to apply in all cases.


fix: Increase textarea click area

Description
The bottom part of the textarea does not focus it when clicked.
Also when using the resizer, the newly create space does not focus the textarea.
This fix makes the focus behaviour identical to a normal textarea.
Speaking of identical, also fixed the error & focus state, old:

[x] I have read and understand the CONTRIBUTING.md document in this repository

Type of change

[x] 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 not work as expected)
[ ] This change requires a documentation update

Checklist:

[ ] I have added tests that prove my fix is effective or that my feature works
[x] Existing test suite passes locally with my changes
[ ] I have made corresponding changes to the documentation

Hey @thgh, maybe you had some styles in your browser and did not copy them over - I could not get the bg color to be full height for me. I made a couple css tweaks to make it work though and patched em to this pr 😀
If you want, you can pull it down and test it out to verify. I will release this fix soon. Thanks again!

Hi, the error state is still broken (1.16) or am I doing something wrong?


Fix abbreviation formatting

This will fix #18 for some cases, but not all identified.
Specifically addresses in Indiana and Oregon, and adjacent areas like Chicago.
Something different is happening in Arizona, and I haven't had a chance to look into it closely.
Issue is that in the custom pg/psql function that does the sampling, an optimization is to query against the state partition of the addresses table directly, like oa_[xx], instead of incurring the overhead of querying against oa and letting postgres find the correct partition, which is slower. So, when we see we're querying for addresses in places like oregon or indiana we try to query the partitions oa_or or oa_in. Unfortunately, the pg/psql statement used to generate the partition name was formatting with %I, which quotes SQL keywords like "in" and "or" --- so instead of querying against oa_or we generate the query oa_"or" which is invalid.
Fixed by generating the table name separately with the unsafe format("oa_%s", abbr), and then safely formatting that entire result into the sampling query with %I.
Chicago was affected by this as well because it borders Indiana and so we end up querying addresses in Indiana as part of the rough filter.

Ah very interesting, that makes sense.


Update pghero to 1.0.0.

Thanks for the awesome work on this :+1:

Oh sweet! Thank you for the awesome project :D


Add ls to RPC server

resolves #3311 and #3356
Description
Adds support for the list method in the RPC server
Adds new keys for unique_id and original_file_path to list task when invoked with json output
Checklist

[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] I have updated the CHANGELOG.md and added information about my change to the "dbt next" section.

This is working well for me in local testing!
A few comments:

As I noted above, could we switch the type of select to accept a string as well as a list? It should work exactly the same as models and exclude
For parity with the existing list task, I expected to see an error if models is set alongside select or resource_types, since these are mutually exclusive arguments. This shouldn't block merging the PR if it would be tricky to implement.
The p0 resolution to #3356 is all we need for now. Could we open a new issue to capture the p1 requirement,  parametrizing the set of returned keys?

This is working well for me in local testing!
A few comments:

As I noted above, could we switch the type of select to accept a string as well as a list? It should work exactly the same as models and exclude
Done!
For parity with the existing list task, I expected to see an error if models is set alongside select or resource_types, since these are mutually exclusive arguments. This shouldn't block merging the PR if it would be tricky to implement.
Done!
The p0 resolution to #3356 is all we need for now. Could we open a new issue to capture the p1 requirement,  parametrizing the set of returned keys?
Done!

There's one last failing test on Windows, I think because of file paths
Fixed!
I confirmed that passing both models and select raises an error (good!), passing both resource_types params still doesn't raise the expected error ("models" and "resource_type" are mutually exclusive arguments). This isn't the most important thing: we're thinking of retiring the --models flag/param soon, anyway (#3210).
Fixed!

Once the failing test is sorted, I'm quite happy with where this is at. Nice work!


Tab completion under /mnt/c stymied by hiberfil.sys

Steps to reproduce
Running Ubuntu 16.04.4 LTS (via WSL):
$error.Clear()
Import-Module /mnt/c/[tab][tab][tab][tab][tab][tab][tab]
#then clear the command line and run
$error

Expected behavior
No problems, you just get tab completion for stuff under your C drive.

Actual behavior
You don't get any tab completion. For as many times as you hit [tab], you have an error like this in $error:

Exception calling "CompleteInput" with "3" argument(s): "Access to the path '/mnt/c/hiberfil.sys' is denied."
At line:38 char:16
+ ...      return [System.Management.Automation.CommandCompletion]::Complet ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : UnauthorizedAccessException

Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.1.0-rc.1
PSEdition                      Core
GitCommitId                    6.1.0-rc.1
OS                             Linux 4.4.0-17738-Microsoft #1000-Microsoft Fri Aug 10 17:06:00 PST 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Does dir /mnt/c/ work well and show the file and its properties? For Pagefile.sys?

At line:1 char:1
+ dir /mnt/c/
+ ~~~~~~~~~~~
+ CategoryInfo          : PermissionDenied: (/mnt/c/:String) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand

PS /home/dt29>

The ability to see the attributes for hiberfil.sys should be gated on the traversal and read attributes on its parent folder.
That it is not suggests that powershell is opening files as it enumerates them.
Why is powershell doing that? Is that the actual bug here?

The files (pagefile.sys, hiberfil.sys, swapfile.sys) is locked by system and CoreFX can not read attributes of the files. We already get a CoreFX fix for Windows but it turned out that Unix code is also subject to this problem. It is my understanding the problem.


[turborepo] npx create-turbo throws error -  Unable to download template from Github (Mac M1)

What version of Turborepo are you using?
1.10.14 (but was facing the same issue previously with 1.10.13)
What package manager are you using / does the bug impact?
npm
What operating system are you using?
Mac
Describe the Bug
When running npx create-turbo I get the following error...

Expected Behavior
That npx create-turbo would generate a turborepo in the ./my-turborepo folder
To Reproduce
Node version: 18.17.1
NPM version: 9.6.7
Mac M1

Ran npm install -g turbo
In a new folder ran npx create-turbo, and confirmed proceed to install package<EMAIL_ADDRESS>Set the folder name
Choose the npm workspaces option
'Downloading files' starts
After several minutes the following error appears ...`>>> Unable to download template from Github

The server aborted pending request`

Reproduction Repo
No response

Heya @nujumo! This issue isn't a Turborepo issue. Turborepo is failing to download from GitHub. You can see that GitHub was experiencing issues when you filed this issue: https://www.githubstatus.com/incidents/zjchv3zvfg50

@nathanhammond, I have been having the same/similar issue for a couple of weeks now (since I got a new work machine), i.e. with version 1.10.13 and with 1.10.14.
However, npx create-turbo does appear to be working as expected this morning


Managing secrets with the same name but different values across several apps

Hello,
First of all, thanks for your great work, now is an awesome tool to use.
Regarding my issue, I might be doing something wrong or not seeing the obvious but I don't find a good solution:
I have two apps, both using a variable @client_id with a specific value for each app. However, as I understand so far, when one runs now secret add foo bar the variable foo will be the same across all my apps deployed on my zeit account.
How would it be possible to set a different value of client_id depending on which app is using it ? Can it be namespaced in some way ? Is there something on the Zeit dashboard that I am missing ?
Thank you.

I would prefix the secrets with something, e.g. app1_secret and app2_secret and configure those in the respective now.json files.

Hmm...yes, this is my solution as well for now but I'm wondering if a "cleaner" solution exists :thinking:
And if not, would it be an interesting feature to add ?

This is really needed. I would even suggest different secrets per target.

Another scenario: deploying multiple versions of the same app for testing stages.
Our Development environment has different env vars than Production & Staging environments. Need a way of easily swapping these, other than simply prefixing everything / adding additional logic to check for which deploy type in our builds.

I'm realizing now I could probably use now.prod.json, set up the secrets there, and deploy with now --local-config=now.prod.json 🤔

I've done something similar - I have a script which reads an .env file and appends the values to now -e. Would be great to have an --env-file flag that did this within the cli itself.

Thank you for creating this issue!
Please note that – in order for us to be able to handle each feature request with care – we have to consume all of them through a unified pipeline that makes it easier for us to prioritize, track and progress on the features our user base is interested in.
In turn, the Issues tab on this repository is best only be used for reporting bugs, which we can immediately act on.
For well-explained feature requests (like the one you just posted), please contact us at<EMAIL_ADDRESS>so that we can consider adding it to our roadmap.


Worker independent app

What this PR does:

Add instruction to the README file, on how to deploy
Update .gitignore file

Notes
Ideally we should commit the manifest files to the repo, but these may contain sensitive information in the environment variables, so I'm excluding these default filenames from git.
I add instructions on how to create new ones.

 Setup a new instance to run background jobs in Cloud Foundry


Coverage not running Topology UI

Defect Description
Describe the defect
What did you expect to see happen?
The coverage tool should be able to check coverage in the Topology UI
What did you see instead?
The coverage is missing in that UI.
Do you have a suggested fix for the development team?
Describe how to Reproduce
Steps to reproduce the behavior:

cd tests/framework/PostProcessors/TopologicalPostProcessor
raven_framework test_topology_ui.xml interactiveCheck
and watch it fail
cd tests/framework/PostProcessors/DataMiningPostProcessor/Clustering
raven_framework hierarchical_ui.xml interactiveCheck
and watch it fail.

Screenshots and Input Files
Please attach the input file(s) that generate this error.  The simpler the input, the faster we can find the issue.
Platform (please complete the following information):

OS: Fedora 30
Version: f40a8edd60e4d5f3f47e83af4013e0efddf56ebf
Dependencies Installation: Conda

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[x] 1. Is it tagged with a type: defect or task?
[x] 2. Is it tagged with a priority: critical, normal or minor?
[x] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[x] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[x] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[x] 1. If the issue is a defect, is the defect fixed?
[x] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[x] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[x] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[x] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?

The defect is in the regtression test system (mostly for the coverage).
No user email is required.
Approved closure via #1086


Support nanoseconds (NTFS)

Is your feature request related to a problem? Please describe.
NTFS stores timestamps with an accuracy of 100 nanoseconds.
Describe the solution you'd like
Add an option to display 100 nanoseconds for NTFS medium.
Describe alternatives you've considered
N/A
Additional context
The advantage is that I don't always have to manually start cmd and external software.
Instead, I can display the nanoseconds for my files and folders directly in Files (GUI) in a user-friendly way and can also use other functions of Files (GUI) at the same time.

Thanks for this suggestion. Merging with #2207


Fix dex pod reload on config change

closes: #1039
Signed-off-by: knrt10<EMAIL_ADDRESS>Co-authored-by: Mateusz Gozdek<EMAIL_ADDRESS>

Please write an e2e test to verify this behaviour.
This might be complex, as our e2e test suite do not have access to cluster configuration to modify it... What is your idea to test this @surajssd ?

@invidian I had a talk with Suraj offline and I think this should be like this.

Wait for dex deployment
Get annotation checksum hash from pod template
Update config map
Get new annotation and compare with old.
If changed, this means it has restarted the pod

What do you think?

What do you think? I am little confused. Can we update it via client-go?

It can only be updated via Helm render, as it's Helm template which generates the checksum.

In that case we can have a render test locally, which verifies that the annotations change on each render.


Feat : Add a progress bar on the romantic escapes page.

Describe the feature
Progress bar is present in home page but not on the romantic escapes page.
I can add this similar to the home page.
Kindly assign this issue to me.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Assigned!
Make sure to attach before & after screenshots in your PR and include the issue number.
Also, please star the repo before working on it.
i am the project mentor you can reach out to me for any help!
Happy open-source contributing! 🎉

@huamanraj thanku for assigning.


Ensure autoconf Is Installed Via Brew

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@5b859c5). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #2   +/-   ##
=======================================
  Coverage        ?   85.32%
=======================================
  Files           ?       28
  Lines           ?     1642
  Branches        ?        0
=======================================
  Hits            ?     1401
  Misses          ?      241
  Partials        ?        0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5b859c5...60091f1. Read the comment docs.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@5b859c5). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #2   +/-   ##
=======================================
  Coverage        ?   85.32%
=======================================
  Files           ?       28
  Lines           ?     1642
  Branches        ?        0
=======================================
  Hits            ?     1401
  Misses          ?      241
  Partials        ?        0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5b859c5...60091f1. Read the comment docs.


[fix] integration health check script

Description
There was a small bug in our integration_health_check.py script, which passed in the params for computing llama-index-core package stats (if not cached) in reverse order. This PR fixes that plus introduces a few minor improvements:

adds weights dictionary for the computed metrics
fixes the weights to sum to 1 so that the overall health score is between 0 and 1 provided all of the metric values are in that same range (I was getting a score of 2.5 for openai, when I believe we wanted a score between 0 and 1)
minor improvements to the print to terminal

Command:
❯ python ./scripts/integration_health_check.py llama-index-integrations/llms/llama-index-llms-openai percent 0.1
llama-index-llms-openai at llama-index-integrations/llms/llama-index-llms-openai

Output:
Loading cached existing core package metrics from ./core_package_metrics.json
metrics dict:
 {
    "download_ratio": 0.6088461637706337,
    "download_stability_ratio": 0.8136717041504584,
    "download_growth_ratio": 0.8795218373764613,
    "commit_ratio": 0.1157556270096463,
    "commit_consistency_ratio": 0.19572065569444,
    "commit_frequency_ratio": 0.13657211437145056,
    "test_score": 1.0
}
health score:
 0.7551140282092181

Fixes # (issue)
Type of Change
Please delete options that are not relevant.

[ ] 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 not work as expected)
[ ] This change requires a documentation update
[x] Other: fix script for computing health score for integration

How Has This Been Tested?
Your pull-request will likely not be merged unless it is covered by some form of impactful unit testing.

[ ] I added new unit tests to cover this change
[ ] I believe this change is already covered by existing unit tests
[x] Other: I ran the script

Plan is to use a shell script to run this health check python script for all of our integrations next


docs: several links / content improvements around

Issue or need
Yesterday, browsing the get started guide, found broken links in the service / routing usage of the library
Whilst fixing those, also found a link to Angular.dev docs that can be improved and a content with an invalid example

Proposed changes
Fix them all :muscle:

Quick reminders

🤝 I will follow Code of Conduct
✅ No existing pull request already does almost same changes
👁 Contributing docs are something I've taken a look at
📝 Commit messages convention has been followed
💬 TSDoc comments have been added or updated indicating API visibility if API surface has changed.
🧪 Tests have been added if needed. For instance, if adding new features or fixing a bug. Or removed if removing features.
⚙ API Report has been updated if API surface is altered.

#813  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @davidlj95 and the rest of your teammates on  Graphite


feat: new esa features based on sc4s_ string

:tada: This PR is included in version 2.40.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Attempt to read the token from RESIN_TOKEN env var

The environment variable has precedence over a saved token.

Closing for now since the token gets invalidated after a certain time, therefore hardcoding a RESIN_TOKEN variable will stop working after a while (and we cannot updated the value of the environment variable outside the application process reliably). This needs discussion.


0.12.0 release

We have quite a few nice new features merged into master.
Is anything holding up making a 0.12 release shortly?
cc @pydata/xarray

#2759 looks ready and complements all the cftime stuff.
#2769 seems like a nice bugfix to merge.
Otherwise lgtm.

I think #2721 looks ready too, and @jwenfai and @tlogan2000 would probably appreciate it if we merged it in time for the 0.12 release (sorry for letting that sit for a couple weeks).

I'd love to get #2777 merged - it's a small patch, but really useful in a remote sensing niche.
My students are going to be graded on how well their figures are labelled, and I really don't want to have to teach them matplotlib 😅

Potentially completing #2616 would start the deprecation cycle for auto_combine etc? I would need at least a few days to do that though...

I'm going to cherry-pick https://github.com/pydata/xarray/commit/63da214d697345ebdd0ecc0967c72eafc70bcb0d and then try to get a release out.
We can start the deprecation cycle for auto-combine later.

I guess we should probably fix and/or remove the failing test in https://github.com/pydata/xarray/issues/2803, too.

(I have let some of my PRs stay almost-finished. I will endeavor to follow my own advice and complete soon. Thanks for everyone's patience)

Any objections to pushing back finalizing deprecations currently marked for 0.12? See https://github.com/pydata/xarray/pull/2809
I'm a little concerned that most of these changes (introduced in 0.11) haven't been around long enough to safely finalize the deprecations.

I finally tagged the 0.12 release... probably should have done this a while ago!

Thanks @shoyer. I merged the conda-forge build about an hour ago.


Merge branch 'fix-ssw-mirror' into 'main' - [merged]

Merges cherry-pick-ef81db50 -> 0.7
Change SSW mirror
See merge request LMSAL_HUB/aia_hub/aiapy!167
(cherry picked from commit ef81db50dc9faeae7f84201378e058fb93bcf2f0)
6b27bcc2 change SSW mirror
fbd2fa12 precommit
ac63ed0f replace hesperia link everywhere
9496dc8e fix docstring

mentioned in commit 8be63b3307c9402d4bcddb43bacf58cbf56a688c

approved this merge request

added 1 commit
1ef3a501 - [skip ci] changelog
Compare with previous version

added 1 commit
787c9de4 - codestyle
Compare with previous version


fix: styling for tables and account page

cleaning up to make it look presentable, responsive for mobile
idk wth is going on with addresssummary component... will copy it over here from Lichen in another PR so I have more control over it

while details are visible in mobile, bonding action is hidden since you don't have the extension from there anyway. assumption is that mobile experience is read-only.


feat: package stats fetching

Builds off of the changes in #372
Closes #369, #370

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

So, one thing I realized is that (as far as I can tell) download stats from the npm API may only be updated once a day -- hence, if a package is newly published, querying for its download stats is almost guaranteed to fail. (I noticed this since @aws-cdk/aws-lightsail was just published a couple hours ago, and couldn't get stats for it at https://api.npmjs.org/downloads/point/last-day/@aws-cdk/aws-lightsail).
Given this restriction, I'm considering dropping the logic that updates stats for a single package whenever a new package version is discovered, and instead just focus on running this Lambda as a daily job (which just rebuilds the entire stats.json each time). Overall this should simplify the design a bit since it'll be further decoupled from the rest of the back end, and running the full build only takes 2 minutes so scaling issues won't be a risk.

Love the simplification!


feat: use ghaccesstoken for GITHUB_TOKEN, fix goveralls

What this PR does / why we need it: This PR moves us to use ghaccesstoken for Github credentials in CI if GITHUB_TOKEN is not set.

JIRA ID: XX-XX

Notes for your reviewer:

:tada: This PR is included in version 1.35.0 :tada:
The release is available on:

GitHub release
CircleCI Orb

Your semantic-release bot :package::rocket:


BENCH: fixed disabled (broken) benchmarks in optimize_milp.py

Reference issue
towards #19389
What does this implement/fix?
To fix the timing out issue, I have uncommented the MILP solver call and added the max_iter and max_time parameters to limit the solver time:
max_iter limits the maximum iterations to 1000
max_time limits the max solve time to 60 seconds
This will prevent infinite solve times while still attempting to solve the MILP within reasonable time limits.
The assertion is kept to validate that the problem is solved successfully within the enforced time and iteration constraints

The failure in the benchmark means that the benchmarks are failing; earlier ASV versions would not report this and unequivocally succeeded. Once the benchmark is fixed (passes the assertion) everything should work.
For more of a discussion see #19052

Okk got it, will look forward to updated versions of ASV

The failure in the benchmark means that the benchmarks are failing; earlier ASV versions would not report this and unequivocally succeeded. Once the benchmark is fixed (passes the assertion) everything should work.
For more of a discussion see #19052

Okk got it, will look forward to updated versions of ASV

It is this pr, not ASV that is broken. Please run this locally and it should be clear what the issue is

to make it fast, do we need to use a smaller problem i.e update "milp_benchmarks.npz"?

to make it fast, do we need to use a smaller problem i.e update "milp_benchmarks.npz"?

Yes indeed. Or split the benchmark in two: a faster one that is run in CI and by default by python dev.py build, and this one only with export SCIPY_XSLOW=1. There's a similar SCIPY_XSLOW usage in benchmarks/optimize.py.
I'll note that individual benchmarks should be sub-second; if they take ~8 seconds locally (like what I see for this one), they take forever to run.


Button Group default selected item

Feature Description
It should be possible to specify an item to be selected by default for a ButtonGroup e.g.
<ButtonGroup name=my_input>
  <ButtonGroupItem value=1 value_label="Option One" default/>
  <ButtonGroupItem value=2 value_label="Option Two"/>
</ButtonGroup>

Goal of Feature

Often an initial value selected is helpful
This will allow queries to have a valid value for ${input.my_input} on page load, so that error handling in the query is not required

Current Solution / Workarounds
n/a
Alternatives
Perhaps the first value in the ButtonGroup should be selected by default.
For example in the case where the ButtonGroup is populated from a query this is likely to be more useful.

Closed by #1763


Note markup fix

Note markup was fixed.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

@natalya-k  Thanks. Why are you going through these and not the Core versions?

@Rick-Anderson I'm a compeletely newbie to ASP.NET and I'll try the Core tutorials too.


test: exit properly with swift_build_sdk_interface

sys.exit takes an integral value in the range of 0-127.  Python 3 is
much more stringent about this and will convert the value if it is out
of the range to 1.  On Windows, explicitly use ExitProcess to ensure
that we get the correct value on the exit code which matters to not.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @tachoknight @drexin

@swift-ci please test


Fix handling of trailing NAs

Closes #9.
Also cleans up the code a bit.

Pull Request Test Coverage Report for Build 25

34 of 39 (87.18%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.4%) to 94.0%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

R/utils.R
9
14
64.29%

Totals

Change from base Build 21:
-1.4%

Covered Lines:
94

Relevant Lines:
100

💛  - Coveralls


doesn't work for me on Windows 10 64 bit

aniworld
Traceback (most recent call last):
File "", line 198, in run_module_as_main
File "", line 88, in run_code
File "C:\Users\Andreas\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\Scripts\aniworld.exe_main.py", line 4, in
from aniworld.main import main
File "C:\Users\Andreas\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\aniworld_main.py", line 12, in
import curses
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_<IP_ADDRESS>_x64__qbz5n2kfra8p0\Lib\curses_init_.py", line 13, in
from _curses import *
ModuleNotFoundError: No module named '_curses'

Hi,
The windows-curses module isn't available for Python 3.13 yet.
You can install Python 3.12 and try to install aniworld again.
https://www.python.org/ftp/python/3.12.7/python-3.12.7-amd64.exe
https://pypi.org/project/windows-curses/#files

thanks, that helped me


sparklines viz function

Handling gaps in the data!

interpolate small gaps. if the gap is small, linear is likely appropriate. if the gap is larger, interpolation would be a bad idea. Threshold for "small gap" is set in viz_config, but not sure we'd actually change across vizzies
if the gage goes down for > threshold, we do an X and then don't show data.
if a gage goes down and then comes back up, we do an X at the end of the first period, a blank spot while it's down, and then pick up with a new polygon when it comes back. Like so:

To start, 5 hrs is going to be the threshold for small.


Add file to build and install with CMake

Building GPC with CMake is especially useful to refer to GPC in a consumer project which is built with CMake.

Sorry but this is meant to just be a place to host the code. I should have just marked this repository as archived :)


TextField doesn't support diacritic "combining low line" (U+0331) below characters with a tail (g,j,p,q,y).

Current Behavior 😯
When typing or pasting g̲, j̲, p̲, q̲, or y̲, that is g/j/p/q/y with diacritic "combining low line" (U+0331), into a TextField, the underline is not visible.
Expected Behavior 🤔
The combining low line should be visible even below characters with a tail: g̲ j̲ p̲ q̲ y̲
Steps to Reproduce 🕹
Copy g̲ j̲ p̲ q̲ y̲ and paste into a demo TextField at https://material-ui.com/components/text-fields/.
Context 🔦
I am a programmer on an application used with endangered, indigenous, and minority languages, including Wakashan languages, which use g̲.

The issue also exists with U+0328 Combining Ogonek and U+0323 Combining Dot Below diacritics, such as y̨ (used in Elfdalian) and g̣ (used in Ojibwe).

Note: This is a problem with native inputs too: https://codesandbox.io/s/sleepy-ganguly-4t51t

Seems like not resetting the line-height fixes this. Resetting was added here: https://github.com/mui-org/material-ui/pull/10346

Included ที่นั่น to show there's no regression of https://github.com/mui-org/material-ui/pull/20363
The reset was done when we didn't depend on theme.typography.body1 seems like it's safe to remove now.

What about we close as "won't fix", optimizing for the needs of the many? It can reproduce the same issue with a native input on Chrome.

@imnasnainaec Did you want to make the change? It would be a great first contribution :)


INT-B-20618 REBASE: Office users edit/create/delete mobile home shipments

Agility ticket
Original INT PR
#13650
Summary
Most of this ticket was actually rendered OBE by Aaron's work on B-20617 (his PR is here: #13642).
However while looking into this story I found that feature flag checks were missing on the frontend for the "Add a new shipment" dropdown that is at the top of the "Move Details" page when an office user clicks on a move. There was also a flag check missing from the Prime UI "Create Shipment" form.
So, this branch adds checks for both of these, if you edit the .envrc to disallow mobile home shipments, you should no longer see an option to choose mobile home shipment types from either of these menus.
How to test

Edit the .envrc and make the mobile home flag set to FALSE (running a find for "mobile" will take you to the flag).
Access a move as an SC.
Click the "Add a new shipment" dropdown and confirm that "Mobile Home" is not an option.
Repeat step 3 for TIO/TOO.
Access a move as a Prime sim user.
Click the "Create Shipment" button on the page, then on the next form confirm that "MOBILE_HOME" is not an option for the shipment type.

The two missing files that were changed in the original PR were just white space trims, maybe caused by a local fomatter. Didn't include so that they don't pollute the diff.

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

  Generated by :no_entry_sign: dangerJS against 5250cbfc7fc7f6541a6b21375639a10e1c92ce5b


feat: Support rules as strings

Closes #179.

Codecov Report

Merging #185 (be7e614) into develop (afe5581) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           develop     #185   +/-   ##
========================================
  Coverage    99.14%   99.14%
========================================
  Files            6        6
  Lines          233      233
  Branches        64       64
========================================
  Hits           231      231
  Misses           2        2

Impacted Files
Coverage Δ

src/types.ts
100.00% <ø> (ø)

src/index.ts
98.77% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update afe5581...be7e614. Read the comment docs.

Ok, included in v5.8.0.


Adding freebsd support

fixes #563
Warn Checklist

[ ] This changes the interface and requires a Major/Minor version change.
[ ] I have :tophat:'d these changes by using the commands I changed by hand.
[ ] I have added a dependancy to the project.

I released a build for freebsd, you can use the curl script now on the documents page.

tried install.  i get "Cannot find binary to match your architecture [freebsd i386]
Please open an issue at https://github.com/Shopify/themekit/issues"

@mronoffon Sorry about that I misspelled 386 🤦♂ you should be good to go now


Minor changes to make better use of Kotlin features

This PR

makes better use of Kotlin features
adds support for jitpack.io release such that developers can use in dependencies implementation 'com.github.blockstack:blockstack-android:-SNAPSHOT'

superseeded by #8


init image size too big

Describe the bug
The size of the image is too big.
To Reproduce
build the image and inspect its size
Platform (please complete the following information):

OS: [linux]
Version []
Container build tool [docker]

Expected behavior
should be much smaller
Screenshots
Optional, add screenshots to help explain your problem.
Additional context
Optional. Add any other context about the problem here.

Fixed with commit 7588a4b7f490f95ff0c97d678181a83876128f10


Find a way to reuse configuration for clang format and clangd/codechecker

Sync with @KiK-GB needed


[github] Switch from the old Jira format to github issues for the PR template

@AnthonyLatsis, please review.

@shahmishal, please merge if okay.


Cypress Action doesn't pick proper configuration from with: and cypress.config.ts

Hi, I recently wanted to integrate Cypress + Dashboard into my app.
I have some issues with sending Cypress runs to the Dashboard from a GitHub Action.
It looks like the action doesn't recognize any configuration both from main.yml and cypress.config.ts.
Please forgive my ignorance but to me, it looks more like an issue because after spending a few hours reading various documentations, examples projects and official Cypress videos, I still can't get it running properly.
Here is an extract of the GitHub Action log:
[checkout, npm install, etc.]

/usr/local/bin/npx cypress cache list

┌─────────┬───────────────────┐
│ version │ last used         │
├─────────┼───────────────────┤
│ 10.2.0  │ a few seconds ago │
└─────────┴───────────────────┘

build app command "npm run build -- --sourcemap false"

current working directory "/home/runner/work/react-frontend/react-frontend"

/usr/local/bin/npm run build -- --sourcemap false

><EMAIL_ADDRESS>build
> tsc && vite build "--sourcemap" "false"

vite v2.9.13 building for production...
[...]

start server "npm run preview command "npm run preview"
current working directory "/home/runner/work/react-frontend/react-frontend"

waiting on "http://localhost:3001" with timeout of 60 seconds

/usr/local/bin/npm run preview
><EMAIL_ADDRESS>preview
> vite preview --port 3001

  > Local: http://localhost:3001/
  > Network: use `--host` to expose

Using custom test command: npm run test:e2e:ci

run tests command "npm run test:e2e:ci"
current working directory "/home/runner/work/react-frontend/react-frontend"

/usr/local/bin/npm run test:e2e:ci
><EMAIL_ADDRESS>test:e2e:ci
> cypress run --e2e

[2221:0630/093805.5512[36](https://github.com/deniseaudio/react-frontend/runs/7128739556?check_suite_focus=true#step:3:37):ERROR:sandbox_linux.cc([37](https://github.com/deniseaudio/react-frontend/runs/7128739556?check_suite_focus=true#step:3:38)7)] InitializeSandbox() called with multiple threads in process gpu-process.
[2221:0630/09[38](https://github.com/deniseaudio/react-frontend/runs/7128739556?check_suite_focus=true#step:3:39)05.555801:ERROR:gpu_memory_buffer_support_x11.cc([44](https://github.com/deniseaudio/react-frontend/runs/7128739556?check_suite_focus=true#step:3:45))] dri3 extension not supported.

Missing baseUrl in compilerOptions. tsconfig-paths will be skipped

This project has been configured to record runs on our Dashboard.

# Why it hasn't found my project ID? It is defined in my Cypress config.
It currently has the projectId: ***

# It has found my recovery key defined as a GitHub Action env. var, but hasn't detected the `record: true` parameter in my Action configuration.
You also provided your Record Key, but you did not pass the --record flag.

This run will not be recorded.

If you meant to have this run recorded please additionally pass this flag:

$cypress run --record

If you don't want to record these runs, you can silence this warning:

$cypress run --record false

https://on.cypress.io/recording-project-runs

# After that, Cypress runs as it should, but doesn't send my report.

Here is the entirety of the my Cypress configuration file:
// cypress.config.ts
import { defineConfig } from "cypress";

export default defineConfig({
  projectId: "7n337z",

  component: {
    devServer: {
      framework: "react",
      bundler: "vite",
    },
  },

  e2e: {
    baseUrl: "http://localhost:3001",
  },

  viewportHeight: 768,
  viewportWidth: 1366,
});

Here is a relevant extract of my package.json:
// package.json
{
  "scripts": {
    "build": "tsc && vite build",
    "preview": "vite preview --port 3001",
    "test:e2e": "cypress run --e2e",
    "test:e2e:ci": "cypress run --e2e"
  }
}

Here is the the entirety of my single GitHub workflow configuration:
# .github/workflows/main.yml
name: Build and run Cypress tests

on: [push]

jobs:
  cypress-run:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout code from repository
        uses: actions/checkout@v2

      # Install NPM dependencies, cache them correctly and run all Cypress tests
      - name: Run Cypress E2E tests
        uses: cypress-io/github-action@v4
        with:
          # Records the run for Cypress Dashboard
          record: true
          # Build app
          build: npm run build -- --sourcemap false
          # Run web-server from build dist/ output
          start: npm run preview
          # Wait for web-server before starting tests
          wait-on: 'http://localhost:3001'
          # Custom command to start Cypress tests
          command: npm run test:e2e:ci
        env:
          CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
          CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
          # Pass GitHub token generated automatically by the action itself
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Print result
        run: |
          echo Cypress finished with: ${{ steps.cypress.outcome }}
          echo See results at ${{ steps.cypress.outputs.dashboardUrl }}

any update ?

I encounter the same issue where my cypress.config.js wasn't recognized by cypress-io/github-action@v5
My config looks like this:
name: Cypress
uses: cypress-io/github-action@v5
with:
          config-file: cypress.config.js
          command: npm run cy:run-unit
          component: true
          record: false
          parallel: false
          browser: chrome

This is an old issue which was apparently reactivated by somebody adding a comment and then deleting it.
Going back to the original issue, posted by @TotomInc it looks like the problem was the use of command: npm run test:e2e:ci.
It is now documented in https://github.com/cypress-io/github-action#custom-test-command

Thanks for commenting @MikeMcC399, closing as resolved!