Fluentd Pods stuck in "ContainerCreating" status in AKS post upgrade

We upgraded our AKS cluster from version 1.18.8 to 1.19.3. During the upgrade, the pods were restarted/recreated on upgraded nodes. The Fluend-es-* pods have all been stuck in "ContainerCreating" status since then. We tried uninstalling  and re-installing BKPR/kube-prod-runtime as well. All of the pods come up fine, everything else works fine except for these fluentd-es pods which give this error messages : "Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[varlogbuffers varlogpos fluentd-es-token-6sttb config configd varlibdockercontainers varlog]: timed out waiting for the condition". The other error message that we see in the events for these fluentd pods is "MountVolume.SetUp failed for volume "varlibdockercontainers" : hostPath type check failed: /var/lib/docker/containers is not a directory" prior to giving the other error.
We have not been able to figure out a solution. If someone can assist us, we would really appreciate.
kubectl get all --namespace=kubeprod
NAME                                            READY   STATUS              RESTARTS   AGE
pod/alertmanager-0                              2/2     Running             0          30m
pod/cert-manager-666c8b7f77-8l6pc               1/1     Running             0          30m
pod/elasticsearch-logging-0                     2/2     Running             0          30m
pod/elasticsearch-logging-1                     2/2     Running             0          30m
pod/elasticsearch-logging-2                     2/2     Running             0          30m
pod/external-dns-77d4fc59bf-f4xwl               1/1     Running             0          30m
pod/fluentd-es-2ksjg                            0/1     ContainerCreating   0          30m
pod/fluentd-es-6c892                            0/1     ContainerCreating   0          30m
pod/fluentd-es-9jf4n                            0/1     ContainerCreating   0          30m
pod/fluentd-es-rq4m9                            0/1     ContainerCreating   0          28m
pod/fluentd-es-x9bcr                            0/1     ContainerCreating   0          30m
pod/grafana-0                                   1/1     Running             0          30m
pod/kibana-58446f5b6-xxns4                      1/1     Running             0          30m
pod/kube-state-metrics-848584cb68-vrtkq         2/2     Running             0          30m
pod/nginx-ingress-controller-564c9845cf-7wf97   1/1     Running             0          30m
pod/nginx-ingress-controller-564c9845cf-xj97x   1/1     Running             0          30m
pod/node-exporter-77bdd                         1/1     Running             0          30m
pod/node-exporter-9pxml                         1/1     Running             0          30m
pod/node-exporter-bt6sp                         1/1     Running             0          30m
pod/node-exporter-nf4zw                         1/1     Running             0          28m
pod/node-exporter-sh7z7                         1/1     Running             0          30m
pod/oauth2-proxy-6fd457b756-jpsgr               1/1     Running             0          30m
pod/oauth2-proxy-6fd457b756-lccht               1/1     Running             0          30m
pod/prometheus-0                                2/2     Running             0          30m
NAME                            TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
service/alertmanager            ClusterIP      <IP_ADDRESS>              9093/TCP                     30m
service/elasticsearch-logging   ClusterIP      None                       9200/TCP                     30m
service/grafana                 ClusterIP      <IP_ADDRESS>             3000/TCP                     30m
service/kibana-logging          ClusterIP      <IP_ADDRESS>             5601/TCP                     30m
service/nginx-ingress           LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>   80:30008/TCP,443:31158/TCP   30m
service/oauth2-proxy            ClusterIP      <IP_ADDRESS>              4180/TCP                     30m
service/prometheus              ClusterIP      <IP_ADDRESS>              9090/TCP                     30m
NAME                           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/fluentd-es      5         5         0       5            0                     30m
daemonset.apps/node-exporter   5         5         5       5            5                     30m
NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/cert-manager               1/1     1            1           30m
deployment.apps/external-dns               1/1     1            1           30m
deployment.apps/kibana                     1/1     1            1           30m
deployment.apps/kube-state-metrics         1/1     1            1           30m
deployment.apps/nginx-ingress-controller   2/2     2            2           30m
deployment.apps/oauth2-proxy               2/2     2            2           30m
NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/cert-manager-666c8b7f77               1         1         1       30m
replicaset.apps/external-dns-77d4fc59bf               1         1         1       30m
replicaset.apps/kibana-58446f5b6                      1         1         1       30m
replicaset.apps/kube-state-metrics-848584cb68         1         1         1       30m
replicaset.apps/nginx-ingress-controller-564c9845cf   2         2         2       30m
replicaset.apps/oauth2-proxy-6fd457b756               2         2         2       30m
NAME                                     READY   AGE
statefulset.apps/alertmanager            1/1     30m
statefulset.apps/elasticsearch-logging   3/3     30m
statefulset.apps/grafana                 1/1     30m
statefulset.apps/prometheus              1/1     30m
NAME                                                           REFERENCE                             TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
horizontalpodautoscaler.autoscaling/nginx-ingress-controller   Deployment/nginx-ingress-controller   9%/80%    2         10        2          30m
horizontalpodautoscaler.autoscaling/oauth2-proxy               Deployment/oauth2-proxy               10%/80%   2         10        2          30m
NAME                                  SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
cronjob.batch/elasticsearch-curator   10 10 * * *   False     0                  30m
kubectl describe pod/fluentd-es-x9bcr --namespace=kubeprod
Name:           fluentd-es-x9bcr
Namespace:      kubeprod
Priority:       0
Node:           aks-nodepool1-50503828-vmss000000/<IP_ADDRESS>
Start Time:     Thu, 10 Dec 2020 21:22:42 -0500
Labels:         controller-revision-hash=7b4497658c
name=fluentd-es
pod-template-generation=1
Annotations:    prometheus.io/path: /metrics
prometheus.io/port: 24231
prometheus.io/scrape: true
scheduler.alpha.kubernetes.io/critical-pod:
Status:         Pending
IP:
IPs:
Controlled By:  DaemonSet/fluentd-es
Containers:
fluentd-es:
Container ID:
Image:         bitnami/fluentd:1.11.1-debian-10-r27
Image ID:
Port:
Host Port:
Command:
fluentd
Args:
--config=/opt/bitnami/fluentd/conf/fluentd.conf
--plugin=/opt/bitnami/fluentd/plugins
--log=/opt/bitnami/fluentd/logs/fluentd.log
--log-rotate-age=5
--log-rotate-size=104857600
--no-supervisor
State:          Waiting
Reason:       ContainerCreating
Ready:          False
Restart Count:  0
Limits:
memory:  500Mi
Requests:
cpu:     100m
memory:  200Mi
Environment:
ES_HOST:  elasticsearch-logging.kubeprod.svc
Mounts:
/opt/bitnami/fluentd/conf from config (ro)
/opt/bitnami/fluentd/conf/config.d from configd (ro)
/var/lib/docker/containers from varlibdockercontainers (ro)
/var/log from varlog (ro)
/var/log/fluentd-buffers from varlogbuffers (rw)
/var/log/fluentd-pos from varlogpos (rw)
/var/run/secrets/kubernetes.io/serviceaccount from fluentd-es-token-6sttb (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
config:
Type:      ConfigMap (a volume populated by a ConfigMap)
Name:      fluentd-es-30f242f
Optional:  false
configd:
Type:      ConfigMap (a volume populated by a ConfigMap)
Name:      fluentd-es-configd-cbf6e63
Optional:  false
varlibdockercontainers:
Type:          HostPath (bare host directory volume)
Path:          /var/lib/docker/containers
HostPathType:  Directory
varlog:
Type:          HostPath (bare host directory volume)
Path:          /var/log
HostPathType:  Directory
varlogbuffers:
Type:          HostPath (bare host directory volume)
Path:          /var/log/fluentd-buffers
HostPathType:  DirectoryOrCreate
varlogpos:
Type:          HostPath (bare host directory volume)
Path:          /var/log/fluentd-pos
HostPathType:  DirectoryOrCreate
fluentd-es-token-6sttb:
Type:        Secret (a volume populated by a Secret)
SecretName:  fluentd-es-token-6sttb
Optional:    false
QoS Class:       Burstable
Node-Selectors:
Tolerations:     node.kubernetes.io/disk-pressure:NoSchedule
node.kubernetes.io/memory-pressure:NoSchedule
node.kubernetes.io/not-ready:NoExecute
node.kubernetes.io/pid-pressure:NoSchedule
node.kubernetes.io/unreachable:NoExecute
node.kubernetes.io/unschedulable:NoSchedule
Events:
Type     Reason       Age                 From                                        Message

Normal   Scheduled    31m                 default-scheduler                           Successfully assigned kubeprod/fluentd-es-x9bcr to aks-nodepool1-50503828-vmss000000
Warning  FailedMount  29m                 kubelet, aks-nodepool1-50503828-vmss000000  Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[config configd varlibdockercontainers varlog varlogbuffers varlogpos fluentd-es-token-6sttb]: timed out waiting for the condition
Warning  FailedMount  24m                 kubelet, aks-nodepool1-50503828-vmss000000  Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[varlibdockercontainers varlog varlogbuffers varlogpos fluentd-es-token-6sttb config configd]: timed out waiting for the condition
Warning  FailedMount  18m (x2 over 22m)   kubelet, aks-nodepool1-50503828-vmss000000  Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[fluentd-es-token-6sttb config configd varlibdockercontainers varlog varlogbuffers varlogpos]: timed out waiting for the condition
Warning  FailedMount  15m (x2 over 27m)   kubelet, aks-nodepool1-50503828-vmss000000  Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[configd varlibdockercontainers varlog varlogbuffers varlogpos fluentd-es-token-6sttb config]: timed out waiting for the condition
Warning  FailedMount  13m                 kubelet, aks-nodepool1-50503828-vmss000000  Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[varlogpos fluentd-es-token-6sttb config configd varlibdockercontainers varlog varlogbuffers]: timed out waiting for the condition
Warning  FailedMount  11m (x2 over 20m)   kubelet, aks-nodepool1-50503828-vmss000000  Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[varlogbuffers varlogpos fluentd-es-token-6sttb config configd varlibdockercontainers varlog]: timed out waiting for the condition
Warning  FailedMount  8m55s               kubelet, aks-nodepool1-50503828-vmss000000  Unable to attach or mount volumes: unmounted volumes=[varlibdockercontainers], unattached volumes=[varlog varlogbuffers varlogpos fluentd-es-token-6sttb config configd varlibdockercontainers]: timed out waiting for the condition
Warning  FailedMount  51s (x23 over 31m)  kubelet, aks-nodepool1-50503828-vmss000000  MountVolume.SetUp failed for volume "varlibdockercontainers" : hostPath type check failed: /var/lib/docker/containers is not a directory

Closing the issue as we resolved the issue. We created the missing directory "/var/lib/docker/containers" on each of the nodes in the cluster using a node shell and all the fluentd pods came up fine after that. We overlooked the error on our part.
Thanks.


Keeping the MatCheckboxModule with the MockBuilder

Hi,
I ran into an issue when I wanted to keep the MatCheckboxModule with the MockBuilder.
When I use this
  beforeEach(() =>
    MockBuilder(AppComponent, AppModule).keep(MatCheckboxModule)
  );

then it fails with
// ng-mocks 10.5.1
TypeError: Cannot read property 'subscribe' of undefined
            at http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/observers.js:151:58
            at ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-evergreen.js:364:1)
            at ProxyZoneSpec.push.QpwO.ProxyZoneSpec.onInvoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-testing.js:292:1)
            at ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-evergreen.js:363:1)
            at Zone.run (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-evergreen.js:123:1)
            at NgZone.runOutsideAngular (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:27422:1)
            at CdkObserveContent._subscribe (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/observers.js:149:1)
            at CdkObserveContent.ngAfterContentInit (http://localhost:9876/_karma_webpack_/node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/observers.js:136:1)
            at callHook (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:3281:1)

when I use it without keeping the MatCheckboxModule the it works
  beforeEach(() =>
    MockBuilder(AppComponent, AppModule)
  );

using without the MockBuilder works too
  beforeEach(() => {
    TestBed.configureTestingModule({
      declarations: [AppComponent],
      imports: [MatCheckboxModule],
    }).compileComponents();
  });

Is there a way to keep "MatCheckboxModule" with the MockBuilder without failing?
It worked with ng-mocks v10.3.0 and starting to fail with 10.4.0 but the error was different
//  ng-mocks v10.4.0
NullInjectorError: R3InjectorError(DynamicTestModule)[MatCommonModule -> HighContrastModeDetector -> HighContrastModeDetector]:
          NullInjectorError: No provider for HighContrastModeDetector!
        error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'MatCommonModule', 'HighContrastModeDetector', 'HighContrastModeDetector' ] })
        NullInjectorError: R3InjectorError(DynamicTestModule)[MatCommonModule -> HighContrastModeDetector -> HighContrastModeDetector]:
          NullInjectorError: No provider for HighContrastModeDetector!
            at NullInjector.get (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:1013:1)
            at R3Injector.get (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:11130:1)
            at R3Injector.get (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:11130:1)
            at injectInjectorOnly (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:899:1)
            at Module.ɵɵinject (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:903:1)
            at Object.MatCommonModule_Factory [as factory] (http://localhost:9876/_karma_webpack_/node_modules/@angular/material/__ivy_ngcc__/fesm2015/core.js:174:146)
            at R3Injector.hydrate (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:11298:1)
            at R3Injector.get (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:11119:1)
            at http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:11156:1

I also created a repo for this one
https://github.com/michael-hein/ng-mocks-mat-checkbox
Thank you :)

