Update to Coq 8.14

This is a WIP PR to update CertiCoq to the latest MetaCoq (with the change of case representation) and Coq 8.14.
I managed to adapt most of the pipeline including the L6 prototype generation.
-~I have tested check_roundtrip works in Prototype.v and tried my best to fix gen_case_tree but some bug must have been introduced still. @joom or @john-ml could you have a look?-~
Also, I don't know how to resolve the problem with the dependency on flocq+compcert, maybe VST wizards can tell me as we are apparently using the same trick there.
I updated the submodules so you can get the same working environment as myself if you want to test it.
In general, things are simplified for CertiCoq: we no longer need the case branches expansion and stripping we used to do, so we have one phase less (L3->L3_eta disappears, and L3_eta->L4 is simpler).

I guess @andrew-appel knows best how to update the compcert/ directory for compatibility with 8.14.0, that's the only missing bit now.

We should move to CompCert 3.9, which builds in Coq 8.14,  instead of CompCert 3.5, which is (apparently) what's in certicoq/compcert right now.  It looks like there's a certicoq branch called compcert-3.7.  Perhaps this is a good start.  Between CompCert 3.7 and CompCert 3.9, in the subset of the CompCert files that we have here, there is only a very small change (a boolean attribute field has become an option, easy to adapt to).
We should also consider accessing the flocq library directly through opam, instead of copying flocq into a subdirectory of compcert.   This feature of CompCert is called "external flocq", and was not available in CompCert 3.5.
I do not suggest moving to CompCert 3.10 at this time, because it will require a bit more work to achieve compatibility with CompCert 3.10's new representation of structure fields.

Ok, I've updated the compcert files to 3.9 and tried to keep the same subset as before. I could adapt the compiler .v files relatively easily and the printClight / printAST functionality as well. The plugin compiles now and in benchmarks/tests.v runs to completion but I couldn't test the generated code. I had to make one change in the extracted code I'm unsure about, while cutting a new dependency on C2C.is_atomic: in compcert-3.9's printCsyntax.ml we have:
let print_globvardecl p  id v =
  let name = extern_atom id in
  let name = if v.gvar_readonly then "const "^name else name in
  let linkage = if C2C.atom_is_static id then "static" else "extern" in
  fprintf p "%s %s;@ @ " linkage (name_cdecl name v.gvar_info)

I modifed it to have linkage = "extern" in all cases, but I'm not sure that's the right choice. In general, printClight and printCsyntax seemed to be modified in a non-trivial way for certicoq, so that should be reviewed carefully.

I think linkage="extern" in all cases is fine for now.

The CI is all green now, but that doesn't mean that certicoq works, I don't know if it would be preferable to merge now (so we can all move to 8.14) or wait until someone can check that it behaves properly.

I pulled the branch last night and setup a new opam switch. Confirmed that everything builds; will deep dive into the tests (+ uvrooster) tonight or tomorrow
Copy/paste setup commands for anyone else following along:
opam switch create coq-8.14 ocaml-system
eval $(opam env)
opam repo --switch=coq-8.14 add coq-released https://coq.inria.fr/opam/released
opam update --switch=coq-8.14
opam install --switch=coq-8.14 coq.8.14.0 coq-flocq.3.4.2

git clone git@github.com:mattam82/certicoq.git
cd certicoq
git checkout -b master-coq-8.14
git pull origin master-coq-8.14
git submodule update --init --recursive

pushd submodules/Equations
opam install --switch=coq-8.14 ./coq-equations.opam
popd

pushd submodules/coq-ext-lib
opam install --switch=coq-8.14 ./coq-ext-lib.opam
popd

