[SPARK-17421] Documenting the current treatment of MAVEN_OPTS.

What changes were proposed in this pull request?
Modified the documentation to clarify that build/mvn and pom.xml always add Java 7-specific parameters to MAVEN_OPTS, and that developers can safely ignore warnings about -XX:MaxPermSize that may result from compiling or running tests with Java 8.
How was this patch tested?
Rebuilt HTML documentation, made sure that building-spark.html displays correctly in a browser.

Can one of the admins verify this patch?

Sure, I'll redo that part so that includes two sets of recommended options. Note that docs in the Spark 2.0.0 release say that these options aren't necessary for Java 8.

Quick update: I'm running a series of test builds with various parameters to determine what parts of MAVEN_OPTS are currently necessary on different versions of Java. Will report back in a few days and update this PR.

@frreiss are you in a position to finish this one?

I've about narrowed down the options that work for OpenJDK 7 and 8 on Mac and Linux. Working on IBM Java on Linux. I can have an update in by EOD today.
BTW, one thing that's been slowing me down is that my local copies get "corrupted" after a while. Some of the tests in SparkSubmitSuite stop working until I delete and re-clone my local copy of Spark. I suspect there may be a race condition involving some directory that doesn't get cleaned by the "clean" target.

Summary of testing:

On Java 8, the build fails intermittently with OOM when -Xmx2g is omitted
The -XX:ReservedCodeCacheSize=512m argument prevents warnings on both Java 7 and OpenJDK 8
-XX:ReservedCodeCacheSize=512m has no effect on IBM Java 8

Test build #3284 has started for PR 15005 at commit 774a101.

Test build #3284 has finished for PR 15005 at commit 774a101.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #3286 has started for PR 15005 at commit 53a09cd.

Test build #3286 has finished for PR 15005 at commit 53a09cd.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged to master/2.0

Thanks @srowen for all the thoughtful comments! It's great to see committers spending time to help improve the build experience for new developers.


Fix sentence and create textual consistency.

A few textual updates to improve the project.

@royloohuis thanks!


Group Library

The connection doesn't seem to find the Group libraries I have inside my Zotero.
Is it not a feature or am I messing up a setting somewhere?

Figured it out. I didn't have the group library tag assigned.


feat: add stitch class to stitch regions onto frames

closes #xxxx

[ ] tests added
[ ] all tests pass
[ ] documentation
[ ] AUTHORS entry
[ ] Changelog entry

:books: Documentation preview :books:: https://morphocut--108.org.readthedocs.build/en/108/

The changes to ecotaxa and core are unrelated to the topic of this pull request, can you please revert them?

I merged the master branch and now the changes look clean.

Thanks for this huge chunk of work! (Please excuse my brevity, the baby demands my attention;))

I made a few changes to increase coverage. I think after you addressed my remark above, this PR can be merged.


mypy should pass strictly.

Is your feature request related to a problem? Please describe.
Currently mypy is used, but no strict parsing.
Describe the solution you'd like
Implement 100% mypy strict parsing
Describe alternatives you've considered
N/A
Additional context
N/A

This is the case in the main branch


[plugin|tiling] focusing of elements prevents commands from working

When any window that is not actually a window, hereby referred to as just elements, gets focused (url tooltip etc.), these become our focused window.
When these elements are destroyed, we do not receive a focus changed event (thanks Apple..), and what we think is the focused window, is not actually the focused window.
The reason why the id of the focused window is cached, is #19.
Need to rethink how we want to handle this.

Focused window id is no longer cached. Because of lack of proper events from mac APIs, this is the only solution that will properly solve this problem.


Q: Enable Github discussions?

How about we enable the discussions feature for this repo?

At the moment, our conversations are happening on Slack (https://aka.ms/playwright-slack) under #playwright-sharp, and we have no particular need to enable the discussions feature. I'm happy to hear arguments about what we could gain from it, though.


Milestone 1 Checklist

[x] Team work contract
[x] Pick a topic
[x] Create project structure for the Python project
[x] Function specifications
[x] Manage issues
[x] Check specific expectations

All tasks are finished. Submitted.


Generating a sequelize service backed by NeDB causes app to throw.

I added a Sequelize service and chose NeDB (!) as the database. The app threw when I started it.
/home/johnsz/shared/repos/feathers-test/test-app/node_modules/sequelize/lib/sequelize.js:111
      options.dialect = urlParts.protocol.replace(/:$/, '');
                                         ^

TypeError: Cannot read property 'replace' of null
    at new Sequelize (/home/johnsz/shared/repos/feathers-test/test-app/node_modules/sequelize/lib/sequelize.js:111:42)
    at EventEmitter.module.exports (/home/johnsz/shared/repos/feathers-test/test-app/src/sequelize.js:6:21)
    at EventEmitter.configure (/home/johnsz/shared/repos/feathers-test/test-app/node_modules/feathers/lib/application.js:138:8)

The sequelize.model.js runs
const sequelizeClient = app.get('sequelizeClient');

but that has not been created in config/default.json.

Actually the database selection is messed up. All the DBs are offered in a seeminly endless list.

Then I created a Sequelize service using SQLite. config/default.json contained "sqlite": "sqlite://test_app.sqlite".
The app threw in the same place when I started it
/home/johnsz/shared/repos/feathers-test/test-app/node_modules/sequelize/lib/sequelize.js:111
      options.dialect = urlParts.protocol.replace(/:$/, '');
                                         ^

TypeError: Cannot read property 'replace' of null
    at new Sequelize (/home/johnsz/shared/repos/feathers-test/test-app/node_modules/sequelize/lib/sequelize.js:111:42)
    at EventEmitter.module.exports (/home/johnsz/shared/repos/feathers-test/test-app/src/sequelize.js:6:21)

That's how inquirer does its lists. But you are right, the options list should be limited to valid databases.

This issue was moved to feathersjs/feathers#953


[Python][Skyhook] the code not include the "libarrow_skyhook_client.so" library

Describe the bug, including details regarding any error messages, version, and platform.
According to the paper mention:
import pyarrow.dataset as ds
format_ = ds.SkyhookFileFormat( "parquet", "/ceph.conf" )
But for the skyhook build, when set up "ARROW_SKYHOOK=ON", there is no "libarrow_skyhook_client.so" library generate. SkyhookFileFormat API can not be used.
Component(s)
Packaging, Python

Skyhook's library name is libarrow_skyhook.so not libarrow_skyhook_client.so.
Why do you think that the name is libarrow_skyhook_client.so.
Cc: @JayjeetAtGithub

Skyhook's library name is libarrow_skyhook.so not libarrow_skyhook_client.so. Why do you think that the name is libarrow_skyhook_client.so.
Cc: @JayjeetAtGithub

'libarrow_skyhook_client.so' is support to using 'SkyhookFileFormat' API which is link 'arrow_dataset', 'arrow', and 'arrow_skyhook_client' shared libraries during compiling.
Reference: [https://jayjeetc.medium.com/skyhookdm-is-now-a-part-of-apache-arrow-e5d7b9a810ba]

The article was written by @JayjeetAtGithub . So we should wait for a response from @JayjeetAtGithub . :-)

The article was written by @JayjeetAtGithub . So we should wait for a response from @JayjeetAtGithub . :-)

For Sure.

The libarrow_skyhook_client.so library is generated by the arrow_skyhook_client target in the pyarrow/cpp/build/BUILD.gn file. This target is only enabled when ARROW_SKYHOOK=ON is set.
The SkyhookFileFormat API is implemented in the arrow/ipc/skyhook.cc file. This file only includes the libarrow_skyhook_client.so library if it is available.
When ARROW_SKYHOOK=ON is not set, the libarrow_skyhook_client.so library is not generated, and the SkyhookFileFormat API is not available.

The libarrow_skyhook_client.so library is generated by the arrow_skyhook_client target in the pyarrow/cpp/build/BUILD.gn file. This target is only enabled when ARROW_SKYHOOK=ON is set.

Sorry, I didn't find the "pyarrow/cpp/build/BUILD.gn" file in the aparche arrow source code. Could you please help provide a source code link?

The libarrow_skyhook_client.so library is generated by the arrow_skyhook_client target in the pyarrow/cpp/build/BUILD.gn file. This target is only enabled when ARROW_SKYHOOK=ON is set.
The SkyhookFileFormat API is implemented in the arrow/ipc/skyhook.cc file. This file only includes the libarrow_skyhook_client.so library if it is available.
When ARROW_SKYHOOK=ON is not set, the libarrow_skyhook_client.so library is not generated, and the SkyhookFileFormat API is not available.

PS, I also set the 'ARROW_SKYHOOK=ON' and according to the paper: 'https://arxiv.org/pdf/2204.06074.pdf" paper, the pyarrow need to include a function named 'SkyhookFileFormat'. But it is not include this function at 'pyarrow ' library.

How are you installing Arrow today?  I think we might not be enabling skyhook in the wheels that we publish to pypi / conda-forge.  So you will have to build wheels from source.  Directions on how to do this are here: https://arrow.apache.org/docs/developers/python.html

How are you installing Arrow today? I think we might not be enabling skyhook in the wheels that we publish to pypi / conda-forge. So you will have to build wheels from source. Directions on how to do this are here: https://arrow.apache.org/docs/developers/python.html

Thank you for providing the information. I'll try for that.

@shou123 , I know this is quite late, but did you manage to figure out your issue?


Invalid precision when running train_project_gutenberg

I am running on the mac, and like the clarity of your code. My device is 'cpu', since I don't have Cuda on a mac notebook. Running retnet.py works fine. However, when running train_project_gutenburg using the command:
python -m scripts.train_project_gutenberg