Hi @michael-hein, thank you for the report. A nice finding. I'll fix it soon and release a fix.

I think if you install 1.5.0 it should work.

hi @satanTime thanks for your quick reply.
I tried it with ng-mocks 10.5.0 and 10.5.1 and still getting the same error.

Thanks for the update, I found the issue and fixed it.
I think that on 1.5.0 you need to add .keep(BrowserModule) too.
I'll update documentation tomorrow, and in the evening or the following day, release a new version.

Hi @michael-hein,
might you verify that the fix works for your project? ng-mocks.zip
Also, might I ask you why you want to keep MatCheckboxModule in a test?

Hi @satanTime,
thank you for the fix.
In the test-project it works pretty well but for the real one I run into some other errors related to other Angular-Material Components which were keept in the test.
Why we want to keep them was just the reason we wanted to test when I'm clicking on a checkbox and afterwards the save button that this save action gets dispatched with the right values. So that the formbinding, disabled states and so on works.
And I think when we mocked the mat-checkbox away then it was not so easy to change the value from the ui over the formbinding. So to keep it, was the easiest way.
In the evening I will check it out if its maybe the better/easier way to use the Component Harness (https://material.angular.io/guide/using-component-harnesses) to interact with the angular-material components. Currently I don't know if it works with a mocked component.
If you know a better way how to deal with the Angular Material Components in the tests, I'm glad about any advice :)
One of these errors is when keeping the MatCheckboxModule and the Module has multiple Angular-Material-Modules imported, then the error
MatRipple is part of the declarations of 2 modules: MatRippleModule and MockOfMatRippleModule occurs.
But it only appears when providing the 'itsModuleToMock' parameter in the MockBuilder.
(https://github.com/michael-hein/ng-mocks-mat-checkbox/tree/mock-of-mock)
MockBuilder(AppComponent, AppModule).keep(MatCheckboxModule)
@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    MatCheckboxModule,
    MatFormFieldModule,
  ],
  providers: [],
  bootstrap: [AppComponent],
})
export class AppModule {}

Error: Type MatRipple is part of the declarations of 2 modules: MatRippleModule and MockOfMatRippleModule! Please consider moving MatRipple to a higher module that imports MatRippleModule and MockOfMatRippleModule. You can also create a new NgModule that exports and includes MatRipple then import that NgModule in MatRippleModule and MockOfMatRippleModule.
            at verifySemanticsOfNgModuleDef (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:25958:1)
            at http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:25932:1
            at <Jasmine>
            at verifySemanticsOfNgModuleDef (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:25930:1)
            at http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:25949:1
            at <Jasmine>
            at verifySemanticsOfNgModuleDef (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:25947:1)
            at http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:25932:1
            at <Jasmine>

Tanks for your help :)

Ah, about the declaration thing - my bad, it is exportAll flag I added last release, I'll disable it by default in the fix for this ticket.
About the test, the scenario sounds more like an integration testing, and here ngMocks cannot do much, only to mock other dependencies :)

About the issue with

Type MatRipple is part of the declarations of 2 modules

The problem here is that MatCheckboxModule and MatFormFieldModule import the same modules, but for the check we want to keep them, whereas for the form we want to mock them due to rules of AppModule.
I think the right way would be to respect keep over mock. Because mock is mostly about declarations of the module itself, not its imports.
So if I declare a component, and import an module that exports another component, when I mock my module - first of all I expect my component to be mocked, and if something causes the imported module to stay as it is - okay, I don't see how it could affect the mocked component.
But if my component depends on the imported one and I want to keep my component, then 100% the imported one I want to keep until I mock it explicitly.
Please let me know what you think about it. Perhaps you have some other cases / ideas in your head.
Thanks.

Good news, at least for this issue I found a solution and it doesn't throw the error anymore.

Hi again, @michael-hein, might you check the new fix? ng-mocks.zip
Please let me know how it works for you.

I'm glad to hear that :)
At first sight I would see it like you, respect keep over mock.
Sorry, but I had some troubles to follow your cases in my mind.
But I think as long as the user has the possibility to explicit mock sth. and the explicit mock then wins, then it should be fine.
With the new fix the

Type MatRipple is part of the declarations of 2 modules