pushd submodules/metacoq
opam install --switch=coq-8.14 ./*.opam
popd

opam exec --switch=coq-8.14 -- make -j 4
opam exec --switch=coq-8.14 -- make plugin

I tested the benchmarks directory. I had to update benchmarks/Makefile (diff below; note the -I argument) to help Coq find the CertiCoq plugin.
The build fails for demo1.c but I suspect the fix will be easy. The error can be replicated by applying the Makefile diff and running make -C benchmarks all. I've included a sample of the build errors & the relevant code down below.
Makefile diff
tcarstens@pop-os:~/formal_methods/8.14/certicoq/benchmarks$ git diff Makefile
diff --git a/benchmarks/Makefile b/benchmarks/Makefile
index 094cacef..a5b314cf 100644
--- a/benchmarks/Makefile
+++ b/benchmarks/Makefile
@@ -1,4 +1,4 @@
-COQOPTS = -R ../theories/compcert compcert -R ./ CertiCoq.Benchmarks -R lib CertiCoq.Benchmarks.lib
+COQOPTS = -R ../theories/compcert compcert -I ../plugin/ -R ../plugin/ CertiCoq.Plugin -R ./ CertiCoq.Benchmarks -R lib CertiCoq.Benchmarks.lib
 CCOMPILER=gcc

 # Names of the benchmarks
tcarstens@pop-os:~/formal_methods/8.14/certicoq/benchmarks$

Build error messages
This is a representative sample of the build errors for demo1.c:
CertiCoq.Benchmarks.tests.demo1.c:48:3: error: ‘$alloc’ undeclared (first use in this function); did you mean ‘alloc’?
   48 |   $alloc = (*$tinfo).alloc;
      |   ^~~~~~
      |   alloc
CertiCoq.Benchmarks.tests.demo1.c:48:3: note: each undeclared identifier is reported only once for each function it appears in
CertiCoq.Benchmarks.tests.demo1.c:49:3: error: ‘$limit’ undeclared (first use in this function); did you mean ‘limit’?
   49 |   $limit = (*$tinfo).limit;
      |   ^~~~~~
      |   limit
CertiCoq.Benchmarks.tests.demo1.c:50:3: error: ‘$args’ undeclared (first use in this function); did you mean ‘args’?
   50 |   $args = (*$tinfo).args;
      |   ^~~~~
      |   args
CertiCoq.Benchmarks.tests.demo1.c:54:8: error: ‘l_112’ undeclared (first use in this function); did you mean ‘$l_112’?
   54 |   if ((l_112 & 1) == 0) {
      |        ^~~~~
      |        $l_112

The glue code is also impacted:
glue.CertiCoq.Benchmarks.tests.demo1.c:274:7: error: ‘$args’ undeclared (first use in this function); did you mean ‘args’?
  274 |       $args = get_Coq_Init_Datatypes_S_args(v);
      |       ^~~~~
      |       args
glue.CertiCoq.Benchmarks.tests.demo1.c:274:45: error: ‘v’ undeclared (first use in this function); did you mean ‘$v’?
  274 |       $args = get_Coq_Init_Datatypes_S_args(v);
      |                                             ^
      |                                             $v

Here is the glue code from the error above. Note the names of the variables:
void print_Coq_Init_Datatypes_nat(unsigned long long $v)
{
  unsigned int tag;
  void *args;
  $tag = get_Coq_Init_Datatypes_nat_tag($v);
  switch (tag) {
    case 0:
      printf(*(names_of_Coq_Init_Datatypes_nat + tag));
      break;
    case 1:
      $args = get_Coq_Init_Datatypes_S_args(v);
      printf(lparen_lit);
      printf(*(names_of_Coq_Init_Datatypes_nat + tag));
      printf(space_lit);
      print_Coq_Init_Datatypes_nat(*((unsigned long long *) args + 0));
      printf(rparen_lit);
      break;

  }
}

@intoverflow I'm getting PHP flashbacks :) Jokes aside, this can be fixed by either

Redefining temp_name in PrintClight.ml so that it doesn't prepend $ to names.
Changing all uses of Sset to Sassign in theories/Glue.

@joomy I think there's more going on here. I just tried both of the proposes fixes but neither works.
Would you mind taking a look?
Are we mixing Evar and Etempvar? Is it OK to mix them?
For example, consider this function in glue.v:
https://github.com/CertiCoq/certicoq/blob/6cda38e1eb22f2434b64c10d063d81bf977347e6/theories/Glue/glue.v#L526
Here we declare v:
https://github.com/CertiCoq/certicoq/blob/6cda38e1eb22f2434b64c10d063d81bf977347e6/theories/Glue/glue.v#L544
Here we use it as an Evar:
https://github.com/CertiCoq/certicoq/blob/6cda38e1eb22f2434b64c10d063d81bf977347e6/theories/Glue/glue.v#L709
Here we use it as an Etempvar:
https://github.com/CertiCoq/certicoq/blob/6cda38e1eb22f2434b64c10d063d81bf977347e6/theories/Glue/glue.v#L727
The problem is not unique to the printing functions
Here is some C code from the benchmarks (CertiCoq.Benchmarks.tests.demo1.c). Note that sometimes l1_113 has $, but not always:
void app_uncurried_102(struct thread_info *$tinfo, unsigned long long $m_111, unsigned long long $l_112)
{
  unsigned long long l1_113;
  unsigned long long a_114;
  unsigned long long y_115;
  unsigned long long y_116;
  struct stack_frame frame;
  unsigned long long root[2];
  unsigned long long *alloc;
  unsigned long long *limit;
  unsigned long long *args;
  _Bool arg;
  $alloc = (*$tinfo).alloc;
  $limit = (*$tinfo).limit;
  $args = (*$tinfo).args;
  frame.next = root;
  frame.root = root;
  frame.prev = (*$tinfo).fp;
  if ((l_112 & 1) == 0) {
    switch (*((unsigned long long *) $l_112 +<PHONE_NUMBER>3709551615LLU)
              & 255LLU) {
      default:
        $l1_113 = *((unsigned long long *) $l_112 + 0LLU);

@mattam82 Thank you again for putting this together. I have diagnosed and fixed the issues in the code generator (see branch https://github.com/CertiCoq/certicoq/tree/coq-8.14/main). With those fixes now in place, I can confirm that your PR works as intended.
In the interest of moving fast, I will merge your PR then follow-up with a separate PR for the fixes.


Jira create is not included in slash command auto-complete

There are no create options in the slash command auto-complete data
Based on the other options I expected to see /jira create and /jira issue create
It's not clear to me why these are missing or if there is some reason they were intentionally left out.
Transferred issue from https://github.com/mattermost/mattermost-plugin-ee-jira/issues/57

Closing issues due to inactivity. This issue can be re-opened with more interest from our community.


"Rename symbol" when instance property is assigned to itself does not work

VSCode Version: Version 1.26.1 (1.26.1)
OS Version: Mac 10.13.5 (17F77)

Steps to Reproduce:

Use the following code:

class Test {
  constructor() {
    this.a = this.a.bind(this);
  }

  a() {
    return 'a';
  }
}

With the cursor on the a in a(), run "Rename symbol", and rename it to something else. The symbol in this.a =  will not rename.

Does this issue occur when all extensions are disabled?: Yes

I can't repo using VS Code insiders with TypeScript 3.0.1:

Please provide more information about your project setup. Have you configured the typescript.tsdk setting?

I reproduced with the latest Insiders, all default settings, no project settings, just a folder with one file.

Thanks. Upon further investigation, this issue is a duplicate of https://github.com/Microsoft/TypeScript/issues/18171


internal/provider: fix TestAccServerlessPrivateEndpointServicesResource

This would ensure that we create the acceptance cluster on the multi-region
host in production, which has PrivateLink supported, provided that the
organization has the right feature flag turned on.

TFTR!


Ingress ALB

Please, provide ingress.yaml for AWS Internal ALB

There is one example using EKS in the ingress configurations here, not sure if that can help you.
https://github.com/AzBuilder/terrakube-helm-chart/blob/main/examples/AzureAuthentication-Example4.md

@alfespa17
Can we have Amazon EKS + Load Balancer (ALB) ?

Can we connect sometime? @alfespa17.
I will make documentation for AWS EKS + ALB.
I have tried many times to setup Terrakube on aws eks but still failing.

Not sure if I will be able to help I dont work with AWS but as far I now the only things that needs to be update are the ingress annotation.
I mostly use Azure and GCP, maybe you can check the discussions or other issues in the main repository maybe someone there could be able to help.

@sagarnitd Any luck on this?
I installed the AWS load balancer controller. Briefly: I used a Helm chart to install the controller and used eksctl to configure the IRSA (IAM role + cluster service account) for it.
I then tried to follow the ingress setup shown in https://github.com/AzBuilder/terrakube-helm-chart/blob/main/examples/AzureAuthentication-Example4.md.
The best I was able to do from that was get four network load balancers to deploy. The four NLBs corresponded to the API, Executor, Registry and UI services. Furthermore, the listeners in each NLB were not listening on port 443 as I hoped; they were listening on the cluster service ports themselves.
Although I'm still troubleshooting things, I made some progress:
I disabled the individual ingresses in values.yaml as such.
## Ingress properties
ingress:
  useTls: false
  includeTlsHosts: false
  ui:
    enabled: false
  api:
    enabled: false
  registry:
    enabled: false
  dex:
    enabled: false

I don't know if it matters, but I disabled the TLS (useTLS: false) since the plan is to have the services behind the ALB with a wildcard TLS certificate in ACM:
Then I deployed a separate ALB ingress that maps to the API, Dex (not Executor) Registry, and UI services. The path settings are from copying over the paths in the example. I had trouble using pathType: Prefix, but pathType: ImplementationSpecific worked for me.
Also: In values.yaml, I still have the services as ClusterIP.
Here's my ingress definition in a separate YAML file.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: alb-ingress
  namespace: terrakube
  annotations:
    alb.ingress.kubernetes.io/load-balancer-name: terrakube-alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:<account id>:certificate/<id of your SSL cert in ACM>
    alb.ingress.kubernetes.io/ssl-redirect: '443'
    alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
    alb.ingress.kubernetes.io/group.name: alb-group
    alb.ingress.kubernetes.io/target-type: ip
spec:
  ingressClassName: alb
  rules:
    - host: terrakube-ui.<snip>.com
      http:
        paths:
          - path: "/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-ui-service
                port:
                  number: 8080
    - host: terrakube-api.<snip>.com
      http:
        paths:
          - path: "/dex/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-dex
                port:
                  number: 5556
          - path: "/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-api-service
                port:
                  number: 8080
    - host: terrakube-reg.<snip>.com
      http:
        paths:
          - path: "/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-registry-service
                port:
                  number: 8075

Finally, applied it after deploying the Helm chart: kubectl -f apply alb-ingress.yaml -n terrakube.
I get one ALB deployed and the listeners have targets that seem to line up with the service ports. The UI login page resolves for me and I can log into Cognito (the IdP for the Dex connector I am using).
 In my case, this happened:
After authenticating with Cognito, I am getting this peculiar error during the Dex redirect:
Bad Request
Unregistered redirect_uri ("http://terrakube-ui.minikube.net").

It's probably an error specific to my configuration, but my values.yaml has no reference to http://terrakube-ui.minikube.net. I'll be opening another issue about it.

@sagarnitd @alfespa17
I made more progress and I'm now able to log into the application inside my EKS cluster:

With my Cognito IDP Dex connector.
Domain name with HTTPS.
And the single ALB load balancer that holds the load balancer rules per subdomain host and satisfies the health check settings per path.

Maybe either of you would be interested in seeing these notes, so I'll leave these notes here:
Right now I'm using these Ingress settings inside values.yaml along side my separate ALB Ingress definition:
## Ingress properties
ingress:
  useTls: true
  includeTlsHosts: true
  ui:
    enabled: false
    domain: "terrakube-ui.<snip>.com"
    ingressClassName: "alb"
    tlsSecretName: tls-secret-ui-terrakube
    annotations: {}
  api:
    enabled: false
    domain: "terrakube-api.<snip>.com"
    ingressClassName: "alb"
    tlsSecretName: tls-secret-api-terrakube
    annotations: {}
  registry:
    enabled: false
    domain: "terrakube-reg.<snip>.com"
    ingressClassName: "alb"
    tlsSecretName: tls-secret-reg-terrakube
    annotations: {}
  dex:
    enabled: false
    annotations: {}

The ALB load balancer ingress specification above allows me to finally log into the UI. The only issue I had at that point was that the provisioned load balancer was not automatically applying a health check based on each pod's Readiness probe settings; I wanted to figure out how to get the ALB load balancer controller to apply the health check settings automatically.
Unfortunately, I could not figure out how to apply custom health check paths and health check ports inside one Ingress definition for the ALB. However, I can define the custom health check configurations if I go back to using multiple ingress definitions; then I can apply separate annotations (as values.yaml allows me to do) for each ingress.
These are the ALB health check annotations that work if applied to each ingress separately:
annotations:
    alb.ingress.kubernetes.io/healthcheck-path: <health check path>
    alb.ingress.kubernetes.io/healthcheck-port: <health check port>

But oddly enough when I use separate ingresses, the load balancer no longer satisfies the priority between rules under the Terrakube API service; I specifically have trouble logging into the UI unless the load balancer /dex/* path is prioritized over the more general /* path under the terrakube-api.my-domain.com host:
- host: terrakube-api.<snip>.com
  http:
	paths:
	  - path: "/dex/*"
		pathType: ImplementationSpecific
		backend:
		  service:
			name: terrakube-dex
			port:
			  number: 5556
	  - path: "/*"
		pathType: ImplementationSpecific
		backend:
		  service:
			name: terrakube-api-service
			port:
			  number: 8080

And this is in spite of using these annotations for the ALB load balancer to try to force the dex Ingress before the api Ingress:
alb.ingress.kubernetes.io/priority: <priority number>
alb.ingress.kubernetes.io/group.name: alb-group
alb.ingress.kubernetes.io/load-balancer-name: terrakube-alb

Finally, what did work to get one ALB, with the healthcheck settings per path, and maintain rule priorities in the API subdomain host was:

The values.yaml ingress specification, as you helped me with.
The separate ALB definition (shown in my previous message), which maintains /dex/* path prioritized over /* under terrakube-api.my-domain.com host.
Editing the Helm chart service definition files templates/service-api.yaml, templates/service-registry.yaml, and charts/dex/templates.values.yaml to add the ALB healthcheck annotations, respectively:

  annotations:
    alb.ingress.kubernetes.io/healthcheck-path: /actuator/health/readiness
    alb.ingress.kubernetes.io/healthcheck-port: '8080'

  annotations:
    alb.ingress.kubernetes.io/healthcheck-path: /actuator/health/readiness
    alb.ingress.kubernetes.io/healthcheck-port: '8080'

  annotations:
    alb.ingress.kubernetes.io/healthcheck-path: /healthz/ready
    alb.ingress.kubernetes.io/healthcheck-port: '5558'

I suspect I am overlooking something regarding the ALB controller that would make the load balancer provisioning a bit cleaner, but what I have shown seems to give me everything for my DNS/Load balancer settings.

hello @genedev22 I think this comment can help you.
https://github.com/AzBuilder/terrakube-helm-chart/issues/146#issuecomment-2397862910
DEX and the API are two different components but to simplify the deployment we just reuse the same API domain for DEX in one specific path.
You can deploy those 2 services using a different domain if you want.

You could in theory simply deploy DEX using its own helm chart  in another domain and simple change your terrakube helm values to disable the internal DEX that terrakube provides and simply use the other DEX like:
dex:
  config:
    issuer: https://my-custom-dex.with-other-domain.com

@alfespa17 I like your idea. This should allow me to get around the load balancer priority rules not getting satisfied (as I had encountered) and let me bring back the UI/API/Registry ingress settings back into values.yaml.
Given that I'm ready to try out the application, I'll defer that separate DEX resource exploration for now, but thank you for the suggestion.

Hi @genedev22 !
Can you show your full values.yml please ? I'm running into the same issues as you and I'm having trouble to fix my UI ! I'm not getting through the login page 😢

Hi @BenjaminDecreusefond,
Quick note: I have a consistent issue with my Executor pod crashing during startup, but a quick kubectl delete pod <pod id> had fixed it. Try deleting your API pod perhaps if you haven't done so? Same goes for any other pod whose logs suggest a startup problem.
I started off using these examples as a reference.

https://docs.terrakube.io/getting-started/user-management/amazon-cognito
https://github.com/AzBuilder/terrakube-helm-chart/blob/main/examples/CognitoAuthentication-Example1.md

My values.yaml does not have the individual ingresses enabled. I deployed a separate yaml file for one ingress that covers all of the routes for my ALB. I happen to be using a standalone Postgres Aurora DB, but your mileage may vary. I happen to be using the default Redis resource because ElastiCache requires SSL connectivity (and to my understanding, the Terrakube Helm chart does not make that yet available).
If you see an error in the UI, try opening your browser's tools (F12) and check if it's trying to go an https or http endpoint. In my case, I have it setup for https.
The devs can speak better than me on this, but my crude understanding of the auth workflow (based on my configuration) is:

Go to the login page, say at https://terrakube-ui.your-domain.com.
Get directed to https://terrakube-api.your-domain.com/dex, and then in turn to your IdP login page (in my case, Cognito).
From there, the rest of the OIDC workflow follows. To add a little more detail:

After successful login (into your IdP), you'll see a consent screen under the "Dex" UI. After accepting, you'll then see the Terrakube UI present you with choosing or creating an "organization".
I only have an authorization code grant for the OAuth grant type. No custom scopes (just email, openid, and profile). In general: Make sure settings match between values.yaml and your app client settings in your IdP.

Other: The subdomains don't have to match the defaults shown as far as I can tell, so you should have flexibility in renaming them ... but make sure you're consistent with your subdomains in values.yaml and wherever your Ingress and DNS settings are applied.
## Global Name
name: "terrakube"

global:
  imagePullSecrets: []

security:
  useOpenLDAP: false
  adminGroup: "<name of your AWS Cognito admin group>"
  patSecret: "<PAT secret in base64>"
  internalSecret: "<internal secret in base64>"
  dexClientId: cognito-app
  dexClientScope: "email openid profile offline_access groups"
  dexIssuerUri: "https://terrakube-api.your-domain.com/dex"
  existingSecret: false

## Dex
dex:
  enabled: true
  existingSecret: false
  config:
    issuer: "https://terrakube-api.your-domain.com/dex"
    storage:
      type: memory
    web:
      http: <IP_ADDRESS>:5556
      allowedOrigins: ['*']
      skipApprovalScreen: true
    oauth2:
      responseTypes: ["code", "token", "id_token"]
    connectors:
    - type: oidc
      id: cognito
      name: AWS Cognito
      config:
        issuer: "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_<user pool id>"
        clientID: "<your AWS Cognito app's client id>"
        clientSecret: "<your AWS Cognito app's secret key>"
        redirectURI: "https://terrakube-api.your-domain.com/dex/callback"
        scopes:
          - openid
          - email
          - profile
        insecureSkipEmailVerified: true
        insecureEnableGroups: true
        userNameKey: "cognito:username"
        claimMapping:
          groups: "cognito:groups"
    staticClients:
    - id: cognito-app
      redirectURIs:
      - 'https://terrakube-ui.your-domain.com'
      - '/device/callback'
      - 'http://localhost:10000/login'
      - 'http://localhost:10001/login'
      name: 'cognito-app'
      public: true

## Terraform Storage
storage:
  defaultStorage: false
  aws:
    accessKey: "<the IAM access key for an IAM key pair>"
    secretKey: "<the IAM secret key for an IAM key pair>"
    bucketName: "name-of-bucket-in-your-aws-account"
    region: "your-aws-region"

# Default Redis Configuration
redis:
  architecture: "standalone"
  auth:
    enabled: true
    password: "your-redis-password"

## API properties
api:
  existingSecret: false
  enabled: true
  image: azbuilder/api-server
  version: ""
  replicaCount: "1"
  serviceType: "ClusterIP"
  serviceAccountName: ""
  rbac:
    create: false
    roleName: "terrakube-api-role"
    roleBindingName: "terrakube-api-role-binding"
  secrets:
   - terrakube-api-secrets
  resources: {}
  podLabels: {}
  defaultDatabase: false
  defaultRedis: true
  loadSampleData: false
  terraformReleasesUrl: "https://releases.hashicorp.com/terraform/index.json"
  securityContext: {}
  containerSecurityContext: {}
  imagePullSecrets: []
  initContainers: []
  cache:
    moduleCacheMaxTotal: "128"
    moduleCacheMaxIdle: "128"
    moduleCacheMinIdle: "64"
    moduleCacheTimeout: "600000"
    moduleCacheSchedule: "0 */3 * ? * *"
  properties:
    databaseType: "POSTGRESQL"
    databaseHostname: "<your postgres hostname>"
    databaseName: "terrakube"
    databaseUser: "terrakube"
    databaseSchema: "public"
    databasePassword: "<your DB password>"
    databaseSslMode: "require"
    databasePort: "5432"
    redisHostname: ""
    redisPassword: ""

