Error patching ControllerDeployment

How to categorize this issue?

/area control-plane
/kind bug
What happened:
kubectl apply -f  for ControllerDeployment fails.
What you expected to happen:
The apply command to succeed.
How to reproduce it (as minimally and precisely as possible):
Get the spec for ControllerDeployment from https://github.com/gardener/gardener-extension-provider-aws/blob/83233144f83d88221aaa4a3a724b160ae2a39d4d/example/controller-registration.yaml
apiVersion: core.gardener.cloud/v1
kind: ControllerDeployment
metadata:
  name: provider-aws
helm:
  rawChart: ...
  values:
    image:
      tag: v1.57.0-dev

k apply -f depl.yaml
controllerdeployment.core.gardener.cloud/provider-aws created

Change .helm.values.image.tag to "v1.57.0-dev-1".
k apply -f depl.yaml
warning: error calculating patch from openapi v3 spec: unable to find api field "image"
Error from server: error when applying patch:
{"helm":{"values":{"image":{"tag":"v1.57.0-dev-1"}}},"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"core.gardener.cloud/v1\",\"helm\":{\"rawChart\":\"...\",\"values\":{\"image\":{\"tag\":\"v1.57.0-dev-1\"}}},\"kind\":\"ControllerDeployment\",\"metadata\":{\"annotations\":{},\"name\":\"provider-aws\"}}\n"}}}
to:
Resource: "core.gardener.cloud/v1, Resource=controllerdeployments", GroupVersionKind: "core.gardener.cloud/v1, Kind=ControllerDeployment"
Name: "provider-aws", Namespace: ""
for: "depl.yaml": error when patching "depl.yaml": unable to find api field in struct JSON for the json field "image

This log is also observed from the gardener-apiserver container.
Anything else we need to know?:
Environment:

Gardener version:
Kubernetes version (use kubectl version):
Cloud provider or hardware configuration:
Others:

cc @timebertt @maboehm

I was able to reproduce it, but I probably won't have time to fix / investigate until the end of next week. Seems like some APIServer does not like to patch *apiextensionsv1.JSON

Since apiextensionsv1.JSON requires a raw JSON format, it should be updated as below in the yaml file -
apiVersion: core.gardener.cloud/v1
kind: ControllerDeployment
metadata:
  name: provider-aws
helm:
  rawChart: <chart>
  values: |
    {
      "image": {
        "tag": "v1.57.0-dev-1"
      }
    }

or we need to change the value type of the Value in HelmControllerDeployment.

I just hit this bug, it's counterintuitive. Interestingly, kubectl edit allows changing the YAML representation. What speaks against specifying values as map[string]any?
Setting the values as a JSON object doesn't work well together with certain values, e.g. imageVectorOverwrite, which expects a YAML object.

The issue is caused by strategic merge patching. Thats why kubectl edit work, and so does kubectl apply --server-side. There were similar issues for Helm in the past: https://github.com/helm/helm/issues/3382

So I finally got a chance to really dig into it. I'd say this is not really a bug, but we could do better.
kubectl apply attempts to "guess" if it can "strategic merge patch" (SMP) or if it has to fallback to "merge patch". For CRDs, SMP is not supported, so the type *apiextensionsv1.JSON works fine there (and is used e.g. by flux HelmReleases). But ControllerDeployments pass that check, so it attempts a SMP, but fails when looking up the patch metadata. You can see that when increasing the verbosity (-v 7) when running kubectl apply.
SMP fails, because the JSON type defines no type, and only has a description in the OpenAPI spec.:
"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": {
    "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil."
}

Upstream, this is explicitly configured by implementing OpenAPISchemaType() here. There is a TODO comment to at some point change this once anyOf is supported. (more on that later)
I tried to copy the type and exlicitly return []string{"object}. This results in a "free form object":
 "com.github.gardener.gardener.pkg.apis.core.v1.JSON": {
    "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.",
    "type": "object"
},

With that, kubectl apply correctly falls back to application/merge-patch+json, and kubectl patch still does not work. Server-side apply still works as well. By the way, in the OpenAPI spec, io.k8s.apimachinery.pkg.runtime.RawExtension is also a "free-form" object.
So what can we do? For g/g, we could just implement our own type, e.g. HelmValues, that is essentially apiextensionsv1.JSON, but says in the OpenAPI spec that it is an object. (This is probably even more correct, since we never want this field to be for example just a number). A bit annoying is that we need to repeat this type in core, corev1,corev1beta1,operatorv1alpha1 or need to find a place to define that type centrally.
We could also think about contributing this upstream. kube-openapi supports oneOf types since 2 years ago. And I believe even if the TODO comment says they are waiting for anyOf, I think oneOf is actually more correct (see docs), which can be provided by implementing OpenAPIV3OneOfTypes() []string
Long story short - we can help kubectl apply to correctly identify which patch method to use by either implementing our own type or contributing a change upstream.

In case someone is looking how to workaround this issue in an extension repo using skaffold based local setup: https://github.com/gardener/gardener-extension-registry-cache/pull/277.


Update pytorch2onnx.py

change line 301 ‘input_shape = (1, 3, img_scale[1], img_scale[0])’ to ‘input_shape = (1, 3, img_scale[0], img_scale[1])’, because shape=[B,C,H,W]

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

the img_scale is (W,H) , and the input shape is (H,W), sorry for this requests


Dragging the client to the side/corner doesn't make the client as small as possible

Describe the bug
Dragging the client to the side/corner doesn't make the client as small as possible.
To Reproduce

Open a RuneLite client.
Grab the title-bar and drag it to the side/corner of your screen.
Let go.
See that you have black bars, and that you can manually resize it to be even smaller.

Expected behavior
It should be the smallest width/size possible.
Screenshots

I overlapped two clients, the top one is manually resized, the bottom one is how the client looks when just dragged to the corner.

Example of dragging to the side, same thing.
Environment (please complete the following information):

Windows 10, with the resize when dragged to side/corner setting thing turned on.
Latest everything RuneLite, don't use RuneLite system bars, but use Windows ones.

Does this also happen with other programs? E.g do they receive same width? Idk how the dragging to corner in windows works

Pretty sure what you're seeing is just normal Windows behavior. Dragging to a side resizes the window to full height and half width of the screen, dragging to a corner makes it 1/4 the size of the screen.

Yes, that's what it should do.
Problem is that it doesn't go to half, it goes to a bit more than half.
I thought the screenshots/explanatory text would explain it.
My screen is a 4:3 screen, 1280:1024 pixels. It should try to fit it to half the screen, then notice the client doesn't fit, and make it as big as it has to be.
But, it makes the client slightly bigger, see: black bars. These can be removed if I manually resize the client.
If it's not clear, I can make a video on it.

the client has a minimum size, your screen is too small

Oh, that makes it clearer. I'm not able to replicate this myself after lowering my resolution though.

It's also a second screen, I'll test what happens if I change it to being my main screen.

Making it the main screen still shows the black bars.


Prevent triggers from firing early

Great module! Thank you!
Small edit... Triggers were firing during the initialization process while directories were being scanned, and before any changes had occurred within the watched files/directories. I configured the ignoreInitial setting to true in your code's chokidar.watch() method to prevent that behavior.

Thank you! 🎉


[BUG] org.opensearch.repositories.s3.RepositoryS3ClientYamlTestSuiteIT/test {yaml=repository_s3/20_repository_permanent_credentials/Snapshot and Restore with repository-s3 using permanent credentials} flaky

Signed-off-by: Andriy Redko<EMAIL_ADDRESS>
Description
Fixing org.opensearch.repositories.s3.RepositoryS3ClientYamlTestSuiteIT/test. Some background on possible causes of such a failure (I was not able to reproduce them locally yet). The 20_repository_permanent_credentials is using Minio under the hood as S3 replacement.  There are 3 basic failure patterns:
RepositoryException[[repository_permanent] could not read repository data from index blob]; nested: NoSuchFileException[Blob object [base_integration_tests/index-30894] not found: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: P15KX1DMD577FQ5Y; S3 Extended Request ID: XEF7MRXUHU4E4v9cl8TQVPTb6VOy7PYoWCEQRXzvarSYg88VulVCiMvZZ1pxSbgDD5+ZD2sl28E=; Proxy: null)];
	at org.opensearch.repositories.blobstore.BlobStoreRepository.getRepositoryData(BlobStoreRepository.java:1842)
	at org.opensearch.repositories.blobstore.BlobStoreRepository.safeRepositoryData(BlobStoreRepository.java:798)
	at org.opensearch.repositories.blobstore.BlobStoreRepository$2.doRun(BlobStoreRepository.java:731)
	at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:806)
	at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1589)

SnapshotException[[repository_permanent:snapshot-one/tBb-g3U1QsGROobhOKrjGw] failed to update snapshot in repository]; nested: IllegalStateException[Duplicate key docs (attempted merging values [docs/JdXo8HClSeu2GEuqJUgpMQ] and [docs/dB3pskUbQ3S3rsTds_INgw])];
	at org.opensearch.repositories.blobstore.BlobStoreRepository.lambda$finalizeSnapshot$39(BlobStoreRepository.java:1395)
	at org.opensearch.action.ActionListener$1.onFailure(ActionListener.java:88)
	at org.opensearch.action.ActionListener$1.onResponse(ActionListener.java:82)
	at org.opensearch.action.support.GroupedActionListener.onResponse(GroupedActionListener.java:81)
	at org.opensearch.action.ActionRunnable$1.doRun(ActionRunnable.java:61)
	at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:806)
	at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

RepositoryException[[repository_permanent] concurrent modification of the index-N file, expected current generation [30818] but it was not found in the repository]
	at org.opensearch.repositories.blobstore.BlobStoreRepository.ensureSafeGenerationExists(BlobStoreRepository.java:2205)
	at org.opensearch.repositories.blobstore.BlobStoreRepository.lambda$writeIndexGen$57(BlobStoreRepository.java:2086)
	at org.opensearch.action.ActionListener$1.onResponse(ActionListener.java:80)
	at org.opensearch.common.util.concurrent.ListenableFuture$1.doRun(ListenableFuture.java:126)
	at org.opensearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:52)

There is an hypothesis that tests fail sometimes due to Minio's consistency limitations (https://min.io/docs/minio/container/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html#deploy-single-node-single-drive-minio)
MinIO’s strict read-after-write and list-after-write consistency model requires local drive filesystems (xfs, ext4, etc.).