error is fixed.
Sadly when I'm using MatSlideToggleModule or MatSliderModule like the same way as the MatCheckboxModule, so keeping it in the test. Then it leads to the "subscribe" error again.
But only when I'm using multiple imports (MatCheckboxModule, MatSlideToggleModule) in the module. When removing MatCheckboxModule from the module then it works with the MatSlideToggleModule
(https://github.com/michael-hein/ng-mocks-mat-checkbox/tree/subscribe)
  beforeEach(() =>
    MockBuilder(AppComponent, AppModule).keep(MatSlideToggleModule)
  );

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    MatCheckboxModule, // <-- without this one it works
    MatSlideToggleModule,
  ],
  providers: [],
  bootstrap: [AppComponent],
})
export class AppModule {}

TypeError: Cannot read property 'subscribe' of undefined
            at MatSlideToggle.ngAfterContentInit (http://localhost:9876/_karma_webpack_/node_modules/@angular/material/__ivy_ngcc__/fesm2015/slide-toggle.js:113:1)
            at callHook (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:3281:1)
            at callHooks (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:3251:1)
            at executeInitAndCheckHooks (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:3203:1)
            at refreshView (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:7367:1)
            at refreshComponent (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:8473:1)
            at refreshChildComponents (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:7132:1)
            at refreshView (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:7376:1)
            at renderComponentOrTemplate (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:7440:1)

Thanks for the feedback, the implementation allows to change things inside of mocked / kept parent modules, let's see if it was sufficient.
Checking the new case, if you meet any other - just post it here. Looks like we are on a straight road to cover all Mat issues.

For the current code you can use MockBuilder(AppComponent, AppModule).keep(MatSlideToggleModule).keep(FocusMonitor), checking why FocusMonitor is mocked despite the kept module.

Here we go again,
ng-mocks.zip
Looking forward to hearing a new issue from you :)

Hi @satanTime,
with this fix, I couldn't find any new issues :)
thank you for your time and your fixes. I really appreciate that 👍

Glad to hear. Thanks for the reports and research. Feel free to report more if you find uncovered topics and things for the enhancements.
I'll release the fixes today.

10.5.2 has been released and contains a fix for the issue.
Feel free to reopen the issue or to submit a new one if you meet any problems.

Sorry for resurrecting this. Could my issue be related ?
For context:
I have a structural directive that I use on , but its selector does not mention mat-errors at all. This directive optionally injects: FormGroupDirective, MatFormField, MatCheckbox, MatRadioButton
The test:
describe('TranslateErrorDirective mat-checkbox', () => {
  beforeEach(() =>
    MockBuilder(TranslateErrorDirective)
      .keep(TranslateErrorModule)
      .keep(ReactiveFormsModule)
      .keep(MatCheckboxModule),
  );

  it(`Should render`, () => {
    const component = MockRender(`
<mat-checkbox [formControl]="checkbox">
  <mat-error *translateError="checkboxErrors; let errors">{{errors.key}}</mat-error>
</mat-checkbox>
    `);

    expect(component).toBeTruthy();
  });
});

The error:
Failed Tests:
 TranslateErrorDirective mat-checkbox
    Should render
       Chrome Headless 127.0.6533.88 (Windows 10)
          9) Error: Cannot find control with unspecified name attribute
             at _throwError (node_modules/@angular/forms/fesm2022/forms.mjs:3245:11)
             at setUpControl (node_modules/@angular/forms/fesm2022/forms.mjs:3028:13)
             at FormControlDirective.ngOnChanges (node_modules/@angular/forms/fesm2022/forms.mjs:4660:13)
             at FormControlDirective.call (node_modules/@angular/core/fesm2022/core.mjs:4110:14)
             at callHookInternal (node_modules/@angular/core/fesm2022/core.mjs:5150:14)
             at callHook (node_modules/@angular/core/fesm2022/core.mjs:5181:9)
             at callHooks (node_modules/@angular/core/fesm2022/core.mjs:5131:17)
             at executeInitAndCheckHooks (node_modules/@angular/core/fesm2022/core.mjs:5081:9)
             at selectIndexInternal (node_modules/@angular/core/fesm2022/core.mjs:11373:17)
             at ɵɵadvance (node_modules/@angular/core/fesm2022/core.mjs:11356:5)


Simulating ember-select2 via integration testing

I'm writing tests but am having a hard time programatically simulating clicks on this component:
So far I've tried this:
test("Checking navigation", function () {
  expect(1);
  visit('/hub');
  click('#btnLogin');
  andThen(function () {
    click('.select2-container');
    andThen(function () {
       //would like to see some interaction here
    })
  });
});

but the component doesn't respond.

I have managed this like so:
0 down vote unaccept
We need to hit the anchor inside the container
find(".select2-container:first a").trigger({type:'mousedown', which:1});

If you want to select an item in the dropdown you can do:
find(".select2-results li div:first").trigger({type:'mouseup', which:1});


Allow CSS Variables theme

Clear and concise description of the problem
Thanks for this library ❤🔥
We're looking to replace shiki and shiki-twoslash with shikiji and shikiji-twoslash in svelte.dev, kit.svelte.dev and learn.svelte.dev sites. There, we use CSS variables heavily for syntax highlighting and theme switching.
--sk-code-ts-bg: hsl(var(--sk-back-2-hsl));
--sk-code-base: hsl(45, 7%, 75%);
--sk-code-comment: hsl(0, 0%, 55%);
--sk-code-keyword: hsl(204, 88%, 65%);
--sk-code-function: hsl(19, 67%, 75%);
--sk-code-string: hsl(41, 37%, 68%);
--sk-code-number: hsl(120, 100%, 25%);
--sk-code-template-string: hsl(2, 80%, 47%);
--sk-code-tags: var(--sk-code-function);
--sk-code-important: var(--sk-code-string);
--sk-code-diff-base: hsla(0, 0%, 100%, 0.5);
--sk-code-diff-inserted: hsl(120, 46%, 48%);
--sk-code-diff-removed: hsl(2, 64%, 70%);

And the --shiki-color- variables are set accordingly:
body,
body.light,
body.dark {
  --shiki-color-text: var(--sk-code-base);
  --shiki-color-background: hsl(var(--sk-back-3-hsl));
  --shiki-token-constant: var(--sk-code-base);
  --shiki-token-string: var(--sk-code-string);
  --shiki-token-comment: var(--sk-code-comment);
  --shiki-token-keyword: var(--sk-code-keyword);
  --shiki-token-parameter: var(--sk-code-base);
  --shiki-token-function: var(--sk-code-function);
  --shiki-token-string-expression: var(--sk-code-string);
  --shiki-token-punctuation: var(--sk-code-base);
  --shiki-token-link: var(--sk-code-keyword);
}