## The database port is only used for mysql databases
## SslMode values are disable, allow, prefer, require, verify-ca, verify-full. Default mode is "disable".
 I don't claim this is 'the' way to setup your Ingress; it's just what finally worked for me ... such that it gave me one ALB, the correct mapping of hosts and paths to the Terrakube services. In my case: plus adding ALB health check annotations in the service definition yaml files so the ALB health checks were reaching out to the correct health check paths and correct health check ports.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: alb-ingress
  namespace: terrakube
  annotations:
    alb.ingress.kubernetes.io/load-balancer-name: terrakube-alb
    alb.ingress.kubernetes.io/group.name: alb-group

    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:<your account id>:certificate/<your ACM certificate id>
    alb.ingress.kubernetes.io/ssl-redirect: '443'
    alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
    alb.ingress.kubernetes.io/target-type: ip

    alb.ingress.kubernetes.io/healthcheck-interval-seconds: '15'
    alb.ingress.kubernetes.io/healthcheck-timeout-seconds: '5'
    alb.ingress.kubernetes.io/healthy-threshold-count: '2'
    alb.ingress.kubernetes.io/unhealthy-threshold-count: '2'
spec:
  ingressClassName: alb
  rules:
    - host: terrakube-ui.your-domain.com
      http:
        paths:
          - path: "/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-ui-service
                port:
                  number: 8080
    - host: terrakube-api.your-domain.com
      http:
        paths:
          - path: "/dex/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-dex
                port:
                  number: 5556
          - path: "/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-api-service
                port:
                  number: 8080
    - host: terrakube-reg.your-domain.com
      http:
        paths:
          - path: "/*"
            pathType: ImplementationSpecific
            backend:
              service:
                name: terrakube-registry-service
                port:
                  number: 8075


JS Code block is really hard to see

That's how it looks for me:

Are you using any customizations or plugins?

I overlapped my own theme, sorry.


I had purpose to add a new group (without asking what is the role of the new group), and now the DAO is unusable. {"index":0,"kind":{"ExecutionError":"Smart contract panicked: panicked at 'ERR_UNSUPPORTED_ROLE', src/policy.rs:369:30"}} when I try to vote

I had purpose to add a new group (without asking what is the role of the new group), and now the DAO is unusable. {"index":0,"kind":{"ExecutionError":"Smart contract panicked: panicked at 'ERR_UNSUPPORTED_ROLE', src/policy.rs:369:30"}}
resurg.sputnikv2.testnet
Originally posted by @GaloisField2718 in https://github.com/near-daos/astro-ui/issues/952#issuecomment-1102676442

Sorry for the name of the issue I can modify to be more readable and understandable.

I think it's better in sputnik-dao-contracts sorry for bad placing

@GaloisField2718 thanks for reporting, we able to reproduce it anyway from the UI side, but we didn't find a root cause yet


Fix sliding bug when doing multitouch sliding.

Fix sliding bug when doing multitouch sliding.
The best way to reproduce it is to slide with one finger, and in the middle of the slide (and without stop touching) add another finger and slide up
this way, the slides look mixed up.

Thank you, a small but important fix

Thanks a lot!


Different results using same code but different CPU type

System information

Linux Ubuntu 20.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.5.0
Python version: 3.8

Describe the current behavior
When tuning TF models we noted that we were getting different results when using different instance types on AWS. We started removing possible sources of variability until the only difference was the CPU type of the instances. We created a minimal example that trains a simple MLP on a training set and predicts probabilities for a validation set. The following figure compares the predictions obtained with an Intel CPU to those with an AMD CPU:

Describe the expected behavior
The predicted probabilities should be the same with both CPU types and the points in the above plot should all be on the diagonal.
Standalone code to reproduce the issue
Code to reproduce issue: https://github.com/rluethy/tf-cpu-type-diff

Hi @rluethy! Did you check with latest version 2.7 too?
Please post this issue on keras-team/keras repo if it is not getting resolved.
To know more see;
https://discuss.tensorflow.org/t/keras-project-moved-to-new-repository-in-https-github-com-keras-team-keras/1999 . Thanks!

Ok @rluethy ! Please close this issue here as it will be tracked there.

Reposted here https://github.com/keras-team/keras/issues/15740


Case When in Select not doing Else

Summary of problem or feature request