Issues Resolved
Closes https://github.com/opensearch-project/OpenSearch/issues/5219
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #5325 (010cc5b) into main (66c5448) will increase coverage by 0.50%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main    #5325      +/-   ##
============================================
+ Coverage     70.93%   71.43%   +0.50%
- Complexity    58109    58471     +362
============================================
  Files          4704     4704
  Lines        277265   277265
  Branches      40148    40148
============================================
+ Hits         196670   198078    +1408
+ Misses        64485    63304    -1181
+ Partials      16110    15883     -227

Impacted Files
Coverage Δ

...rc/main/java/org/opensearch/ingest/IngestInfo.java
51.72% <0.00%> (-27.59%)
:arrow_down:

...adcast/BroadcastShardOperationFailedException.java
77.77% <0.00%> (-22.23%)
:arrow_down:

...main/java/org/opensearch/ingest/ProcessorInfo.java
47.36% <0.00%> (-21.06%)
:arrow_down:

.../java/org/opensearch/client/ResponseException.java
76.19% <0.00%> (-14.29%)
:arrow_down:

...gregations/matrix/stats/MatrixStatsAggregator.java
75.00% <0.00%> (-12.50%)
:arrow_down:

...nsearch/index/fieldvisitor/IdOnlyFieldVisitor.java
76.47% <0.00%> (-11.77%)
:arrow_down:

...a/org/opensearch/action/search/ParsedScrollId.java
77.77% <0.00%> (-11.12%)
:arrow_down:

.../opensearch/search/builder/PointInTimeBuilder.java
75.67% <0.00%> (-10.82%)
:arrow_down:

...ndex/seqno/RetentionLeaseBackgroundSyncAction.java
64.28% <0.00%> (-10.72%)
:arrow_down:

.../opensearch/index/reindex/ScrollableHitSource.java
82.30% <0.00%> (-10.62%)
:arrow_down:

... and 444 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Use docker buildx to build base Linux images

We use "docker buildx" when building the base Linux images for Antrea. This gives us access to all the BuildKit capabilities, in particular exporting the build cache to the registry as a separate image, when using the docker-container driver. Exporting the cache means that the base images won't need to be rebuilt from scratch every time (whether it is for local builds or CI builds).
Using buildx with Docker requires Docker Engine 19.03 or newer, but that version came out in 2019. Note that we already require buildx / BuildKit since merging https://github.com/antrea-io/antrea/pull/5918.
Note that in recent Docker versions (starting with Docker Engine 23.0 and Docker Desktop 4.19), "docker build" is an alias for "docker buildx build" (buildx is the default build client). However, explicitly using "docker buildx build" lets us support older versions as well.
While exporting the cache to the registry requires using the docker-container driver, and will not work with the default docker driver, developers are not supposed to export the cache anyway. This is reserved for Github CI jobs.
We also add a new "--no-cache" option to force re-building from scratch. That option should not be required for normal workflows.
The Makefile is improved to reduce verbosity.
Fixes #5944

Images built with the docker-container driver must be explicitly loaded with --load unlike docker load command, like
docker buildx build --load -t  --builder=container .
In ci jobs couple of places , the base image antrea ubuntu getting loaded using docker load, IMO, it might impact those ?

/test-all

Many contributors are on vacation because of Chinese New Year, so we will wait to merge it in case it creates any disruption in CI.

/test-all

/test-all


what conv template used in chat model?

It would be great indicates the conv template format.

Already fixed in #177


fix: update migration chart_ds_constraint to have seperate batch op

SUMMARY

Getting errors for constraint in same batch operation, so refactoring to commit before adding a new constraint
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

🏷 preset:2023.17


KeyError

Hi,
I obviously don't expect you to provide tech support for my environment so let me know if these are just annoying. I recently received the following. I have a motion sensor though removed it from the .json configuration file as it doesn't have a model.
Thanks,
Tim
2022-04-07 06:29:27:yolink_devices:INFO - Id: xxx
Name: Back Yd Hose in Famy Rm Leak
Type: Leak Sensor
Event: LeakSensor.Report
Token: xxx
Event Time: 2022-04-07 06:29:26
Current Time: 2022-04-07 06:29:27
Current State: -1
: -1
2022-04-07 06:29:27:yolink_consumer:DEBUG - Successfully processed entry, number of entries in the queue: 0
2022-04-07 06:54:43:yolink_consumer:DEBUG - Pulled from the output_q
2022-04-07 06:54:43:yolink_consumer:DEBUG - {'event': 'LeakSensor.Alert', 'time':<PHONE_NUMBER>875, 'msgid': '1649336082874', 'data': {'sensorMode': 'WaterLeak', 'state': 'alert', 'battery': 4, 'version': '030d', 'devTemperature': 27, 'loraInfo': {'signal': -61, 'gatewayId': 'xxx', 'gateways': 1}, 'stateChangedAt':<PHONE_NUMBER>873}, 'deviceId': 'xxx'}
Exception in thread consumer:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File ".../YoLinkAPI_V2/src/models/yolink_consumer.py", line 32, in run
rc = self.process_entry(payload)
File "/...//YoLinkAPI_V2/src/models/yolink_consumer.py", line 64, in process_entry
log.debug("\n{0}\n".format(device))
File "/...//YoLinkAPI_V2/src/models/yolink_devices.py", line 226, in str
str(self.get_state())
File "/...//YoLinkAPI_V2/src/models/yolink_devices.py", line 221, in get_state
return EVENT_STATE[self.get_device_data()['state']]
KeyError: 'alert'

@tfcarlin No problem at all, please do reach out if you run into additional problems. Committed the fix, pull the latest changes from master. It seems like I never ran into an alert state for my Leak sensors.


VQEProgram does not converge to the expected value

I tried running VQE runtime jobs on simulator following the VQE runtime tutorial. The results look rather weird; the energy didn't converge to the expected value.
Result from local VQE

Result from VQE runtime job on simulator

I am not sure if this is the right repo to report this issue. Is qiskit-nature repo a better place for this issue?

I verified that this issue persist for Qiskit 0.28 and 0.29.

Thanks for reporting this! It's fixed now and the optimizer converges correctly:

For those interested: the issue was that the batch-optimized optimizers did not get passed into VQE correctly, which was not a problem if the optimizer was passed as object but didn't work if the optimizer was passed as dict.

That’s great! Thanks a lot for fixing this.


Disable interactive mode if stdin is not available

Previously an exception would be thrown if stdin was not available at startup, e.g.:
dan-mbp-uber:tests dan$ ~/uber/projects/ringpop-node/scripts/tick-cluster.js ./../node_modules/ringpop/main.js <&-
[init] 09:56:24.110 tick-cluster started d: debug flags, g: gossip, j: join, k: kill, K: revive all, l: sleep, p: protocol stats, q: quit, s: cluster stats, t: tick
[cluster] 09:56:24.112 using <IP_ADDRESS> to listen
[init] 09:56:24.131 started 5 procs: 58433, 58434, 58435, 58436, 58437

/Users/dan/uber/projects/ringpop-node/scripts/tick-cluster.js:495
    stdin.setRawMode(true);
          ^
TypeError: Object #<Socket> has no method 'setRawMode'
    at main (/Users/dan/uber/projects/ringpop-node/scripts/tick-cluster.js:495:11)
    at Object.<anonymous> (/Users/dan/uber/projects/ringpop-node/scripts/tick-cluster.js:594:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:929:3

This change allows tick-cluster to continue albeit with interactive commands disabled. The case where stdin is not available to open occurs when tick-cluster has been spawned in the background from a shell script.
The ringpop-admin test runner needs to spawn tick-cluster in the background so it can run tests for ringpop-admin using a real ringpop cluster.
After this change:
dan-mbp-uber:tests dan$ ~/uber/projects/ringpop-node/scripts/tick-cluster.js ./../node_modules/ringpop/main.js <&-
[init] 10:05:19.323 tick-cluster started
[cluster] 10:05:19.325 using <IP_ADDRESS> to listen
[init] 10:05:19.351 started 5 procs: 58782, 58783, 58784, 58785, 58786
[init] 10:05:19.354 Unable to open stdin; interactive commands disabled
[...]

Kewl. I always saw tick-cluster as being inherently interactive. But if it's helpful for the test suite, that's cool too.


trigger pr

Description
Please ignore!

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

Deploy preview for calico ready!
Built with commit c82740c0fe8bce28f7e3ee46beaadc34ba1228df
https://deploy-preview-3352--calico.netlify.com


Thrown an exception after build from a starter setup

Expected Behavior
Project can successfully compiled
Current Behavior
It throws this exceptions:
A problem occurred configuring root project 'amigos'.
> Could not resolve all files for configuration ':classpath'.
   > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.2.
     Required by:
         project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.1.2
      > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.1.2 was found. The consumer was configured to find a library for use during runtime, compatible with Java 16, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.2.1' but:
          - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.2 declares a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 16
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.2.1')
          - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.2 declares a component for use during runtime, and its dependencies declared externally:
              - Incompatible because this component declares documentation and the consumer needed a library
              - Other compatible attributes:
                  - Doesn't say anything about its target Java version (required compatibility with Java 16)
                  - Doesn't say anything about its elements (required them packaged as a jar)
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.2.1')
          - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.1.2 declares a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 16
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.2.1')
          - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.1.2 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 16
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.2.1')
          - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.2 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 16
              - Other compatible attribute:
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.2.1')
          - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.2 declares a component for use during runtime, and its dependencies declared externally:
              - Incompatible because this component declares documentation and the consumer needed a library
              - Other compatible attributes:
                  - Doesn't say anything about its target Java version (required compatibility with Java 16)
                  - Doesn't say anything about its elements (required them packaged as a jar)
                  - Doesn't say anything about org.gradle.plugin.api-version (required '8.2.1')

	at org.gradle.configuration.project.LifecycleProjectEvaluator.access$400(LifecycleProjectEvaluator.java:55)
	at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:111)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$1(DefaultProjectStateRegistry.java:395)
	at

Context (optional)
No response
Steps to Reproduce
Downloaded the starter package from spring:
plugins {
	id 'java'
	id 'war'
	id 'org.springframework.boot' version '3.1.2'
	id 'io.spring.dependency-management' version '1.1.2'
}