Suggested solution
It would be nice to have some way to have CSS variables work, as in the codebase, these same variables(--sk-code-) are used in the svelte REPL as well. A big refactor which turns it to dual theme approach will be quite hard to do at this scale.
Alternative
Cant move to shikiji without this
Additional context
(I did commented on an issue with same content, but that didn't get any response, hence opening a new one)
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Tried a more agnositc approach #68, happy to hear what you think :)

Wow that's a real quick PR! 👑

Can you elaborate more on why this makes it hard to migrate? Is you want to keep exactly the same styling as the current theme strictly?

It would require hard-coding the colors into shiki theme as well, both light and dark. Those colors would have to coexist with the CSS variables, leading to duplication.

Tried a more agnositc approach https://github.com/antfu/shikiji/pull/68, happy to hear what you think :)

This one is nice!! I noticed you mentioned reinstating the CSS Variables approach. That would be ideal, but if it's too much tech debt, I'd still be happy using colorReplacements approach. An example of doing that in the docs would be appreciated!
Again, thanks for such a quick response!

https://shikiji.netlify.app/guide/theme-colors#css-variables-theme
Let me know if this unblocks your usage


Feature: Leading Edge Microspoilers

Merges in leading edge microspoiler capabilities from @Ben-Mertz, as well as error fixes to Bang-Bang controller and improvements to examples demonstrating both capabilities. Code is cleaned up from development cycle, and a .gitignore is added to the repo to ignore build-specific and sim-specific directories and files.

No conflicts, ready to merge.


Fix formatted string params

Was having issues with the exclude param, and it was (basically) trying to call "--exclude {} --exclude {}".format((a,b)) which gave me tuple index out of range

Ah - I see an older pull requests for the same issue. No worries


Not working as expected

The background of the page indicator is black, and I'm using a background image for my magicmirror, so its looks odd, how to make it transparent ?

I found a bug as well, if you put
 showPageIndicators: true,             showPageControls: true,
the modules fails its operation.

@shbatm
Any updates?

@E3V3A -- IIRC there was not actually a bug. This was a config problem on the users part. It was resolved on the MM2 forum (https://forum.magicmirror.builders/topic/5013/problem-with-alert-module/3).

I know this is closed, but it was never answered.
You can go to the MMM-Carousel.css then in the ".MMMCarouselContainer" section change the background color to:
 background-color: rgba(0, 0, 0, 0);


Localiztion for "X Y Selected" strings

In the table
https://next.carbon-addons-iot-react.com/?path=/story/1-watson-iot-table--playground
These strings are not currently localizing properly:

From thread:
https://ibm-watson-iot.slack.com/archives/C5TBUMDJ4/p1663882927905039
See section three here:
https://pages.github.ibm.com/globalization/gig/docs/All topics/How-to/GIG116 Guides to design PII for better translation.html
As well as this link, at the bottom of that section, to deal with plural grammar:
https://pages.github.ibm.com/globalization/gig/docs/All topics/How-to/GIG133 How to design plural forms in applications.html
Needs to be fixed in:
Data table
Lists w/multi-select actions
Other?

Fixing in Graphite


Add Ice and Fire: Dragons Support

From Raphtio on CurseForge:
I think traits should be very similar to this in the mod itself and use same items:
Dragon Bone Sword | Ice and Fire Mod Wiki | Fandom
Myrmex Stinger Sword | Ice and Fire Mod Wiki | Fandom
Hydra | Ice and Fire Mod Wiki | Fandom - poison effect (Hydra fang)
Witherbone | Ice and Fire Mod Wiki | Fandom - withering effect
If they will work with ranged weapons will be awesome.
Only for swords:
Phantasmal Blade | Ice and Fire Mod Wiki | Fandom

Adds "Flamed" upgrade modifier - Weapons

Knocks back target
Sets target on fire for 5 seconds
Bonus damage against Ice Dragons

Adds "Iced" upgrade modifier - Weapons

Knocks back target
Adds slowness to target for 5 seconds
Bonus damage against Fire Dragons

Adds "Zapped" upgrade modifier - Weapons

Knocks back target
Lighting strikes hit target
Bonus damage against Ice and Fire Dragons

Adds "Phantasmal" upgrade modifier - Swords

Launches Ghost Sword when swinging sword in air

Hum...
Would be nice if you could add part materials from Ice and Fire.
Like craft Phantamalk ingot by allowing a material with liquid soul. And have Ectoplasm be smelted into liquid soul.
Maybe a way to place the Dragon Forge Aperture to the Smeltery so you can use dragon breath as a fuel source instead of a fuel tank, so you can alloy dragon steel inside a smeltery by pouring dragon blood and molten iron inside of it.
You could also make so that some upgrade modifiers are actually material traits for exclusive Ice and fire parts.
Have some materials be exclusive for a specific tool part, like how you can only use chain to make a tool bind.
That way you can have Stymphalian Bird Feather to only make the blade parts. Or add the Myrmex Chitin as tool and armor materials.
Also, add withered bone and Necrotic Bone interchangeably.

I already added material support for this, just forgot to tag the commit. There are existing integrations as well.
@ffuentesm as for your request. Tinkers' doesn't work in a way that would allow integration of the dragon forge aperture, however, I did add the dragonsteel materials. That isn't really feasable. As for the custom material and part stuff, that is really way outside of the scope of how I want to do integrations. That would be an entirely separate mod or modpack to do that stuff. I don't have any plans to change this integration or others at this point. Possibly in the future, but not for 1.19.2, and I have no plans to backport anything to 1.18.2.
I can add withered bone to the recipe modifier tag.


Progress control improvements

It should render more detail depending on the height.   1 line, current design;  2 progress plus percentage;   3 framed;  4 frame with progress;  6 frame wothnprogress padded

Dupe: #546


Failing E2E keyboard interaction test for md-menu

The test should auto-focus the first item when opened with SPACE in menu.e2e.ts fails. It seems to me like sendKeys don't send properly the space key.

Yeah this is an issue with the chromedriver version 2.25.
Recently a new chromedriver v2.26 has been released and is going to be available soon for protractor.
See SHA https://github.com/angular/webdriver-manager/commit/b40a93f00f661b128b7853590d79cbc6dd3b87ee


Can't diretly use widget output in same cell

pipelines2 = list(af.select_pipelines_from_library()) returns an empty list.
while this works, when done in separate cells.
pipelines2 = af.select_pipelines_from_library()
list(pipelines2)
I'm guessing that in the first case the list conversion is done while the return proxy is still empty, thus I don't think one can avoid this.
This behavior also breaks different apps.
Likely for the same reason pipelines = pipelines+af.select_pipelines_from_library() does not work, although a user might expect it to.

The fact that these do not work make sense when knowing the inner workings of the ObjectProxy details. We have to trust the users to follow documented usage behaviours on this one.


ORC-1118: Support Java 17 and ARM64 docker tests

What changes were proposed in this pull request?
This PR aims two goals:

Support Java 17 docker test
Support ARM64 docker test

Why are the changes needed?
The current test Dockerfile contains a hardcoded architecture postfix -amd64 which was broken on ARM64.
Although we only support Apple Silicon so far, this test suite should support ARM64 first.
How was this patch tested?
Manually tested with the build argument in the OS directories on ARM64 machine.
docker build -t test --build-arg jdk=17 .

Note that protoc 2.5.0 supports only Intel Architecture and Apple Silicon so far. We cannot make the all Docker tests pass on ARM64.

Could you review this, @williamhyun ?

Thank you so much, @williamhyun ! Merged to master/1.7.


Android Plugin initialization

Hi,
when I read the documentation for the Android Plugin initialization the following code is proposed to initialize a plugin:
Plugins should use the initialize method for their start-up logic.

@Override
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
    super.initialize(cordova, webView);
    // your init code here
}

But when I look in the source code of CordovaPlugin#initialize it says that I shouldn't use the initialize method and pluginInitialize instead:
 Called after plugin construction and fields have been initialized.
 Prefer to use pluginInitialize instead since there is no value in
 having parameters on the initialize() function.

Is the documentation outdated?

The documentation appears to be outdated.
This override example was added 11 years ago (2013), while pluginInitialize was introduced 10 years ago (2014).
Somewhere in between, the initialize method was marked as @Deprecated, but the flag was later removed. I am unsure if @Deprecated was ever part of a production release of the platform.
The commit message states:

Thinking here is that we need a while for both initialize and pluginInitialize to exist before plugin authors would bother not using the deprecated one anyways. Really, no harm in keeping both for some time.

This explains why the @Deprecated flag was removed. However, it seems that this area was never revisited to remove the initialize method, nor was the documentation updated to reflect the introduction of the pluginInitialize method.
Although I was not contributing at the time, I would have suggested retaining the @Deprecated flag. Without the warning, developers might remain unaware of the new method and lack an incentive to make changes. Additionally, the documentation should have been updated to ensure that new plugin developers, especially those building their first plugin, would use pluginInitialize.

I believe we should update the documentation to recommend using pluginInitialize and remove any references to initialize.
Regarding the cordova-android repository, we could consider reintroducing the @Deprecated flag for the upcoming major release. This would give developers a clear warning about the method’s deprecation. Then, in one of the subsequent major releases, we could proceed with removing the initialize method entirely.... Maybe?
Thoughts?

Do you think the use of initialize could be referenced somewhere else in the documentation? I could make a PR to use pluginInitialize instead.

I tried looking through the documentation to see if there was any other place that might mention the initialize override, but I didn't find any. While there are older versions of the documentation, I don't think it's necessary to update them. If I were to commit this into any version, including dev, I would add it to the current one.

When you open the documentation, 12.x will always shown to the reader. If you switch manually to dev, it will not remember it. So I would suggest to add it also to 12.x but only, if 13.x will not be published the next time. What do you mean?

That. Add it to both 12.x and dev.

I created a PR #1387


Improve German translation

This pull request contains a commit that adds some more German translations.
Furthermore, some typos in the current translation were fixed.
In case you have other translation proposals we can discuss them, of course.

I got your comment wrong, sorry. I'm not very familiar the GitHub pull request site. The commit I pushed introduces the change you suggested.


GPU_BlitTransformX: USER ERROR - Mismatched renderer

Why would I be getting the following error in my console?
"GPU_BlitTransformX: USER ERROR - Mismatched renderer"
What might be some solutions to this?
A few notes on the issue:

I don't see anything graphically affected within my game while this error is occurring.  Mainly, this error just starts logging to the console after I kill an enemy (i.e. everything is fine before that point like just running around the level).  Obviously, there is something that's causing this when I kill an enemy which I am looking into but the contents of the error itself is puzzling me.  How could there be a mismatched renderer and yet everything still renders fine?  How could I have somehow mismatched the renderer and how would I un-mismatch it?  It seems to have started happening after I integrated imgui which leads to my next point.

I did just integrate imgui.  I mainly just repointed it to use the SDL_Window that SDL-GPU is using.  Everything here seems to work great and is rendering properly.  I am using the boilerplate SDL2+OpenGL3 example code found here:

https://github.com/ocornut/imgui/tree/master/examples/sdl_opengl3_example
Any information on this console error or ways to debug it would be greatly appreciated.
Thank you!

Hello!
I ended solving this problem by removing GPU_FreeImage(); from the Sprite class destructor.  The destructor was being called when an enemy was killed (obviously).  I recently added this  GPU_FreeImage(); because I thought it would be good to "clean up" but it ended up causing a ton of issues.  There were even hard game crashes/memory access violations happening because of it (again, obviously).
I wonder, is there a better place to call GPU_FreeImage() than the destructor the sprite class of an enemy being killed?
Not sure but at least my engine isn't completely broken now :]

The mismatched renderer error is supposed to happen if you use an image loaded by one renderer, say the OpenGL 4 renderer, and you try to render it on a target that was created with another renderer (e.g. OpenGL 1).  This should be rare, but it looks like there might be cases where the logic is wrong.  If you aren't using multiple renderers, then these cases shouldn't matter.
If GPU_FreeImage() is causing problems, then either there is a bug with the logic in FreeImage or else the image is getting freed multiple times.  What are you doing to initialize/create the image in the Sprite constructor?

Hi!
Here's the logic flow:

I use GPU_LoadImage(); to create a GPU_Image* from a .png file and get a GPU_Image* back.
I pass the returned GPU_Image* to the Sprite constructor to be stored as a member variable.
I use the GPU_Image* member variable during the Sprite class Render(); member function to run GPU_BlitScale(); to draw the sprite to the screen.
I call GPU_FreeImage(); on the Sprite class's GPU_Image* member variable in its destructor.
The destructor is called when the enemy is killed to free up the heap memory.

I would need to dig further to find out why/where the GPU_Image* is still trying to be accessed even after its containing class is destroyed.  It seems that something is still trying to access it which is probably an issue with my own code logic more than anything else :]