I'm doing a SELECT with the total value of a certain column but using a CASE for determining the equation to be use. My problem is when the total is render, it skips the ELSE statement but when I add GROUPBY(total) it shows that the case did work. Is the CASE function only does the check once and is there any other options for doing this check? By the way im using SQLite3.
Code snippet of problem

                return datatables()->of(Order::join('order_details', 'orders.id', '=', 'order_details.order_id')
                                ->join('menu_categories', 'menu_categories.id', '=', 'order_details.category_id')
                                ->select(DB::raw("description, sum(quantity) as qty, category_name,
                                (CASE WHEN order_details.senior_dc < 1 THEN sum((quantity*price*(1+($vat)))) ELSE sum(quantity*price-order_details.senior_dc) END) as total"))
                                ->whereDate("order_details.created_at", "=", date('Y-m-d', strtotime($d5)))
                                ->where('order_details.deleted_at', NULL)
                                ->where('status', 'Completed')
                                ->groupBy('product_id')
                                ->get())
                                ->make(true);

System details

Operating System: Windows 7
PHP Version: 7.1.3
Laravel Version: 5.8
Laravel-Datatables Version: 9.0

Summary of problem or feature request
I'm doing a SELECT with the total value of a certain column but using a CASE for determining the equation to be use. My problem is when the total is render, it skips the ELSE statement but when I add GROUPBY(total) it shows that the case did work. Is the CASE function only does the check once and is there any other options for doing this check? By the way im using SQLite3.
Code snippet of problem
                return datatables()->of(Order::join('order_details', 'orders.id', '=', 'order_details.order_id')
                                ->join('menu_categories', 'menu_categories.id', '=', 'order_details.category_id')
                                ->select(DB::raw("description, sum(quantity) as qty, category_name,
                                (CASE WHEN order_details.senior_dc < 1 THEN sum((quantity*price*(1+($vat)))) ELSE sum(quantity*price-order_details.senior_dc) END) as total"))
                                ->whereDate("order_details.created_at", "=", date('Y-m-d', strtotime($d5)))
                                ->where('order_details.deleted_at', NULL)
                                ->where('status', 'Completed')
                                ->groupBy('product_id')
                                ->get())
                                ->make(true);

System details
* Operating System: Windows 7

* PHP Version: 7.1.3

* Laravel Version: 5.8

* Laravel-Datatables Version: 9.0

no that shouldn't. Try to
Order::join('order_details', 'orders.id', '=', 'order_details.order_id')
                                ->join('menu_categories', 'menu_categories.id', '=', 'order_details.category_id')
                                ->select(DB::raw("description, sum(quantity) as qty, category_name,
                                (CASE WHEN order_details.senior_dc < 1 THEN sum((quantity*price*(1+($vat)))) ELSE sum(quantity*price-order_details.senior_dc) END) as total")->toSql()

First and run on your database client and see if it's right query, I think this's not a DataTable issue


Does not enable wifi calling for supported carriers

The tool does not enable wifi calling (when iPhone is not nearby) for supported carriers. This is something that is normally enabled on macs with BTLE and will allow the user to click a button in FaceTime preferences to upgrade to wifi calling. This allows the mac to make and receive cellular calls without the need to route them through an iPhone. Please add the ability to enable this feature as well.

I noticed this as well on my late 2011 MacBook Pro w/ upgraded hardware

@dokterdok any word on if this can be enabled in a similar fashion? seems like it should just be editing a plist or something.

I'm not on a carrier which supports wifi calling yet, which makes it a lot harder for me to figure it out.
I will try and see if I can get it to work though.
If anyone got a hint please let me know!

So i pulled the strings on the FaceTime app. it appears there are a few strings referring to "Thumper" calling. I think this may be what iOS and Mac OS refer to Wi-Fi Calling as. There is a string "supportsThumperCalling" but setting this to YES has no effect:
defaults write com.apple.FaceTime supportsThumperCalling -bool YES

Would be interested in this too.  Mac Book Air Mid - 2011.

@sysfloat Any word on this? This would be a killer feature of we could get it going. I would totally send you a t-mobile SIM card for testing if you think it would help (you in the US?)

Any updates on this?


Problems installing Docker

Problem description
Cannot install docker on Linux i get the error:
E: The repository 'https://download.docker.com/linux/ubuntu focal Release' does not have a Release file.
Also this page gets a can't find the page message:
https://docs.docker.com/get-docker/engine/install/

Thanks for reporting; this should be fixed by https://github.com/docker/docker.github.io/pull/10691 (which will be published on docs.docker.com soon)
Meanwhile, the correct URL is https://docs.docker.com/engine/install/ or https://docs.docker.com/engine/install/ubuntu/ (for ubuntu)

root@ip-172-16-0-76:/var/discourse# sudo apt-get install docker-ce docker-ce-cli containerd.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package docker-ce is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'docker-ce' has no installation candidate
E: Unable to locate package docker-ce-cli
E: Unable to locate package containerd.io
E: Couldn't find any package by glob 'containerd.io'
E: Couldn't find any package by regex 'containerd.io'

What distribution and version are you installing on?

Oh, you're trying to install on Focal; there's no packages yet for Focal, those will arrive with the upcoming 20.xx release of Docker; in the meantime you may be able to install the packages for Ubuntu 18.04 (bionic)

Yeah thanks managed to update my repo to point at the right version. Not sure what happened there.
Thanks for the super support!


[cxx-interop] Class template specializations each need their own metadata.

Make sure each class template specialization has its own metadata/value witness table. The issue here is that we got the name wrong. We need to use the mangled name so its different for each specialization.

@swift-ci please test.

@swift-ci please test.

@swift-ci please test Linux.


F#1613 attribute typo in csv file format delimiter

Description
fix typo in CsvFileFormat.java
delimeter -> delimiter
Related Issue : #1613
How Has This Been Tested?

create datasource with tab delimiter csv file
geo_seoul_roads.csv.zip
change delimter to '\t'
uncheck "use the first row as head"
create datasource
after creation, see data tab

Types of changes

[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 change)

Checklist:

[ ] My code follows the code style of this project. it will be added soon
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document. it will be added soon
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Additional Context

run build
deploy to 1

run build
deploy to 1

run build
deploy to 1


feat/fix - zeva 467 - Create independent reasseement process for government

feat: disables 'create new supplemental report' button if reassessment exists
fix: enables government user to create reassessment even if supplemental does not exist

new wireframe was added today so i need to make some changes before it gets merged


Feat: Add autofix, incremental relinting, and reparsing

This PR adds incremental relinting, reparsing, and autofix (which depends on the first two). Autofix for rules is done by a fixer field in RuleCtx, the rule simply makes the field Some(fixer) where fixer is an instance of the Fixer struct. You can also use ctx.fix() which makes a fixer and returns a mutable reference to it.
How fixes are applied
Fixers are essentially wrappers around a Vec<Indel> where an indel is an "insertion deletion" command. Indels are applied as such:

Take all indels and tag them with the name of the rule (TaggedIndel)
If any indel overlaps with a previous indel then remove all indels with the tag of the overlapping indel (or otherwise we might apply incomplete fixes)
Reparse and relint using the indels which dont overlap or apply the indels and parse from scratch if reparsing doesnt work
Get the new indels for each fix and run the first 3 steps again, up to 10 times
The fixed code is the last reparsed node

Unresolved questions

[ ] How does --fix behave with --watch?

Things to do

[ ] Implement autofix for no-extra-boolean-cast, i took a little look at how eslint implements it and it seems to be decently complex
[ ] Add a section to the dev docs about autofix
[ ] Document autofix in user docs
[ ] Generally see how it behaves
[ ] Testing framework for autofix
[ ] Applying autofix in --watch iterations
[ ] Watch the config for changes

If you want to add autofix for no-extra-boolean-cast simply clone the autofix branch and make a PR to it 👍

huh it seems i forgot to emit the errors of the other files once a file is changed, that should probably be fixed 😄

Incremental reparsing seems to have a lot more bugs than i initially thought, i think perhaps it might be better to add autofix and then leave incremental reparsing and watching for another time


dataclasses

Python 3.7 introduces dataclasses, which essentially are an optional way to have stricter type system within Python.
This is a way to set up abstract classes with interfaces, i.e. with canonical sets of available variables.
This may turn out to be a better abstraction for things like AgentTypes and more complex multi-agent models than the way things are currently handled with inheritance.
This linked file is an example of the kinds of things that can be done with dataclasses:
https://github.com/glasgow-ipl/ietfdata/blob/master/ietfdata/datatracker.py

A particularly good place to start using dataclasses would be the Solution classes, which fit the dataclass use case nicely. The constructor could be replaced by a decorator, and we'd get a repr method for free.
https://github.com/econ-ark/HARK/blob/master/HARK/ConsumptionSaving/ConsIndShockModel.py
https://docs.python.org/3/library/dataclasses.html


[FancyZones] Sometimes on system wake windows on second monitor are moved to primary monitor

Environment
Windows build number: [Version 10.0.19041.388]
PowerToys version: v0.19.1
PowerToy module for which you are reporting the bug (if applicable): FancyZones

Steps to reproduce
Setup:

One primary monitor, one secondary monitor
Secondary monitor has 3 rows, primary monitor has 2 columns
Put apps into each of the secondary monitor's 3 rows

Repro:

Sometimes it happens when my system is asleep and I wake it up and login
Sometimes it happens when the screensaver is active and I login

I don't have consistent repro steps, it feels random. It never happens while I'm logged in and actively using my computer.
Expected behavior
Windows on second monitor should remain in configured zones.
Actual behavior
Windows will all be moved to my primary monitor stacked in the first column.

@TylerGoeringer
please update to https://github.com/microsoft/PowerToys/releases/tag/v0.19.2
If the problem still persists, it's very likely a Windows problem that "loses" the second monitor on wake up and forces all the windows to be moved to the primary monitor.

Thanks. Tried out the updated version but it's still happening. Judging by other behaviors I think you're right, I think Windows is constantly forgetting which monitor is which/is connected. I've started using Win Redocker and that seems to solve the issue.


style: update prompt templates and resource colors

The prompt now starts with a new line character.
The use of extra space makes the CLI feels less cluttered.

Added color.Emphasize() as a way for us to highlight
the important words in a prompt.

Reduced the number of colors used to only Cyan and HiCyan.
Cyan is used for user inputs, and HiCyan for outputs generated by us.
Just like spacing, this makes the CLI feel less jarring.

The help text is now inverted and catches the eye of the user
immediately.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Screenshots

See how project name shame-project is slightly brighter than user inputs.
"infrastructure pattern" and "name" are in bold and italic.
I pressed "?" and that highlighted the help for the prompt by reversing the text.


Why non-const member methods return const reference?

Some non-const member methods return const reference. Is this intentional?
For instance:
https://github.com/AcademySoftwareFoundation/Imath/blob/master/src/Imath/ImathVec.h#L212
IMATH_HOSTDEVICE const Vec2& normalize(); // modifies *this

Is this a mechanism to prevent some sort of operation chaining? and normalized vector is intended to be immutable?

normalized() returns a Vec2 and doesn't modify *this.
normalize() normalizes a vec2 in place, and returns a const reference.
It's a similar rationale to how you can say
a = (b=c);   // (b=c) changes b, and returns a const reference

but you can't say
(b=c) += a;  // (b=c) is not an lvalue, this is not a valid way to say "assign c to b and then add a"

I think that in general, we use GitHub Issues for reporting what we think are bugs or adding tasks to the development team's roadmap. For ordinary questions about how to use the library, the most direct way to get help is to pose the question on the openexr-dev mail list.

Thank you for detailed explanation. I was unaware of openexr-dev mail list. Next time I am going to ask questions there.


Task 1.4 in Basic Gates Kata is unclear

Task 1.4 in the Basic Gates Kata is unclear in the last Goal. It says:
If the qubit is in superposition, change its state according to the effect on basis vectors.

It is unclear which basis we are using; I think we should be explicit and say computational basis.

"According to the effect" is unclear. According to the effect of what? In the solution workbook it becomes clear that it is referring to the Ry Gate's effect, but you don't know that is the gate in the beginning....

This sentence doesn't make a lot of sense on its own, it's supposed to be read in the context of the previous two statements that describe the desired effect of the operation on the basis states. In this context, "basis vectors" are "basis vectors mentioned above", and "effect" is "the effect described above"


Byte Level Encryption

Most methods are using string parameters, the underlying libraries of Rust Crypto typically use byte level encryption

[ ] SHA
[ ] Scrypt
[ ] rsa
[ ] md5
[ ] hmac
[ ] ed25519
[ ] blake2
[ ] bcrypt
[ ] argon2
[ ] aes


Switch cluster references in placement from strings to objects

This ensures that the addition of fields to cluster references will be backwards compatible.
Fixes #688

LGTM

I'm lgtm on this.

@marun, this needs rebase.

Rebased

Rebased

/lgtm
Thanks!


increase timeout so we are not repeating sync calls every 3s

@SolarDrew I am hoping this will stop the bot falling asleep


Libreelec kodi 18 - first 2 minutes playing via netflix addon are black

Hello,
when playing movies via netflix addon, first 2 minutes  of avery movie are black (with sound), ater then, movie continue without issue.
any idea how to fix this?
Inputstreamer helper 0.5.8
inputstreamer adaptive 2.3.17
widevine CDM 4.10.1679
thanks
Daniel

Update inputstream.adaptive. Your version was released on april 2019, the newest version (for Leia: 2.4.8) is from july this year.

I have leila 18.2 (no newer is availabla under raspbian debian and it  the inputstreamer adaptive is updates (latest available there is 2.3.17)

In the title you said you are using LibreELEC. Apparently now you are using Raspbian Stretch. In that case you should update your system to Buster or Bullseye.
Anyway, since the issue is not related to inputstreamhelper, I'm going to close this. If the issue persists, please ask on the Kodi or Raspberry Pi forums.


ReplayClient doesn't respect retries

Throws an exception before doing the three attempts.

[06-Nov-2015 19:39:51 America/New_York] exception 'Buzz\Exception\RequestException' with message 'file_get_contents(http://<IP_ADDRESS>/observer-mode/rest/consumer/getLastChunkInfo/BR1/644504019/7/token): failed to open stream: HTTP request failed! ' in /home/gamerbet/lol-replay-downloader-cli/vendor/kriswallsmith/buzz/lib/Buzz/Client/FileGetContents.php:28
Stack trace:
#0 /home/gamerbet/lol-replay-downloader-cli/vendor/kriswallsmith/buzz/lib/Buzz/Browser.php(130): Buzz\Client\FileGetContents->send(Object(Buzz\Message\Request), Object(Buzz\Message\Response))
#1 /home/gamerbet/lol-replay-downloader-cli/vendor/kriswallsmith/buzz/lib/Buzz/Browser.php(82): Buzz\Browser->send(Object(Buzz\Message\Request))
#2 /home/gamerbet/lol-replay-downloader-cli/vendor/kriswallsmith/buzz/lib/Buzz/Browser.php(31): Buzz\Browser->call('<IP_ADDRESS>:80...', 'GET', Array)
#3 /home/gamerbet/lol-replay-downloader-cli/vendor/elogank/lol-replay-downloader/src/EloGank/Replay/Downloader/Client/ReplayClient.php(103): Buzz\Browser->get('<IP_ADDRESS>:80...')
#4 /home/gamerbet/lol-replay-downloader-cli/vendor/elogank/lol-replay-downloader/src/EloGank/Replay/Downloader/ReplayDownloader.php(350): EloGank\Replay\Downloader\Client\ReplayClient->getLastChunkInfo('BR1', '644504019', 7)
#5 /home/gamerbet/lol-replay-downloader-cli/vendor/elogank/lol-replay-downloader/src/EloGank/Replay/Downloader/ReplayDownloader.php(538): EloGank\Replay\Downloader\ReplayDownloader->getLastChunkInfos(Object(EloGank\Replay\Replay), 7)
#6 /home/gamerbet/lol-replay-downloader-cli/vendor/elogank/lol-replay-downloader/src/EloGank/Replay/Downloader/ReplayDownloader.php(171): EloGank\Replay\Downloader\ReplayDownloader->downloadCurrentData(Object(EloGank\Replay\Replay), Object(EloGank\Replay\Command\Output\ConsoleOutput))
#7 /home/gamerbet/lol-replay-downloader-cli/vendor/elogank/lol-replay-downloader/src/EloGank/Replay/Downloader/ReplayDownloader.php(106): EloGank\Replay\Downloader\ReplayDownloader->doDownload('BR1', '644504019', '2wimKj03lioTkmJ...', Object(EloGank\Replay\Command\Output\ConsoleOutput))
#8 /home/gamerbet/lol-replay-downloader-cli/src/EloGank/Replay/Command/ReplayDownloadCommand.php(100): EloGank\Replay\Downloader\ReplayDownloader->download('BR1', '644504019', '2wimKj03lioTkmJ...', Object(EloGank\Replay\Command\Output\ConsoleOutput), true)
#9 /home/gamerbet/lol-replay-downloader-cli/vendor/symfony/console/Symfony/Component/Console/Command/Command.php(253): EloGank\Replay\Command\ReplayDownloadCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /home/gamerbet/lol-replay-downloader-cli/vendor/symfony/console/Symfony/Component/Console/Application.php(889): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 /home/gamerbet/lol-replay-downloader-cli/vendor/symfony/console/Symfony/Component/Console/Application.php(193): Symfony\Component\Console\Application->doRunCommand(Object(EloGank\Replay\Command\ReplayDownloadCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 /home/gamerbet/lol-replay-downloader-cli/vendor/symfony/console/Symfony/Component/Console/Application.php(124): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /home/gamerbet/lol-replay-downloader-cli/console(33): Symfony\Component\Console\Application->run()
#14 {main}

Weird, maybe your connection dropped at this moment. I'll check this out tomorrow :)
Thanks.

The issue seems to be linked with #4.
I close it, feel free to reopen it if the issue occures again.

@ckdarby The error message means that the URL is not reachable from your server.
Have you tried to cURL the URL manually ?

@Divi Every time I get the error I do a wget on the url and have no issue retrieving it.

Seems strange. can you try with file_get_contents function please ?
I tested locally and it works. Do you have any rules on your iptables/firewall ?

Stock Ubuntu, no iptables/firewall. I think we're making so many requests
Riot might refuse one on their end.
Either way I was assuming the replay downloader should respect the 3
attempts before onFailure().
Sincerely,
Cory Darby
Phone: 1-866-832-2782 || Twitter: ckdarby
On Sun, Nov 8, 2015 at 6:46 PM, Sylvain Lorinet<EMAIL_ADDRESS>wrote:

Seems strange. can you try with file_get_contents function please ?
I tested locally and it works. Do you have any rules on your
iptables/firewall ?
—
Reply to this email directly or view it on GitHub
https://github.com/EloGank/lol-replay-downloader-cli/issues/3#issuecomment-154887295
.

Sure, the issue is real and I'll fix it. But it won't fix your problem.
I don't think Riot has this kind of configuration about max connection attemp.
You should try the domain and not the resolved IP : spectator.br.lol.riotgames.com:80

Downloader will now catch RequestException and will retry like a timeout. See https://github.com/EloGank/lol-replay-downloader/commit/23271230a7f823b1757f0e2a9f60d1a7d4fa95d6
Like I said, your failed to open stream: HTTP request failed! won't be fixed by magic. You seem to have a connection issue.
Thanks @ckdarby :+1:


Fix download links for private datasets

At the moment, downloads on showcase page for private datasets are not working. This is happening because paths for private resources should be constructed differently with signature from aws. We need to refactor our /:owner/:name/r/{resource}.{format} route to handle private resources.
Acceptance criteria

[x] All download links are working for private datasets (eg here https://testing.datahub.io/anuar.ustayev/finance-vix (this is private so only owner can test))

Tasks

[x] refactor path generation logic in "r" links route

FIXED


update the plugin_description.xml to reflect the new default plugin library name

Fixes https://github.com/ros-visualization/rviz/issues/1003

@wjwwood Great, can confirm this fixes it.


Pre-AMP

Working PR to make an AMP. Changes:

Include argparse to make training scripts CLIs with hyperparameters as arguments.
Substantially improve README.

Goals of PR:

Place for soft/content reviews of README and repo (should it be a MLFlow tutorial, or stick with specifically "how to get MLFlow working on CML" type stuff), before going through formal review.

Non-goals of this PR:

Technical details of AMP-ing, like including a LICENSE and legal headers. They can be done in a subsequent PR.

From Victor:

There is a section on installing virtual env ... given that will be a CML focused repo, is  there a need for this?

Willfix.

From Victor:

There is a section on installing virtual env ... given that will be a CML focused repo, is  there a need for this?

Willfix.

Further suggestion:

It might be useful to also add the manual pointer for the application part for consistency. e.g.
python3 mlflow ui --port CDSW_READ_ONLY
This also might help the user intuit on how the mlflow ui is "launched".

Willfix.

Further suggestion:

It might be useful to also add the manual pointer for the application part for consistency. e.g.
python3 mlflow ui --port CDSW_READ_ONLY
This also might help the user intuit on how the mlflow ui is "launched".

Willfix.


Incorporate SSE4.1/2 VirtualBox commands into Vagrantfile

This obviates the need for create.sh. I must thank you for the original VirtualBox commands!

Hi Mark,
Thank you very much for this, it's now merged.
By the way, now that I know that somebody is actually using this, I am going to push a couple of improvements I made that I never got around to share.
Thanks again,
Lorenzo

Hi Lorenzo,
Admittedly your repo (specifically create.sh) came up in a search for "vagrant intel sse 4.2". I incorporated the pair of VirtualBox commands into a Vagrantfile that I use to run Intel Pin for architecture research. Still, the readers of http://stackoverflow.com/q/25442195 would likely benefit from this repository. Thanks very much for sharing this!


wellcomecollection/docs in GitBook

Provide a GitBook representation of wellcomecollection/docs and consolidate docs where appropriate from across the platform.
So we provide a coherent view to new & external devs who might want to work with the platform.

Closing as stale.


SignInAnonymouslyAsync don't work after user been created.

auth.SignInAnonymouslyAsync().ContinueWith(HandleSigninResult);
after the first anonymous sign in new user is created in Firebase console.
when trying to signin again HandleSigninResult is not being called.
only after signout `HandleSigninResult is called but creating new user in console.

Are you seeing this on iOS or Android?  Any chance you could share an example of this, preferably by modifying our auth sample?

Are you trying to sign in twice with the same app?

I believed we fixed the issue of user sign-in persistence in our 1.1.0 release.  If a user signs in anonymously - and they don't sign out - relaunching the application should result in the user continuing to be signed in.  Could you verify?

We finally got a chance to debug this issue and it turns out that on Android we had a problem where if an async operation completes immediately it would never call the task completion handler.
The workaround for the moment - which I'm sure you're already doing - is to check to see whether the user is already signed in and not sign in if they are.
We'll have a fix out in our next release.

This should be resolved in version 1.1.1
https://firebase.google.com/support/release-notes/unity#1.1.1


Download output from AutomL

Hi, I have run an experiment with a data set on AutoML. How do you download the dataset with the predicted results?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 52d75487-5a8d-f735-bc34-8a5d90c52d86
Version Independent ID: b651cdfb-6d3b-8ce9-f665-be07b1f11273
Content: Evaluate AutoML experiment results - Azure Machine Learning
Content Source: articles/machine-learning/how-to-understand-automated-ml.md
Service: machine-learning
Sub-service: automl
GitHub Login: @manashgoswami
Microsoft Alias: magoswam

@DinLim
Thanks for your feedback! We will investigate and update as appropriate.

Hi @DinLim
Could you please go through this below link for your reference.
https://machinelearningmastery.com/how-to-connect-model-input-data-with-predictions-for-machine-learning/
Disclaimer: This response contains a reference to a third-party World Wide Web site. Microsoft is providing this information as convenient to you. Microsoft does not control these sites and has not tested any software or information found on these sites; therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there.
If there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.

Hi @DinLim
We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Explicit timeouts for IPFS API.

@jameshaydon Could we delay this until https://github.com/radicle-dev/radicle/pull/571 is merged? We will need to re-implement it after the switch from wreq to http-client


fix: fixed volcengine sdk component error handling

Fixed volcengine sdk component error handling.
Some code logic optimization.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


xontrib-direnv uses an incorrect commit

The xontrib-direnv package in this repo claims to be the latest version 1.6.3, but is actually using an outdated commit https://github.com/74th/xonsh-direnv/commit/3bea5847b9459c5799c64966ec85e624d0be69b9.

Fixed via 63d1081


Fix to enumerate resourceProviders that are not registered in current context

Overview/Summary
Closing #422.
This PR fixes/adds/changes/removes
Added -ListAvailable switch to Get-AzResourceProvider cmdlet to ensure all resourceproviders are enumerated regardless of registration status.
As part of this Pull Request I have

[X] Checked for duplicate Pull Requests
[X] Associated it with relevant issues, for tracking and closure.
[X] Ensured my code/branch is up-to-date with the latest changes in the main branch
[X] Performed testing and provided evidence.
[ ] Updated relevant and associated documentation.
[ ] Updated the "What's New?" wiki page (located in the Enterprise-Scale repo in the directory: /docs/wiki/whats-new.md)

/azp run


Performance and AMX utilization questions with optimum-intel 1.17 and 1.20 for LLM Inference on SPR CPU

I am using AMX on a SPR CPU to test LLM inference performance. Now I have problems about the performance of different optimum.intel interfaces.
I am using optimum-intel==1.17.0 and optimum-intel==1.20.0, with:
intel_extension_for_pytorch==2.4.0 torch==2.4.1 transformers==4.41.2.
I am trying to test llama-2-7b for inference, with BF16 precision.
As in https://github.com/huggingface/optimum-intel/issues/942, I am recommended to use from optimum.intel.pipelines import pipeline instead of from optimum.intel import inference_mode. Then I try to test their performance under the environment above. Result (avg. inference time) as follows. base means without optimum-intel and opt means with.

optimum-intel==1.17
inference_mode (to be removed)
optimum.intel.pipelines (recommended)

base
17.52
17.58

opt
17.31
1.00

optimum-intel==1.20
inference_mode (removed)
optimum.intel.pipelines (recommended)

base
N/A
17.58

opt
N/A
0.49

Using optimum-intel 1.17, I'm able to observe oneDNN primitives used with DNNL_VERBOSE, and control ISA (to control whether to use AMX) with DNNL_MAX_CPU_ISA, under base and opt setup.
Using optimum-intel 1.20, I am still able to do so in base (with native transformers), but failed in opt (optimum.intel.pipelines). These indicates that optimum-intel 1.17 is using oneDNN while optimum-intel 1.20 is not.
I learned that optimum-intel is partly based on intel-extension-for-pytorch (IPEX), and that IPEX uses libxsmm to use AMX (see in https://github.com/intel/intel-extension-for-pytorch/issues/517 and https://github.com/intel/intel-extension-for-pytorch/issues/720).
My questions are:

In optimum-intel 1.17, do inference_mode and optimum.intel.pipelines apply different optimizations? What's the difference?
It seems that the native transformers 4.41.2 is also using AMX (with oneDNN). How does optimum-intel 1.17's  optimum.intel.pipelines  better utilize AMX?
It seems that optimum-intel 1.20 doesn't use AMX with oneDNN. Then does it use AMX? If so, what does it use AMX with? libxsmm?
How can I verify that AMX is used by optimum-intel 1.20 and the corresponding native transformer?
As oneDNN is not used, how can I  control whether to use AMX and observe the primitives in another library? Any substitute for DNNL_MAX_CPU_ISA?

Many many thanks!
Code as follows:
# inference_mode (to be removed)
from transformers import pipeline
from optimum.intel import inference_mode

pipe = pipeline("text-generation",
        model=model_id,
        torch_dtype=torch.bfloat16
        )

if sys.argv[1] == 'base':
    result = benchmark(pipe)
elif sys.argv[1] == 'opt':
    with inference_mode(pipe, dtype=torch.bfloat16, jit=True) as opt_pipe:
        result = benchmark(opt_pipe)

# optimum.intel.pipelines (recommended)
from transformers.pipelines import pipeline as transformers_pipeline
from optimum.intel.pipelines import pipeline as ipex_pipeline

if sys.argv[1] == 'base':
    pipe = transformers_pipeline("text-generation", model_id, torch_dtype=torch.bfloat16)
elif sys.argv[1] == 'opt':
    pipe = ipex_pipeline("text-generation", model_id, accelerator="ipex", torch_dtype=torch.bfloat16)

with torch.inference_mode():
    result = benchmark(pipe)

In optimum-intel 1.17, do inference_mode and optimum.intel.pipelines apply different optimizations? What's the difference?
[Response] inference_mode mainly does the jitting to the model, so leverage compiling tech to fuse ops and get benefit. We think the usage experience is not aligned w/ vanilla transformers code, so changed to IPEXModel, in 1.20 IPEXModel, we inherit all the optimizations from inference_mode, and integrate IPEX custom op to further improve the performance.

It seems that the native transformers 4.41.2 is also using AMX (with oneDNN). How does optimum-intel 1.17's optimum.intel.pipelines better utilize AMX?
[Response] Extra performance are from 2 places: 1. graph fusion from jit 2. IPEX custom op has better AMX efficiency than stock PyTorch's(which is used by transformers).

It seems that optimum-intel 1.20 doesn't use AMX with oneDNN. Then does it use AMX? If so, what does it use AMX with? libxsmm?
[Response] Yes, use oneDNN or libxsmm depends on IPEX's strategy, the principle is to pick the one whose perf is better.

How can I verify that AMX is used by optimum-intel 1.20 and the corresponding native transformer?
[Response] You can use turbostat to check cpu runtime freq, when AMX is used, freq will be lower than not. Put it simple, they are both using AMX, the difference is some IPEX custom ops have better efficiency.

As oneDNN is not used, how can I control whether to use AMX and observe the primitives in another library? Any substitute for DNNL_MAX_CPU_ISA?
[Response] Maybe you can try LIBXSMM_TARGET.


Kafka segfaults fix

Fixes #165 (hoping)
If this appears successful, we can push for a release of confluent_kafka (last release in September https://github.com/conda-forge/python-confluent-kafka-feedstock/pull/3 )

(sorry about the commit history here, I'll clean it up)

OK, that didn't work. I'll remove the last two commits (I think things are already better in commit bade3e4 ) , but we should release confluent_kafka anyway https://github.com/confluentinc/confluent-kafka-python/releases/tag/v0.11.4
@mrocklin , ok to push that? There still isn't an API for listing partitions/topics, but if it comes, we can always do it again.

Do you mean create a new package for the newer version on conda-forge?
On Sat, Apr 7, 2018 at 11:03 AM, Martin Durant<EMAIL_ADDRESS>wrote:

OK, that didn't work. I'll remove the last two commits (I think things are
already better in commit bade3e4
https://github.com/mrocklin/streamz/commit/bade3e47407f3422aa7b531277567b60de7e2229
) , but we should release confluent_kafka anyway https://github.com/
confluentinc/confluent-kafka-python/releases/tag/v0.11.4
@mrocklin https://github.com/mrocklin , ok to push that? There still
isn't an API for listing partitions/topics, but if it comes, we can always
do it again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mrocklin/streamz/pull/166#issuecomment-379475776, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszDOs62t9NHfXgosNonGzD0sAq7-Zks5tmNVYgaJpZM4TLGIX
.

The latter

I think it's always a good idea to release packages on conda-forge.  While
doing so we might also inform the upstream confluent maintainers and ask if
they're interested in taking this on in the future.
On Sat, Apr 7, 2018 at 11:07 AM, Martin Durant<EMAIL_ADDRESS>wrote:

The latter
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mrocklin/streamz/pull/166#issuecomment-379476034, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszI72AGAVOHniwwpv0QikFbWO2ZLfks5tmNYygaJpZM4TLGIX
.

Yes agreed. Progress on the repo seems to be slow, though, this being a commercial invonlvement.

Codecov Report

Merging #166 into master will decrease coverage by 0.22%.
The diff coverage is 83.78%.

@@            Coverage Diff            @@
##           master    #166      +/-   ##
=========================================
- Coverage   92.73%   92.5%   -0.23%
=========================================
  Files          13      13
  Lines        1486    1494       +8
=========================================
+ Hits         1378    1382       +4
- Misses        108     112       +4

Impacted Files
Coverage Δ

streamz/sources.py
92.22% <83.78%> (-1.83%)
:arrow_down:

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 e712f41...8834e7b. Read the comment docs.

So I recommend merging this and updating the feedstock, but talking with confluent seems like a good idea too.

So I recommend merging this and updating the feedstock, but talking with confluent seems like a good idea too.

No objection from me.  I probably won't do anything on this personally for the next week or so.


Erase all numbers before 1 Rai import

There are 10^24 possibile combination before 1 Rai value.
These numbers can be used to store information, making chain heavier for non-transfer money usage.
If client make all number before 1 Rai to 0, and nodes reject tx with non 0 before 1 Rai should be a good solution.

When counting how much space the amount takes per transaction I look at the size of a send + receive block.
Send:
256 bits - Previous hash
256 bits - Destination account
128 bits - Amount
512 bits - Signature
Receive:
256 bits - Previous hash
256 bits - Source hash
512 bits - Signature
A full transaction, send + receive takes 2176 bits, shaving 64 bits off of the amount field would be a savings of about 3%.

Hi, I'm sorry if I explained myself wrong.
The "possible" problem could be caused by a system like this (my site, not spam) https://raiblockscommunity.net/news/?p=149.
The question is not "save space", the question would be avoid that space could be used for something different from simple send-receive value.
I'm not talking about "erase" 10^24 values, but just allow tx that have only zeroes in that values.
If not clear, I'll try to explain with others words. Thank you

Why would we want to disallow people using it for other things?  Block chain size?  I don't think it should be used for other things but it doesn't seem to bother me.

The only reason was to mantain RaiBlocks "the simplest way to send / receive a value", without the risk to become like Bitcoin which is being used for write post, etc... .
RaiBlocks -> only receive and send value, that was the reason. But if it doesn't bother you, It doesn't bother me too.


Update CircleCI configuration for pushing to container registries

Towards https://github.com/giantswarm/roadmap/issues/2979
Context: announcement in #news-dev on Slack
This PR was created through automation by Team Honeybadger, to make sure that the container images built for this repository are available in the right registries.
For that, the CircleCI configuration is modified to use the new push-to-registries job instead of the old push-to-docker. This means that there is only one job for all registry pushes, and it simplifies the configuration by removing many parameters that are now set automatically or as defaults.
Notes

Since the PR is also changing the CircleCI job name to push-to-registries, the branch protection rules in this repository will likely require updating before the required checks can be green.
Dev images are sent to ACR (gsoci.azurecr.io) and Quay currently. If you need dev images elsewhere, you can add the according configuration as described in the documentation to the step configuration.

To the responsible team
Please,

[ ] Assign this PR to yourself
[ ] Verify that the check ci/circleci: push-to-registries has been executed successfully.
[ ] Double-check the job dependecies (requires)
[ ] Double-check the job filters. Especially if this PR replaces several jobs with one, and the previous jobs had different filters, make sure that the filter includes all cases.
[ ] Update the changelog if you think this deserves a mention
[ ] Approve and merge this PR once it's ready. No need to wait for the author in this case.

Please get this done until December 5, so that we can move on with the next migration steps. Thank you!

We need this one first https://github.com/giantswarm/aws-rolling-node-operator/pull/49

@fiunchinho Don't know where this error came from. I just reran the failed job now and it has worked this time.


Is this a bug in SarsaLam implementation?

Hello,  I have been recently learning RL with Sutton's book along with implementation in BURLAP, and found an inconsistent place in SarsaLam algorithm.  I am wondering if this is a bug? Thanks!
In Sutton's book,  the replacing type of Eligibility trace is defined as 1 or lamba * discount * previous ET
(can't insert picture here, in sutton's online book v2, page 161)
But in SarsaLam.java,  runLearningEpisode, it will always replace the ET(s,a) not matched with 0. It looks like it should not set 0 in the else branch here.
            `  if(et.sh.equals(curState)) {
				if(et.q.a.equals(action)){
					foundCurrentQTrace = true;
					et.eligibility = 1.; //replacing traces
				}
				else{
					et.eligibility = 0.; //replacing traces
				}
			}`

Hi,
To be clear, the code has two nested ifs: the outer is to check if the states are the same, the other to check if the actions are the same. So when the states and actions are the same, the trace is set to 1 (replacing traces). When the states are the same, but the actions are different, the trace is reset to 0. Although there are different choices for how to replacing traces in control, this resetting of non-selected actions in the trace to zero is the approached advocated in the book:
https://webdocs.cs.ualberta.ca/~sutton/book/ebook/node80.html

There are several possible ways to generalize replacing eligibility traces for use in control methods. Obviously, when a state is revisited and a new action is selected, the trace for that action should be reset to 1. But what of the traces for the other actions for that state? The approach recommended by Singh and Sutton (1996) is to set the traces of all the other actions from the revisited state to 0.

Interestingly, the math they provide in the book is actually wrong, because after that text they include the accumulating traces for the same state-action pair and the reset to zero for state state different action :p However, the paper they're citing is clear and much more detailed on the reasoning. That paper is here:
http://www-all.cs.umass.edu/pubs/1995_96/singh_s_ML96.pdf
See the pseudocode on page 142
If you don't think there is something else I'm missing, I'll close.

Huh, interesting.  It looks like the second version of Sutton's book has inconsistency with his first version. (maybe because it's incomplete yet)
http://webdocs.cs.ualberta.ca/~sutton/book/the-book.html (page 161 definition,  page 162 pseudocode)
Anyway, thanks very much for your confirmation and the reference.  I am good to close it


Firefox - Containers with long names don't show up properly on host page

Version - master 3/22
Steps to Reproduce:

Create a stack, then a service where both have long names
Activate service and go to host page

Results: Notice none of the name shows up and only a ... is there

Expected: Should have some of the name showing.

I noticed this one as well when testing 1.0-rc2.  Since the container names tend to be very long (as they are "stack_service_instance") this effect is rather common

version - master 6/9
Verified fixed


numeric scale for PPEM axis: can't restrict to integers

In the Proposed Axis Details section of the PPEM proposal summary, it proposes the following:
Valid numeric range: Must be a non-negative integer.
Since this pertains to PPEM, I can understand the desire to limit values to integers. However, variation axes are inherently continuous, and there is no way to prevent an app from requesting an instance using a non-integer value for the axis. If the axis were not intended for variable fonts, then that might not be an issue. But the proposal specifically has variable fonts in mind.
The Valid numeric range field would need to be changed to say simply a non-negative value.
In the Additional Info field, you could indicate that only integer values should ever be selected. It might also be a good idea to recommend that applications round non-integer values so that only integer values are ever actually used in selecting an instance. Some related remarks might also be appropriate for the Suggested Programmatic Interactions and UI Recommendations fields.

Yes, you can alter

Valid numeric range: Must be a non-negative integer.

into

Valid numeric range: Non-negative numbers.

And in section Additional Info, add this paragraph:

Since this axis is used to represent PPEM, the deltas for only integeral ppem values are properly defined. Applications should not pass a non-integral value to the font. It is recommended that applications round non-integral values and then pass it into the font.

Does it matter if implementations differ in how rounding is done, or should a specific rounding be recommended?

@PeterCon
I prefer "Round half up".

Even is there is no way to prevent an app from requesting an instance using a non-integer value for the axis, (no matter how silly that may seem for an app to do, if it is offering the selection of the ppm axis;)), there is a way to make the variations along a ppm axis "include" a ppm instance's non-integer values so that no matter what the user might be tempted to ask for though a witless app, they will get a witty ppm.
My major concern with this axis is that, despite it's obvious usefulness might have been over the past 25 years, today's OS font software are doing sub-pixel positioning, do not produce a single rendering of a font for each size, and sometimes produce multiple renderings. And, it's come to my attention that pixel alignment in y, is about to go the same way.
So, maybe Peter has some input on the future of x and y pixel alignment that could inform us as to the best way to define the axis for the past as well as the future.

@dberlow For me, if a proper rasterizer could not make sure that it can perfectly align the glyph onto pixel grid, then it should pass 0 to this axis. So for ppem, if a rasterizer want to enable it it must:

Enable grid-fitting (interpret TT instr / CFF hint + GASP does not turn gridfit off)
Disable sub-pixel positioning


Animated gifs do not work on Xamarin.Forms Tizen

🐛 Bug Report
Hello, seems that GIF images are not animated on Xamarin.Forms Tizen. I tried to use both CachedImage and SvgCachedImage, but only the first frame is shown from the GIF.
<ffimageloading:CachedImage Source="animation/connecting.gif" VerticalOptions="Center" HorizontalOptions="Center" />
Is this an intended behavior? Or it should work on Samsung Tizen? I compile for Tizen 4.0, use the Tizen 5.0.0 SDK and Tizen.Wearable.CircularUI 1.3.0
If I use the standard Image component, it works the same way, also shows only the first frame from the GIF. I thought the FFImage should work.
Expected behavior
Reproduction steps
Configuration
Version: 1.x
Platform:

[ ] :iphone: iOS
[ ] :robot: Android
[ ] :checkered_flag: WPF
[ ] :earth_americas: UWP
[ ] :apple: MacOS
[ ] :tv: tvOS
[x] :monkey: Xamarin.Forms

you can create a cross ticket on Tizen.net github. Tizen guys can take care of it as well.


"New" status not documented in the Job statuses table

I am writing some code that checks the status of runbook jobs on an automation account. I was missing some jobs in my counts, and it looks like they are in an undocumented state.
The "New" status is used for recently submitted jobs and should be documented in the table for completeness.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: bf4da869-3f32-d2bb-d804-62679c1c3cbd
Version Independent ID: 49ec3073-a31e-a0ab-882d-17d3a7a420b0
Content: Runbook execution in Azure Automation
Content Source: articles/automation/automation-runbook-execution.md
Service: automation
Sub-service: process-automation
GitHub Login: @SnehaSudhirG
Microsoft Alias: sudhirsneha

@tleverresmith
Thanks for your feedback! We will investigate and update as appropriate.

@tleverresmith, thank you for the feedback. Did you see the job remain in the "New" status for a prolonged period of time? Interestingly, I have never seen that status with my Runbook jobs (or I might have missed it).
@SnehaSudhirG, could you please review this feedback and share your thoughts. Thank you

@tleverresmith, thank you for the feedback. Did you see the job remain in the "New" status for a prolonged period of time? Interestingly, I have never seen that status with my Runbook jobs (or I might have missed it).

The new jobs do not stay in that status for long, 10 seconds or so at the most from what I can see. I do not see the status when looking at the portal either, only when querying using Get-AzAutomationJob.
In my scenario I am using a Runbook to read a csv from storage and start subsequent jobs from that CSV after a few checks. I put in a limiter so it cannot start too many jobs at once. That limiter checks the status of previously started jobs for their status, to see if there is any room for more, and that is where I saw the "New" status on the freshly spawned jobs.

Thank you for your feedback, the info is live

#please-close


Multi errors

The json api spec allows an array of errors, but currently this isn't supported here. This would be a useful addition.

Agreed! Thanks for commenting. Most errors coming out of .NET are single exceptions but there does need  to be a way for a user to add more error messages onto the output.

The way I dealt with this was to create up a new CustomJsonApiActionFilter that inherits JsonApiActionFilter. I then override OnActionExecuted to return MultiErrorResult immediately if it's found:
public override void OnActionExecuted(ActionExecutedContext context)
{
    if (context.Result == null || context.Result is MultiErrorResult)
    {
        return;
    }
    base.OnActionExecuted(context);
}

MultiErrorResult is simply an ObjectResult that was created to have the same format as the JsonApi calls for:
public class MultiErrorResult : ObjectResult
{
    public MultiErrorResult(List<Error> errors) : base(null)
    {
        StatusCode = (int) HttpStatusCode.BadRequest;
        Value = new {errors = errors};
    }
}

I now can use MultiErrorResult to return validation errors as needed. I get that CustomJsonApiActionFilter is kinda a hack, but I have not yet had time to put together a pull request.


Add a support for a .button class

Sometimes you want to style your links as if they were buttons - and it would be handy to allow users to assign a class which would inherit button styling, so you can write this:
Click

This should render the same as this:
<button>Click</button>

Currently you have to @extend, but I am not sure if it's the best idea, because it affects the compile time.

Thanks for the suggestion, sounds like a good idea

Just some input regarding this.
This project is about resetting form elements, not styling them.
I would keep it simple and just remove all styles from the button element and let the user style their elements.

.Button,
button,
input[type="button"],
input[type="submit"] {
    /* whatever they desire */
}

Though lets be honest, Its been years and this wont happen.

Hey guys!
Sorry about the delay, I haven't had much time to dedicate to this project in ages.
I've been thinking about this and I'm not sure that adding a class here would be best. As @michaelmano said:

This project is about resetting form elements, not styling them.

I think adding a .button class will move this away from resetting form elements, to trying to style form elements. I think that extending the .button class is a good alternative. Although it will have slightly longer compile times, it wouldn't be so significant.
Let me know what you guys think.

@ireade I would love to see this project grow and will help out if you don't mind contributors.

@michaelmano Sure I'd be open to that!


How to change the color of the breadcrumb

Hi, I would like to change the color of the breadcrumb so that it is more visible according to my color scheme
currently:

wanted:

Do you know how to change this color easily?
Thanks.

I wouldn't want it red (and your font is really messed up, @Glaived), but I really don't like it being black on black. It's nearly invisible and looks "broken". I switched to bobthefish for this reason, but I'd prefer to stay in the fisher ecosystem. Please fix the breadcrumb color.


Bug: Identifier has already been declared

Impress and Node.js versions
v18.1.0
Platform
Linux marcus 5.17.13-200.fc35.x86_64 #1 SMP PREEMPT Mon Jun 6 14:38:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Describe the bug

Declare variable before method/object in merarhia module
Change file on the fly
SyntaxError: Identifier 'variableName' has already been declared

To Reproduce
const names = ['uno', 'due', 'tre'];

({
  rooms: new Map(),

  getRoom(name) {
    let room = domain.chat.rooms.get(name);
    if (room) return room;
    room = new Set();
    domain.chat.rooms.set(name, room);
    return room;
  },

  send(name, message) {
    const room = domain.chat.getRoom(name);
    for (const client of room) {
      client.emit('chat/message', { room: name, message });
    }
  },
});

Expected behavior
No response
Screenshots
No response
Additional context
18:43:47  W4   error   SyntaxError: Identifier 'names' has already been declared
  Script.runInContext (vm.js:144:12)
  new MetaScript (/node_modules/metavm/lib/vm.js:43:32)
  Object.readScript (/node_modules/metavm/lib/loader.js:14:18)
  async Modules.change (/node_modules/impress/lib/modules.js:67:27)

Done


fix id ylem, broken by a buggy migrate of reset data to the chain...

this check isn't quite as strong, but it serves the purpose and works around the bug

As I mentioned offline, there are about 700 people in this boat, so best not to hardcode exceptions for them.


br: expose s3 throttling 503 response to metrics

Development Task
expose s3 throttling 503 response to metrics during BR so can better debug where the bottleneck is when performance is not ideal

/component backup-restore

/severity moderate


Issue with component rendering after update

I recently updated from v 1.33 to 1.5 and am having an issue with my components rendering. The issue is persistent across both my background and content script.
In short if I make a change to the state for example on my popup script component I can see in the background script that the state updates but the component won't actually render the change until I close the popup window and re-open it. Looking through the releases I guess this is coming as a result of the 1.4 release where the proxy store state only receives a diff of the changes.
Not sure if you might know where the issue might lye or if you've seen someone else encounter the same issue?
Thanks and love the work you guys have done so far on this!

@ericnkatz and I recently attempted to jump from version 1.3.2 and have encountered a similar issue.
After an action is dispatched the logger shows the redux store in the correct state, but the store object in the content script does not reflect that correct state.
Not sure if it's helpful or not. But a weird thing I noticed is that sometimes some of the data is there and sometimes the data is not.
Say I had fields for duck, 'goose', eagle. Sometimes duck and goose are there (usually always together). Sometimes they are not. And eagle is never there.
Will continue to dig around.

Forgot to mention that I tried subscribing to the store as @tshaddix described in the comment above. The listener was triggered but the state was incorrect.
Oddly when i looked under the _root.entries key there appeared to be data in there that did reflect the redux state. Notice the tabs object is empty. But under _root.entries there is data.

Is it possible that somewhere the changes in https://github.com/tshaddix/react-chrome-redux/pull/100/files introduced this issue?

@ericnkatz I think that's the most likely case. The diff and patchState is most likely missing something. I'm pretty confident this is a bug now.

Alright, I've started to make some progress. I'm looking at the shallowDiff function and seeing the two objects entering it (old state and new state) having the same navigation state:

@redhouse1987 I found the error. In your navigation reducer, you are not returning a new state object, but instead using the existing one and overwriting the property.
The problem with this is that you are essentially changing the referenced "prevState" object used for patching diffs, so when the patch state starts looking for changes it is actually using the same object. With redux, we should never mutate the existing state.
Your stuff works by changing L9 in your navigation reducer to this:
 case 'SWITCH_LOGIN_REG_TAB': {
      let newNav = action.view;
      const newState = Object.assign({}, state, {
        popupLoginRegVariance:newNav
      });

      return newState;
}

Notice here we are now assigning to a new object, not the existing state.

@ericnkatz @ghargrove If this isn't the case for your apps, let's open a new issue with your code :)

Sounds good. Will try to generate a concrete example to reproduce.

Makes perfect sense and an oversight on my behalf! Thanks for the help @tshaddix

@redhouse1987 no problem!