group = 'com.zousysko'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

There is no code an empty project.
Gradle version
8.2.1
Build scan URL (optional)
No response
Your Environment (optional)
------------------------------------------------------------
Gradle 8.2.1
------------------------------------------------------------

Build time:   2023-07-10 12:12:35 UTC
Revision:     a38ec64d3c4612da9083cc506a1ccb212afeecaa

Kotlin:       1.8.20
Groovy:       3.0.17
Ant:          Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM:          16.0.2 (Oracle Corporation 16.0.2+7-67)
OS:           Mac OS X 10.15.7 x86_64

/

Yes, I found this a fixes in Intellij, however if you run from shell with brand new clean starts, it will throw a series of exception complain about imcompatible of versions.
But why from Gradle compatible matrix it is showing 7.6 supports JVM 11, but actually it doesn't.
`FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring project ':product-service'.

Could not resolve all files for configuration ':product-service:classpath'.
Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.9.
Required by:
project :product-service > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.9
No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.9 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6' but:
- Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.9 declares a library, packaged as a jar, and its dependencies declared externally:
- Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11
- Other compatible attribute:
- Doesn't say anything about org.gradle.plugin.api-version (required '7.6')
- Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.9 declares a runtime of a component, and its dependencies declared externally:
- Incompatible because this component declares documentation and the consumer needed a library
- Other compatible attributes:
- Doesn't say anything about its target Java version (required compatibility with Java 11)
- Doesn't say anything about its elements (required them packaged as a jar)
- Doesn't say anything about org.gradle.plugin.api-version (required '7.6')
`

I foud the same error but my JAVA_HOME was set to java 8 instead of 17

Sorry that you're having trouble with Gradle!
Your issue appears to be a question about how to use Gradle. Your question might be answered in Gradle documentation or on our community Slack or forums. Find links to these resources on help.gradle.org.
If you think you have come across a Gradle bug, please file a new issue describing the problem and how to reproduce it.
If you think Gradle is missing a feature, please file a new issue describing your use case for the feature.

Indeed, the Gradle Spring Boot Plugin 3.0 requires JDK17 as pointed out in the error message:
Doesn't say anything about its target Java version (required compatibility with Java 16)
...
- Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 16

Please, file a bug for Spring boot initializer because it suggests incorrect configuration.

To fix this make sure that you are install jdk and set JAVA_HOME as your jdk dir. Don't forget to add jdk bin to path. I got this problem because i don't install jdk just jre.


Add OSO Video

https://gist.github.com/bitsurgeon/acd769ae3236c48a433e0acb11784c2e

Finished embedding video into  webpage (see https://johanneswiesner.github.io/workshop_cimh/welcome/oso.html). Wonder if @einGlasRotwein could create a nice thumbail that makes users aware that the thumbail points to a video ("play button" in front of OSO-logo maybe?).


JAX Test Case Loader does not filter cases as (self-)advertised

Hello JAX team,
I am developing a hobby project about benchmarking right now, and wanted to look for ideas on how to best filter benchmark targets in a Python module context by regex (the question was, simply put, "use re.search or re.match ?"). Now looking at the absl flag in the JAX test loader, it defines the following flag, mentioning that targets get re.matched:
https://github.com/google/jax/blob/ef696a0b433fd4a306d784cd27ccc6a700754955/jax/_src/test_util.py#L72-L76
Yet in the code, it seems that re.search is used instead on the compiled pattern:
https://github.com/google/jax/blob/ef696a0b433fd4a306d784cd27ccc6a700754955/jax/_src/test_util.py#L865-L868
This is obviously not a huge deal, but I thought I would report / ask for clarification. If it is indeed a bug, I can also send a fix if that's of interest. Thanks!

Thanks for flagging the issue. It looks like match should be changed to search in the documentation string. Are you interested in sending a fix?

Sent. Thanks for the explanation!

Closed by #8029.


8.0 TV Emulator does not work with Window Hyper-V

Currently, TV emulator(8.0) does not work when Hyper-V is enabled in Windows.
The Tizen Emulator(8.0) is working normally.
(I created this page to track this issue and share information.)

I got answer by TizenStudio team that this feature is not yet supported in 8.0 TV Emulator and release plan is not fixed.
If the feature is improved in the future, I will notify in this page as well.
Please refer to Troubleshooting at this link
https://docs.tizen.org/application/tizen-studio/setup/hardware-accelerated-execution-manager/


410 Return Code for Reference Slot Mode URL

Link "Matt Mitrik: Changing to Slot Mode in TFS 2010 Version Control" (https://blogs.msdn.microsoft.com/mitrik/2009/05/28/changing-to-slot-mode-in-tfs-2010-version-control/) for options /itemmode and /slotmode returns 410 "Gone". Please troubleshoot and resolve.

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

ID: eff804ab-4a78-42e5-5325-2549f3d4a392
Version Independent ID: eaddc86c-15c8-11d5-33e8-2bfc36e639e9
Content: History command - Azure Repos
Content Source: docs/repos/tfvc/history-command.md
Product: devops
GitHub Login: @steved0x
Microsoft Alias: sdanie

#reassign @DmitriyKirakosyan

@iokevins I can successfully navigate to this URL. Please confirm that the link is working for you now.
cc @apawast @steved0x @MaximMalygin

Thank you, it works for me now.
On Wed, Aug 19, 2020 at 6:34 AM Dima<EMAIL_ADDRESS>wrote:

@iokevins https://github.com/iokevins I can successfully navigate to
this URL. Please confirm that the link is working for you now.
cc @apawast https://github.com/apawast @steved0x
https://github.com/steved0x @MaximMalygin
https://github.com/MaximMalygin
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-devops-docs/issues/3172#issuecomment-676366093,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB5ZDXM5LLLZFP4TKJGCKD3SBPIE3ANCNFSM4GTDXZPA
.

@iokevins can you close the issue?


Add summary mode in digdag tasks command

We sometimes want to know the stats of task execution delays and durations in Digdag. This PR contains the following 2 changes.

Set tasks.started_at in group tasks

tasks.started_at column is important to know a delay between previous task and current task, but group task has no value now. So the field should be set in group tasks.
$ git grep started_at
digdag-core/src/main/java/io/digdag/core/database/DatabaseSessionStoreManager.java:                    " and started_at < :startedBefore" +
digdag-core/src/main/java/io/digdag/core/database/DatabaseSessionStoreManager.java:                " set started_at = coalesce(started_at, now()), updated_at = now(), state = :newState" +
digdag-core/src/main/java/io/digdag/core/database/DatabaseSessionStoreManager.java:                .startedAt(getOptionalTimestampInstant(r, "started_at"))
digdag-core/src/main/java/io/digdag/core/database/DatabaseSessionStoreManager.java:                .startedAt(getOptionalTimestampInstant(r, "started_at"))
digdag-core/src/main/java/io/digdag/core/database/migrate/Migration_20161110112233_AddStartedAtColumnAndIndexToTasks.java:                    " add column started_at timestamp with time zone");
digdag-core/src/main/java/io/digdag/core/database/migrate/Migration_20161110112233_AddStartedAtColumnAndIndexToTasks.java:                    " add column started_at timestamp");
digdag-core/src/main/java/io/digdag/core/database/migrate/Migration_20161110112233_AddStartedAtColumnAndIndexToTasks.java:            handle.update("create index tasks_on_state_and_started_at on tasks (state, started_at, id asc) where started_at is not null");
digdag-core/src/main/java/io/digdag/core/database/migrate/Migration_20161110112233_AddStartedAtColumnAndIndexToTasks.java:            handle.update("create index tasks_on_state_and_started_at on tasks (state, started_at, id asc)");

tasks.started_at is checked only by io.digdag.core.database.DatabaseSessionStoreManager#findTasksStartedBeforeWithState to collect expired tasks https://github.com/treasure-data/digdag/blob/97cea9ff6526ea1ec3d88c5a25039ae8c12e8656/digdag-server/src/main/java/io/digdag/server/WorkflowExecutionTimeoutEnforcer.java#L167-L173. But the expired tasks are just used to collect the associated attempts, so it doesn't matter even if group tasks are collected by findTasksStartedBeforeWithState. See https://github.com/treasure-data/digdag/pull/1485/files#r531432760

Support summary mode to digdag tasks cli command

This mode analyzes tasks information from Digdag server and shows the summary.

Add --format (text|json) option to digdag tasks cli command

The existing output format is not best in parsing the content and this PR introduces JSON format.

Maybe I need to implement different delay calculations for sequential and parallel task execution... Let me test

This PR is split into https://github.com/treasure-data/digdag/pull/1518 and https://github.com/treasure-data/digdag/pull/1519

This PR is split into https://github.com/treasure-data/digdag/pull/1518 and https://github.com/treasure-data/digdag/pull/1519


add openldap-clients to image

We use a script to verify against LDAP, and the script needs ldapsearch installed. If that would be present we could use the container as it is, which would be fabulous ;)
The full-blown ldap support would be nice as well, on the other hand that is a low-key solution that works for now.

From my point of view it would make more sense to extend from this image and install the required libraries yourself.
I understand your usecase, but everyone has different use cases and extending from it is as simple as:
FROM kylemanna/openvpn