How to set gzip variables/parameters

How can I set  these variables? Only 'gzip' looks to be available as class parameter.
Can I set this with hieradata?
gzip_min_length 10240;
gzip_http_version 1.1;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6].";
Thanks for the help!

Ok .. no issue anymore. Solved it with hieradata. Thanks!


Polestar API token expires every 15 seconds

Is it expected that I have this log message every 15 seconds? I hope this isn’t contacting the Polestar service that often!
Polestar API Token Expires At  changed to 2024-11-11 20:28:07
20:23:23 - 6 seconds ago

This issue has been fixed but not fully released yet. You can install pre-release version 1.9.0rc3 for the fix!

Fixed in https://github.com/pypolestar/polestar_api/releases


Chinese gambling site linked in manuel

Hello,
please regard  State Machines / Nested State Machines in the manuel ("https://cruise.umple.org/umple/NestedStateMachines.html"). In a comment you can find a link to the following webpage:
www.lloseng.com
Unfortunately this link leads to an asian gambling and porn site. Please fix.

This change has been made. @nikecocola thanks! The actual website will be updated shortly.


Failed pytest includes [undefined] in title

Issue Type: Bug
Failed pytest includes [undefined] in title
Steps to reproduce:

Run a failing pytest
Compare console output with VS Code output

Diagnostic data

Python version (& distribution if applicable, e.g. Anaconda): 3.10.4
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Pyenv
Value of the python.languageServer setting: Pylance

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

XXX

User Settings

condaPath: "<placeholder>"

pipenvPath: "<placeholder>"

poetryPath: "<placeholder>"

languageServer: "Pylance"

linting
• banditEnabled: true

formatting
• provider: "none"

testing
• cwd: "<placeholder>"
• pytestArgs: "<placeholder>"
• pytestEnabled: true

Extension version: 2022.9.11661004
VS Code version: Code 1.68.0 (4af164ea3a06f701fe3e89a2bcbb421d2026b68f, 2022-06-08T11:44:00.250Z)
OS version: Darwin x64 21.5.0
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz (4 x 3400)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 2

Memory (System)
24.00GB (0.03GB free)

Process Argv
--crash-reporter-id ac9c06bb-90b4-41dc-96e4-b4c1ec5a0e40

Screen Reader
no

VM
0%

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscorecescf:30445987
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
vsc1dst:30438360
pythonvs932:30410667
wslgetstarted:30449410
vscscmwlcmt:30465135
cppdebug:30492333
vsclangdf:30486550

Screenshot of the issue -

We are working on a new test adapter for pytest. This might be a case where we are not picking up the details from pytest output via parsing. We have seen this occur when certain plugins are installed.

Hello! We have just finished our testing rewrite and are beginning the roll out to users. Could you give it a try and see if it fixes your issue? You need to be on vscode insiders and then add this setting to your users settings.json "python.experiments.optInto": ["pythonTestAdapter"]. We are in the process of switching all users to the rewrite but are doing so incrementally so if you do not have insiders, watch our release notes to get updated on when it will begin to hit stable. Let me know, thanks!

The originally reported bug is fixed in this experiment.

Great! Thank you!


chore: Bump docker distribution

Bump docker-distribution to v3.0.0-20220311160646-514cbd71bedb
Signed-off-by: jannfis<EMAIL_ADDRESS>

Codecov Report

Merging #393 (5823b25) into master (295d5c3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #393   +/-   ##
=======================================
  Coverage   65.60%   65.60%
=======================================
  Files          21       21
  Lines        2035     2035
=======================================
  Hits         1335     1335
  Misses        571      571
  Partials      129      129

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Bugfix/issue_461

Fix issue #461
This PR is ready for review.
Risk
This PR makes no API changes.
Testing Plan
Extend RouterServiceValidator.java, overriding findAllSdlApps method and return null for testing then call findAllSdlApps and handle null value.
New unit tests passed.
Summary
Although it's almost guaranteed to have findAllSdlApps to return a non null list.  We will attempt to handle the null case and prevent a npe crash here.

I am looking into this.

Codecov Report

:exclamation: No coverage uploaded for pull request base (develop@27d9dc3). Click here to learn what that means.
The diff coverage is 15.38%.

@@            Coverage Diff             @@
##             develop     #524   +/-   ##
==========================================
  Coverage           ?   39.73%
  Complexity         ?     2253
==========================================
  Files              ?      310
  Lines              ?    13783
  Branches           ?     1432
==========================================
  Hits               ?     5477
  Misses             ?     8107
  Partials           ?      199

Impacted Files
Coverage Δ
Complexity Δ

...rtdevicelink/transport/RouterServiceValidator.java
51.36% <15.38%> (ø)
42 <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 27d9dc3...08d38eb. Read the comment docs.

The list of Sdl list can be returned as empty; when it's empty, we return false early when trying to create a trusted list. This will fail or cause the flow to freeze for some of the current test codes because they are asserting true (list empty or not). Hence we are checking to see if the list of Sdl apps is non-null and not empty on setup. Only if it is, continue to test as we do previously; otherwise, ignore the now invalid test code.

Can you pull in develop again to resolve conflict?

@Tnnnguyen can you pull in develop to resolve conflicts? If not I will be closing the pull request.

I will pull in and resolve conflicts today or tomorrow.


Specifying anything other than AUTO generator strategy overrides type mapping

I'm not sure if this is expected behaviour, but I did find it very confusing. When specifying a generator strategy and a type in the mapping, the type mapping information is lost if the strategy is anything other than AUTO, eg. strategy NONE.
The reason is clear when looking at the code in Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo::mapField()
if ($generatorType !== self::GENERATOR_TYPE_AUTO) {
    if (isset($this->generatorOptions['type'])) {
        $mapping['type'] = $this->generatorOptions['type'];
    } elseif ($generatorType === ClassMetadata::GENERATOR_TYPE_INCREMENT) {
        $mapping['type'] = 'int_id';
    } else {
        $mapping['type'] = 'custom_id';
    }

    unset($this->generatorOptions['type']);
}

I found this very confusing, and maybe it should check first if a type was explicitly configured in the mapping, although I'm not sure how. Other possible solution is also excluding GENERATOR_TYPE_NONE from the condition?

@gerryvdm any chance you could provide a failing test case?

Retriaged because of no further details

Heh actually I just got hit by the issue while working on #1183, fix is on its way :)

Also for the record @alcaeus raised valid point that using generator option's type will be sufficient.


Adding Spark 3.1

Issue #, if available: Adding Support for Spark 3.1
Description of changes:
NOTE:
6 tests are failing, will look into it

E                   py4j.protocol.Py4JError: An error occurred while calling None.com.amazon.deequ.suggestions.rules.CategoricalRangeRule. Trace:
E                   py4j.Py4JException: Constructor com.amazon.deequ.suggestions.rules.CategoricalRangeRule([]) does not exist

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

Thanks for your contribution - I would prefer we use https://github.com/awslabs/python-deequ/pull/100 which seems more complete. Closing this for now.