I get the following trace:
Traceback (most recent call last):
  File "/Users/erlebach/opt/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Users/erlebach/opt/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Users/erlebach/src/2023/retentive_networks/retentive_code/yet-another-retnet/scripts/train_project_gutenberg.py", line 388, in <module>
    main(**vars(args))
  File "/Users/erlebach/src/2023/retentive_networks/retentive_code/yet-another-retnet/scripts/train_project_gutenberg.py", line 349, in main
    train(
  File "/Users/erlebach/src/2023/retentive_networks/retentive_code/yet-another-retnet/scripts/train_project_gutenberg.py", line 205, in train
    fabric = Fabric(
  File "/Users/erlebach/src/2023/retentive_networks/retentive_code/yet-another-retnet/.venv/lib/python3.10/site-packages/lightning/fabric/fabric.py", line 127, in __init__
    self._connector = _Connector(
  File "/Users/erlebach/src/2023/retentive_networks/retentive_code/yet-another-retnet/.venv/lib/python3.10/site-packages/lightning/fabric/connector.py", line 135, in __init__
    self._check_config_and_set_final_flags(
  File "/Users/erlebach/src/2023/retentive_networks/retentive_code/yet-another-retnet/.venv/lib/python3.10/site-packages/lightning/fabric/connector.py", line 229, in _check_config_and_set_final_flags
    precision_input = _convert_precision_to_unified_args(precision)
  File "/Users/erlebach/src/2023/retentive_networks/retentive_code/yet-another-retnet/.venv/lib/python3.10/site-packages/lightning/fabric/connector.py", line 559, in _convert_precision_to_unified_args
    raise ValueError(f"Precision {repr(precision)} is invalid. Allowed precision values: {supported_precision}")
ValueError: Precision 'float32' is invalid. Allowed precision values: ('transformer-engine', 'transformer-engine-float16', '16-true', '16-mixed', 'bf16-true', 'bf16-mixed', '32-true', '64-true', 64, 32, 16, '64', '32', '16', 'bf16')

What is non-standard in the current code that is preventing this from happening? Thanks.

I'm away from my computer right now, but looks like I set the wrong default value (float32 instead of the correct value 32-true).  Will fix asap once I'm back.  You can also pass --precision 32-true to the training script as a temporary workaround.

I fixed the issue, and you might wish to do the same:
    if precision is None:
        if torch.cuda.is_available():
            # use bfloat16 if supported
            version, _ = torch.cuda.get_device_capability()
            precision = "bf16-mixed" if version >= 8 else "16-mixed"
        else:
            #precision = "float32"
            precision = "32"  # for CPU

in train_project_gutenberg.py. I am running on the CPU, and float32 fails, at least on a mac notebook running the M2 chip.


Codespace spaceone01 super goggles jg47p95g9r43jr5x

 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.


Why std(stddev, variance) windows function doesn't support order by?

Enhancement
I think var windows functions are useful. Starrocks supports partition by but doesn't work with order by.
Why? And how could I solve some problems like  "select order_id, datetime, std(price) over (partition by order_id order by datetime rows between 5preceding and current row) from table"?

fixed by https://github.com/StarRocks/starrocks/pull/30786


Syntax highlighting incorrect for methods with type hinting

Environment data

VS Code version: Version 1.28.0-insider (1.28.0-insider)
Extension version (available under the Extensions sidebar): 2018.8.0
OS and version: MacOS High Sierra 10.13.6 (17G65)
Python version (& distribution if applicable, e.g. Anaconda): Virtualenv 3.6
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): virtualenv

Actual behavior

Expected  behavior
get_args method comment, and string should be formatted as they are in get_args_no_hints
Steps to reproduce:
Add type hints to method. The return value of anything other than a simple scalar causes this.

We actually don't handle the syntax highlighting; it comes from VS Code who gets it from MagicPython.


Nonce plugin

This PR adds a plugin for verifying nonces for signed calls.
The client implementation for this plugin will come in a future PR.
Should be merged after #68.

Codecov Report

Merging #71 (56a312e) into develop (f22b243) will decrease coverage by 3.92%.
The diff coverage is 27.98%.

@@             Coverage Diff             @@
##           develop      #71      +/-   ##
===========================================
- Coverage    60.91%   56.98%   -3.93%
===========================================
  Files           24       28       +4
  Lines         2259     2469     +210
===========================================
+ Hits          1376     1407      +31
- Misses         883     1062     +179

Impacted Files
Coverage Δ

src/abci/mod.rs
0.00% <0.00%> (ø)

src/abci/node.rs
0.00% <0.00%> (ø)

src/abci/prost.rs
0.00% <0.00%> (ø)

src/contexts/abci.rs
0.00% <0.00%> (ø)

src/contexts/nonce.rs
0.00% <0.00%> (ø)

src/contexts/signer.rs
0.00% <0.00%> (ø)

src/merk/backingstore.rs
0.00% <0.00%> (ø)

src/merk/proofbuilder.rs
0.00% <ø> (ø)

src/store/store.rs
96.36% <ø> (ø)

src/tendermint/mod.rs
0.00% <0.00%> (ø)

... and 11 more

Continue to review full report at Codecov.

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


So you guys were rejected？

Why has the code not been released? Lol..

Maybe, or maybe they are waiting for some Journal Publication, which can even take up to a year.
However, now the project website is down too, i.e. https://scenex-lab.github.io/ which is a bit suspicious. I am eagerly waiting for the code.


RACK_ENV -> RAILS_ENV

Same deal here, going to merge myself because I'm the only FTE.

Not sure why Hound failed because it passed right before this. Merging anyways.


Configure alerts

Configure alerts based on logs.
This task to be done after #8.

Does this belong in this repo? The alerts are probably going to be some separate service.

It depends, the alert options that were discussed in the beginning were either OpsGenie alerts sent from the airseeker directly, or alternatively some solution to generate alerts based on the exported logs.

I see. I think this is blocked until we make a decision what alerting mechanism we want to have in place.
Before that I think we should focus on the implementation and logs. (I'd say we can get pretty far with just good enough logs).

We have agreed on call that logs might be enough. I'm closing this and we can recreate/reopen if this becomes relevant in the future.


Support DeleteResourceOnFinalize k8s plugin config

Signed-off-by: Haytham Abuelfutuh<EMAIL_ADDRESS>TL;DR
Implement DeleteResourceOnFinalize to delete k8s resources on Finalize() this ensures resources do not continue to consume cluster resources after flyte has detected they completed.
Type

[ ] Bug Fix
[X] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[x] Unit tests added
[x] Code documentation added
[x] Any pending items have an associated Issue

Tracking Issue
https://github.com/flyteorg/flyte/issues/1152

don't you still need to update go.mod?

oh thank you. I ran go get -u githbu.com/flyteorg/flyteplugins but that doesn't seem to have worked... I should have verified. thanks for catching it


Custom ID types on eager queries

Hey there :wave:
I have the following model definition:
class Foo extends Model {
  id: UUID;
  barId: UUID;

  static get tableName() {
    return 'foo';
  }

  $parseDatabaseJson(json: any) {
    json = super.$parseDatabaseJson(json);

    if (json.id && !(json.id instanceof UUID)) {
      json.id = UUID.fromString(json.id);
    }

    if (json.bardId && !(json.barId instanceof UUID)) {
      json.barId = UUID.fromString(json.barId);
    }

    return json;
  }

  $formatDatabaseJson(json: any) {
    json = super.$formatDatabaseJson(json);

    if (json.id && json.id instanceof UUID) {
      json.id = json.id.toString();
    }

    if (json.bardId && json.bardId instanceof UUID) {
      json.bardId = json.bardId.toString();
    }

    return json;
  }

  static get relationMappings() {
    return {
      bar: {
        relation: Model.BelongsToOneRelation,
        modelClass: Bar,
        join: {
          from: 'foo.barId',
          to: 'bar.id',
        },
      },
    };
  }
}

I have two questions.
Firstly, calling await Foo.query().eager('bar') fails as Postgres complains that {"str":"3957295d-57cb-49ef-bc83-17054f7facf6"} is an invalid uuid type. Seems like when fetching the bar relation, the barId value in Foo isn't being converted to a string, and is being passed as a UUID class instead. Should $formatDatabaseJson not be called first, or is there another way to handle type casting for relation queries?
Secondly, I read that $parseDatabaseJson can be called multiple times, with subsets of model values. However, it seems subsequent calls are made with the results of previous calls to $parseDatabaseJson. This means that on first run, it correctly casts json.id to a UUID type, but on second run, json.id is already a UUID type, and causes UUID.fromString(json.id) to fail. I therefore have to be very defensive in that function (i.e., add if (json.id && !(json.id instanceof UUID))). Is there a more elegant, less boiler-plate way of handling this?
Thanks for all the hard work!

Hi,
$formatDatabaseJson is not called for the foreign keys, but it probably should be for cases like this. The problem is that at this point, it would probably break too much existing code and projects in unpredicable ways. People use $parseDatabaseJson and $formatDatabaseJson in very different ways.
I'll take a look at some point to see if we could have some kind of cleaner solution for this problem.
In the meanwhile I'd suggest avoiding mapping foreign keys to class instances. Is is somehow particularly useful to have the ids as UUID instances? What's the benefit over just having them as strings?

Hey @koskimas 👋
Thanks for the quick response! That clears it up for me.
There’s no convincing reason for us to continue using the UUID wrapper. It just contains some generic UUID helpers (I.e., generating a random UUID), but those can very easily be split out. My biggest goal was to minimize the required changes to our existing codebase when introducing objection.js into the mix, but I can make it work.
Will keep an eye out for a fix, but feel free to close this issue in the interim.
Cheers 🙂

If UUID is a class you wrote yourself, you could add this method
  toKnexRaw(builder) {
    return builder.knex().raw('?', this.toString());
  }

and thing should work. toKnexRaw is not part of the public API yet, but I'll add it soon(ish) and it should be safe to use it.

Actually, you shouldn't have a class instance as an id. It would be really difficult to make work with all objection features. I'll close this for now.


Network problem on node pool workloads-1 with access to the attached network

/kind bug
What steps did you take and what happened:
I have the following configuration for control-plane node pool:
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: hz-k8s-capi-fsn1-cw-dev
  namespace: default
spec:
  clusterNetwork:
    pods:
      cidrBlocks:
      - <IP_ADDRESS>/16
  controlPlaneRef:
    apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    kind: KubeadmControlPlane
    name: hz-k8s-capi-fsn1-cw-dev-control-plane
  infrastructureRef:
    apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    kind: HetznerCluster
    name: hz-k8s-capi-fsn1-cw-dev

---
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineHealthCheck
metadata:
  name: hz-k8s-capi-fsn1-cw-dev-control-plane-unhealthy-5m
  namespace: default
spec:
  clusterName: hz-k8s-capi-fsn1-cw-dev
  maxUnhealthy: 100%
  nodeStartupTimeout: 15m
  remediationTemplate:
    apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    kind: HCloudRemediationTemplate
    name: control-plane-remediation-request
  selector:
    matchLabels:
      cluster.x-k8s.io/control-plane: ""
  unhealthyConditions:
  - status: Unknown
    timeout: 180s
    type: Ready
  - status: "False"
    timeout: 180s
    type: Ready

---
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
metadata:
  name: hz-k8s-capi-fsn1-cw-dev-control-plane
  namespace: default
spec:
  kubeadmConfigSpec:
    clusterConfiguration:
      apiServer:
        extraArgs:
          authorization-mode: Node,RBAC
          client-ca-file: /etc/kubernetes/pki/ca.crt
          cloud-provider: external
          default-not-ready-toleration-seconds: "45"
          default-unreachable-toleration-seconds: "45"
          enable-aggregator-routing: "true"
          enable-bootstrap-token-auth: "true"
          encryption-provider-config: /etc/kubernetes/encryption-provider.yaml
          etcd-cafile: /etc/kubernetes/pki/etcd/ca.crt
          etcd-certfile: /etc/kubernetes/pki/etcd/server.crt
          etcd-keyfile: /etc/kubernetes/pki/etcd/server.key
          kubelet-client-certificate: /etc/kubernetes/pki/apiserver-kubelet-client.crt
          kubelet-client-key: /etc/kubernetes/pki/apiserver-kubelet-client.key
          kubelet-preferred-address-types: ExternalIP,Hostname,InternalDNS,ExternalDNS
          profiling: "false"
          proxy-client-cert-file: /etc/kubernetes/pki/front-proxy-client.crt
          proxy-client-key-file: /etc/kubernetes/pki/front-proxy-client.key
          requestheader-allowed-names: front-proxy-client
          requestheader-client-ca-file: /etc/kubernetes/pki/front-proxy-ca.crt
          requestheader-extra-headers-prefix: X-Remote-Extra-
          requestheader-group-headers: X-Remote-Group
          requestheader-username-headers: X-Remote-User
          service-account-key-file: /etc/kubernetes/pki/sa.pub
          service-account-lookup: "true"
          tls-cert-file: /etc/kubernetes/pki/apiserver.crt
          tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256
          tls-private-key-file: /etc/kubernetes/pki/apiserver.key
        extraVolumes:
        - hostPath: /etc/kubernetes/encryption-provider.yaml
          mountPath: /etc/kubernetes/encryption-provider.yaml
          name: encryption-provider
      controllerManager:
        extraArgs:
          allocate-node-cidrs: "true"
          authentication-kubeconfig: /etc/kubernetes/controller-manager.conf
          authorization-kubeconfig: /etc/kubernetes/controller-manager.conf
          bind-address: <IP_ADDRESS>
          cloud-provider: external
          cluster-signing-cert-file: /etc/kubernetes/pki/ca.crt
          cluster-signing-duration: 6h0m0s
          cluster-signing-key-file: /etc/kubernetes/pki/ca.key
          kubeconfig: /etc/kubernetes/controller-manager.conf
          profiling: "false"
          requestheader-client-ca-file: /etc/kubernetes/pki/front-proxy-ca.crt
          root-ca-file: /etc/kubernetes/pki/ca.crt
          secure-port: "10257"
          service-account-private-key-file: /etc/kubernetes/pki/sa.key
          terminated-pod-gc-threshold: "10"
          use-service-account-credentials: "true"
      etcd:
        local:
          dataDir: /var/lib/etcd
          extraArgs:
            auto-tls: "false"
            cert-file: /etc/kubernetes/pki/etcd/server.crt
            cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256
            client-cert-auth: "true"
            key-file: /etc/kubernetes/pki/etcd/server.key
            peer-auto-tls: "false"
            peer-client-cert-auth: "true"
            trusted-ca-file: /etc/kubernetes/pki/etcd/ca.crt
      scheduler:
        extraArgs:
          bind-address: <IP_ADDRESS>
          kubeconfig: /etc/kubernetes/scheduler.conf
          profiling: "false"
          secure-port: "10259"
    files:
    - content: |
        apiVersion: apiserver.config.k8s.io/v1
        kind: EncryptionConfiguration
        resources:
          - resources:
            - secrets
            providers:
            - aescbc:
                keys:
                - name: key1
                  secret: 8d7iAcg3/NwN9aijhtEXj5kL2NOHIgokGFjbIBfL6X0=
            - identity: {}
      owner: root:root
      path: /etc/kubernetes/encryption-provider.yaml
      permissions: "0600"
    - content: |
        net.ipv4.conf.lxc*.rp_filter = 0
      owner: root:root
      path: /etc/sysctl.d/99-cilium.conf
      permissions: "0744"
    - content: |
        overlay
        br_netfilter
      owner: root:root
      path: /etc/modules-load.d/crio.conf
      permissions: "0744"
    - content: |
        net.bridge.bridge-nf-call-iptables  = 1
        net.bridge.bridge-nf-call-ip6tables = 1
        net.ipv4.ip_forward                 = 1
      owner: root:root
      path: /etc/sysctl.d/99-kubernetes-cri.conf
      permissions: "0744"
    - content: |
        vm.overcommit_memory=1
        kernel.panic=10
        kernel.panic_on_oops=1
      owner: root:root
      path: /etc/sysctl.d/99-kubelet.conf
      permissions: "0744"
    - content: |
        nameserver <IP_ADDRESS>
        nameserver <IP_ADDRESS>
        nameserver 2606:4700:4700::1111
      owner: root:root
      path: /etc/kubernetes/resolv.conf
      permissions: "0744"
    initConfiguration:
      nodeRegistration:
        kubeletExtraArgs:
          anonymous-auth: "false"
          authentication-token-webhook: "true"
          authorization-mode: Webhook
          cloud-provider: external
          event-qps: "5"
          kubeconfig: /etc/kubernetes/kubelet.conf
          max-pods: "120"
          read-only-port: "0"
          resolv-conf: /etc/kubernetes/resolv.conf
          rotate-server-certificates: "true"
          tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256
    joinConfiguration:
      nodeRegistration:
        kubeletExtraArgs:
          anonymous-auth: "false"
          authentication-token-webhook: "true"
          authorization-mode: Webhook
          cloud-provider: external
          event-qps: "5"
          kubeconfig: /etc/kubernetes/kubelet.conf
          max-pods: "120"
          read-only-port: "0"
          resolv-conf: /etc/kubernetes/resolv.conf
          rotate-server-certificates: "true"
          tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256
    preKubeadmCommands:
    - set -x
    - export CONTAINERD=1.7.14
    - export KUBERNETES_VERSION=$(echo 1.28.7 | sed 's/^v//')
    - export TRIMMED_KUBERNETES_VERSION=$(echo 1.28.7 | sed 's/^v//' | awk -F . '{print
      $1 "." $2}')
    - ARCH=amd64
    - if [ "$(uname -m)" = "aarch64" ]; then ARCH=arm64; fi
    - localectl set-locale LANG=en_US.UTF-8
    - localectl set-locale LANGUAGE=en_US.UTF-8
    - apt-get update -y
    - apt-get -y install at jq unzip wget socat mtr logrotate apt-transport-https
    - sed -i '/swap/d' /etc/fstab
    - swapoff -a
    - modprobe overlay && modprobe br_netfilter && sysctl --system
    - wget https://github.com/containerd/containerd/releases/download/v$CONTAINERD/cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz
    - wget https://github.com/containerd/containerd/releases/download/v$CONTAINERD/cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz.sha256sum
    - sha256sum --check cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz.sha256sum
    - tar --no-overwrite-dir -C / -xzf cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz
    - rm -f cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz.sha256sum
    - chmod -R 644 /etc/cni && chown -R root:root /etc/cni
    - mkdir -p /etc/containerd
    - containerd config default > /etc/containerd/config.toml
    - sed -i  "s/SystemdCgroup = false/SystemdCgroup = true/" /etc/containerd/config.toml
    - systemctl daemon-reload && systemctl enable containerd && systemctl start containerd
    - mkdir -p /etc/apt/keyrings/
    - curl -fsSL https://pkgs.k8s.io/core:/stable:/v$TRIMMED_KUBERNETES_VERSION/deb/Release.key
      | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    - echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v$TRIMMED_KUBERNETES_VERSION/deb/
      /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    - apt-get update
    - apt-get install -y kubelet=$KUBERNETES_VERSION-1.1 kubeadm=$KUBERNETES_VERSION-1.1
      kubectl=$KUBERNETES_VERSION-1.1  bash-completion && apt-mark hold kubelet kubectl
      kubeadm && systemctl enable kubelet
    - kubeadm config images pull --kubernetes-version $KUBERNETES_VERSION
    - echo 'source <(kubectl completion bash)' >>/root/.bashrc
    - echo 'export KUBECONFIG=/etc/kubernetes/admin.conf' >>/root/.bashrc
    - apt-get -y autoremove && apt-get -y clean all
  machineTemplate:
    infrastructureRef:
      apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
      kind: HCloudMachineTemplate
      name: hz-k8s-capi-fsn1-cw-dev-control-plane
  replicas: 3
  version: 1.28.7

---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: HCloudMachineTemplate
metadata:
  name: hz-k8s-capi-fsn1-cw-dev-control-plane
  namespace: default
spec:
  template:
    spec:
      imageName: ubuntu-22.04
      placementGroupName: control-plane
      type: cpx31

---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: HCloudRemediationTemplate
metadata:
  name: control-plane-remediation-request
  namespace: default
spec:
  template:
    spec:
      strategy:
        retryLimit: 1
        timeout: 180s
        type: Reboot

---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: HCloudRemediationTemplate
metadata:
  name: worker-remediation-request
  namespace: default
spec:
  template:
    spec:
      strategy:
        retryLimit: 1
        timeout: 180s
        type: Reboot

---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: HetznerCluster
metadata:
  name: hz-k8s-capi-fsn1-cw-dev
  namespace: default
spec:
  controlPlaneEndpoint:
    host: ""
    port: 443
  controlPlaneLoadBalancer:
    region: fsn1
  controlPlaneRegions:
  - fsn1
  - nbg1
  - hel1
  hcloudNetwork:
    enabled: true
    cidrBlock: "<IP_ADDRESS>/16"
    subnetCidrBlock: "<IP_ADDRESS>/24"
    networkZone: "eu-central"
  hcloudPlacementGroups:
  - name: control-plane
    type: spread
  - name: services
    type: spread
  - name: monitoring
    type: spread
  - name: workloads-1
    type: spread
  - name: egress-1
    type: spread
  hetznerSecretRef:
    key:
      hcloudToken: hcloud
      hetznerRobotPassword: robot-password
      hetznerRobotUser: robot-user
    name: hetzner
  sshKeys:
    hcloud:
    - name: user1
    - name: user2

The network of my K8s Cluster, which was created using CAPI, is <IP_ADDRESS>/16, but all the resources that I need to connect to from pods are on another network <IP_ADDRESS>/16.
Thus, the following configuration was decided for node-pool workloads-1:
---
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
metadata:
  name: hz-k8s-capi-fsn1-cw-dev-workloads-1
  namespace: default
spec:
  template:
    spec:
      files:
      - content: |
          net.ipv4.conf.lxc*.rp_filter = 0
        owner: root:root
        path: /etc/sysctl.d/99-cilium.conf
        permissions: "0744"
      - content: |
          overlay
          br_netfilter
        owner: root:root
        path: /etc/modules-load.d/crio.conf
        permissions: "0744"
      - content: |
          net.bridge.bridge-nf-call-iptables  = 1
          net.bridge.bridge-nf-call-ip6tables = 1
          net.ipv4.ip_forward                 = 1
        owner: root:root
        path: /etc/sysctl.d/99-kubernetes-cri.conf
        permissions: "0744"
      - content: |
          vm.overcommit_memory=1
          kernel.panic=10
          kernel.panic_on_oops=1
        owner: root:root
        path: /etc/sysctl.d/99-kubelet.conf
        permissions: "0744"
      - content: |
          nameserver <IP_ADDRESS>
          nameserver <IP_ADDRESS>
          nameserver 2606:4700:4700::1111
        owner: root:root
        path: /etc/kubernetes/resolv.conf
        permissions: "0744"
      joinConfiguration:
        nodeRegistration:
          kubeletExtraArgs:
            anonymous-auth: "false"
            authentication-token-webhook: "true"
            authorization-mode: Webhook
            cloud-provider: external
            event-qps: "5"
            kubeconfig: /etc/kubernetes/kubelet.conf
            max-pods: "220"
            read-only-port: "0"
            resolv-conf: /etc/kubernetes/resolv.conf
            rotate-server-certificates: "true"
            tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256
      preKubeadmCommands:
      - set -x
      - grep VERSION= /etc/os-release; uname -a
      - export CONTAINERD=1.7.14
      - export KUBERNETES_VERSION=$(echo 1.28.7 | sed 's/^v//')
      - export TRIMMED_KUBERNETES_VERSION=$(echo 1.28.7 | sed 's/^v//' | awk -F .
        '{print $1 "." $2}')
      - ARCH=amd64
      - if [ "$(uname -m)" = "aarch64" ]; then ARCH=arm64; fi
      - localectl set-locale LANG=en_US.UTF-8
      - localectl set-locale LANGUAGE=en_US.UTF-8
      - apt-get update -y
      - apt-get -y install at jq unzip wget socat mtr logrotate apt-transport-https hcloud-cli nfs-common
      - export IHN=$(cat /etc/hostname)
      - export HCLOUD_TOKEN="*********************************************************************"
      - export HCLOUD_CONTEXT="hz-k8s-capi-fsn1-cw-dev"
      - |
        while true; do
          if hcloud server attach-to-network $IHN --network main-network; then
            echo "hcloud command executed successfully. Continuing with the next commands."
            break
          else
            echo "hcloud command failed. Retrying in 10 seconds..."
            sleep 10
          fi
        done
      - sed -i '/swap/d' /etc/fstab
      - swapoff -a
      - modprobe overlay && modprobe br_netfilter && sysctl --system
      - wget https://github.com/containerd/containerd/releases/download/v$CONTAINERD/cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz
      - wget https://github.com/containerd/containerd/releases/download/v$CONTAINERD/cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz.sha256sum
      - sha256sum --check cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz.sha256sum
      - tar --no-overwrite-dir -C / -xzf cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz
      - rm -f cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz cri-containerd-cni-$CONTAINERD-linux-$ARCH.tar.gz.sha256sum
      - chmod -R 644 /etc/cni && chown -R root:root /etc/cni
      - mkdir -p /etc/containerd
      - containerd config default > /etc/containerd/config.toml
      - sed -i  "s/SystemdCgroup = false/SystemdCgroup = true/" /etc/containerd/config.toml
      - systemctl daemon-reload && systemctl enable containerd && systemctl start
        containerd
      - mkdir -p /etc/apt/keyrings/
      - curl -fsSL https://pkgs.k8s.io/core:/stable:/v$TRIMMED_KUBERNETES_VERSION/deb/Release.key
        | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
      - echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v$TRIMMED_KUBERNETES_VERSION/deb/
        /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
      - apt-get update
      - apt-get install -y kubelet=$KUBERNETES_VERSION-1.1 kubeadm=$KUBERNETES_VERSION-1.1
        kubectl=$KUBERNETES_VERSION-1.1  bash-completion && apt-mark hold kubelet
        kubectl kubeadm && systemctl enable kubelet
      - kubeadm config images pull --kubernetes-version $KUBERNETES_VERSION
      - echo 'source <(kubectl completion bash)' >>/root/.bashrc
      - echo 'export KUBECONFIG=/etc/kubernetes/admin.conf' >>/root/.bashrc
      - apt-get -y autoremove && apt-get -y clean all

---
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineDeployment
metadata:
  labels:
    nodepool: hz-k8s-capi-fsn1-cw-dev-workloads-1
  name: hz-k8s-capi-fsn1-cw-dev-workloads-1
  namespace: default
spec:
  clusterName: hz-k8s-capi-fsn1-cw-dev
  replicas: 1
  selector:
    matchLabels: null
  template:
    metadata:
      labels:
        nodepool: hz-k8s-capi-fsn1-cw-dev-workloads-1
        node-role.kubernetes.io/nodepool: workloads-1
    spec:
      bootstrap:
        configRef:
          apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
          kind: KubeadmConfigTemplate
          name: hz-k8s-capi-fsn1-cw-dev-workloads-1
      clusterName: hz-k8s-capi-fsn1-cw-dev
      failureDomain: fsn1
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: HCloudMachineTemplate
        name: hz-k8s-capi-fsn1-cw-dev-workloads-1
      version: 1.28.7

---
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineHealthCheck
metadata:
  name: hz-k8s-capi-fsn1-cw-dev-workloads-1-unhealthy-5m
  namespace: default
spec:
  clusterName: hz-k8s-capi-fsn1-cw-dev
  maxUnhealthy: 100%
  nodeStartupTimeout: 10m
  remediationTemplate:
    apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    kind: HCloudRemediationTemplate
    name: worker-remediation-request
  selector:
    matchLabels:
      nodepool: hz-k8s-capi-fsn1-cw-dev-workloads-1
  unhealthyConditions:
  - status: Unknown
    timeout: 180s
    type: Ready
  - status: "False"
    timeout: 180s
    type: Ready

---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: HCloudMachineTemplate
metadata:
  name: hz-k8s-capi-fsn1-cw-dev-workloads-1
  namespace: default
spec:
  template:
    spec:
      imageName: ubuntu-22.04
      placementGroupName: workloads-1
      type: cpx41

Thus, after deploying node-pool workloads-1, I attach an additional network <IP_ADDRESS>/16 in which I have all the services that pods should have access to and everything works correctly for me in this configuration, but sometimes this network falls off <IP_ADDRESS>/16 on node pool workloads-1 and restoring this network helps only by deleting the server and re-creating it using CAPI. Previously, these network failures happened rarely, but now they are common.
What did you expect to happen:
I expected that after these manipulations I would get access to the network <IP_ADDRESS>/16 and this access to the network would be stable, but in practice, the network constantly falls off, for various reasons, ping does not work or this interface goes down.
Anything else you would like to add:
I would also like to understand whether it is possible to do such manipulations as I did above in these configurations, with an additional network attached to workloads-1.
I'm also interested in whether I can use the following configuration for the control plane:
---
...
spec:
  controlPlaneEndpoint:
    host: ""
    port: 443
  controlPlaneLoadBalancer:
    region: fsn1
  controlPlaneRegions:
  - fsn1
  - nbg1
  - hel1
  hcloudNetwork:
    enabled: true
    cidrBlock: "<IP_ADDRESS>/16"
    subnetCidrBlock: "<IP_ADDRESS>/24"
    networkZone: "eu-central"
  hcloudPlacementGroups:
  - name: control-plane
    type: spread
  - name: services
    type: spread
  - name: monitoring
    type: spread
  - name: workloads-1
    type: spread
  - name: egress-1
    type: spread
  hetznerSecretRef:
    key:
      hcloudToken: hcloud
      hetznerRobotPassword: robot-password
      hetznerRobotUser: robot-user
    name: hetzner
  sshKeys:
    hcloud:
    - name: user1
    - name: user2

That is, in this configuration, I specified two parameters cidrBlock: "<IP_ADDRESS>/16" and subnetCidrBlock: "<IP_ADDRESS>/24" that are already in Hetzner Cloud.
Is it possible to add an existing network in this way to a K8s Cluster that is deployed using CAPI or is it necessary to specify a resource ID?
Perhaps such a configuration with the addition of an existing network would help solve my problem.
Environment:

cluster-api-provider-hetzner version: v1.0.0-beta.33
Kubernetes version: (use kubectl version): v1.28.7
OS (e.g. from /etc/os-release): ubuntu-22.04

@BigBrather without going too much into details, I can only tell you from my experience: we used hcloud networks in the beginning three years ago, since we started our managed kubernetes on hetzner, we had so many problems that we stopped using it. Since then, I try it from time to time, but I still have those kinds of problems.
There are so many great solutions out there that use the zero trust principle and with that approach really everything in your infrastructure is going to be much more secure because you always have to think about it from a security perspective. For example, we do not use a hetzner firewall, we only use the cilium host firewall, which makes the management much easier, single pane of declarative configuration and not the problem of misconfiguration or external issues. For internal traffic, we use things like mTLS where appropriate, so you can also get workload attestation with the right tools and a lot more visibility.

@batistein Thanks for your reply.
We abandoned the local network and will observe how CAPI works in this version. Hope this solves it our network problem.
Regarding the firewall settings on the Hetzner Cloud side, it is also clear.

ok then i will close this issue. ;)


fix: view zone position in diffEditor with hidden area

This PR helps with #3562, fixing the problem of view zone position calculation in diff editor with hidden areas on both sides.

To achieve the goal of collapsing unchanged areas in diff editor, a possible solution is hiding the same lines' area by using setHiddenAreas api in diff editor and then using view zone widget to control the uncollapse behavior:

VS Code (monaco) produces view zones on the other side by using the relative line-number of original/modified editor view zones. When we call setHiddenAreas on the editors, the line-number used to place the generated view zones would be inaccurate, which will cause mismatch of whitespaces and view zones:

This PR calculates the actual line number from the relative line-number and hidden area info, fixing the mismatch problem.

Closing due to https://github.com/microsoft/vscode/pull/183535.
Also, I'm not entirely sure what this PR actually implements.


Fix with output scope

https://github.com/Canner/canner-metric-layer/pull/180#discussion_r1128976808

legacy issue.


Extend Metabase 2000 record limit

We generate weekly reports to send out to jurisdictions. For some states there are already > 2000 senders so the list currently gets truncated.

Info
This issue talks about having this and some other settings in the UI as editable. But it's been around a while and I'm skeptical it'll be fixed soon.
This comment indicates on SQL Server you can modify this per query, don't think there's a way to do so on Postgres.
Options
Rebuild with new constant
One option: check out the source, update the value, and rebuild metabase. (Per this comment) This isn't so far-fetched -- we run Metabase with Docker (pretty sure), and the project comes with a Dockerfile already.
To test out the far-fetchedness of the idea I checked out the source and made this change:
diff --git a/src/metabase/query_processor/middleware/constraints.clj b/src/metabase/query_processor/middleware/constraints.clj
index 9aeaa05f76..7cc91497df 100644
--- a/src/metabase/query_processor/middleware/constraints.clj
+++ b/src/metabase/query_processor/middleware/constraints.clj
@@ -4,7 +4,7 @@
   (:require [metabase.models.setting :as setting]
             [metabase.util.i18n :refer [deferred-tru]]))

-(def ^:private ^:const default-max-results-bare-rows 2000)
+(def ^:private ^:const default-max-results-bare-rows 10000)

 ;; NOTE: this was changed from a hardcoded var with value of 2000 (now moved to [[default-max-results-bare-rows]])
 ;; to a setting in 0.43 the setting, which allows for DB local value, can still be nil, so any places below that used

and was able to build a container with:
$ docker build -t metabase-test .

To use it we'd need to:

push this image to our Docker registry,
modify the Azure application we're running to point to that image
document how to make this change for future versions

We may also want to apply upgrades to metabase to get it up-to-date before doing this. (Not sure how much/if it's diverged.)

We decided to not go down this path because of the maintenance costs.


Drag N Drop Form Builder feature available?

Is there any DND form builder like
https://formbuilder.online/ or https://formio.github.io/angular-demo/#/forms/builder
Both are very powerful in building a new form. But i am having challenge integrate into my angular app.
I know how to build ng forms (via code) but i am looking for a package allowed me to build the form JSON schema and save into DB, and later call out to collect response from user. Does ngx-formly provide such builder?
i ain't lookin for a solution to manually input JSON but to auto-gen the JSON via builder.

I'm working on it, a beta version will be available around December.
For now, you may check https://github.com/franzeal/ngx-formly-designer
or https://github.com/ngx-formly/ngx-formly/issues/1456#issuecomment-469894882

I'm working on it, a beta version will be available around December.
For now, you may check https://github.com/franzeal/ngx-formly-designer or #1456 (comment)

Does this project support Radio Group or is there a way for me to add it?

Does this project support Radio Group or is there a way for me to add it?

you can create a custom type by following our guide https://formly.dev/guide/custom-formly-field in case it doesn't exist

@aitboudad   https://github.com/ADCSD/formbuilder

https://swimlane.github.io/ngx-dnd/builder#builder-demo

I'm working on it, a beta version will be available around December.
For now, you may check https://github.com/franzeal/ngx-formly-designer or #1456 (comment)

Is there any update on this? Any other latest one that is compatible with newer angular versions would also be helpful. Thanks.

https://github.com/alibaba/x-render

@aitboudad   https://github.com/alibaba/x-render

Questo progetto supporta Radio Group o c'è un modo per aggiungerlo?

puoi creare un tipo personalizzato seguendo la nostra guida https://formly.dev/guide/custom-formly-field nel caso non esista

use ngx formly => https://jacksloan.github.io/ng-dnd-form-builder/form-builder-material

Ci sto lavorando, una versione beta sarà disponibile intorno a dicembre.
Per ora, puoi controllare https://github.com/franzeal/ngx-formly-designer o #1456 (commento)

C'e 'qualche aggiornamento su questo? Anche qualsiasi altro ultimo compatibile con le versioni angolari più recenti sarebbe utile. Grazie.

use ngx formly => https://jacksloan.github.io/ng-dnd-form-builder/form-builder-material


Move byte vector queries into new KnnByteVectorQuery (#12004)

Backport of #12004
This is the first commit of a much larger refactor. The overall goal is to separate the concerns of byte vectors and float vectors. Making their usage and APIs clearer for users.
This first step adds a new KnnByteVectorQuery and only allows it to be used against fields that have the BYTE encoding.
Additionally, the original KnnVectorQuery can only be used against fields that have the FLOAT32 encoding.
this partially addresses: https://github.com/apache/lucene/issues/11963

@jpountz Here is the backport.


BlockLoad never attempts to vectorize

BlockLoad never attempts to vectorize even using BLOCK_LOAD_VECTORIZE algorithm.
Since the implementation use
InternalLoad(temp_storage, linear_tid).Load(block_itr, items);

And the Sepialization of  LoadInternal for BLOCK_LOAD_VECTORIZE has a bug that two overload of Load have a template parameter InputIteratorT that cannot be inferred from the input arguments. So it will always use the overload that skips vectorization.
https://github.com/NVIDIA/cub/blob/b2e8bccb8c0cd15279974fe4b9b8d6fcd1842b57/cub/block/block_load.cuh#L793C1-L809C10
        /// Load a linear segment of items from memory, specialized for native pointer types (attempts vectorization)
        template <typename InputIteratorT>
        __device__ __forceinline__ void Load(
            InputT               *block_ptr,                     ///< [in] The thread block's base input iterator for loading from
            InputT               (&items)[ITEMS_PER_THREAD])     ///< [out] Data to load
        {
            InternalLoadDirectBlockedVectorized<LOAD_DEFAULT>(linear_tid, block_ptr, items);
        }

        /// Load a linear segment of items from memory, specialized for native pointer types (attempts vectorization)
        template <typename InputIteratorT>
        __device__ __forceinline__ void Load(
            const InputT         *block_ptr,                     ///< [in] The thread block's base input iterator for loading from
            InputT               (&items)[ITEMS_PER_THREAD])     ///< [out] Data to load
        {
            InternalLoadDirectBlockedVectorized<LOAD_DEFAULT>(linear_tid, block_ptr, items);
        }

These two overload should have template parameter InputT instead of InputIteratorT.

Hello @iclementine and thank you for reporting this issue! I can verify that vectorization doesn't happen due to the extra template parameter. It's also the case for the warp load algorithm. I have a local fix that removes extra template parameters and leads to vectorized loads, but I don't think we can merge it right now. The issue is that vectorized load guarantees that:
    /* - The following conditions will prevent vectorization and loading will fall
     *   back to cub::BLOCK_LOAD_DIRECT:
     *   - The block input offset is not quadword-aligned
     */

There are no checks of the input alignment. When given a pointer that's not aligned to the vectorized type, block / warp load leads to invalid loads. I believe this has to be addressed before enabling vectorization.

Thank you, @senior-zero. Yes, InputT is a template parameter of BlockLoad( I missed that.)
BTW， I also tried removing that template parameter which enables vectorized load. But I've found another issue that some functions like ThreadLoad (which is used by BlockLoad) does not have const T* as input parameter, which prevents passing in const T* to BlockLoad::Load in some cases. The non-constness propagates all the way to user  code. I hope there will be a fixe to that too.
https://github.com/NVIDIA/cub/blob/b2e8bccb8c0cd15279974fe4b9b8d6fcd1842b57/cub/block/block_load.cuh#L189C33-L189C33
    #pragma unroll
    for (int ITEM = 0; ITEM < VECTORS_PER_THREAD; ITEM++)
    {
        vec_items[ITEM] = ThreadLoad<MODIFIER>(vec_ptr + ITEM);
    }

https://github.com/NVIDIA/cub/blob/b2e8bccb8c0cd15279974fe4b9b8d6fcd1842b57/cub/thread/thread_load.cuh#L304C1-L312C1
template <typename T>
__device__ __forceinline__ T ThreadLoad(
    T                       *ptr,
    Int2Type<LOAD_DEFAULT>  /*modifier*/,
    Int2Type<true>          /*is_pointer*/)
{
    return *ptr;
}

@iclementine thank you for noticing that! Could you please reopen the issue against https://github.com/NVIDIA/cccl? We are transitioning to that repo at the moment, so all the issue tracking happens there. Also, please update the issue name to include warp-scope.

@iclementine thank you for noticing that! Could you please reopen the issue against https://github.com/NVIDIA/cccl? We are transitioning to that repo at the moment, so all the issue tracking happens there. Also, please update the issue name to include warp-scope.

@senior-zero Thank you. I've reopen an issue at https://github.com/NVIDIA/cccl/issues/431.


hebrew translations

app \ left sidebar hebrew translations

@yonihod Hey there, thank you so much for contributing to the open-source development of this project :) I see that you have committed a message saying "WIP, Work in Progress". Please update here if you are done with translating the app completely, then I can integrate them into the app.

Hi Amruth hope this message find you well, I read about the issue you were having due to the covid 19 pandemic and had to find a way to contribute something somewhere to your work.
Hugs from Israel, keep up the great work <3

I'm touched by the thought and good vibes you are sending across :) Thank you so much. It's a difficult time for all of us who have lost jobs or worse, but we can always count on humanity, and you proved that. Thank you so much, really, means so much.
I really hope a lot of people are benefitted by your contribution and your friends or family or colleagues would be able to use this tiny little resume builder to get them through these harrowing times and get a good career foundation. Thank you!


User Request: Support for percentage in CPU stress

Is your feature request related to a problem? Please describe.
A common use case for CPU stress is for testing CPU-based autoscaling. Right now the controller only supports 100% of CPU pressure.
It would be great to be able to specify percentages.
Describe the solution you'd like
Looking at the implementation, the injector Pod creates a goroutine per core. I'm wondering if the lack of support for percentage-based stress is due to that.
Describe alternatives you've considered
N/A

Thanks Joris.
Got it, it gets tricky due to its implementation.
I think a percentage would be more user-friendly, but if it is not deterministic it may confuse the users.
Do you know how tools like stress-ng achieve the that? It seems to support number of workers (cores) and load (percentage).

Hi Nikos, sorry for the late reply, we didn't link this issue in the related PR but the feature is now available (for a few versions actually).


There is no validation when entering an invalid container image name

OS: Win10/M1
Build Version: 20220520.7
Regression: Not a Regression
Repro Steps:

Right click one container app environment -> Select "Create Container App..." -> Enter a name for container app -> Select "Other public registry" -> Enter an invalid container image name.
Check whether there is a validation when entering an invalid container image name.

Expect:
There is a validation when entering an invalid container image name.
Actual:

There is no validation when entering an invalid container image name.

An error occurs if creating container app with this invalid image.

Yeah, I mentioned the same here. We felt like it probably wasn't needed, because people would almost always be pasting the image name.

Yeah, I mentioned the same here. We felt like it probably wasn't needed, because people would almost always be pasting the image name.

Closing as by-design.


Revert Visitor Interface

Fixes #293.

Implement analysis::LiveRangeAnalysis.
Revert interface of Visitor to disallow data passing.

@sgpthomas will take a look at this before merging. Some of the code, specifically the two pass approach to par is broken by this version.

I haven't fixed #314 yet. but the analysis handles the other problems correctly now. I think that we should merge this and then improve the live range analysis because other things depend upon this. @rachitnigam

Sounds good to me.


[Feature] support reading viewfs://

What type of PR is this：

[ ] bug
[X] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

plz add ut

plz add ut

viewfs is system level coniguration, and can not be written in ut.

@MergifyIO backport branch-2.2


Make sensor codes appear on user edit page

As a user,
When I go to my settings,
Then I would like to see my sensor ids prepopulated
Acceptance Criteria:

Users with no sensors should have nothing prepopulated in their sensor ids field when they go to their settings page
Users with 1 sensor must have 1 sensor ID prepopulated
Users with multiple sensors must have all sensor IDs prepopulated, separated by commas

Notes:
You can get to the settings page by logging in as an existing user and clicking on My Account > Settings.

This feature is now working. We just need to designate the "Sensor code" field as optional because it's confusing people.

closed by #93


Find a way to detect duplicate entires.

One Easy way to start will be check for duplicate URLs
Check for similarity among title

load everything into pandas and remove duplicates. Very Fast ! (Specially for small data)


follow kotlin pattern and move constants to assoc object

IMPORTANT: Where possible all PRs must be linked to a Github issue
Type
Choose one: Code health
Checklist

[x] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[x] I have added any strings visible on UI components to the strings.xml file
[x] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[x] I have built and run the fhircore app to verify my change fixes the issue and/or does not break the app

putting constants in objects or companion objects with their associated class appears to be the common practice in Kotlin, https://github.com/google/android-fhir/blob/master/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt#L119, we can consult w/other Kotlin engineers, but suggesting we follow this pattern for the time being

Pull Request Test Coverage Report for Build #117

0 of 0   changed or added relevant lines in 0 files are covered.
8 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.2%) to 61.397%

Files with Coverage Reduction
New Missed Lines
%

src/main/java/org/smartregister/fhircore/domain/Language.kt
1
50.0%

src/main/java/org/smartregister/fhircore/activity/BaseSimpleActivity.kt
7
87.18%

Totals

Change from base Build #115:
0.2%

Covered Lines:
501

Relevant Lines:
816

💛  - Coveralls


Used SystemClock.elapsedRealtime() to measure durations

Fixed issue https://github.com/k9mail/k-9/issues/2318

This isn't just a find and replace for all usages.
SystemClock.getElapsedRealtime returns the number of milliseconds since the phone was rebooted.
It's useful for calculating elapsed time only.
System.currrentTimeMillis returns the UNIX timestamp value.
It's useful for storage of date-time.
Many of the usages (for example in the Notifications) still need the actual date time as provided by System.currentTimeMillis.

Part of the task was to understand what the difference between System.currentTimeMillis() and SystemClock.elapsedRealtime() is. Only then can you decide which occurrences should be replaced and which ones should not.


md5 still calculated by application when input by user

I came across this issue when I was trying to add a very large mod to the TechnicSolder mod library, it would timeout and not add the mod. I then calculated the md5 myself but when I put it into the input box and click 'Add version' the application still attempts to calculate the files md5.

related: #545 #479 #469

Same issue when i try add MCHeli mod (over 100MB file size)


Index cells is empty

When using pandas dataframe, with multi-index index in variable inspector is empty

Hey @MohHizzani ,
thanks for your report. This is fixed in #46. Please note that it is not possible to view dataframes with multiindexed columns. For more details refer to the mentioned PR.


Docusaurus update to 2.4.0

Update of Docusaurus to the latest stable release: 2.4.0
This PR addresses several open PRs by dependabot:
#63 webpack update to 5.77.0
#66 plugin-google-gtag update to 2.4.0
#67 preset-classic update to 2.4.0
#68 module-type-aliases update to 2.4.0
Signed-off-by: Nuno do Carmo<EMAIL_ADDRESS>

What about #55 ?!

What about #55 ?!

@kkaempf I wanted to be able to close it too, however it's still in development on Docusaurus side and it's a breaking change. So unfortunately we need to still wait for this one.


Improve the test coverage of the redis connector

Description:

[x] Add missing test cases related to some of the existing redis APIs
[x] Modify some of the existing test cases to rectify the usages of some of the untested redis APIs
[x] Improve the negative test suite by adding the missing scenarios related to the existing APIs

Describe your problem(s)
Describe your solution(s)
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Closing with https://github.com/ballerina-platform/module-ballerinax-redis/pull/221


API fails -> silent error

https://tezrpc.me/api/blocks/head currently returns Error as the response.
When I try to create a new wallet, it silently fails - because the response can not be parsed.
Expecting a user friendly error message instead.

Currently tezrpc is down due to repeated ddos attacks. Will be available once I setup cloudflare

Fixed - new RPC api etc


shouldn't be status-code in CMakeLists.txt too?

I'm not very good with cmake, so when trying to analyze this error:
(coming from command cmake .. in operon/build )
-- Disabled features:
 * USE_JEMALLOC, Link against jemalloc, a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support [default=OFF].
 * USE_CERES, Use the non-linear least squares optimizer from Ceres solver to tune model coefficients (if OFF, Eigen::LevenbergMarquardt will be used instead).

-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuring done (8.4s)
CMake Error at /cvmfs/2024a.phoebe.lan/software/lbfgs/20240601-GCCcore-13.3.0/share/lbfgs/lbfgsTargets.cmake:60 (set_target_properties):
  The link interface of target "lbfgs::lbfgs" contains:

    status-code::hl

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  /cvmfs/2024a.phoebe.lan/software/lbfgs/20240601-GCCcore-13.3.0/share/lbfgs/lbfgsConfig.cmake:1 (include)
  CMakeLists.txt:96 (find_package)

-- Generating done (0.0s)
CMake Generate step failed.  Build files cannot be regenerated correctly.

I found that adding find_package(status-code REQUIRED) into CMakeLists.txt fixes this problem.
I'd be happy if anybody knowledgeable with cmake could take look at this.

This is my full output of cmake:
[jose@login1 operon]$ cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Taskflow found. Headers: /cvmfs/2024a.phoebe.lan/software/taskflow/3.8.0-GCCcore-13.3.0/include/
-- Found zstd: /cvmfs/2024a.phoebe.lan/software/zstd/1.5.6-GCCcore-13.3.0/lib/libzstd.so
-- Found Zstd: /cvmfs/2024a.phoebe.lan/software/zstd/1.5.6-GCCcore-13.3.0/lib/libzstd.so
-- Found ZLIB: /cvmfs/2024a.phoebe.lan/software/zlib/1.3.1-GCCcore-13.3.0/lib/libz.so (found version "1.3.1")
CMake Warning at CMakeLists.txt:103 (find_package):
  By not providing "FindxxHash.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "xxHash", but
  CMake did not find one.

  Could not find a package configuration file provided by "xxHash" with any
  of the following names:

    xxHashConfig.cmake
    xxhash-config.cmake

  Add the installation prefix of "xxHash" to CMAKE_PREFIX_PATH or set
  "xxHash_DIR" to a directory containing one of the above files.  If "xxHash"
  provides a separate development package or SDK, be sure it has been
  installed.

-- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2")
-- Checking for module 'xxhash'
--   Package 'xxhash', required by 'virtual:world', not found
-- Checking for module 'libxxhash'
--   Found libxxhash, version 0.8.2
-- MATH: Eigen
-- Using Eigen backend
-- Enabled features:
 * USE_SINGLE_PRECISION, Perform model evaluation using floats (single precision) instead of doubles. Great for reducing runtime, might not be appropriate for all purposes [default=OFF].
 * MATH_BACKEND, Math library for tree evaluation (defaults to Eigen)

-- Disabled features:
 * USE_JEMALLOC, Link against jemalloc, a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support [default=OFF].
 * USE_CERES, Use the non-linear least squares optimizer from Ceres solver to tune model coefficients (if OFF, Eigen::LevenbergMarquardt will be used instead).

-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuring done (8.5s)
CMake Error at /cvmfs/2024a.phoebe.lan/software/lbfgs/20240601-GCCcore-13.3.0/share/lbfgs/lbfgsTargets.cmake:60 (set_target_properties):
  The link interface of target "lbfgs::lbfgs" contains:

    status-code::hl

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  /cvmfs/2024a.phoebe.lan/software/lbfgs/20240601-GCCcore-13.3.0/share/lbfgs/lbfgsConfig.cmake:1 (include)
  CMakeLists.txt:96 (find_package)

-- Generating done (0.3s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
[jose@login1 operon]$

Are you building inside a nix dev shell or in some other way?

Above I ran the cmake manually from hand in bash terminal, dependencies are loaded using module load.

It may be that the lbfgs project (or its CMake) needs some updates.

yes... thank you for confirming that cmake works well for you.
I'll focus into direction of lbfgs.
I'm closing this PR because if current cmake setup works properly at your primary build platform, no need to fix it here and I should investigate where the issue is coming from.

it seems it is not bug in cmake of operon itself.


API key is not authorized

Hi,
this is mani when i get balance from test mode show below error
"Xendit\Exceptions\ApiException
API key is not authorized for this API service"
my code look like below
Xendit::setApiKey('set_my secret_key');
$getBalance = \Xendit\Balance::getBalance('CASH');
dd($getBalance);
i am using laravel

hi @kevindavee
Thanks for your response. i am new to Xendit so what is MONEY_OUT permission ?.  where i found from dashboard

@msquareM you have to choose "READ" on money out while creating your API key to GET /balance

Yes, so in order to use Xendit API, you need to:

Register for a Xendit account
Create API key in the Developer settings with MONEY_OUT permission.

Thank you @stanleynguyen for providing the UI screenshot.
For further reading about API authentication, you may refer to this section in our API reference

Hi @stanleynguyen  @kevindavee
Thankyou  guys now its working fine


Incompatibility Issue with Skyblocker Mod for Hypixel

https://github.com/burgerguy/HUDTweaks/blob/91409b72ef77430971a5850ff27838a859feef59/src/main/java/com/github/burgerguy/hudtweaks/hud/element/HudElementContainer.java#L118
This method seems to be triggering a crash when this mod is used alongside the Skyblocker Mod for Hypixel. It appears to be a situation where the internal tracking of whether a matrix has been pushed/popped is skipped somewhere along the line. That mod changes how the experience bar is rendered to show modded server information about health, mana, and armor together with experience in a few different layouts. The two work together fine at first, but as soon as Skyblocker is set to turn off its features, this mod crashes when it attempts to render. This happens when exiting to the main menu from the Skyblock game mode of Hypixel and loading back into the lobby as well as when returning to the lobby from within Skyblock.
The NEC-Deobfuscated Stack Trace:
java.util.NoSuchElementException
at Not Enough Crashes deobfuscated stack trace.(1.18.2+build.3)
at java.util.ArrayDeque.getLast(Unknown Source)
at net.minecraft.client.util.math.MatrixStack.peek(MatrixStack:65)
at net.minecraft.client.gui.DrawableHelper.drawTexture(DrawableHelper:205)
at net.minecraft.client.gui.DrawableHelper.drawTexture(DrawableHelper:177)
at net.minecraft.client.gui.DrawableHelper.drawTexture(DrawableHelper:166)
at net.minecraft.client.gui.hud.InGameHud.renderExperienceBar(InGameHud:662)
at net.minecraft.client.gui.hud.InGameHud.render(InGameHud:260)
at net.minecraft.client.render.GameRenderer.render(GameRenderer:858)
at net.minecraft.client.MinecraftClient.render(MinecraftClient:1122)
at net.minecraft.client.MinecraftClient.run(MinecraftClient:737)
at net.minecraft.client.main.Main.main(Main:236)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:460)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)

I can't really do anything about mods inject-cancelling before a pop happens. I tried to see if I could replicate a try-finally, but that didn't work. The only way this would be feasible would be to move away from mixin entirely and use ASM, which is a huge pain and breaks between versions more.
The mod in question could implement HUDTweaks-api and put its own elements there, removing the vanilla entries, but I don't really have the time to do it for them at the moment.


Create rustfmt.toml

There is no rustfmt.toml file in the project, so running cargo fmt has no well-defined style. For example, running cargo fmt --check on my machine complains an awful lot...
Based on the CI linter script, the project currently seems to rely on the default settings.
I'm not sure what the best format spec would be, but I think there should be a rustfmt.toml file in the project so that the formatting is consistent for everyone.
Personally, I quite like the following formatter setup, and I think it produces very clean, readable code:
use_small_heuristics = "Max"
max_width = 80
wrap_comments = true

unstable_features = true
imports_granularity = "Crate"
group_imports = "StdExternalCrate"

use_small_heuristiscs = "Max": Limits long lines in certain contexts. The actual length allowed differs for different constructs, and the defaults are pretty good.
max_width = 80: The maximum line width.
wrap_comments = true: Whether to wrap comments. Although the default is off, having consistent line widths throughout the codebase can't hurt.
unstable_features = true: Enables unstable features. This is probably a more controversial option, but it allows the two options below, which greatly improve import statements. This option and below may not be necessary, but having consistent, well-structured imports can be helpful. What do you guys think?
imports_granularity = "Crate": This ensures that all imports are grouped by module, so you don't end up with any stragglers separated from other imports.
group_imports = "StdExternalCrate": Separates out standard library modules, external modules and local/crate modules to more clearly show what comes from where.

I understand that reformatting the codebase can cause issues, so maybe the best way forward is to construct a rustfmt.toml file that reflects the default settings currently used. That said, I think there's an argument to be made for keeping the codebase up-to-date with the latest Rust "standards". Additionally, any PRs affected by such a change should be able to copy the format file and run cargo fmt on their fork of the code (I think??).
Let me know what you think. I am happy to create the necessary PR if this change is welcome. Otherwise, it's easy enough to disable autoformatting in my editor :)

I'm more fond of the imports_granularity and group_imports than with changing default styling in other cases. And with wrap_comments preserving lines that contain URLs, manual wrapping will often be necessary anyway (I assume everyone has a key for this). Want to make a PR with only the last three lines in your suggested configuration?

Coolio. I'll create a PR in a couple minutes 👍


Shopper Login

The shopper.login tracking event is working well and as expected. However, when a user logs out - the cookie ssShopperId is never unset - the previous shopperId remains.
I think it makes sense to logout the user - which would mean unsetting the cookie value.

Unable to accomplish - login event only occurs when user exists. There is no logout event.


Problem with d3.event when transpiling ES6 code with babel

When ES6 code importing d3 (using "import * as d3 from 'd3') is transpiled using Babel, Babel tries to imitate the ES6 module immutability by copying the poperties on the exported object into a new object. This includes d3.event which is thus always seen as null from the importing module's perspective.
Do you have a fix in the pipeline for this?

Sorry, but no; that sounds like a Babel bug. You might be able to workaround it by importing the fields directly from the individual modules (as in index.js) and avoiding import *.

Ok, thanks for the quick response, I'll figure out a workaround. I'm not importing individual modules + fields as there are no typescript definitions for these to my knowledge.

Sorry, I assumed you were using the D3 4.0 modules given that you were using ES6 imports. Is that not the case? I’m not aware of typescript definitions for the 4.0 modules, yet.

I'm using version 3 (3.5.14) with the typescript definitions on DefinitelyTyped.
Exposing a mutable field like d3.event is imo a design flaw. However this wouldn't be causing me any trouble if babel wouldn't try to enforce immutability on included commonjs modules - I'm not sure, but this may be something introduced in babel 6.
I'm writing typescript but targeting ES6 in order utilize of some of the built-in features. Because of this, import assignment is not an option (import d3 = require('d3')) so I have to resort to the wildcard (namespace) import syntax (import * as d3 from 'd3') which triggers '_interopRequireWildcard()' in babel - resulting in the problem mentioned.
What are my options here? I guess I could drop the typescript definitions and include the individual modules that I need but I really like typescript.
Or I could wait for someone to provide typescript definitions for individual modules, perhaps for version 4. Or I could do this myself.
Or I could fix the babel issue by providing a way to tell the plugin not to apply the interop functionality on certain modules.
Do you have any ideas? Thanks for a great library btw.

If you want to take the most forward-looking approach, I’d consider using the 4.0 modules. The modules are still in development, and not all 3.x functionality is available yet in 4.0, but at the very least it’s all ES6 and should work better with your toolchain.

I just wanted to add to this discussion that using the 4.0 modules doesn't solve my issue. The current event is still exposed as a global field in 4.0 and as long as babel is transpiling my ES6 code I run into the same issue.
I think this means that currently d3 is not compatible with babel if the codebase is ES6.

It’s not a global field; it’s an imported symbol.
ES6 imports produce immutable bindings, which means that the imported symbol is immutable but represents the current value defined by the exporting module. In this case, this means that only selection/on.js can modify the value of the event symbol, but any module can import that value and see the latest value.
My point is this is just a standard feature of ES6 modules. If Babel doesn’t support the standard, then I’m not sure what to say. We’ve been using Rollup and it’s been working great. (In the built d3-selection.js, see how Rollup replaces references to event with exports.event.) Rollup does not enforce immutability outside the generated bundle, however; so you could assign to d3.event. However, you can also reassign any d3 method or override their prototype, so that’s just standard mutability for JavaScript and you’re on your own if you do that. So that lack of enforcement in Rollup seems desirable to me in an ES5 context.

Ok thanks. This problem is resolved now. I can indeed get around it by using any other means of importing event than the namespace/wildcard import syntax which imo is handled invalidly by the Babel plugin transform-es2015-modules-commonjs. I haven't used Rollup but it seems to handle this better.

Thanks @abergenw for finding the workaround.  I just came across this as well, and as suggested the most straightforward fix is to import event separately:
import * as d3 from 'd3';
import {event as currentEvent} from 'd3';

For me import {event as currentEvent} from 'd3'; didn't work, but what worked was import {event as currentEvent} from 'd3-selection';.
I had to specify d3-selection, otherwise it would get event from another package (probably).

Thanks @ocombe, I just upgraded from d3 v3 to v4 and had to change import {event as currentEvent} from 'd3' into import {event as currentEvent} from 'd3-selection' as you suggested.

is there a way to pass event as argument to callback?
function zoomed(event) {
      svg.attr("transform", "translate(" + event.translate + ")scale(" + event.scale + ")");
    }

Uncaught TypeError: Cannot read property 'sourceEvent' of null getting this error inside vue.js with d3.

@chovy Can you please provide a running program that allows folks to reproduce that error?

<template>

        <NavBar />

</template>

@chovy I mean running as in, I can go to a page and see the program run, and observe the error. As it is posted there, it's not runnable. When I paste that code into an index.html file and run it, I see
Uncaught SyntaxError: Unexpected token import

which makes sense, as you haven't included details of your build step.
Something like this bl.ock would be ideal: D3 Custom Bundle with Webpack.

@curran here ya go:
https://github.com/chovy/techan-vue
install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

This ticket is now closed. Should I create a new one?

@chovy That would be appropriate if this were a bug with D3; however, since this appears to be an issue with your build tools not preserving the live-binding semantics of ES2015 imports, I would consider this a request for support rather than a bug. Stack Overflow, Slack, or Google groups are more appropriate forums to ask for help.

I have similar issue with my code. I am using webpack / es6. I figured out that event was imported as null, but the proposed solution did not work for me. Did anyone know how to solve that?

@supnate I still get d3.event as null when importing from d3/build/d3.min. Did you do something special?

I load d3.min.js by a script tag  directly inside the html file. Then use d3 as a global variable.

Damn. I was hoping I could somehow avoid the gobal d3.
Testing out some stuff, it seems that if I do an ES6 import and define that to RequireJS, then the d3.event variable cannot be set to any other value, it will always stay null even if I assign something else to it.
Letting RequireJS actually fetch the d3 library and define it that way makes d3.event assignable, but the problem itself persists for some reason; d3.event stays null in event handlers.

@aapoalas @supnate  There is no need to use the d3 global if you are using a module bundler like Rollup or Webpack. You can import from the individual D3 packages, like this:
import { select } from 'd3-selection';

@curran I couldn't get that to work properly. Problem being that I expose the Webpack'd d3 to RequireJS through window.define.
Well. Truth be told I'm not exactly sure where things are going belly-up, but when I earlier tried to expose d3-selection directly to RequireJS, it still didn't fix the problem of the event property seeming to lose the live binding.
To give a basic example of what I have going on:
index.html
`

Okay, I think I found my error and it seems to be that my d3 has duplicated within my Webpack bundle. One is imported as ./node_modules/d3/index.js and another as /absolute/path/to/repo/node_modules/d3/index.js.
The one that draws all the stuff (A home-cooked library built on top of d3 for ease of use) is then different from the one that is used to select stuff etc. And since the event is a singleton variable, duplication is of course "harmful."

If you are still looking for a workaround using import instead of including the script tag inside a html, I think one thing you could try is not using import * as d3 from 'd3'. instead just import the functions you need. If you need to use some function as drag or zoom in d3, have import {event} from 'd3-selection' in the beginning as well. I spent a lot of time working on this and this seemed to work for me.

This works for me
import * as selection from "d3-selection"; // You must import all d3-selection module
import {zoom, zoomIdentity} from "d3-zoom"; // An example if you are using zoom functions

const d3 = Object.assign(selection, {zoom, zoomIdentity});

If you create your d3 object, something like: Object.assign({}, selection, ...), you'll get a singleton copy, instead of live binding Object.assign(selection,...), as @mbostock said. Anyway, d3.event is still null, if you try to call it immediately after your d3 object declaration, but it returns as an event in places where is really needed
console.log(d3.event) // null

const zoomBehavior = d3.zoom().filter(() => {
  console.log(d3.event) // ObjectEvent{ ... }
  return d3.event.altKey;
})

Hope this works for you

@jcastrov doesn't always works, have a look at my attempt here : https://stackblitz.com/edit/d3ts-event, I'm using pure typescript with D3v5.1. The only method it won't break when we use a minified a version D3v4.13 from CDN, then it will start recognizing d3.event. I was hoping to use imports instead of a single d3.min.js + @types/d3 🤕

Ok thanks. This problem is resolved now. I can indeed get around it by using any other means of importing event than the namespace/wildcard import syntax which imo is handled invalidly by the Babel plugin transform-es2015-modules-commonjs. I haven't used Rollup but it seems to handle this better.

Hello, would you please tell me how you resolve it? I am working on a project using Vue.js & D3.js. I can not use d3.event, because it is null. I am new to web development so would it be possible to explain in detail how to resolve this problem?
Thank you

I know this may be an old post but since it is incomplete, let me paste the answer to the issue and how to solve it at the time of writing this, and hopefully from now on.
You don't get the event from d3, it's already incorporated in the function, like this:
	const dragged = (event, d) => {
			d.fx = event.x;
			d.fy = event.y;
		}

No need to struggle with configurations or imports or alleged bugs anymore.

I know this may be an old post but since it is incomplete, let me paste the answer to the issue and how to solve it at the time of writing this, and hopefully from now on.
You don't get the event from d3, it's already incorporated in the function, like this:
	const dragged = (event, d) => {
			d.fx = event.x;
			d.fy = event.y;
		}

No need to struggle with configurations or imports or alleged bugs anymore.

This is d3 v7?


HV-1297 Annotation processor support for @NotEmpty, @NotBlank, @Email, @Positive, @Negative

https://hibernate.atlassian.net/browse/HV-1297

There seems to be no additional checks needed for these new annotations. So I've added them only to ConstraintHelper so AP will be happy to see them on allowed types.

Merged; thanks, @marko-bekhta!


Provide an interface to allow statements to fail

Use case: I have an operation that vacuums each table one by one. If one of those statements fails, I actually want to keep continuing rather than exit.
Thoughts:

Can we add an argument to statements?
Do we instead want to implement a {% try %}, {% except %}, `{% endtry %} block?
How do we get back the exception? Do we need it?

I want to do a better job of codifying my design philosophy going into the new year. My big opposition here is that I really dislike the idea of adding a lot of complexity to dbt in order to work around a series of Redshift quirks (putting it nicely). The feature is requested at least in part because:

redshift tables need to be periodically vacuumed
those vacuum statements can sometimes fail for dumb reasons (only one vacuum is allowed at a time, right?)

So, this feature is intended to do error handling for an operation that I think you shouldn't need to do in the first place!!
Are there other use cases where a try/except flow is useful? I think a better understanding of when we'd want to use this pattern would help us better prioritize the change. I do believe that there are other good uses cases for this - just having a hard time of coming up with them at the moment.
I do think that if we prioritize this change, some new jinja tags are a really elegant way of supporting  exception handling. The big challenge is that the except block should probably be able to identify which exceptions it catches. The two big classes of exceptions that dbt raises at the moment are:

CompilerError
DatabaseError

There are other exceptions that dbt can raise here too, and putting them all in the context might be challenging. Maybe a simplified version of this implementation would just catch any exception? That seems convenient for macro authors, but it's generally considered a bad practice in programming circles.
What do you think @clrcrl?

The only other use case I can imagine was when we used to run alter warehouse transforming resume statements, and they would fail because the warehouse had already been resumed. Snowflake has since added a parameter so that we can work around it (i.e. alter warehouse transforming resume if suspended) which has made it a non issue.
No other use cases spring to mind though, so I'm happy for this to be closed as a wontdo.
I would be happy to just catch any exception. Sure it's not best practice amongst programmers, but it's such an edge case that I'm happy to leave a rough edge here.

Snowflake has since added a parameter so that we can work around it (i.e. alter warehouse transforming resume if suspended) which has made it a non issue

:+1:
I bet there are good use cases around more complex run-operations, like in https://github.com/fishtown-analytics/dbt-external-tables. I'm happy to leave this issue open until a time comes that we have some more concrete uses in mind and the bandwidth to pick it up. It's a good idea for sure!

Adding my $.02:  It would be helpful for my use case, where I am auto-generating my warehouse's sources, to be able to use the doc() function that when no matching docs macro block is found, doesn't halt the execution of dbt.
My work-around is to parse manifest.json and ensure the existence of any docs blocks for new schemas, tables, columns that I add to my yml.
Generally, I would be very excited if I could add my own jinja extensions that can implement functionality like this, but I've heard you're wary of allowing too much python extension of dbt.


update: updated notation verify command based on spec

This PR updates notation verify command based on the verify_spec.
Signed-off-by: Patrick Zheng<EMAIL_ADDRESS>

Codecov Report

Merging #418 (624b629) into main (f747031) will not change coverage.
The diff coverage is 75.00%.

@@           Coverage Diff           @@
##             main     #418   +/-   ##
=======================================
  Coverage   34.60%   34.60%
=======================================
  Files          23       23
  Lines        1254     1254
=======================================
  Hits          434      434
  Misses        809      809
  Partials       11       11

Impacted Files
Coverage Δ

cmd/notation/common.go
100.00% <ø> (ø)

cmd/notation/main.go
0.00% <0.00%> (ø)

internal/cmd/flags.go
52.74% <ø> (ø)

cmd/notation/verify.go
29.16% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

LGTM


Azure site recovery Swagger for 2024-04-01 Api version

Choose a PR Template
Switch to "Preview" on this description then select one of the choices below.
Click here to open a PR for a Data Plane API.
Click here to open a PR for a Control Plane (ARM) API.

/pr RequestMerge


Datatable search with multiple models

Cannot search datatable using multiple models with eloquent.
As can be seen in the below code I have Order model with a relation to Guest model. By default the datatable lists the records from both the models. But when I search a guest name from Guest models it says unknown column from Order model. The query search query goes to the Order model which does not have the guest name instead the guest name column is from the Guest model. I need to search any column from both Order model as well as Guest model. Please guide.
$data = Order::with(['guest']);
return Datatables()->of($data)->toJson();

Operating System - Ubuntu linux
PHP Version - 7.2
Laravel Version - 5.8
Laravel-Datatables Version - "yajra/laravel-datatables-oracle": "^9.8"

Just include ->withDefaults() on your relation and I think your issue will be fixed.


Secret santa

What kind of a pull request is this?

[ ] QA / Code Review

Code Checklist

[x] The code follows dotkom code style
[x] The code passes the defined tests
[ ] I have added tests for the code I added
[x] I have provided documentation for the code I added
[x] The code is ready to be merged

Description of changes
Made secret santa pair generator function run at a more predictable speed. Also changed the mail templates to give a more accurate description.
Screenshot(s) if appropriate

Made the pair generator less magic, by creating copies of the list, and manipulating and returning the copy.
The script should also run faster, since it no longer have to re-run the entire process of checking the validity of the to-from list after every edit.


Typescript support

How can i get the types when using a query?
const { data, isLoading, isError } = useSomeQuery(param1,param2 );
The data always shows as:
const data: UseQueryResult<any, unknown>

@thorep it should automatically infer them, do you have some reproduction code? Otherwise I can't help diagnose

Also please provide your openapi file

Closing because no openapi file provided. Feel free to reopen issue if needed


use default value for gitRoot flag in main_postsubmit

Issue #, if available:
Description of changes:
this was pointing to the pointer, which is ALWAYS empty, rather than the default value that is set if the pointer is empty....
what's weird is that the prow command seems to work (search --name-only here), and if you run git -C "" diff --name-only HEAD^ HEAD (note the literal empty qutoes there -- "") it WORKS and runs the diff for the cwd...it's treated like . or $(pwd). Which ends up being the same result if it were defaulted by the code to git rev-parse --show-toplevel, since we're executing it from the root of the repo anyway every time we run it (except for now, when I'm running it in codebuild and invoking the main post-submit from somewhere else).
So we end seem to end up with a correct value in the code even if the code is incorrect.
However, this behavior is causing errors when running the EKS Go test pipeline, which invokes the main_postsubmit in EKS D repo from a root which is itself a different git repo (build tooling). I'd like to actually set this value to the 'right' value (the struct field that has been defaulted, not the pointer) and see how it affects the build, if at all.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve


fixes a problem with whitespaces in list of retryable status codes

This is also in the 1.3.x branch and the 2.0.x branch