RUN apk add --update openldap-clients && \
     rm -rf /tmp/* /var/tmp/* /var/cache/apk/* /var/cache/distfiles/*

Then, optionally, tag it and push it to your repository, assuming you have one.
You could also use docker-compose to do that for you.

hi! just found this thread searching for openvpn with ldap.
I don't agree 100% with @marvin-w , while extending the image is certainly easy, maintaining it over time is a task, a duplicated task.
I think having core-pluings included, activated only if pertinent environment variables are used, its a good compromise.
If core plugin growth becomes a problem we could have a -slim version of the image as seems standard practice in docker, thou in this case, I don't think there are many plugins to include.
Both images should be delivered with the same CD/CI process.

so? :D

Can you share the script that you are using for your LDAP integration? I might need that as well.
I'm not the owner of this repository so this isn't a decision that I can elaborate on.
Feel free to open a PR and try if it gets merged ;).

oh ... I no longer have it. it was just a basic ldaps search command with a bind dn user. or so I remember ... I just found the PR and saw it was still open ;)

Oh this is the PR, wow it looks all the same on the phone.
I don't think this repository is really maintained right?

no idea at all :D . like I said - I just punched the comment in ...
but apparently there's at lease one person watching the PRs, so it's not
totally dead ;)
Am Do., 15. Aug. 2019 um 18:09 Uhr schrieb Marvin Wichmann <
<EMAIL_ADDRESS>
Oh this is the PR, wow it looks all the same on the phone.
I don't think this repository is really maintained right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kylemanna/docker-openvpn/pull/352?email_source=notifications&email_token=ABGMGJTNRTY7W3VS2IE7CT3QEV5RZA5CNFSM4EMG3GD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4MHVLI#issuecomment-521697965,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABGMGJQJ56CS2T5KGOUA76DQEV5RZANCNFSM4EMG3GDQ
.

but ... solved? 😄

No, I'm not going to add features to this image I don't personally use or don't come with a battery of tests. Sorry, but this is a recipe for breakage and surprises to people depending on this container.
Others are welcome to fork and add it.

that makes sense... or asking the contributor to provide a test.

that makes sense... or asking the contributor to provide a test.

Yes, It's a hard line. But I started this docker image years ago for myself and it has grown in usage and use cases beyond my wildest imagination.  Supporting all these use cases was never my intent and often results in disappointment for the users when they are break.


Raise error when :id isn't defined in a mapping since it's required by the repositories

If you set a custom field as primary key using the identity method in a collection mapping, the update action on the repository doesn't work because it checks explicitly for the id of the entity. It's defined here:
https://github.com/lotus/model/blob/9801dd781dc107aa0888430b220c0293d3eff258/lib/lotus/repository.rb#L830-L837

I just checked some more and I found that you can make it work using something like   attribute :id,    Integer, as: :_id. I'm changing the issue title so that lotus should complain if the :id attribute isn't defined because it's required.

@davidpelaez I understand the problem and how you solved it. What's not clear to me is where, when and how an exception should be raised and under which situation? Can you please clarify? Thank you! :smile:

What I mean is that having an id attribute is required. So it could be nice to throw an error when a mapping doesn't contain an id attribute. Just a edge case of throwing errors to help the user know what she did wrong. In a way I refer to complaining because a requirement as not fulfilled.

Is it clear? I'm glad to clarify if not. :)

@davidpelaez Now, it's clear. Thank you :+1:


Crash when aborting a file too soon

Aborting an upload too soon make the server crash.
Here's the throwed error:
events.js:167
      throw er; // Unhandled 'error' event
      ^

Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed
    at doWrite (_stream_writable.js:406:19)
    at clearBuffer (_stream_writable.js:540:7)
    at onwrite (_stream_writable.js:465:7)
    at fs.write (fs.js:2282:5)
    at FSReqWrap.wrapper [as oncomplete] (fs.js:643:5)
Emitted 'error' event at:
    at onwriteError (_stream_writable.js:425:12)
    at onwrite (_stream_writable.js:456:5)
    at doWrite (_stream_writable.js:406:11)
    at clearBuffer (_stream_writable.js:540:7)
    [... lines matching original stack trace ...]
    at FSReqWrap.wrapper [as oncomplete] (fs.js:643:5)

No stacktrace, no fun
It appears to be from the file's write stream
Using the onPart event may resolve the issue but that's not the goal.

#316 fix the error

Is the same error as in this issue. They seem to be related.

@xarguments seems like the same! You're very active, that's really nice :smile:

For others who need a quick fix for preventing the server from crashing:
  const form = new IncomingForm();
  form.onPart = part => {
    form.handlePart(part);
    if (part.filename !== undefined) {
      form.openedFiles[form.openedFiles.length - 1]._writeStream.on('error', err => {
        form.emit('error', err);
      });
    }
  };


Office Telemetry tags script

The following script is used to assign 'tags' for Office Telemetry: https://gallery.technet.microsoft.com/Add-Tags-Labels-for-Office-09c81574
It is officially advertised on the respective TechNet article for Office Telemetry here: https://technet.microsoft.com/en-us/library/ff394407(v=office.16).aspx
It would be nice if it could be ported to Powershell and updated to support Office 2016 while adding it to this GitHub project. Thank you!

Thanks for suggestion.  We will definitely take a look at this.

@pretzer I've ported the script to powershell and added it to the development branch under https://github.com/OfficeDev/Office-IT-Pro-Deployment-Scripts/tree/Development/Office-ProPlus-Management/Add-TelemetryTags
Thanks.


Add Checkstyle Plugin to Enforce Import Rules

While analyzing the project, I found several unused and redundant import statements. To improve the code quality and ensure that best practices are followed going forward, I have added the Checkstyle plugin with rules to:

Detect and remove unused imports.
Prevent redundant imports (e.g., duplicate imports of the same class).
Disallow illegal imports such as sun.* packages by default.

This configuration will help maintain clean and compliant code, and the build will fail if any violations are detected.

Thanks @dariuszzbyrad! I'm all in favor of cleaner code, so this looks great. Asking for second opinion to Tom and/or Eitch so we can merge this.

Yes, potentially at the config level, we could add tools like CodeNarc, PMD, SpotBugs, etc. Additionally, for Checkstyle specifically, we might include files like suppressions.xml and suppressions-cpath.xml to manage specific rule exceptions.

Thanks for the response and the PR.  Tom

The issue looks fine, but we have to bear in mind, that our resources are limited. Adding new checks and then failing the build should not be a priority. I am always willing to look at PRs with new checks, where each new check is a new PR and the build doesn't fail with the new check.
If we can agree on this, then i find this a good change and am always for cleaner and better code.


Reservation count bug

Reservation count should increment by 1. Currently increments by 2.

I reset the ReservationCount value to 0 and seems to be incrementing fine


Resolve deferred callable before passing it to foundHandler for invocation

Fixes issue #1785
Includes https://github.com/slimphp/Slim/pull/1783

I think #1789 is the correct way to solve this.

I agree, https://github.com/slimphp/Slim/pull/1789 is better way


License?

Are other developers free to execute, modify, and distribute this project under an open source license?

MIT, thanks.


🎨 Update StarkId

added Starkid Official Twitter to the ecosystem.

Hey @pucedoteth thanks for your contribution, can you please fix the linter? (yarn lint --fix or npm run lint --fix)

Hey @pucedoteth thanks for your contribution, can you please fix the linter? (yarn lint --fix or npm run lint --fix)

done ser


[FEATURE REQUEST] Data Prefix option

Is your feature request related to a problem? Please describe.
ESP Home supports WLED, but in a very limited manner (see ESPHOME WLED). Currently it sadly does not work with your custom component.
Describe the solution you'd like
I think adding the option to set Data Prefix (in my case to "0201") would solve the incompatibility.
Describe alternatives you've considered
I tried the experimental HASSIO ADDON, which works great, but as far as I am aware it does not provide any entities to cotrol the addon.

@Dejv311 I'm not very sure that something can be added to the data. API is used. Have you tried adding a component to the addon?

Hi, in the original LedFX project when adding a "udp" device there is an option "Data prefix". This is what enables you to connect ESP-Home led strips to LedFX. (Please see image - bottom left corner)

Since I have no way to connect HA to original LedFX I would strongly appreciate an option for doing the same in your integration.
I have to use the ESP-Home integration since it also allows me to control the other pins as switches, which the LedFX bins do not do.
Thank you


Organization feature request

Hi Scott!
Great work there :)
Is it possible to add the concept of 'organization' to the project?
For example, the project will support multiple organizations where each organization has its own users, admins, posts, topics, users, forums, etc. It is like adding a new level of abstraction to the whole project.
This can be done right now by installing multiple versions of the app (setting up multiple databases accordingly) which is not practical at all. Is there any other 'easier' way to do it?
I think it would be a great feature.
Regards,
Thanos

Hi Thanos,
Thanks for the idea!  If I understand you correctly, you are suggesting a "multi tenant" architecture, where multiple groups could share the same Helpy instance, in isolation?  (this could make server admin among other things quite a bit simpler for larger organizations)  Am I on the right path?
Unfortunately, I do not have an easier way to do it right now, and it seems like this would be a significant undertaking to add into the system.  That being said, it certainly seems useful for some I can add it to the backlog and maybe someone will consider working on it :)
Scott
Scott

Yes Scott, you are right, I'm suggesting a multi tenant architecture.
Maybe adding an organization model, an organization table field at the other models and altering all models a bit so they become organization aware, I think would be sufficient without altering anything else. Just basic functionality to start with. I could work sometime on this, unfortunately I can't consider when right now.
Regards,
Thanos

Okay, a few other things to consider for a true multi-tenant version:

Helpy would need a more robust user authorization capability- to silo agents into their own organization
Interface/Workflow for adding new orgs/admins.  Also the concept of a "super admin"
Major questions around i18n and settings per org

Thoughts?
Another possibility is creating a "product" tier of abstraction, that would allow for an independent set of forums and knowledge base for a a set of different products (rather than orgs).  Think of Apple.com support and how they have this for iMac and iPhone products, for example.

Well, the sky is the limit.
Depends on how you want to go on with helpy.
Start with basic functionality, like the super admin and organizations. i18n can be placed down the roadmap, not right from the beginning.
In the meanwhile, people's feedback could lead to one way or another. "Productizing" could be considered afterwards.
Just my 2c
Regards,
Thanos


closing issues without checking first

Please get us to confirm an issue is fixed before closing them

sure. I will assign it back to the original author then.

okay thanks


Multi filter select drop down options missing when state is loaded

Summary of problem or feature request
Using infyom generator. Trying to use https://datatables.net/examples/api/multi_filter_select.html with saveState.
The problem is that infyom generator uses serverSide: true (doesn't seem to work at all when I set it to false). When serverSide is true, if you navigate away the data table and back again, when saveState reloads the state, it cause the JSON to be filtered based on the previous state and then the filter drop down only shows one item, the last one displayed.
Code snippet of problem
app/DataTables/OphourDataTable.php
<?php

namespace App\DataTables;

use App\Models\Ophour;
use Yajra\DataTables\Services\DataTable;
use Yajra\DataTables\EloquentDataTable;

class OphourDataTable extends DataTable
{
    /**
     * Build DataTable class.
     *
     * @param mixed $query Results from query() method.
     * @return \Yajra\DataTables\DataTableAbstract
     */
    public function dataTable($query)
    {
        $dataTable = new EloquentDataTable($query);

        return $dataTable->addColumn('action', 'ophours.datatables_actions');
    }

    /**
     * Get query source of dataTable.
     *
     * @param \App\Models\Ophour $model
     * @return \Illuminate\Database\Eloquent\Builder
     */
    public function query(Ophour $model)
    {
        return $model->newQuery()->with(['hotspot','weekday']);
    }

    /**
     * Optional method if you want to use html builder.
     *
     * @return \Yajra\DataTables\Html\Builder
     */
    public function html()
    {
        return $this->builder()
            ->columns($this->getColumns())
            ->minifiedAjax()
            ->addAction(['width' => '120px', 'printable' => false])
            ->parameters([
                'dom'       => 'Bfrtip',
                'stateSave' => true,
		'orderFixed' => [[ 0, 'asc' ]],
	        'order' => [[ 1, 'asc' ]],
		'rowGroup' => [ 'dataSrc' => 'hotspot.displayname' ],
                'buttons'   => [
                    ['extend' => 'create', 'className' => 'btn btn-default btn-sm no-corner',],
                    ['extend' => 'export', 'className' => 'btn btn-default btn-sm no-corner',],
                    ['extend' => 'print', 'className' => 'btn btn-default btn-sm no-corner',],
                    ['extend' => 'reset', 'className' => 'btn btn-default btn-sm no-corner',],
                    ['extend' => 'reload', 'className' => 'btn btn-default btn-sm no-corner',],
                ],
		'initComplete' => view('ophours.filters'),
            ]);
    }

    /**
     * Get columns.
     *
     * @return array
     */
    protected function getColumns()
    {
        return [
		    ['data' => 'hotspot.displayname', 'title' => 'Hotspot', 'visible' => false],
			['data' => 'weekday.name', 'name' => 'weekday_id', 'title' => 'Weekday', 'searchable' => false],
			['data' => 'weekday.name', 'name' => 'weekday.name', 'title' => 'Weekday Name', 'visible' => false],
            'open',
            'close'
        ];
    }

    /**
     * Get filename for export.
     *
     * @return string
     */
    protected function filename()
    {
        return 'ophoursdatatable_' . time();
    }
}