Make Append goroutine safe #11

I think I had completed this mutex safe for shared resource length. Let me know, if i miss something

@nitinraavi there are far too many changes than required. updates to go.mod/sum, unnecessary line removals and so on. The comments in test are not helpful I prefer not having them

@nitinraavi there are far too many changes than required. updates to go.mod/sum, unnecessary line removals and so on. The comments in test are not helpful I prefer not having them

@avinassh  It looks better now, can u check once


Build error using command python setup.py install --headless --audio on branch RLRAudioPropagationUpdate

I'm installing soundspace 2.0 following the instruction https://github.com/facebookresearch/sound-spaces/blob/main/INSTALLATION.md and I encountered the following error. In brief, cmake cannot found RLRAudioPropagation_LIBRARY variable, which is
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
RLRAudioPropagation_LIBRARY
    linked by target "sensor" in directory D:/Programmes/soundspace/habitat-sim/src/esp/sensor

I'm running on a Windows system and my cmake version is the latest. Though the instruction seems to install a version of 3.14.0 but after I run the command of creating the conda environment, it's said that cmake cannot be found.
The whole output of command python setup.py install --headless --audio is
D:\Programmes\soundspace\habitat-sim\setup.py:22: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  from distutils.util import strtobool
running install
running bdist_egg
running egg_info
writing src_python\habitat_sim.egg-info\PKG-INFO
writing dependency_links to src_python\habitat_sim.egg-info\dependency_links.txt
writing requirements to src_python\habitat_sim.egg-info\requires.txt
writing top-level names to src_python\habitat_sim.egg-info\top_level.txt
reading manifest file 'src_python\habitat_sim.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'src_python\habitat_sim.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
running build_ext
Using relative rpath
CMake Deprecation Warning at deps/corrade/CMakeLists.txt:31 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at deps/assimp/CMakeLists.txt:39 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- Shared libraries disabled
-- Looking for DirectX...
-- DirectX_PREFIX_PATH changed.
-- Could not locate DirectX
-- Looking for ZLIB...
-- Checking for module 'zzip-zlib-config'
--   No package 'zzip-zlib-config' found
-- Found ZLIB: optimized;D:/anaconda3/Library/lib/z.lib;debug;D:/anaconda3/Library/lib/z.lib
-- Build an import-only version of Assimp.
CMake Deprecation Warning at deps/assimp/code/CMakeLists.txt:46 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Warning (dev) at C:/Users/whao_e/AppData/Local/Programs/Python/Python310/Lib/site-packages/cmake/data/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (rt) does
  not match the name of the calling package (RT).  This can lead to problems
  in calling code that expects `find_package` result variables (e.g.,
  `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  deps/assimp/cmake-modules/FindRT.cmake:19 (find_package_handle_standard_args)
  deps/assimp/code/CMakeLists.txt:1013 (FIND_PACKAGE)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find rt (missing: RT_LIBRARY)
-- Enabled importer formats: AMF 3DS AC ASE ASSBIN B3D BVH COLLADA DXF CSM HMP IRRMESH IRR LWO LWS MD2 MD3 MD5 MDC MDL NFF NDO OFF OBJ OGRE OPENGEX PLY MS3D COB BLEND IFC XGL FBX Q3D Q3BSP RAW SIB SMD STL TERRAGEN 3D X X3D GLTF 3MF MMD STEP
-- Disabled importer formats:
-- Enabled exporter formats:
-- Disabled exporter formats: 3DS ASSBIN ASSXML COLLADA OBJ OPENGEX PLY FBX STL X X3D GLTF 3MF ASSJSON STEP
CMake Warning (dev) at cmake/dependencies.cmake:129 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  CMakeLists.txt:147 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonInterp: C:/Users/whao_e/AppData/Local/Programs/Python/Python310/python.exe (found suitable version "3.10.1", minimum required is "3.7")
-- Bindings being generated for python at C:/Users/whao_e/AppData/Local/Programs/Python/Python310/python.exe
CMake Deprecation Warning at deps/pybind11/CMakeLists.txt:8 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- pybind11 v2.10.0
CMake Warning (dev) at deps/pybind11/tools/FindPythonLibsNew.cmake:98 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  deps/pybind11/tools/pybind11Tools.cmake:50 (find_package)
  deps/pybind11/tools/pybind11Common.cmake:180 (include)
  deps/pybind11/CMakeLists.txt:200 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonInterp: C:/Users/whao_e/AppData/Local/Programs/Python/Python310/python.exe (found suitable version "3.10.1", minimum required is "3.6")
-- OpenEXR is configuring as a cmake subproject
-- Imath was not found, installing from https://github.com/AcademySoftwareFoundation/Imath.git (v3.0.5)
-- Imath is configuring as a cmake sub project
-- Configure Imath 3.0.5, library API version: 28.0.2
-- pkg-config generation disabled
-- -- pkg-config generation disabled
-- Configure OpenEXR 3.0.5, library API version: 29.0.0
CMake Deprecation Warning at deps/magnum/CMakeLists.txt:26 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility Main TestSuite
-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility PluginManager
CMake Deprecation Warning at deps/magnum-plugins/CMakeLists.txt:26 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility
-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility PluginManager
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade AnyImageImporter
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade AnyImageImporter
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: MeshTools Trade GL Primitives
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade GL MeshTools
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade
CMake Deprecation Warning at deps/magnum-integration/CMakeLists.txt:29 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: GL Shaders
CMake Deprecation Warning at deps/magnum-bindings/CMakeLists.txt:26 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: GL SceneGraph
-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility PluginManager
-- Warning: this does not have an effect - use NO_SYSTEM_FROM_IMPORTED if using imported targets
-- Could NOT find GLFW (missing: GLFW_LIBRARY GLFW_INCLUDE_DIR)
-- Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)
-- Could NOT find Magnum (missing: GlfwApplication Sdl2Application)
    Reason given by package: GlfwApplication is not built by default. Make sure you enabled MAGNUM_WITH_GLFWAPPLICATION when building Magnum. Sdl2Application is not built by default. Make sure you enabled MAGNUM_WITH_SDL2APPLICATION when building Magnum.

-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: GL WindowlessWglApplication

-- Warning: this does not have an effect - use NO_SYSTEM_FROM_IMPORTED if using imported targets
Building with ptex support
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src
-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility PluginManager
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade GL MeshTools Primitives SceneGraph Shaders AnyImageImporter AnySceneImporter DebugTools AnyImageConverter
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade AnyImageImporter
-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: GL WindowlessWglApplication

-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility PluginManager
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: GL Shaders Trade
-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: GL WindowlessWglApplication

-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility PluginManager
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade GL MeshTools AnyImageImporter AnySceneImporter SceneGraph SceneTools Shaders Primitives
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade MeshTools GL AnyImageImporter Primitives
-- Found MagnumPlugins: D:/Programmes/soundspace/habitat-sim/src/deps/magnum-plugins/src  found components: BasisImporter GltfImporter PrimitiveImporter StanfordImporter StbImageImporter StbImageConverter
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade AnyImageImporter
-- Found MagnumPlugins: D:/Programmes/soundspace/habitat-sim/src/deps/magnum-plugins/src  found components: AssimpImporter
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: MeshTools Trade GL Primitives
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src  found components: Trade AnyImageImporter
-- Found MagnumPlugins: D:/Programmes/soundspace/habitat-sim/src/deps/magnum-plugins/src  found components: GltfImporter StbImageImporter StbImageConverter
Building Python bindings
-- Found Corrade: D:/Programmes/soundspace/habitat-sim/src/deps/corrade/src  found components: Containers rc Utility
-- Found Magnum: D:/Programmes/soundspace/habitat-sim/src/deps/magnum/src
-- Configuring done (7.3s)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
RLRAudioPropagation_LIBRARY
    linked by target "sensor" in directory D:/Programmes/soundspace/habitat-sim/src/esp/sensor

-- Generating done (0.9s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
Traceback (most recent call last):
  File "D:\Programmes\soundspace\habitat-sim\setup.py", line 468, in <module>
    setup(
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\install.py", line 67, in run
    self.do_egg_install()
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\install.py", line 109, in do_egg_install
    self.run_command('bdist_egg')
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\bdist_egg.py", line 164, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\bdist_egg.py", line 150, in call_command
    self.run_command(cmdname)
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\site-packages\setuptools\command\install_lib.py", line 11, in run
    self.build()
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\command\install_lib.py", line 107, in build
    self.run_command('build_ext')
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "D:\Programmes\soundspace\habitat-sim\setup.py", line 271, in run
    self.build_extension(ext)
  File "D:\Programmes\soundspace\habitat-sim\setup.py", line 372, in build_extension
    subprocess.check_call(
  File "C:\Users\whao_e\AppData\Local\Programs\Python\Python310\lib\subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:\\Users\\whao_e\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\cmake\\data\\bin\\cmake', '-DBUILD_PYTHON_BINDINGS=ON', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=D:\\Programmes\\soundspace\\habitat-sim\\build\\lib.win-amd64-3.10\\habitat_sim\\_ext', '-DPYTHON_EXECUTABLE=C:\\Users\\whao_e\\AppData\\Local\\Programs\\Python\\Python310\\python.exe', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DREL_BUILD_RPATH=ON', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DBUILD_GUI_VIEWERS=OFF', '-DBUILD_TEST=OFF', '-DBUILD_WITH_BULLET=OFF', '-DBUILD_WITH_VHACD=OFF', '-DBUILD_DATATOOL=OFF', '-DBUILD_WITH_CUDA=OFF', '-DBUILD_BASIS_COMPRESSOR=OFF', '-DBUILD_WITH_AUDIO=ON', 'D:\\Programmes\\soundspace\\habitat-sim\\src']' returned non-zero exit status 1.

Oh it seem that Windows is not suitable to build that. Linux is fine.

I tried on a linux one and it also generate this error. can someone help to diagnose where is the reason?


The height of NAVBAR

Feature request-
The height of navbar is not so good according to logo and website name. The name and logo looks so congested for height of navbar.
It looks like con
Is your feature request related to a problem? Please describe. (optional)
It's not an problem but website should be good for user experience.
Describe the solution you'd like
I want to increase the height of navbar.
Describe alternatives you've considered
To change the font style of website name if allow me...
Describe how this feature will be useful to our readers.
If in first expression the website looks good, more readable then anyone will stop to explore website even more.
Additional context
The logo of website also moving after the height of navbar. If height can be increase then logo will look good and navbar will highlight as well.

Note:

Do mention if your are working under GSSoC'21.
If you want to work on an issue, you should check if it has already been assigned to anyone. If the issue is free you can comment /assign to get the issue assigned to you.
If you are raising a new issue and want to work on it then also you should comment /assign under the issue to get it auto assigned.
Please refrain from adding labels to your issue/pull-request on your own. It is the job of the Project Admin and the Mentors to review your issue/pull-request and add labels accordingly.
According to the level of the issue, respective time will be allotted under which the task needs to be completed/resolved by the assigned person. If the issue is not resolved within the given time, it will be assigned to the next person. In case of any discrepancies, the decision of the maintainer will be final.

level - 0: 2 days
level - 1: 3 days
level - 2: 4 days
level - 3: 5 days

/assign

Valid issue 👍

/reviewed

Valid issue 👍

Thanks, Please review the idea.
Looking forward to contribute here....


wlgen: Collect FTrace events by default

This update rt-app to the most recent verison available upstream:
commit 99a96293ace6 ("Merge pull request #80 from derkling/add-ftrace-categories")
which introduced support to inject ftrace events grouped by categories.
This new support will unlock the possibility to build DataFrame getters for the
performance analysis that better matches other trace events.
With this change, rhe current rt-app verison is now: v1.0-95-g72ab18b
Signed-off-by: Patrick Bellasi<EMAIL_ADDRESS>

Here is a fixed rt-app which completes the code we re-introduced in #1057.
Let see if Travis:
https://travis-ci.org/ARM-software/lisa/builds/581210948
will be now happy with this version:

Here is an updated version of this PR which provides the new rt-app with ftrace events support as well as a change for wlgen to collect trace events by default instead of logfiles.

This should have now addressed all the comments originally in #959

The above issue is now fixed by the patch added on top to the series in #1073.

To reduce confusion, let's close this PR and move these patches as part of #1073 since rt-app update required changes in that PR to avoid breaking some of our tests.


NIFI-10262: Ensure that when an Exception is thrown from a Controller…

… Service's @OnEnabled method that we properly handle that Exception and continue enabling the other services in the given collection of services

Summary
NIFI-00000
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[ ] Apache NiFi Jira issue created

Pull Request Tracking

[ ] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[ ] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[ ] Pull Request based on current revision of the main branch
[ ] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[ ] Build completed using mvn clean install -P contrib-check

[ ] JDK 8
[ ] JDK 11
[ ] JDK 17

Licensing

[ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[ ] Documentation formatting appears as expected in rendered files

The automated build failures seem specific to the GitHub runner. Will rebase on current main branch to see that resolves the issues.

@markap14 after taking a closer look, apparently the rebase resulted in code changes resulting from the merge of NIFI-10246 in PR #6219. Although the merge did not produce any Git conflicts, it resulted in making StandardControllerServiceProvider invalid. I restored the else block added in NIFI-10246 to the disableControllerServices() method and force-pushed changes to the branch.
That change should allow the build process to move forward, but I will avoid making any additional changes and let you confirm that the current state of this branch reflects the original changes intended.

Ah, wow. Good catch. All looks good to me. Thanks @exceptionfactory !


Clean HostDB shutdown

Some other small tweaks as well.

This really should be multiple PRs, would ask you to make multiple PRs in the future. Just to keep concerns separated.

yeah, fair :+1:


chore: update packages

Update packages only, for the documentation site and in build

@LeeDongGeon1996 I think we need to go to manual upgrade of the DLL in the repo.  We’ve diverged enough that it no longer makes sense to simply take the latest automatically in the build; it should be an intentional Dev choice.

Agree with that. To follow up v3.0 DLL, it needs substantial changes.


Improvements of SCI in-abapgit

Trying to force pre-commit SCI check on one of my projects ... would probably like to do a couple of improvements

Make it possible to force-skip the check and go on to stage. Kind of contradicts the idea, but needed sometimes :)
Maybe extract an SCI button to the upper level (repo) menu as an icon ...
Maybe add 2 variants of SCI. One to run unit tests (only unit tests) for the whole package. Another is to run only for the staged objects (to reduce time)
... consequently sci should be able to respect staged objects list
... and the check should be moved to between stage and commit (is it a good idea ?)

Does the above make sense ? :)

👍 I assume projects using pull requests, so it might not be the final version of the change
I worry about getting too many buttons, but guess it should only show up if configured
3: ok
4: ok
seems good to me, move it as early as possible

This pretty much meets my requirements

configuration per repo
option to pick which SCI check variant to run on demand
option to pick which SCI check variant to run automated
option to select whether any errors block a commit or can be skipped

"On demand" could be a single "check button" (instead of several menu items) on repo view and staging
"Automated" could be triggered at various events (before stage, before commit, scheduled)

I like the option to just run the checks on the changed objects / selected objects for stage.
to 1. : I removed the default sci variant for the repo because i do not always want to run SCI. With force skip it would be possible to define it again.

What's the idea behind 1)? Right now you can define a check variant and if it's not enforced by setting Block Commit If Code Inspection Has Errors to true in the repository settings, you can skip it and push anyway. Is this different for forced stages?

Right now ... you can skip it and push anyway @GiantCrocodile

Yes, I found it too already. But in fact it means it is confusing and not obvious that you can. So at least I'd change the name to "Force stage" or "Stage anyway".

With force skip it would be possible to define it again @ed-holland

So... it kind of possible.
One more idea is to skip the screen of CI if it was successful. Instead show "CI passed" green label somewhere at stage/commit level.
And more: I was imagining the process, in particular, when the check should happen. Now it is before stage. But if reduce the scope of check to staged objects - it must move to after stage. At the same time my idea is to run UTs for all and static checks for staged. So maybe run UTs before stage and statics after ? But it is really confusing!!! I think we should combine repo_view and stage pages first. (Or at least somewhen at the same time). Or move both checks after stage. Just thoughts.

Hm, I don't see how this is confusing or hard to find out: The stage button is there as always and it's not grayed out or differs in any way to the other cases where you can stage. The term 'force stage' or 'stage anyway' could be misleading because you might think this is related to Git's force or that there's some issue and you wanna force anyway although there's actually no issue and you are fine to stage it anyway as it's not disabled/prevented by the configuration.
Regarding removing the screen of CI is fine for me if there's at least an indicator on the same level which shows that SCI was run indeed. This is a must have to make sure that you are aware if there was no SCI run at all due to some kind of technical issues.
Why does it have to happen after the stage if you want to reduce the object list to objects of your stage only? In our workflow it is mandatory that you can't push code with quality issues to Git so a SCI check after the stage would be too late in our scenario. Furthermore I wouldn't separate Unit Tests and ATC checks. I would leave it open to run both before staging, after staging or only one of the two before/after staging.
Don't get me wrong: I like to see improvements regarding ATC/SCI integration but we need to plan this in detail and make sure that we don't enforce some workflow that simply doesn't fit to all projects/companies. We invested some months of time with this process and it gives us a good process with the workflow as it is; the process fits to what we wanted to realize and it has no throw backs that hinders us in any way. So I'm a bit reluctant to change it this easily.

Force stage: I don't see how this is confusing or hard to find out

Well, it was not obvious for me initially. I always prefer to note such things. If the feature is not obvious to a person (me or the one I observe) then it may not be obvious to more. In terms of usability it would be better to emphasise overriding nature of Stage when CI didn't pass. Maybe it is color coding ? Maybe text (preferably). Any better text ideas than "Force" ? Kind of "Ignore and Stage" ??

Regarding removing the screen of CI is fine for me if there's at least an indicator

totally. both on stage and commit pages. some kind of green/red marker "CI passed"/"CI failed"

Why does it have to happen after the stage ... would leave it open to run both before staging

My idea was that. Unit tests should run for all. And "real" SCI check only for objects to commit. So "real" must be after stage. And UTs "as soon as possible" to give quick feedback.
 After reading your comment I though that actually:
Selected ≤ Changed < All, where Selected are usually similar to Changed, and Changed are usually significantly smaller than All. Which means that limiting to changed objects is probably good enough. Which means both check can be indeed run together before the stage! Thanks for the idea !
BTW, I wonder if it is possible to create SCI variant dynamically. So that unit test variant would not need to be created manually. Could be nice to have it as a mere flag yes/no in the settings

Adding #4057 here to consolidate

Hey @sbcgua,
I totally agree that there are some things that ain't that clear. For me abapGit was and is a solution that works great but has room for improvements regarding its usability. I think the Code Inspector/ATC functionality is already quite good regarding usability. Other abapGit areas might need more improvement regarding this.

In terms of usability it would be better to emphasise overriding nature of Stage when CI didn't pass. Maybe it is color coding ? Maybe text (preferably). Any better text ideas than "Force" ? Kind of "Ignore and Stage" ??

I think working with colors isn't that good as we would need proper support for color-blind people then and it becomes quickly a mess if colors are unclear, someone doesn't know which color is used (e. g. purple vs. pink), colors get changed, etc. We should stay with a text-approach. I agree that we could emphasise the overriding nature more. Ignore and Stage or Proceed anyway would be great. The term 'Staging' isn't that clear for ppl. who are not used to this term in this context I think.

My idea was that. Unit tests should run for all. And "real" SCI check only for objects to commit. So "real" must be after stage. And UTs "as soon as possible" to give quick feedback.

In our case this wouldn't fit: We would like to run Unit Tests and ATC (ATC can trigger Unit Tests itself) always. Performance is no issue in our case but high code quality shall and must be met anytime. So I think this must be configurable and be a decision to be decided by the quality assurance team of a company; not decided/given by abapGit. Furthermore think that could lead to problems where Unit Tests would pass but the overall scenario shouldn't pass (like single objects are coded fine and positively checked by Unit Tests but the objects are used in a non-conform way which ATC would detect as ATC checks the whole context of an object).

Selected ≤ Changed < All, where Selected are usually similar to Changed, and Changed are usually significantly smaller than All. Which means that limiting to changed objects is probably good enough. Which means both check can be indeed run together before the stage! Thanks for the idea !

Hehe thank you :P. I like the idea to reduce the scope of objects to be checked as that highly reduces the runtime and costs of ATC checks. We would have to see how this can be done and if there's some pitfalls involved.

BTW, I wonder if it is possible to create SCI variant dynamically. So that unit test variant would not need to be created manually. Could be nice to have it as a mere flag yes/no in the settings

Can you elaborate why an dynamic creation of the check variant is needed? I think ATC can run all Unit Tests of a specific package without manually selecting each newly created Unit Test. I've never used those Unit Test checks in ATC so I'm not sure but I think there was something like this. Creating a check variant dynamically could be an issue if you have to understand/reproduce which checks were run for specific objects, e. g. for compliance reasons.
If the CI/ATC integration gets improved, we also should improve that

exemptions can be requested and shown within abapGit
description and other information is shown as like as in the ATC result list in the ALV_GRID of the SE80

That would be important too but of course it's a different topic and should be discussed separately.
Best Regards,

it's Ignore and Stage then :)

Dynamic creation of UTs variant and Ko...

My idea was that to AG will not control if you created a variant with UTs only or with something else more. So it would be better to create UT only variant on-the fly ...

... but your doubts gave we another idea. Why limit to UTs ? You may want to run some checks (unit tests including) for the whole package always. This means having 2 SCI variants in the settings. You may specify the only the 1st, or only the 2nd, or both how you prefer! This would be flexible and lean. So my process would looks like: "always UTs for the whole package" + e.g. "abaplint for changed objects"
So thanks for another idea :)

exemptions ...

hmm, yeah. That's a next level ... needs a separate discussion I guess.


coerce_primitive not honored when decoding from serde object

Describe the bug
It looks like the coerce_primitive configuration option on ReaderBuilder is not honored when decoding from serde-compatible objects like serde_json::Value.
To Reproduce
Code to add a test to arrow-json/src/reader/mod.rs that triggers the error
    #[test]
    fn test_coercing_primitive_into_string_decoder() {
        let buf = r#"[
            {"a": 1, "b": "A", "c": "T"},
            {"a": 2, "b": "BB", "c": "F"},
            {"a": 3, "b": 123, "c": false}
        ]"#;
        let schema = Schema::new(vec![
            Field::new("a", DataType::Float64, true),
            Field::new("b", DataType::Utf8, true),
            Field::new("c", DataType::Utf8, true),
        ]);
        let json_array: Vec<serde_json::Value> = serde_json::from_str(buf).unwrap();

        let schema_ref = Arc::new(schema);

        // read record batches
        let reader =
            ReaderBuilder::new(schema_ref.clone()).with_coerce_primitive(true);
        let mut decoder = reader.build_decoder().unwrap();
        decoder.serialize(json_array.as_slice()).unwrap();
        let batch = decoder.flush().unwrap().unwrap();
        println!("{:?}", batch);
    }

called `Result::unwrap()` on an `Err` value: JsonError("whilst decoding field 'b': expected string got 123")
thread 'reader::tests::test_coercing_primitive_into_string_decoder' panicked at 'called `Result::unwrap()` on an `Err` value: JsonError("whilst decoding field 'b': expected string got 123")', arrow-json/src/reader/mod.rs:2284:37
stack backtrace:
   0: rust_begin_unwind
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/std/src/panicking.rs:593:5
   1: core::panicking::panic_fmt
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/panicking.rs:67:14
   2: core::result::unwrap_failed
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/result.rs:1651:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/result.rs:1076:23
   4: arrow_json::reader::tests::test_coercing_primitive_into_string_decoder
             at ./src/reader/mod.rs:2284:21
   5: arrow_json::reader::tests::test_coercing_primitive_into_string_decoder::{{closure}}
             at ./src/reader/mod.rs:2264:54
   6: core::ops::function::FnOnce::call_once
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/ops/function.rs:250:5
   7: core::ops::function::FnOnce::call_once
             at /rustc/5680fa18feaa87f3ff04063800aec256c3d4b4be/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Expected behavior
I expect the value 123 in column b to be converted to a string.
Additional context
This worked in version 47. I hit the error when updating to DataFusion 33.0.0 with Arrow 48.0.1, but have also confirmed it on main.
My hunch is that this was introduced with https://github.com/apache/arrow-rs/pull/4861, and that some additional logic is needed around here
https://github.com/apache/arrow-rs/blob/dc75a280b46149140eca8dd5e18d31cbadf04716/arrow-json/src/reader/string_array.rs#L45-L66
to handle coercing the new TapeElement enumerations (I64, I32, F64, and F32).

Thanks @fansehep and @tustvold for the quick fix!

label_issue.py automatically added labels {'arrow'} from #5101


Can someone suggest a configuration for CI testing?

I don't want to upload my AWS credentials to my CI server (circle), but other than that I want my full build task to run on my CI server.
I was hoping to have a aws_s3:test task that runs on the ci server that just omits the "bucket" parameter, but then it fails with:
Warning: Missing bucket in options Use --force to continue.

Any suggestions for how to set my gruntfile up so it can run my build task on the CI server without having access to my AWS credentials?

I suspect you don't want to upload files every time? Have you tried using the debug option? https://github.com/MathieuLoutre/grunt-aws-s3#optionsdebug
With that you can put a random bucket name and no credentials and it should still be able to run.


Cache request in a certain configuration context not working

I am trying to cache requests according to the documentation but only for a certain configuration as described here. The example given with the setBaseUrl() is working (path are affected as expected) but it looks the setDefaultHttpFields({cache: true}); is completely ignored although it would work when put globally. Do you have a clue? My code look like:

angular.module('myApp.services').factory('CachedRestangular', function (Restangular) {
    return Restangular.withConfig(function (RestangularConfigurer) {
        RestangularConfigurer.setDefaultHttpFields({cache: true});
    });
});

Hi,
I want to cache particular request but it should get call once its parameter gets update.
I am using restangular cache is working for me but once my parameter change request does not get call.