ophours.filters.blade.php (apologies for the wonky formatting, I accidentally used tabs)
function () {

	        var state = this.api().state.loaded();
		if (state) {
               this.api().columns(0).every( function () {
                var column = this;
                var div = $('
Filter for Hotspot: <select id="hotspot_filter" class="form-control"><option value=""></option></select>
').prependTo( "#dataTableBuilder_filter" )
		var select = div.find("select");
                select.on( 'change', function () {
                        var val = $.fn.dataTable.util.escapeRegex(
                            $(this).val()
                        );

                        column
                            .search( val ? '^'+val+'$' : '', true, false )
                            .draw();
                    } );

                column.data().unique().sort().each( function ( d, j ) {
                    select.append( '<option value="'+d+'">'+d+'</option>' )
                } );

		select.val(column.search().slice(1, -1).replace('\\', ''));
            } );
	}
        }

System details

Windows 10
PHP 7.3.5
Laravel Version 5.8.33
Laravel-DataTables HTML 4.5.4

I have tried setting serverSide to false in parameters, however that results in the table not loading at all. I think that is where the problem is though - shouldn't it still work with serverSide: false?

Need to review this but I think the package forces the script generated to use serverSide: true, processing: true. Can you inspect the generated script on your side to verify?

I am able to manually set serverSide to false (and also tried processing to false), and those do take effect (I can see on the page when I view the source after browsing to it), but then the table does not appear to load at all. I can see in the firefox inspector that it doesn't even seem to try to load the ajax data at all if I set serverSide to false. It is using the minifiedAjax method which has some special treatment if serverSide is set to true, and I'm guessing that special behavior isn't working quite as intended?

Oh I think we have some misunderstanding here. If you want to use ajax data, serverSide should always be set to true for it to load. You only use serverSide false when the data is already loaded on html afaik.

Hi, is this actually the case?  There are examples like this: https://datatables.net/examples/data_sources/ajax.html
That uses ajax but serverSide is not true in that case. In that case the ajax shows all records unfiltered instead of filtering, the filtering is done by the client. That is what I am trying to do but is not working, however with your implementation when I set serverSide to false it no longer makes the request to load the ajax data.

OIC, completely forgot about that. I think data sources is not yet fully supported. Maybe try setting pageLength to -1 to force the package to load all the records? Will try to experiment on my side too.

Manage to make it work. Just chain the following on your builder.
    ->ajax(route('admin.users.index'))
    ->serverSide(false)
    ->processing(false)

Thank you so much for your help, that works perfectly!


Implemented settings module for storing AIOC settings

As discussed in issue #30.
The AIOC gains the functionality to be configurable from the host PC. Currently, it is possible to change the source for the PTT1 and PTT2 output pins.
The settings can be stored in the flash memory and they are automatically recalled on startup. But the implementation is sound.
Note that it is currently not well documented and rudimentary. Use the following example script to change the PTT1/PTT2 behaviour so that PTT1 is not used anymore and PTT2 is controlled with DTR=1 and RTS=0. This script requires hidapi to be installed. Note that I only tested this on Linux, should work on Windows too. It might be required to have root/Admin privileges.
python -m pip install hidapi (or python3 instead of python e.g. for Linux)
import hid
from struct import Struct
from enum import IntEnum, IntFlag

class Register(IntEnum):
    PTT1CTRL = 0x10
    PTT2CTRL = 0x11

class Command(IntFlag):
    DEFAULTS = 0x10
    RECALL = 0x40
    STORE = 0x80

class PTTSource(IntFlag):
    NONE = 0x00000000
    CM108GPIO1 = 0x00000100
    CM108GPIO2 = 0x00000200
    CM108GPIO3 = 0x00000400
    CM108GPIO4 = 0x00000800
    SERIALDTR = 0x00010000
    SERIALRTS = 0x00020000
    SERIALDTRNRTS = 0x00040000
    SERIALNDTRRTS = 0x00080000

def read(device, address):
    data = device.get_feature_report(int(address), 5)
    address, value = Struct('<BL').unpack(data)
    return value

def write(device, address, value):
    data = Struct('<BL').pack(address, value)
    device.send_feature_report(data)

aioc = hid.Device(vid=0x1209, pid=0x7388)

print(f'Manufacturer: {aioc.manufacturer}')
print(f'Product: {aioc.product}')
print(f'Serial No: {aioc.serial}')

print(f'Current PTT1 Source: {str(PTTSource(read(aioc, Register.PTT1CTRL)))}')
print(f'Current PTT2 Source: {str(PTTSource(read(aioc, Register.PTT2CTRL)))}')

if True: # Set to true to change PTT1 source
    ptt1_source = PTTSource.NONE
    print(f'Setting PTT1 Source to {str(ptt1_source)}')
    write(aioc, Register.PTT1CTRL, ptt1_source)

if True: # Set to true to change PTT2 source
    ptt2_source = PTTSource.SERIALDTRNRTS
    print(f'Setting PTT2 Source to {str(ptt2_source)}')
    write(aioc, Register.PTT2CTRL, ptt2_source)

print(f'Now PTT1 Source: {str(PTTSource(read(aioc, Register.PTT1CTRL)))}')
print(f'Now PTT2 Source: {str(PTTSource(read(aioc, Register.PTT2CTRL)))}')

if False: # Set to true to load defaults
    print(f'Loading Defaults...')
    write(aioc, 0, Command.DEFAULTS)

if True: # Set to true to store current settings
    print(f'Storing...')
    write(aioc, 0, Command.STORE)

Example Output is:
Manufacturer: AIOC
Product: All-In-One-Cable
Serial No: 4682fb53
Current PTT1 Source: PTTSource.SERIALDTRNRTS|CM108GPIO3
Current PTT2 Source: PTTSource.CM108GPIO4
Setting PTT1 Source to PTTSource.NONE
Setting PTT2 Source to PTTSource.SERIALDTRNRTS
Now PTT1 Source: PTTSource.NONE
Now PTT2 Source: PTTSource.SERIALDTRNRTS
Storing...

Here is a binary of the compiled firmware for you to test:
aioc-fw-configitf.bin.zip

Merged in https://github.com/skuep/AIOC/commit/6c9cfed30a404805d547877c2651233ed438d599


1120 interesting place to look

Checks

[x] Your YAML file has required fields as listed in Specs
[x] All checks have passed yaml-lint passed
[x] You agree to contribute your work under MIT license

this is not "interesting places to look" xD

Sorry sir, I type the recap title, The title should be Publicly accessible data stora. Some PR I type the wrong title, but I upload some new PR to correct that.


Shortened URLs are not unique

Is your feature request related to a problem? Please describe.
Currently, the service will shorten a URL but has no guarantees that it is unique. This means that a shortened URL may correlate with more than one full-length URL - Overwriting the older URLs it was generated for.
Describe the solution you'd like
It would be great to ensure that all URLs generated are unique - This would make the service a lot more useful.
Perhaps this can be done by checking if the shortened URL already exists and regenerating a shortened URL if so.

Temptation is to leave this as it is - It's a quirk, and it's a lot easier.


Documentation: Logging in

Would be great to show an example of logging a user in from the public site. I see the admin section has a full fledged angular application and 1000's of lines of code to do this. It's still not clear the mechanism to create a session.
Is it simply a POST to /login with a response that should be added as cookie?

What do you mean by public site ?
Here is the documentation for users authentification : http://strapi.io/documentation/users

Using POST /auth/local/register I get back the newly created user and jwt.
 The project root index.html.

Ok I've figured it out. The documentation http://strapi.io/documentation/users#local-login says /auth/local/login but when I viewed the network request of logging in from admin it is actually /auth/local
Maybe it's an error in the documentation?

Good catch, @sylvainlap just made a pull request to update the documentation : https://github.com/wistityhq/strapi-docs/pull/2
Thanks @gregbenner @sylvainlap


zsh: command not found: playwright

python3 -m playwright install not help

Where did that command come from? There is no -m playwright in the README that I can see.


Merge the develop  branch into the main branch

Merge the develop  branch into the main branch using pull request.
Switch back to the  main branch, pull changes using git pull origin  main

Merged the develop branch into the mian branch.
Pull changes into the main  branch.


Unable to connect to Azure when bot is installed via App Studio.

I've already installed a number of bot apps in MS Teams using App Studio. The architecture of my bot is MS Teams > Azure Bot Channel > AWS.
I've experienced a few times where I'm able to connect from Azure to AWS (Via Test in Web Chat) but unable to get a response in MS Teams.
May I know if there is currently an existing problem with installing bots with App Studio?

There was a recent announcement that Bot Framework started requiring TLS 1.2 for all Bot Framework bots.
To detect if your bot is running TLS 1.2, you can use curl against your messaging endpoint or against the root if you have configured an HTML page to be served:

curl -v GET https://taskmoduletest.azurewebsites.net --tlsv1.2 --tls-max 1.2
curl -v GET https://taskmoduletest.azurewebsites.net/api/messages --tlsv1.2 --tls-max 1.2

Can you check if that's the case for you?
Could you please also share your bot id and endpoint URL?


helm lint performance does not scale well with increases in dependencies

helm version:
$ helm version
version.BuildInfo{Version:"v3.5.0", GitCommit:"32c22239423b3b4ba6706d450bd044baffdcf9e6", GitTreeState:"dirty", GoVersion:"go1.15.6"}

I have a helm chart recently converted to apiVersion: v2
In the Chart.yaml file, we package 63 other charts as dependencies.
Running helm lint on this chart takes longer than our CI checks allow, and leads to unwanted delays in our release pipeline.
I tabulated the timings for helm lint adding 3 chart dependencies at a time, until I had built all 63 again.
Here are the results:
0 charts: 0 seconds
3 charts: 7s
6 charts: 28s
9 charts: 60s
12 charts: 85s (1m25s)
15 charts: 115s
18 charts: 136s
21 charts: 168s
24 charts: 198s (3m18s)
27 charts: 246s
30 charts: 314s
33 charts: 372s
36 charts: 417s (6m57s)
39 charts: 485s
42 charts: 633s
45 charts: 745s
48 charts: 793s (13m13s)
51 charts: 975s
54 charts: 1146s
57 charts: 1340s
60 charts: 1559s (25m59s)
63 charts: 1786s (29m46s)

You can see that the time it took to complete the lint runs roughly doubled with the addition of every 12 charts.
At 75 charts, I project helm lint to take 1 hour at a minimum.
As a contrast, after a helm dep update, running helm lint * on just the packaged dependencies in the charts folder takes 44 seconds.  This is an acceptable amount of time to lint 63 chart dependencies, and should be the goal for linting the parent chart as well.

Thanks for the report. Were you able to determine what might be causing it to take that long?
We've seen one case in the past with charts that use the template function excessively (template takes a string and re-runs it through the template engine). I can't recall whether a community member fixed that issue.
Let us know what you find out.

Were you able to determine what might be causing it to take that long?

Not yet; templating is on my list of checks.  In the graph there's one data point between 45 and 48 charts that was a little faster than expected, and one of those dependencies I included there was atypical: it was on the simplistic side, compared to the other charts in my project.

We've halted development on this particular project, and I won't be able to provide any more updates on debugging efforts for the scale issue here.  It remains real, it's just not something I can assist with at present. Sorry!

No worries. If you can share more information on how to reproduce this issue, then we can attempt to reproduce it and see if there's something we can address. Without that I'm afraid there's not much we can do other than speculate.


Could a potential timeline be added?

Please report the issue under the appropriate header below.
Content to be added or changed:
The website goes to a great length to explain the concept of "flattening the curve". However it does not provide an exact breakdown of how long this process would take, as the graphs presented lack an exact timescale.
Would it be possible to add such a timescale? E.g. start with the number of available hospital beds in the US and total hospitalization rates to calculate how many people could be infected with COVID-19 at the same time without overflowing the system. My own rough calculation is as following:
Total beds available: 924,000
Estimate on beds that could be available for COVID-19 patients: 50% or ~500,000
Percentage of critical cases: 1%, according to South Korean case data. South Korea did the most testing so they've captured a lot more asymptomatic patients than others.
Percentage of US population that needs to have immunity for "herd immunity" to kick in: ~70% or 228 million
Median hospital stay duration: 3 weeks
From this we can derive that:
Number of Americans that can be infected at the same time: 500,000 * (1 / 0.01) = 50 million
Number of weeks required to get to "herd immunity" stage: (228 / 50) * 3 = 13.68 or 3.5 months
If my math makes sense, I can provide a pull request as well that will add the numbers to your main chart.

Good point, as long as we can provide proper references and can we please pay attention to prepare those graphs as reusable templates so we can easily adapt them to other setups?

@drlbln looks like someone already did the math. Can I include those graphs in the repository, presuming the Medium author allows it? The math looks solid to me.

My understanding is that the site is aiming to provide practical information about what-to-do and rather linking to external pages/sources for information that evolves and changes. We did link to some of the "official" models outlining the course of the outbreak (one being https://covid19.healthdata.org/projections).
My understanding is that lockdowns/stay-at-home and long term strategy is one thing that is very uncertain, rapidly evolving and volatile.
I don't think we really have capacity to keep this piece information fresh and up to date and decide which of the many different projections we are going to go with. I believe that there are downsides to having outdated content on the site.
So I think we should probably opt for not including this piece of information directly on the website. We can absolutely link to those analyses via our Resources.
Note that  the original unlabeled flatten-the-curve graph is no longer present on the website so this may be another reason for not including this.
Adding @jmcmurry for visibility.

The website still includes a misleading unlabeled flatten the curve graph here: https://www.flattenthecurve.com/covid-19/. It should be amended to showcase exactly how long it would take for everyone to be slowly infected without overwhelming the hospitals.
There is now data from NYC (21% have antibodies) which makes this fairly easy to calculate.

Thanks for pointing this out. I do believe our COVID-19 section needs a bit of overhaul and updating.
Back on the topic of herd immunity. I should disclose that I have no epidemiology/public health background. My expertise is dev-ops incident response so that's what influences my thinking and analysis.
I'm not sure if reaching herd immunity as fast as possible w/o overwhelming medical system is the goal we should be aiming for. It is better than overwhelming our medical system but will still result in massive casualties before we get there. Assuming that IFR is in the 0.3-1% range (WHO report and that we need to reach 70% of population, this translates to 0.6M-2.3M lives lost in US and 15-53M deaths globally.
I hope we can do better than this by controlling the outbreaks, contact tracing/isolation and basically buying us as much time as needed before we can come up with effective interventions in forms of treatment and/or vaccination.
The site says the most important thing to do is flatten the curve of the epidemic so that our health systems can cope and to give time for the scientists to research vaccines and treatments. The picture implies that we want to ride-it-out at the peak healthcare system utilization but I'm not sure this is sufficient and that we should aim to "give more time for the scientists to research vaccines and treatments".
I hope this is seen as constructive conversation and I should point out that this is my personal opinion. I hope we will find agreement and right messaging around what is needed to manage this public crisis effectively.

@rousik The problem with this argument is that it completely goes against what "flatten the curve" was supposed to be. The strategy you're describing is "crush the curve", where we not only get below what the medical system can handle, but rather focus on saving as many lives as possible, even if we have hundreds of thousands of spare beds available (as is the case in the US right now). If this is the case, it would probably be best to rename the project to "crush the curve" or something equivalent, as otherwise it is misleading its readers.

Yeah. I agree. These were my thoughts and I don't know how much in line with opinions of others and with the overall intent of this site. I'm just voicing my concerns with a strategy of barely maintaining the curve just below the medical system capacity.
I will try to loop in more people to this conversation so that we can find some consensus and see if we can clarify the messaging.
Thank you very much for your input so far!

@rousik I've added a new Issue to discuss this: https://github.com/flattenthecurve/guide/issues/372

Perfect, let's move the discussion there.
On Sun, Apr 26, 2020 at 6:28 PM SokolskyNikita<EMAIL_ADDRESS>wrote:

@rousik https://github.com/rousik I've added a new Issue to discuss
this: #372 https://github.com/flattenthecurve/guide/issues/372
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flattenthecurve/guide/issues/89#issuecomment-619649545,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABYSCGGD5T6K3I64MZIVSDDROTGRNANCNFSM4LLR2OCQ
.


Small update to benchmarking build docs to correct usage

To reflect the correct usage as I understand it when you have elevated privileges
The suggested change worked for me and the original didn't. Also: looking at the Makefile my understanding is that my suggested change is correct
I added line-wraps but didn't run any linters on this

Close it since the benchmark mr has updated yet.


Inherting included attributes

Hello! I'm a new user to asciidoctor and asciidoctor-multipage so please bare with me :sweat_smile: . I have a main.adoc where I'm including some attributes use throughout. For example:
= My page

include::data/shared-metadata.adoc[]
{metadata_0}

== Page 1
{metadata_1}

== Page 2
{metadata_2}

data/shared-metadata.adoc contains the attributes referenced.
When I build the adoc normally, they are rendered as expected. However, when I build using asciidoctor-multipage, The resulting output only shows attributes on the main page (metadata_0) but pages 1 and 2 only show the place holders.
asciidoctor -r ~/code/asciidoctor-multipage/lib/asciidoctor-multipage.rb -b multipage_html5 main.adoc -D out

Is it possible for the included adoc to be inherited and render those attributes in other HTML pages?

This will work if you define the attributes in the document header, like this:
= My page
include::data/shared-metadata.adoc[]

{metadata_0}

== Page 1
{metadata_1}

== Page 2
{metadata_2}

Apologies, but after some more testing, I tend to see defining the attributes include in document header was a workaround to the root issue. I guess I expect the asciidoc to build the same no matter if I am using multipage or not.
Does the workaround you mentioned have to do with a technical limitation of the asciidoctor API you extend and the point at which attributes are able to be inherited?

I guess I expect the asciidoc to build the same no matter if I am using multipage or not.

Well, that seems reasonable, but it's not perfect. (And we are also literally expecting it to not build the same, in that we want it to generate multiple HTML output pages rather than just one.)

Does the workaround you mentioned have to do with a technical limitation of the asciidoctor API you extend and the point at which attributes are able to be inherited?

I suppose so, but I cannot answer that for sure. I do know that asciidoctor-multipage works by taking the single, entire Asciidoctor::Document object (of which there is normally only one) and creates multiple Asciidoctor::Document objects (one for each page) from the document tree. Perhaps the earlier include:: is not processed at all in the scope of the later child pages, leaving the attributes missing.

@owenh000 Thanks for the follow-up.

Just by chance, I found that if I only mention in the include in the top level section then multipage renders as I would expect. Internally, this may be acting the same as the workaround you already mentioned. So the following works and renders correctly no matter the placement of the include:
= My page

include::testing.adoc[]

== Page 1

{metadata_0}

{metadata_1}

== Page 2
{metadata_2}

@bostrt, thanks for sharing the example.

It would appear that this is a specific instance of the more general https://github.com/owenh000/asciidoctor-multipage/issues/23
Here is what works and what fails for me:
FAILS - Content in preamble
= test issue #23

include::attributes.adoc[]

If this preamble is removed, the attribute below (in Chapter) will work.

== Chapter

This should be *myvalue*: {myattr}

WORKS - No content in preamble
= test issue #23

include::attributes.adoc[]

//If this preamble is removed, the attribute below (in Chapter) will work.

== Chapter

This should be *myvalue*: {myattr}

WORKS - Move attributes definitions into header
= test issue #23
include::attributes.adoc[]

If this preamble is removed, the attribute below (in Chapter) will work.

== Chapter

This should be *myvalue*: {myattr}

WORKS - Move title into preamble
include::attributes.adoc[]

= test issue #23

If this preamble is removed, the attribute below (in Chapter) will work.

== Chapter

This should be *myvalue*: {myattr}

I think this could be considered a bug in asciidoctor-multipage. It would be easier to work on with issue #46 completed.


Drafts not excluded from autogenerated sidebar

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Prerequisites

[X] I'm using the latest version of Docusaurus.
[ ] I have tried the npm run clear or yarn clear command.
[ ] I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
[ ] I have tried creating a repro with https://new.docusaurus.io.
[ ] I have read the console error message carefully (if applicable).

Description
The new draft feature of the docs plugin isn't taken into consideration in the autogenerated sidebar.
Reproducible demo
No response
Steps to reproduce

Mark one or more docs parents as draft
Use autogenerated sidebars

Expected behavior
The draft pages and their children should not show up in the autogenerated sidebar.
Actual behavior
The draft pages and their children do show up in the autogenerated sidebar.
Your environment
No response
Self-service

[ ] I'd be willing to fix this bug myself.

Please provide a detailed reproduction, including your file structure and which files are drafts.

@odsod Do you have a reproduction? It's not really actionable at this stage and I'll probably close it next week.

Closing because of lack of repro; there's a chance this has been fixed by beta.21, if it had been a problem at all.


[chore](be web ui)upgrade jquery version to 3.6.0

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 38.41 seconds
load time: 576 seconds
storage size:<PHONE_NUMBER>0 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221103121604_clickbench_pr_39250.html


[Display] Low contrast when setting Power Profile to "Power Save" and on battery

Per this Reddit thread, there is a known behavior where the laptop display panel will run in low power mode when running on battery and the Power Profile is set to "Power Save". This causes the screen to have reduced contrast.
Per a comment in the thread, setting /sys/class/drm/card1-eDP-1/amdgpu/panel_power_savings to 0 (the value is set to 3 in Fedora 40 with power-profiles-daemon version 0.2.1) will disable the panel's power saving.
Unfortunately, that reverts back to 3 if I connect the laptop back to the charger and disconnect it again.
A more permanent solution should be implemented, including settings available in KDE.
Leaving this issue open until then.

Found the following in the [README.md] in the power-profiles-daemon repository:

Laptops with integrated Radeon graphics have a dedicated hardware function
to decrease panel power consumption in exchange for color accuracy. This
function is used when the system is on battery and the user has selected
the "balanced" or "power-saver" profiles.
If you decide that you don't like how this behaves, you can disable the function
in one of two ways:

Adding amdgpu.abmlevel=0 to the kernel command line.  This will disable abm
value changes entirely.
By using --block-action=amdgpu_panel_power in the
power-profiles-daemon ExecStart command. This will allow you to
still change values manually in sysfs but power-profiles-daemon will not
change anything.

I opted to use the second option and the value seems to stick to 0 after making the change, running sudo systemctl daemon-reload && sudo systemctl restart power-profiles-daemon.
Marking this issue as closed.


No provider for Router! Angular CLI 1.3.2

I have just created a new empty project using the current Angular CLI (1.3.2) and the current angular-application-insights (2.3.1) and get a "No provider for Router!" error.
zone.js:661 Unhandled Promise rejection: No provider for Router! ; Zone: <root> ; Task: Promise.then ; Value: Error: No provider for Router!
    at injectionError (core.es5.js:1169)
    at noProviderError (core.es5.js:1207)
    at<EMAIL_ADDRESS>(core.es5.js:2649)
    at<EMAIL_ADDRESS>(core.es5.js:2688)
    at<EMAIL_ADDRESS>(core.es5.js:2620)
    at<EMAIL_ADDRESS>(core.es5.js:2489)
    at resolveNgModuleDep (core.es5.js:9481)
    at _createClass (core.es5.js:9524)
    at _createProviderInstance$1 (core.es5.js:9492)
    at initNgModule (core.es5.js:9446) Error: No provider for Router!
    at injectionError (http://localhost:4200/vendor.bundle.js:47653:90)
    at noProviderError (http://localhost:4200/vendor.bundle.js:47691:12)
    at<EMAIL_ADDRESS>(http://localhost:4200/vendor.bundle.js:49133:19)
    at<EMAIL_ADDRESS>(http://localhost:4200/vendor.bundle.js:49172:25)
    at<EMAIL_ADDRESS>(http://localhost:4200/vendor.bundle.js:49104:25)
    at<EMAIL_ADDRESS>(http://localhost:4200/vendor.bundle.js:48973:21)
    at resolveNgModuleDep (http://localhost:4200/vendor.bundle.js:55965:25)
    at _createClass (http://localhost:4200/vendor.bundle.js:56008:65)
    at _createProviderInstance$1 (http://localhost:4200/vendor.bundle.js:55976:26)
    at initNgModule (http://localhost:4200/vendor.bundle.js:55930:13)

npm list --depth=0
+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>
package.json
{
  "name": "ngcli",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^4.2.4",
    "@angular/common": "^4.2.4",
    "@angular/compiler": "^4.2.4",
    "@angular/core": "^4.2.4",
    "@angular/forms": "^4.2.4",
    "@angular/http": "^4.2.4",
    "@angular/platform-browser": "^4.2.4",
    "@angular/platform-browser-dynamic": "^4.2.4",
    "@angular/router": "^4.2.4",
    "@markpieszak/ng-application-insights": "^2.3.1",
    "core-js": "^2.4.1",
    "rxjs": "^5.4.2",
    "zone.js": "^0.8.14"
  },
  "devDependencies": {
    "@angular/cli": "1.3.2",
    "@angular/compiler-cli": "^4.2.4",
    "@angular/language-service": "^4.2.4",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "~3.1.1",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~3.2.0",
    "tslint": "~5.3.2",
    "typescript": "~2.3.3"
  }
}

Hey Chris that's strange, is it a completely untouched CLI project ? I'll have to give this a shot, not sure why that would come up.

Hi Mark
Thank you for replying so quickly.  Yes it's completely untouched. I noticed it after upgrading a large project and have now managed to get it working by pinning to an older version of angular (4.3.1).

I'm also seeing this after upgrading from angular 4.3.5 to 4.4.0-RC.0.
It feels like it has something to do with one or both of these versioning oddities in my package-lock.json
The first is that<EMAIL_ADDRESS>seems to depend on<EMAIL_ADDRESS>I've reported that issue in angular/angular#19129.
    "@angular/compiler-cli": {
      "version": "4.4.0-RC.0",
      "resolved"<EMAIL_ADDRESS>      "integrity": "sha1-0trwhngqKAIQBVoiH2DRYrT+Yno=",
      "requires": {
        "@angular/tsc-wrapped": "4.3.6",
        "minimist": "1.2.0",
        "reflect-metadata": "0.1.10"
      },
      "dependencies": {
        "@angular/tsc-wrapped": {
          "version": "4.3.6",
          "resolved"<EMAIL_ADDRESS>          "integrity": "sha1-GqZuCrLEeZpK0UtnXhOVOqX81DY=",
          "requires": {
            "tsickle": "0.21.6"
          }
        }
      }
    },

The second is that @markpieszak/ng-application-insights's dependency on<EMAIL_ADDRESS>seems to resolve to<EMAIL_ADDRESS>despite the fact that ^4.0.0 should resolve to 4.4.0-RC.0, especially since that's the version I've listed in my package.json.
    "@markpieszak/ng-application-insights": {
      "version": "2.3.1",
      "resolved"<EMAIL_ADDRESS>      "integrity": "sha512-gEvQJ1KYfkwH+N5lMykmXfKoHCtvZvQ2TpV4Sy+ATikVUQedjoTnW3yqYLResKbB+lR4TnDpugebIlbnvbjZBw==",
      "requires": {
        "@angular/router": "4.3.6",
        "@markpieszak/ng-application-insights": "2.3.1",
        "@types/applicationinsights-js": "1.0.4",
        "applicationinsights-js": "1.0.12",
        "rxjs": "5.4.3",
        "typescript": "2.5.2"
      },
      "dependencies": {
        "@angular/router": {
          "version": "4.3.6",
          "resolved"<EMAIL_ADDRESS>          "integrity": "sha1-ZAM+20/NoIoyPnUztKGCDA8o0TA=",
          "requires": {
            "tslib": "1.7.1"
          }
        }
      }
    },

@chrisfoster78 can you check your package-lock.json and see if you're seeing something similar? Yours seemed to resolve to 4.3.6 though for all your angular packages though, so I'm not sure if your version mismatches would match mine (if that's even the problem).

I just tried the following combinations:

angular
ng-application-insights
Does it work?

4.3.5
2.3.0
Yes

4.3.5
2.3.1
Yes

4.3.6
2.3.0
No

4.3.6
2.3.1
Yes

4.4.0-RC.0
2.3.0
No

4.4.0-RC.0
2.3.1
No

It looks like any time ng-application-insights ends up with a @angular/router in its dependencies section instead of just the requires section in the package-lock.json, it does not work. The difference seems that dependencies create a nested node_modules structure underneath the package while otherwise it just uses the one from the root, and I suspect it does that based on whether the package version matches the one in the root, but I still don't know why npm is resolving the dependency the way it is.
And then since ng-application-insights uses a different version, I guess somehow the classes are seen as different and thus ng-application-insights's is not registered when the RouterModule is imported.
All that being said, I don't know what the best path forward is.

I figured out the resolution question. I basically just needed to learn semver better.
Even though angular 4.4.0-RC.0 is listed as the latest, from semver's perspective it's a prerelease package. And because it's prerelease, ^4.0.0 won't resolve to it since it isn't prerelease.
So now the question becomes what's the correct way for ng-application-insights to reference @angular/router without trying to pull in its own if the versions aren't exactly right.
PS. Sorry for the comment spam. I feel thinking I'm going to go to bed but then end up investigating further :)

@dfederm Not a problem David, thanks for the research! I believe we need to set it as a peerDependency as opposed to a regular one, and that may solve the issue. Or we might need an OR for the version ^4.0.0 || 4.4.0-rc.0, rc0 might have been accidentally pushed out publically, since only full versions should be available, that should really only of been there if you installed via @next. Bizarre!

You're right, it does seem weird that a prerelease would be marked as @latest.
Here are some examples of what other libraries I use happen to be doing, sorted by how popular the library is (assuming that popular libs do it "the right way"):

@ng-bootstrap/ng-bootstrap - Lists @angular/core, @angular/common, and @angular/forms as 4.0.3 in peerDependencies and the rest in devDependencies as 4.0.3.
ng2-charts - Lists @angular/common and @angular/core as ^2.3.0 || >=4.0.0 in peerDependencies and the rest in devDependencies as 2.4.3.
ngx-clipboard - Lists @angular/core, @angular/common, and @angular/platform-browser as >=4.0.0 in peerDependencies and the rest in devDependencies as ^2.3.3.
ng2-adsense - Lists the 4.4.0-RC.0 version in its dependencies - This seems to be the only one that does this but it seems to be a pretty low volume package compared to the others.

So at least based on what other libs are doing, it looks like using a peerDependency as you mentioned is the most common pattern.

@chrisfoster78 Published version 2.3.2 to npm thanks to @dfederm give it a shot!

@MarkPieszak, @dfederm Thanks for your time and sorry I've not been much help.
I've just tried another new brand new project and got the following error:
ERROR in<EMAIL_ADDRESS>(4,23): Cannot find na
mespace 'Microsoft'.
ERROR in<EMAIL_ADDRESS>(5,51): Cannot find na
mespace 'Microsoft'.
ERROR in<EMAIL_ADDRESS>(38,14): Cannot find n
amespace 'Microsoft'.
ERROR in<EMAIL_ADDRESS>(71,24): Cannot find n
amespace 'AI'.
ERROR in<EMAIL_ADDRESS>(1,1): Cannot find typ
e definition file for 'applicationinsights-js'.

I then tried adding "@types/applicationinsights-js": "1.0.4" and get the same original error (No provider for Router).
I also observed the same dependency on @angular/router 4.3.6 in the package.lock file as @dfederm. But I don't think I was able to get version  2.3.1 working with angular 4.3.6, although could be mistaken.

It seems like I have been getting this error in my bare bones project as I simply followed the minimal instructions for setting up and had not added any routes.  Everything is fine after adding some routes and more importantly the dependency on the RouterModule.  The latest version is missing the typings dependency for applicationinsights from my previous comment.
Thanks for your help
Chris

Yes I think we need the types dependency and such back in peers, applicationinsights-js as well.
https://github.com/MarkPieszak/angular-application-insights/pull/27/files#diff-b9cfc7f2cdf78a7f4b91a753d10865a2L28

I think you're right about the types, but it feels weird to have types as a dependency.
Regarding the Router, which seems like a separate issue than these dependency issues, perhaps the Router should be marked as optional in the service's ctor? Just in case the app isn't using routing I guess. Probably rare in practice, but a little more generic.

Published 2.3.3 to at least fix the typing issue, thank you guys for noticing these things! Apologies 👍

Published 2.3.4 and tried, the types dep error is gone, and I didn't see "No provider for Router" so I think we're all set now!


Instanced Meshes can't use the same edgeRenderer

If a scene contains instances of a mesh that all use an edgeRenderer then multiple identical lineShader materials are created for each instance. It might be efficient if mesh instances could all use one instance of lineShader or edgeRenderer.
forum
Maybe code like this:
box2.edgesRenderer = box1.edgesRenderer;
Playground
Thanks in advance.

This would only be possible for instances where only one draw call could potentially render all the edges.

I'm not sure it can be done for instances...
Everything instance related is done at the sub mesh level (notably the list of visible instances), whereas the edge renderer works at the mesh geometry level: it is using the vertex buffer to create the lines, irrelevant of the sub meshes structure of the mesh.
So, that would mean creating in the edge renderer a set of lines for each different sub mesh, and in the render method we should loop over the sub meshes and issue a draw call for each. The problem is that we don't know which sub meshes are visible or not in this frame. Also, we don't have the world0/.../world3 vertex buffers set correctly (the current values are the ones set to draw the last drawn sub mesh), so we have to update them before each draw call.
Should we still do it? If yes, it still remain the problem to know which sub-meshes of the mesh are visible in the current frame.
Note however that thin instances can be supported easily in the edge renderer (I have already performed the changes in my local repo).

Regarding the op problem:

multiple identical lineShader materials are created for each instance

We could create the lineShader a single time and keep it as a static property of the class.

Easier to discuss with some code: #8265

Love the idea and understand the issue, go for it, it will already saves the state change associated to the program which costs a lot :-)
We ll close this as soon as the PR goes in. Thanks a lot.

Thanks to @Popov72 all done !!!

Thanks Popov72!


Add clomonitor manifest

The clomonitor manifest must go under community, that's the repo that CNCF scans.


Fix compilation on Visual Studio 2017

This is needed to be able to compile on Visual Studio 2017.

Thank you @jorgen! We are happy to take your fix.
Note that we do not have CI for VS 2017, and at this point we support VS 2019 and 2022. I.e. we can't guarantee you that we won't break VS 2017 build in future commits in some other place, as we don't have tools to verify that and we don't have plans to add them. But we will likely accept fixes like this in the future as well (I hope that it won't be needed often).


RuntimeHandler support

As part of the new Kubernetes RuntimeClass feature, we added a new field to the CRI's RunPodSandboxRequest: runtime_handler (https://github.com/kubernetes/kubernetes/pull/67518).
As discussed in the proposal (under RuntimeHandler), this new field is designed to select between multiple "handler" configurations, and deprecate the binary "trusted" and "untrusted" runtime selection.
In order to support this new feature, the following items need to be addressed:

[ ] Map the runtime_handler field to a runtime configuration, deprecating the io.kubernetes.cri-o.TrustedSandbox annotation.
[ ] Reject requests that cannot be mapped to a valid runtime configuration
[ ] (optional) Support multiple (non-binary) named runtime configurations

Proposal

Deprecate lib/Config.RuntimeUntrustedWorkload. If it is provided, give it the implicit configuration name of untrusted.

Deprecate lib/Config.DefaultWorkloadTrust.
(optional) Deprecate the lib/Config.Runtime field as well, favoring a runtime with the name of default (or, repurpose the field to refer to the name of a runtime in the Runtimes list)

Introduce a new field: Runtimes map[string]string

The key is the runtime_handler, the value is the runtime binary
Specifying both the deprecated RuntimeUntrustedWorkload and a Runtimes['untrusted'] is a configuration error (ditto for default, if we go that route).

Plumb the runtime config map & runtime handler through to the necessary places.

Return an error if the runtime handler does not map to a valid configuration
If both the untrusted annotation & runtime_handler are specified, prefer the runtime handler

@tallclair We talked about following scenarios:

pass the runtime name to CNI
pass the runtime "type" to CNI (native, virtual, ...)
pass the network type to CNI (veth, vhost)

We dont want 1)  so that CNI does not have to deal with specific runtime names.
Between 2 and 3, I think 2) makes the most sense to me. CNI plugin can setup the network based on whether it is dealing with a network namespace or a hypervisor.
I am not in favor of 3, as I dont think CRI should know about what interfaces need to be created. Again if this is added as part of the CRI configuration, this would need to be changed for every CNI.

I don't really like 2 (runtime type), since it requires us to come up with a classification scheme of all runtimes, but really what you're classifying is just the type of network it needs (option 3). Option 1 doesn't necessarily mean the CNI binary needs to understand runtime names, it would just mean that it needs to handle multiple named configurations, and select between them (similar to what is being proposed for CRI-o in this issue)

@tallclair Ok with 1, it sounds like we would need to add support in CNI to handle different configurations based on runtimes.

@ruijingguo @amshinde - this discussion is probably more relevant on https://github.com/kubernetes-incubator/cri-o/issues/1733, right?

@tallclair this proposal makes sense to me.

@egernst Yes, its more relevant for #1733. I meant to add my comments there instead. @ruijingguo lets move the discussion there.


'View in API' preference is not obvious

View in API is enabled by setting the developer setting in prefs - this is not obvious
Need to think about discoverability

We should change the title of this to "Advanced/Developer Features" and list them individually with checkboxes. I think this is where the preference for the advanced filtering would be at first.

This is similar to https://github.com/rancher/dashboard/issues/5813

If we cannot turn this on/off individually, we should at least include a list of the features which will be enabled. If this only affects one action, we only need to correct the label.

We would need to research what actually is exposed when turning on this checkbox so that we can come up with appropriate wording.
This would require a new issue around advanced filtering so if we do enable it, we should get it into a new page and then test it.

We do (only recently) describe what the enable developer tools & features checkbox does

As Ken suggested I think we need to make this more granular. The View in API feature is one a lot of users like and use, however it's bundled in with the feature to reveal Rancher namespaces which confuses a lot of users and they're better hidden. It was a convenient place to gate those features once, but given user input is now not suitable.
I think we need to break the dev tools setting up, and work on making the view in api part more discoverable

On 2.7-head commit id: 5d45218

View in API is seen more obvious now. And the checkboxes for all the options there work.
Verified View in API is enabled.