feat(datahub-client): additionally generates java8 artefacts

Successfully tested locally
$ ./gradlew :metadata-integration:java:datahub-client:jar :metadata-integration:java:datahub-client:shadowJar -PjavaClassVersionDefault=8 -ParchiveAppendix=java8
...
$ ls metadata-integration/java/datahub-client/build/libs
datahub-client-java8-0.15.0rc16-SNAPSHOT-lib.jar datahub-client-java8-0.15.0rc16-SNAPSHOT.jar

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

Den tors 12 dec. 2024 09:15Sergio Gómez Villamor @.***>
skrev:

Successfully tested locally
$ ./gradlew :metadata-integration:java:datahub-client:jar :metadata-integration:java:datahub-client:shadowJar -PjavaClassVersionDefault=8 -ParchiveAppendix=java8
...
$ ls metadata-integration/java/datahub-client/build/libs
datahub-client-java8-0.15.0rc16-SNAPSHOT-lib.jar datahub-client-java8-0.15.0rc16-SNAPSHOT.jar
Checklist

The PR conforms to DataHub's Contributing Guideline
https://github.com/datahub-project/datahub/blob/master/docs/CONTRIBUTING.md
(particularly Commit Message Format
https://github.com/datahub-project/datahub/blob/master/docs/CONTRIBUTING.md#commit-message-format
)
Links to related issues (if applicable)
Tests for the changes have been added/updated (if applicable)
Docs related to the changes have been added/updated (if applicable).
If a new feature has been added a Usage Guide has been added for the same.
For any breaking change/potential downtime/deprecation/big changes
an entry has been made in Updating DataHub
https://github.com/datahub-project/datahub/blob/master/docs/how/updating-datahub.md

You can view, comment on, or merge this pull request online at:
https://github.com/datahub-project/datahub/pull/12106
Commit Summary

a235da4
https://github.com/datahub-project/datahub/pull/12106/commits/a235da4329d33e6298064c3cd22213dc03e2ec57
feat(datahub-client): additionally generates java8 artefacts

File Changes
(2 files https://github.com/datahub-project/datahub/pull/12106/files)

M .github/workflows/publish-datahub-jars.yml
https://github.com/datahub-project/datahub/pull/12106/files#diff-0f5b57324cc1600e23b57e0719a64515301e90ea92d79cc4f13540f39ac1c73c
(49)
M metadata-integration/java/datahub-client/build.gradle
https://github.com/datahub-project/datahub/pull/12106/files#diff-395a9c4fdd8650444b6c1a95c08e4abf31c82055f17b50ff2e3df5326cd4bc5f
(6)

Patch Links:

https://github.com/datahub-project/datahub/pull/12106.patch
https://github.com/datahub-project/datahub/pull/12106.diff

—
Reply to this email directly, view it on GitHub
https://github.com/datahub-project/datahub/pull/12106, or unsubscribe
https://github.com/notifications/unsubscribe-auth/BLQW5VC3OKPVM7AG4UIOPLT2FFA3PAVCNFSM6AAAAABTPGQJEWVHI2DSMVQWIX3LMV43ASLTON2WKOZSG4ZTKMJXGI2TQMQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Put subscribe count into ChainQuery

Hi,
It would be nice if the number of subscribers (eg. subscribe_count) are put into the claim table, so I can order by the nr. of subscribers instead of relying on 3rd party API's like https://api.lbry.com/subscription/sub_count...
Meaning, this would be possible in the future:
SELECT name, claim_id FROM claim WHERE claim_type = 2 ORDER BY subscribe_count ASC LIMIT 10
Regards,
Melroy van den Berg

Subscriber counts are strictly off-chain. So the LBRY Inc API contains the only record of them. I don't think putting subscriptions on-chain would be supported by the team, so it will never be in chainquery. Also, I'm pretty sure the wallet server's claims.db file also only uses on-chain information. So looping over API calls is the only way to do this. Closing, but thanks for the thought :)

I doubt subscriptions will ever be on-chain. What use would there be?

I doubt subscriptions will ever be on-chain. What use would there be?

So I could do the query above, that is why.

@danger89 I think we all agree that it would be awesome if this info was somehow on chain.
The problem is there is a negative incentive for a user to spend their currency to write data about their views and subscriptions.

I'm going to close this. I'm very interested in this being possible but it seems basically impossible for the incentives to exist (as well as a bunch of other problems with accuracy, etc.).

Too bad you think about it that way.
I personally like more transparency, open-source and decentralized. The data is already in the blockchain, but hard to fetch it. On other services (uhm eg. YouTube) you can already easily see the number of subscribers/views, which is transparent for both the content creator as well as the users.

Anything we have on the blockchain can be put into chainquery. Unfortunately, views are not on the blockchain. The blockchain is used as a catalog for the metadata of claims. The data of the claim is stored on the p2p network called lbrynet. The actual tracking of the views ( if data sharing is enabled ) comes from the app itself. The is open source software but it leverages internal apis.
What is interesting and maybe applicable is that we have a new comments feature that is decentralized and also unique per user. A mechanism like that could be used to publish views and subscribers to the data network. @kauffj what do you think? I am not entirely in the loop on the comments feature but I would assume these mechanisms exist.

I've re-opened this because I think @danger89 misunderstood my point and/or I did not make my point clearly.
We love transparency and being open-source. We're not avoiding putting view data in the blockchain because we don't want to for some reason, we're not putting it there because we don't think it's possible to put it there.
YouTube can track view counts with near perfect fidelity because every view accesses a server they own and control.
Consider a view on a file published to LBRY for free. The user resolves that URL on a wallet server that we do not run and then accesses the data from peers that also are not us.
How can we force knowledge of this view, or force the user to write it tot he blockchain? Even if we strongly encouraged it, why would a user want to spend money to record this view on the blockchain, when the content is free?
The best answer we have atm is:

Call home to one of our servers for users who opt-in to tracking
Attempt to monitor some portion of the data network and then extrapolate views from the portion of network traffic we observe (e.g. if we observe 5% of network traffic then multiply views by 20)

Does this make sense @danger89 ?

I have a question, a comment, and a cliché. That was the cliché.
The question is: if a user turns off analytics sharing in the app for
privacy reasons, do their views and subscriptions no longer count in the
numbers I get from the API?
The comment is: I think all Melroy really wants is a way to query the
views/subs/other data available through the API but using MySQL. Could that
data be put in a MySQL DB?
On Wed, Sep 11, 2019 at 9:56 AM Jeremy Kauffman<EMAIL_ADDRESS>wrote:

I've re-opened this because I think @danger89
https://github.com/danger89 misunderstood my point and/or I did not
make my point clearly.
We love transparency and being open-source. We're not avoiding putting
view data in the blockchain because we don't want to for some reason, we're
not putting it there because we don't think it's possible to put it
there.
YouTube can track view counts with near perfect fidelity because every
view accesses a server they own and control.
Consider a view on a file published to LBRY for free. The user resolves
that URL on a wallet server that we do not run and then accesses the data
from peers that also are not us.
How can we force knowledge of this view, or force the user to write it tot
he blockchain? Even if we strongly encouraged it, why would a user want to
spend money to record this view on the blockchain, when the content is free?
The best answer we have atm is:

Call home to one of our servers for users who opt-in to tracking
Attempt to monitor some portion of the data network and then
extrapolate views from the portion of network traffic we observe (e.g. if
we observe 5% of network traffic then multiply views by 20)

Does this make sense @danger89 https://github.com/danger89 ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lbryio/chainquery/issues/127?email_source=notifications&email_token=AAMBKOX27A3JXWQOW27F5WLQJAJYRA5CNFSM4IUU6PA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6MTYQA#issuecomment-530136128,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMBKOUSEK6BFJWTRYWCKS3QJAJYRANCNFSM4IUU6PAQ
.

--
Dr Brendon J. Brewer
Department of Statistics, The University of Auckland, New Zealand
Ph: +64 27 500 1336
Web: https://www.brendonbrewer.com/

Yes, it's possible to have it in a database. There is work involved in doing that though and I am not sure this is a high priority thing since it's already available through the API. One could write a script to run through every claim_id and gather this data into a database.
For the question, if a user turns off analytics then that's correct, none of that data is captured.


In CanvasItemEditor, prioritize selected items when dragging

In master, when you try to drag an item that is selected but not the front-most visible, the item will get deselected (in the gif below, the green poly gets selected, even though I want to drag the red poly):

In complex scenes, where you want to drag a partially hidden object, this can get very annoying, since you have to find one visible inch of the object in order to get hold of it even though you've picked and selected it in the scene tree beforehand. I think that selected items should get prioritized; if the click is in the currently selected items, don't select something else, but just drag. This is what this PR effects:

If no selection is there, then, of course, clicking at the point above will select the green poly again.
Demo project:
SelectionTest.zip

The workaround for this is to press [alt], but I agree that's annoying

This is probably not what should be done, checking afterwards if the click is inside the polygon (in the the _gui_input_select function is not a good idea, since it breaks the way I organized the _gui_input* functions.
Since the _gui_input_move is called before the _gui_input_select, this function should be able to return true (thus catching the event) before the _gui_input_select one.

In fact the problem is at line 1499, since the functions returns true only if the object has been moved.
If should confirm the action (call _commit_canvas_item_state) only if the object has been moved but should return true in any case if the click is on the object.

Ok, forget what I've just said. Your code is almost ok.
The only problem I have is that you define a new function that does almost exactly what _find_canvas_items_at_pos() does two lines after you call your own function.
It would be better if you could use the results of _find_canvas_items_at_pos() this function instead of defining a new one, probably by comparing the actual selection and the results from _find_canvas_items_at_pos()

@groud That's true, what I did was clumsy. Changed to a much simpler approach now that simply checks if the pick list contains selected items.

Ok, Looks good to me :)

Note to self: See if this makes sense in 3.0, and if so cherrypick/packport.

It probably does not since it is due to my big rework of the CanvasItemEditor code

after using editor for a couple of days with this PR, I felt it's like a bug.
I opened an issue with it #18128

I think another node should be selected if user does not drag, at least.

Now that Godot 3.1 has been released, we don't plan to cherry-pick new features and enhancements to the 3.0 branch, unless there is very strong support in favor of it. Removing cherrypick label for 3.0.


Change behavior of applying a state change (e.g. bold) when no text is selected

Currently, if no text is selected and you hit bold, all of the text becomes bold. Instead, if you hit bold, the existing text should be left alone but any text entered from now on should be bold (until you untoggle bold). This is the standard behavior of word processors like Microsoft Word.

this is the standard behavior of other word processors - but it is not the expected behavior of in studio where arte is used. This is probably a topic for discussion

Yeah in the Studio case, where the text you edit is relatively short, I can see why we would want that behavior. I the proposed behavior would be more ideal when you're editing a large amount of text.
Either way, I think some sort of flag or config would be good to toggle between these.


Update index.md

Great article, a first few things I noted on mobile 😀, sorry for the brevity

Thanks!


Let payload provider render feature gate yaml

Currently we render the feature gate at the HCP level which results in a discrepancy when mco consume it along with a given NodePool payload-version that differs from the one used by the HCP to generate it. Related https://github.com/openshift/hypershift/pull/2643
CI Failure example
bootstrap.go:47] error running MCC[BOOTSTRAP]: error creating feature gate access: unable to determine features: missing desired version "4.14.0-0.ci.test-2023-06-08-101141-ci-op-gvin17ww-initial" in featuregates.config.openshift.io/cluster\n"}
https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_machine-config-operator/3724/pull-ci-openshift-machine-config-operator-master-e2e-hypershift/1666749702499995648
https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift_machine-config-operator/3724/pull-ci-openshift-machine-config-operator-master-e2e-hypershift/1666749702499995648/artifacts/e2e-hypershift/run-e2e/artifacts/TestNodePool_PreTeardownClusterDump/namespaces/e2e-clusters-wvxmd-example-fmxk8/core/pods/logs/ignition-server-768699fd7b-w49lq-ignition-server.log

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/hold

cluster config operator script failed with
{"level":"info","ts":"2023-06-08T17:11:00Z","logger":"get-payload","msg":"cluster-config-operator process completed","time":"0s","output":"/bin/bash: line 19: /usr/bin/cluster-config-operator: No such file or directory\n"}

and
{"level":"info","ts":"2023-06-08T17:11:32Z","logger":"get-payload","msg":"cluster-config-operator process completed","time":"0s","output":"mkdir: cannot create directory 'input': File exists\nmkdir: cannot create directory 'output': File exists\nmkdir: cannot create directory 'manifests': File exists\n"}

https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift_hypershift/2664/pull-ci-openshift-hypershift-main-e2e-aws/1666849350090756096/artifacts/e2e-aws/run-e2e/artifacts/TestCreateCluster_PreTeardownClusterDump/namespaces/e2e-clusters-gtp7b-example-jqvp2/core/pods/logs/ignition-server-7b587d498c-vslgl-ignition-server.log
updated

https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift_hypershift/2664/pull-ci-openshift-hypershift-main-e2e-aws/1667120840149307392/artifacts/e2e-aws/run-e2e/artifacts/TestNodePool_PreTeardownClusterDump/namespaces/e2e-clusters-55smd-example-498fs/core/pods/logs/ignition-server-7b9886b8b7-cf9d6-ignition-server.log
{"level":"info","ts":"2023-06-09T11:10:02Z","logger":"get-payload","msg":"cluster-config-operator process completed","time":"0s","output":"F0609 11:10:02.959705      33 render.go:53] failed rendering assets: lstat /usr/share/bootkube/manifests/bootstrap-manifests: no such file or directory\n"}

we are back to only upgrade failing, now with
https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift_hypershift/2664/pull-ci-openshift-hypershift-main-e2e-aws/1668534680921575424/artifacts/e2e-aws/run-e2e/artifacts/TestNodePool_PreTeardownClusterDump/namespaces/e2e-clusters-kzpgc-example-sqbgk/core/pods/logs/ignition-server-567875cf5b-z8rws-ignition-server.log
{"level":"info","ts":"2023-06-13T08:52:01Z","logger":"get-payload","msg":"cluster-config-operator process completed","time":"0s","output":"Error: unknown flag: --rendered-manifest-files\n"}

we are back to only upgrade failing, now with https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift_hypershift/2664/pull-ci-openshift-hypershift-main-e2e-aws/1668534680921575424/artifacts/e2e-aws/run-e2e/artifacts/TestNodePool_PreTeardownClusterDump/namespaces/e2e-clusters-kzpgc-example-sqbgk/core/pods/logs/ignition-server-567875cf5b-z8rws-ignition-server.log
{"level":"info","ts":"2023-06-13T08:52:01Z","logger":"get-payload","msg":"cluster-config-operator process completed","time":"0s","output":"Error: unknown flag: --rendered-manifest-files\n"}

This looks like a mismatch between the payload version and the flags, is the test upgrading from a 4.14 to 4.14 or from 4.13 to 4.14? If it is upgrading from 4.13, we need to make sure it only passes the --rendered-manifest-files flag to the 4.14 payload not the 4.13 payload

/test e2e-aws-4-12

/hold cancel

{Failed  === RUN   TestUpgradeControlPlane/EnsureNoCrashingPods
util.go:457: Container oauth-server in pod oauth-openshift-74bf787c59-6gh9p has a restartCount > 0 (2)

/test e2e-aws

/test images
/test e2e-kubevirt-aws-ovn


samples DevOps2.2 do not work

I started the samples in chapter.
Deploying And Configuring Prometheus
I first tried with my headless ubuntu server. Virtual machines up an running.
The first sample :
docker stack deploy -c stacks/prometheus.yml monitor
I was not able to connect to http://$(docker-machine ip swarm-1):9090/config.
Thought is was my proxy config to the headless server, did al sort of ssh port forwarding, etc, always getting connection refused.
so I moved to my iMAC. Did all the needed setup regarding docker and docker machine. Getting the same result. After googling I managed to change the yml file to:
version: "3.2"

services:

  prometheus:
    image: prom/prometheus:${TAG:-latest}
    ports:
      - target: 9090
        published: 9090
        protocol: tcp
        mode: host

then was able to connect to config.
the next example does not work eather in chapter
Integrating Docker Flow Monitor With Docker Flow Proxy
proxy is not able to connect to swarm listerner:
2018/12/27 18:23:41 Error: Fetching config from swarm listener failed: Get http://swarm-listener:8080/v1/docker-flow-swarm-listener/get-services: dial tcp <IP_ADDRESS>:8080: connect: connection refused. Will retry in 5 seconds.
2018/12/27 18:23:46 Error: Fetching config from swarm listener failed: Get http://swarm-listener:8080/v1/docker-flow-swarm-listener/get-services: dial tcp <IP_ADDRESS>:8080: connect: connection refused. Will retry in 5 seconds.

what is wrong here, my setup problem, or something changed with version?
my setup:
BigiMac:docker-flow-monitor slavisalukic$ docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:21:31 2018
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       4d60db4
  Built:            Wed Nov  7 00:52:55 2018
  OS/Arch:          linux/amd64
  Experimental:     false

BigiMac:docker-flow-monitor slavisalukic$ docker-machine version
docker-machine version 0.15.0, build b48dc28d

The example you're following assumes that you're using docker-machine to create a cluster. From what I understood, that's not your case. Can you please confirm?

It seems that Overlay network inside your cluster does not work. The fact that it works when changing to host is an indication of that. The two errors you posted are also an indication of the same problem.
I'm a bit confused with the headless Ubuntu. Are you using Ubuntu as your laptop's OS (not a VM) and inside it creating a cluster using Docker Machine?

Can you run any other application and confirm that it is accessible through a published port?

can you make a dirty sample?

I am only with my mobile right now. I should be online in a few days and can write it then.

version: "3"

services:

  grafana:
    image: grafana/grafana:${GRAFANA_TAG:-4.5.2}
    ports:
      - 3000:3000

does not work either
open "http://$(docker-machine ip swarm-1):3000"
BigiMac:docker-flow-monitor slavisalukic$ docker service ls
ID                  NAME                 MODE                REPLICAS            IMAGE                    PORTS
jwx5x282mek2        grafana_grafana      replicated          1/1                 grafana/grafana:4.5.2    *:3000->3000/tcp
nqn9qgzlypxe        monitor_prometheus   replicated          1/1                 prom/prometheus:latest   *:9090->9090/tcp

BigiMac:docker-flow-monitor slavisalukic$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
df74e0f43645        bridge              bridge              local
52d0c9e124f4        docker_gwbridge     bridge              local
vuwwlg06ux6f        grafana_default     overlay             swarm
5e37abf13d9c        host                host                local
ik8hb5uawnuk        ingress             overlay             swarm
to5uz6cryhl7        monitor             overlay             swarm
f6sk0obopjxy        monitor_default     overlay             swarm
658ca743eed5        none                null                local
34937t2os14x        proxy               overlay             swarm

service ls shows the ports, stack ps not !?

	IN	A

;; ANSWER SECTION:
grafana.	600	IN	A	<IP_ADDRESS>

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: <IP_ADDRESS>
;; WHEN: Fri Dec 28 12:05:49 2018
;; MSG SIZE  rcvd: 48

I run the same on my 3-node raspberry cluster and it works!?
it does not work on bot docker-machine setups (MAC and Ubuntu)

https://github.com/docker/machine/issues/4608
docker machine iso is the problem
for i in 1 2 3; do
    docker-machine create \
        swarm-$i --virtualbox-boot2docker-url "https://github.com/boot2docker/boot2docker/releases/download/v18.06.1-ce/boot2docker.iso"
done

fixed the problem


Create a chip ID database

Various IC families have protocols that identify the specific vendor and model inserted. Some example devices:

EPROM via...the EPROM protocol (does this have a name?)
-PIC via ICSP, noting there are different ICSP versions
-Intel chips like AT89C51, 87C51. Unclear how much compatibility there is on this

i'm sure this info will be useful at some point. For example, I deal with a lot of remarked chips, and knowing various Intel device IDs would be very useful.

Started some stuff here: http://proghq.org/wiki/Signature


Refactor catalog publish script with args

Takes arguments for most inputs
Sets the specified bundle version in the csv(was not being set previously)
Makes the CSV regexes a bit less fragile(hopefully)
Removed the ".bak" logic in the sed invocations which didn't seem to serve any purpose because the .bak file was being removed immediately after the sed invocations
Sets up the restore exit trap only after backup is invoked(there is nothing to restore until backup is invoked)

There's more to do here to collapse the 3 scripts into one (publish, rebuild, update) and create some utility functions, but for now i think this makes it easier to execute a flow like:

tag the latest operand images as "candidate"
build a new bundle+catalog image from the "candidate" operand images and push the bundle/catalog to your own quay org, or to a candidate tag in the openshift org
go test the catalog on a cluster
retag the candidate operand images as internal-preview
build a new bundle/catalog from the internal-preview operands and push the bundle/catalog to the openshift org under the internal-preview tag

Not ideal, but it gives us a workflow where we can sanity check things before putting them out there, at least, while we work to improve our CI processes.
Description

Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #
Closes #

Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

Testing

Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

@xrajesh ptal
/assign @xrajesh


Prevent fixed ancestors from being a clipping ancestor

fixes #2167
Previously ancestors with transform values and interceding decendents with position: fixed would errantly count as clipping ancestors. This releases the styles of a position: fixed ancestor so that it doesn't allow the transform ancestor to join the clipping ancestors array.
Repro in previous context: https://codesandbox.io/s/youthful-wiles-dc6oy4?file=/index.html

Thanks!


:bug: kairos.service may start before cos-setup-network

When running in a cloud provider specifying a cloud config file (e.g. in openstack) the kairos.server (the installer) may start before the cos-setup-network service is done downloading cloud config files from the provider. In that case, our cloud-config is ignored and the installer continues by showing the QR code as if no cloud-config was provided.
Restarting the kairos.service with systemdctl makes it work (because now the cloud-config files are in place).

we discussed one of the possible solutions which we agreed on:
the datasource pulling should write a sentinel once it's done, and the kairos-agent installer wait for it. This should fix also https://github.com/kairos-io/kairos/issues/499

couldn't we make the kairos.service depend on the cos-setup-network.service?
cos-setup-network.service runs after network-online.targetand even on a machine with no network that its launched properly.
Even without network, the real service that marks that you have connectivity is systemctl-networkd-wait-online IIRC, so we should be able to safely depend on cos-setup-network.service in our kairos services so we know that the metadata stuff was properly run by the time we reach the installer.
In fact, we should run our kairos stuff AFTER all the cos-setup-X services as any of those files can potentially be a source of configuration files no? There is nothing in the way of writing a yip file that adds the config in the reconcile stage....

couldn't we make the kairos.service depend on the cos-setup-network.service?
cos-setup-network.service runs after network-online.targetand even on a machine with no network that its launched properly.
Even without network, the real service that marks that you have connectivity is systemctl-networkd-wait-online IIRC, so we should be able to safely depend on cos-setup-network.service in our kairos services so we know that the metadata stuff was properly run by the time we reach the installer.
In fact, we should run our kairos stuff AFTER all the cos-setup-X services as any of those files can potentially be a source of configuration files no? There is nothing in the way of writing a yip file that adds the config in the reconcile stage....

To my knowledge, that should fire only if the node reaches the network-online target, which is the case only if there is an interface up: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
So we can't really make it depend on it, no? otherwise the kairos.service might not trigger at all if there is no interface

mmm and with openRC the sentinel approach might be better still, even if not nicer. so it doesn't really depend on waiting the init, but rather we do the waiting

couldn't we make the kairos.service depend on the cos-setup-network.service?
cos-setup-network.service runs after network-online.targetand even on a machine with no network that its launched properly.
Even without network, the real service that marks that you have connectivity is systemctl-networkd-wait-online IIRC, so we should be able to safely depend on cos-setup-network.service in our kairos services so we know that the metadata stuff was properly run by the time we reach the installer.
In fact, we should run our kairos stuff AFTER all the cos-setup-X services as any of those files can potentially be a source of configuration files no? There is nothing in the way of writing a yip file that adds the config in the reconcile stage....

To my knowledge, that should fire only if the node reaches the network-online target, which is the case only if there is an interface up: freedesktop.org/wiki/Software/systemd/NetworkTarget
So we can't really make it depend on it, no? otherwise the kairos.service might not trigger at all if there is no interface

I thougth so, but on my VM with no nics, network-online is active and cos-setup-network run properly, which shouldn't if network-online failed....
I guess network-online takes into account if there is no network other than the lo device it should still reach the target. It doesnt mean there is connectivity...that is why the other more specific service are there? (NetworkManager-wait-online.service and  systemd-networkd-wait-online.service)

mmm and with openRC the sentinel approach might be better still, even if not nicer. so it doesn't really depend on waiting the init, but rather we do the waiting

ah yes, forgot we have openrc! In that case yes, its better. But the problem still happens if someone writes a yip file that writes the config during the reconcile stage no? installer may have triggered by that time (reconcile comes after network stage) but the installer may be already running.

mmm and with openRC the sentinel approach might be better still, even if not nicer. so it doesn't really depend on waiting the init, but rather we do the waiting

ah yes, forgot we have openrc! In that case yes, its better. But the problem still happens if someone writes a yip file that writes the config during the reconcile stage no? installer may have triggered by that time (reconcile comes after network stage) but the installer may be already running.

how that would work? I don't think we need to cover that scenario, we write the sentinel after we pull and we are settled on configs. any other config should come already before that (e.g. via files in the disk, etc) and the agent can still pick it up from the network via config_url (but that's part of the kairos-agent execution flow)

couldn't we make the kairos.service depend on the cos-setup-network.service?
cos-setup-network.service runs after network-online.targetand even on a machine with no network that its launched properly.
Even without network, the real service that marks that you have connectivity is systemctl-networkd-wait-online IIRC, so we should be able to safely depend on cos-setup-network.service in our kairos services so we know that the metadata stuff was properly run by the time we reach the installer.
In fact, we should run our kairos stuff AFTER all the cos-setup-X services as any of those files can potentially be a source of configuration files no? There is nothing in the way of writing a yip file that adds the config in the reconcile stage....

To my knowledge, that should fire only if the node reaches the network-online target, which is the case only if there is an interface up: freedesktop.org/wiki/Software/systemd/NetworkTarget
So we can't really make it depend on it, no? otherwise the kairos.service might not trigger at all if there is no interface

I thougth so, but on my VM with no nics, network-online is active and cos-setup-network run properly, which shouldn't if network-online failed....
I guess network-online takes into account if there is no network other than the lo device it should still reach the target. It doesnt mean there is connectivity...that is why the other more specific service are there? (NetworkManager-wait-online.service and systemd-networkd-wait-online.service)

this sounds bad, also from systemd docs this sounds quite brittle - there is a network.target, a network-online.target (which is adviced to be used when interfaces are up and getting an IP) and a *wait-online service. I wonder if this makes sense at all - the whole purpose of waiting for a target is not to try to wait for each of them individually, but instead those should activate the target.


Luci -- mikrotik-like security template for hostapd

Good solution for dual band AP with one SSID/key/encryption for two instances of hostapd is "security template". In mikrotik's routeros you can set a template (ssid/password/encryption) and later configure each band using this template's label, without copying key and other settings. Everything is synced automagically.

Thank you for the suggestion - however I do not plan to work on such a feature. If you want to see it, please open a pull request with some proof of concept code we can discuss.


Add --single-quote option

Prettier, the most successful "opinionated code formatter", probably an inspiration for this project, advertises exactly the same values as this project. In many ways they make even stricter formatting decisions than black.
Yet, even prettier supports a --single-quote option.
Please add a --single-quote option to black.
And before immediately closing this ticket, please understand there is a huge need from users to have this option. At least go as far as to search across Github for pyproject.toml file's [tool.black] and check how many major projects have to use black with skip-string-normalization = true. Or simply listen to your users here.

I agree that having this option would make sense as the current situation is ignoring the community wishes. I even think that removing skip-string-normalization for single-quote would be better as that is the most likely usage and skipping string normalization entirely is a strange option for a formatter.
Currently it requires everyone who uses single quotes to run black and then have a second tool (we use pre-commit double-quote-string-fixer) to ensure that only single quotes are being used.
This is probably the outcome that would mostly satisfy #373 and #118

please understand there is a huge need from users to have this option.

What exactly is the need?

@hyperknot black does exactly what you suggest in your last example. Black also chooses the one which results in the fewest number of escapes.

@zsol

Prettier defaults to double quotes (but that can be changed via the --single-quote option).

@bcb There are many reasons for adding this option as detailed in my closed issue: #373

@zsol that's great to hear! I didn't know black has so high quality internal quote handling. Then adding this option is really just a matter of decision, and I kindly ask you to please consider our feature request.

The claim that single quotes are more Pythonic is dubious. PEP8 makes it clear neither is preferred:

In Python, single-quoted strings and double-quoted strings are the same. This PEP does not make a recommendation for this. Pick a rule and stick to it.

This is an opinionated formatter, it's important to choose one style and stick with it. I want to see black-formatted code and feel familiar with it. The fewer code-style options for my team to argue about, the better.

@bcb this is the difference between an individual and a community. You, as an individual are happy with the tool and that's fine. No one is proposing to take anything away from you or your team. Everything would work for you as it does today.
The community, on the other hand is not going to change their coding style based on the preference of a tool. Python is a mature language with lot of experienced, senior developers who have a strong opinion about the way they use quotation marks. If single quotation marks are not an option in black, they'll simply use skip-string-normalization and hence taking away from the value of this tool.
The same happened in JS land. StandardJS was trying to force the JS ecosystem to semicolon less statement endings, and many couldn't accept that. Came prettier, which offered both options for semicolon and it became a community embraced project overnight!

@zsol single and double quotes are about a 50-50 in the Python community. The whole community will never pick one over the other. Even the PEP guide says that both are ok. Then why would a tool like black think that it can change this?
If you want to support only one of them (doesn't matter which one), there'll be two consequences:

skip-string-normalization usage on the short term
a fork appearing which offers this choice

Then instead of unifying Python developers, you've actually split the black community between two versions of black.

This is an opinionated formatter

Opinionated except for line-length, skip-string-normalization and skip-numeric-underscore-normalization

line-length should have been set the PEP8 79 chars.
skip-string-normalization actually create more options to argue about, so replacing it with single-quotes option feels a better approach for black.
skip-numeric-underscore-normalization is being argued for removal in #549

@zsol All the arguments have been made already in #118 and #373 but I shall copy some over:

Large projects have invested heavily in setting single quotes as the style guide and converting nearly every line of code is not going to be welcome just because black enforces double-quotes.
Quote manipulation could be considered outside of a formatter and moving into the realm of refactoring.
Many keyboard layout require using shift for double-quotes which is tedious and annoying when single-quote is unshifted. Since this is language dependant have an option is sensible.
Python official documentation uses single quotes in code examples
Python repr outputs single quotes

Please focus the discussion on arguments for why single quotes should be the only thing black does, instead of just a flavor tunable with configuration.

@zsol It's too late for that now, months ago perhaps it was possible but the traction that black has gained will cause a furore if you switched to enforcing single-quotes.

There are accessibility concerns regarding this choice as well that were overlooked in https://github.com/ambv/black/issues/118:

As someone with a severe neuromuscular disorder (SMA) I require an on-screen keyboard to do anything (can only use a mouse). Each click is already an extremely difficult task and a double quote is 3 instead of 1: shift -> " -> unshift. I know that sounds mighty feeble, but it's true.
As others have noted about double quotes being harsher on the eyes, this effect is exacerbated by AD(H)D. I've heard from multiple people with the condition that reading code (90% of what we all do) is markedly easier when single quotes are used throughout due to less visual noise.

Having a flag for this would be fantastic!

I didn't think of the accessibility concerns as well. But it might be one of the reasons why more and more code I read is standardising on single quotes, across languages which support both.

I added support for black -s|--single-quotes.  The accessibility concerns for on-screen keyboards, the visual complexity of DQ over SQ, and the RSI concerns from overuse of the left pinky compelled me to do it.  Please kindly merge.

We will not be adding single quotes formatting to Black as previous discussions about it documented.


VAM on php

hi @Progyan1997 can you create Vogel code from PHP?

ok i'll try my friend, but if i fell confused..can you make it for me :+1:
thank you :smile:


Pass detailed error response down the chain

There are no error statuses being passed to the error response, so we can not handle exceptions based on http status codes.
Use case:
Company.$save()
     .catch(function(response){
           if (response.status === '409') { ... }
     });

Awesome contribution. I'm fine with the change, I'll only add a test case that verifies this and fixes the currently failing test for the response metadata scenario.
I'll merge it in soon.

@rhutchison Ok, merged it in and released it under v0.4.1 on bower. Thx again!


[Backport] [2.x] Extract cluster management for integration tests into JUnit test rule out of OpenSearchIntegTestCase (#11877)

Backport of https://github.com/opensearch-project/OpenSearch/pull/11877 to 2.x

❌ Gradle check result for 0b8bcf7: FAILURE

https://github.com/opensearch-project/OpenSearch/issues/10006
https://github.com/opensearch-project/OpenSearch/issues/8947


Dark mode

Tailwind CSS is utilized in this project. Changes are needed in:

Theme configuration
Components

For reference, see Tailwind CSS Dark Mode documentation.

@RajatRajdeep I would like to work on this issue.

@RajatRajdeep Please share monumentsSketch for the dark mode.

@RajatRajdeep Please share monumentsSketch for the dark mode.

@RajatRajdeep edited the svg file, no need to share the image.


linuxPackages_latest.hid-playstation: init at unstable-2021-02-07

Motivation for this change
PS5 controller (DualSense) support.
I don't think it makes sense to merge this pr since hid-playstation is likely going to be merged into the kernel soon.
I'm opening this as a draft for people who want to use the controller right now.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 113321 at a3ed3248 run on aarch64-linux 1

1 package marked as broken and skipped:

linuxPackages_latest-libre.hid-playstation

4 packages built:

linuxPackages_5_10.hid-playstation (linuxPackages_latest.hid-playstation ,linuxPackages_latest_xen_dom0.hid-playstation)
linuxPackages_latest_hardened.hid-playstation (linuxPackages_latest_xen_dom0_hardened.hid-playstation)
linuxPackages_lqx.hid-playstation
linuxPackages_zen.hid-playstation

2 suggestions:

warning: missing-patch-comment
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/os-specific/linux/hid-playstation/default.nix:13:15:
   |
13 |   patches = [ "${src}/disable-ff-enabled-check.patch" ];
   |               ^

warning: unclear-gpl
gpl2 is a deprecated license, check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.
Near pkgs/os-specific/linux/hid-playstation/default.nix:27:5:
   |
27 |     license = licenses.gpl2;
   |     ^

Closing because this has been merged into Linux version 5.12.


database selector

my English is not good
Please
allow to change the database where the file would be executed
mi ingles no es bueno
Por favor
permitir cambiar la base de datos en donde se ejecutaria el archivo

I second this request, and will elaborate:
I would like to be able to change active connections and schemas by clicking on the info bar at the bottom, in much the same way I an change git branches on the CR extension.
If that is not practicable, then add a menu item to the context menu for the connection and the schema to "make current" the selection.  Same action as the "new query", but without the new tab create. (Actually, both would be very useful!)
This is useful when jumping between production and test databases, when I want to run the same query against two different sources.


Fix Flakey Test - Get All Prices in JSON Tests

Get All Prices in JSON Tests is flakey due to order of elements. Review and fix flakeyness. json_test.go

@JyotinderSingh can i take this one?

@kushal0511-not you already have one on your plate :) wrap that up and then you can pick this up (if still open) :D

i think #365 will fix the issue. cc @JyotinderSingh @VedWhat


[LLVMGPU] Add layout that maximizes load through adjusted k-Width

To maximize loads from shared memory, we can do what they call in Triton "kPack" or unrolled of K dimension. For now, we only introduce two variants of unrolled k == 2 on the F16s. For most of the cases are unroll of k == 2, sets the bitwidth to 128 bitwidth read.
Currently, we are plumbing it in as MMA intrinsic enums(per discussion with @qedawkins and @Groverkss ), as they are the easiest and non tangly way to integrate/plumb through. all though in the future we can expose this attribute as k-width or k-pack for maximizing generability.

As someone who is trying to get familiar with the codebase, just a thought i had is should we use something like : MFMA_F32_16x16x2x16_F16 -- to make it obvious we are packing two intrinsics in the micro-kernel and potentially unify everything to be MFMA_dtype_m_n_kpack_k ?

Can we not use terms like "kpack". CK and Triton use these non-conventional, undocumented terms, and i don't really like them. It makes things confusing. This is just interleaving two intrinsics. We should document what we mean by interleaving and not coin these terms.

Regarding naming, it might be good if we mark these intrinsics as "virtual" or something.
MFMA_F32_16x16x32_F16 -> virtual_MFMA_F32_16x16x32_F16
maybe. Just to differenciate between what can be found in the ISA documentation and which ones are emulations.

In theory, if we should (a big if here :) ) we support an intrinsic.. say : https://mlir.llvm.org/docs/Dialects/ROCDLDialect/#rocdlmfmaf3216x16x4f16-rocdlmfma_f32_16x16x4f16
then it would be ambiguous when we say  MFMA_F32_16x16x32_F16 between :
a) 8 x MFMA_F32_16x16x4_F16
b) 2 x MFMA_F32_16x16x16_F16
where as in explicit mention in the name of count of intrinsics in the micro-kernel -- I also dont like kPack as a term but dont know what else to call it -- intrinsic iterations ?, I ll let you guys decide on that -- would make it unambigous :
a) MFMA_F32_16x16x8x4_F16
b) MFMA_F32_16x16x2x16_F16

We should eventually support all of the intrinsics, so planning to avoid naming conflicts would be good. Based on my read of this document: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/instruction-set-architectures/amd-instinct-mi300-cdna3-instruction-set-architecture.pdf
MFMA_F32_16x16x4_F16 is batched so I'd think we'd call it MFMA_F32_4x16x16x4_F16 or MFMA_F32_16x16x4_4B_F16. If we had a real case where a "virtual" intrinsic collided in name with a real one, I'd question why we wanted the virtual one to begin with.
I don't hold a strong opinion on the naming here, but MFMA_F32_16x16x2x16_F16 reads as a 16x2x16 MMA with batch 16 to me. Additionally from the perspective of the rest of the compiler, it is just treated as a 16x16x32 sized instruction. If I were plumbing this through SPIR-V's Cooperative Matrix, I would just expose it as supporting #spirv.coop_matrix<16, 16, 32, f16, f16, f32> without any explicit mention to MFMA. virtual_MFMA_F32_16x16x32_F16 is kind of long, perhaps VMFMA_F32_16x16x32_F16 or MFMA_F32_2k_16x16x16_F16. It's basically a question of whether we care to represent the shape of the actual instruction we bottom out at (not that important to me IMHO) or the overall shape of the matrix multiply being computed.
Also keep in mind that we will probably need to split the enum no matter what to properly handle mixed signedness integer intrinsics so creating a new kind of attribute is another option.

We should eventually support all of the intrinsics, so planning to avoid naming conflicts would be good. Based on my read of this document: https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/instruction-set-architectures/amd-instinct-mi300-cdna3-instruction-set-architecture.pdf
MFMA_F32_16x16x4_F16 is batched so I'd think we'd call it MFMA_F32_4x16x16x4_F16 or MFMA_F32_16x16x4_4B_F16. If we had a real case where a "virtual" intrinsic collided in name with a real one, I'd question why we wanted the virtual one to begin with.
I don't hold a strong opinion on the naming here, but MFMA_F32_16x16x2x16_F16 reads as a 16x2x16 MMA with batch 16 to me. Additionally from the perspective of the rest of the compiler, it is just treated as a 16x16x32 sized instruction. If I were plumbing this through SPIR-V's Cooperative Matrix, I would just expose it as supporting #spirv.coop_matrix<16, 16, 32, f16, f16, f32> without any explicit mention to MFMA. virtual_MFMA_F32_16x16x32_F16 is kind of long, perhaps VMFMA_F32_16x16x32_F16 or MFMA_F32_2k_16x16x16_F16. It's basically a question of whether we care to represent the shape of the actual instruction we bottom out at (not that important to me IMHO) or the overall shape of the matrix multiply being computed.
Also keep in mind that we will probably need to split the enum no matter what to properly handle mixed signedness integer intrinsics so creating a new kind of attribute is another option.

I like having the overall shape of the matrix. VMFMA_F32_16x16x32_F16 sounds good.

Thanks for the very useful discussion guys! I renamed it to VMFMA, also cleared the naming of kPack/kWidth to something clearer and more intuitive!

Great Qs @kuhar!

Why do we need these virtual intrinsics?

The main use case for the virtual intrinsics are to change the layout of intrinsics in K-dimension, such that we can coalesce reads from shared memory to register.
Currently, the "native" intrinsics need to enforce the "native" layout (i.e read 4 element per thread for MFMA_F32_16x16x16), however since we know that K-dim is a reduction dimension which is associative, we can read the data in non "native"/"correct" but "faster"/"more elements per read" way but as long as we match the K-dim on both lhs and rhs we will still get correct results (i.e read 8 contiguous element per thread from shared memory along dimension K for and then slice them into two MFMA_F32_16x16x16)).
an IR example for this is if we want to do a 16x16x32(MxNxK) matmul with MFMA_F32_16x16x16_F16 intrinsics, on thread 0 we used to have something like:
lhs_0 = read(lhs_shared_mem[0:4])
rhs_0 = read(rhs_shared_mem[0:4])
mma_0 = vector.contract(lhs_0, rhs_0)

(16 offset since MFMA_F32_16x16x16xF16 has intrinsic K size of 16)
lhs_1 = read(lhs_shared_mem[16 + 0: 16 + 4])
rhs_1 = read(rhs_shared_mem[16 + 0 : 16 + 4])
mma_1 = vector.contract(lhs_1, rhs_1, mma_0)

With this optimization, we will turn into something like:
lhs_reg = read(lhs_shared_mem[0:8])
rhs_reg = read(rhs_shared_mem[0:8])

lhs_0 = slice(lhs_reg, [0 : 4])
rhs_0 = slice(rhs_reg, [0 : 4])
mma_0 = vector.contract(lhs_0, rhs_0)

lhs_1 = slice(lhs_reg, [4 : 8])
rhs_1 = slice(rhs_reg, [4 : 8])
mma_1 = vector.contract(lhs_0, rhs_0, mma_0)

We encode the above in a new "virtual" intrinsics' layouts so that it will do the correct reads and work with the rest of the vector distribution pipeline seamlessly.
This is one of the optimizations that we need to match/handle the regression we have for SDXL on the mlperf branch.

as they are the easiest and non tangly way to integrate/plumb through

Could you expand on this?

In the previous iteration of this, we had an named IntegerAttribute called "vector_width" (typically we do width=4 or width=8) that modifies the base NestedLayoutAttr on the fly in order to express the optimizations/read layout we described above. After discussions with Quinn and Kunwar, we agreed to introduce these new layouts as enums instead.
While the attribute method is more general, since most of the time we'd only care about doing unroll_k = 2, introducing more code to handle the unroll_k and plumbing this attribute through different parts of the code can introduce more complexity and make it harder to debug. Hence, we agreed to only add "virtual" intrinsics that we care about. I reckon this method may also introduce more complexity for the tuner as opposed to treating it as another enum/intrinsics.

since for other targets we don't invent new intrinsic in a similar way

Currently this optimization is somewhat local to VectorDistribute, since it's a way to handle optimized layouts, and isn't really implemented any other places yet, hence, probably why other targets won't have the new intrinsic in the same way.

It seems to me like these could uncontrollably grow forcing the complexity onto everything that may deal with these attributes, e.g., the tuner

Actually, this is one of the main reasons behind using enums as opposed to the modifier attribute, since this way, the tuner will only see this as another MFMA intrinsic to pick (i.e probably no change in code needed), as opposed to trying to figure out what would be valid values for the modifier attribute onto different MFMA intrinsic.
Hope that answers most of your Qs and concerns Jakub, we can always go on VC if you want to discuss more about this! :)

OK, this makes sense to me. Could you add similar context to the PR description and maybe also an abbreviated version to tablegen?

OK, this makes sense to me. Could you add similar context to the PR description and maybe also an abbreviated version to tablegen?

Yes, that's probably a great idea haha!

the tuner will only see this as another MFMA intrinsic to pick (i.e probably no change in code needed)
Oh, I wish this was the case... With the current implementation that's quite a bit of work.

But I think it further suggests the direction I started heading towards before the LLVM conference: we should expose these attributes via python bindings.

OK, this makes sense to me. Could you add similar context to the PR description and maybe also an abbreviated version to tablegen?

@kuhar I updated the PR description and TD doc, lmk if you think we need to add more info here :)

I didn't see this PR as I wasn't a reviewer. If I understand it correctly, the semantics that this PR gives to #iree_gpu.mma_layout<VMFMA_F32_16x16x32_F16> are identical to the semantics of the existing #iree_gpu.data_tiled_mma_layout<intrinsic = MFMA_F32_16x16x16_F16, unroll_k = 2>. Why not use that? @raikonenfnu, @Groverkss , @qedawkins , @kuhar , @manupak

Hey @bjacob, thanks for the fantastic question! in fact, using the data_tiled_mma_layout was one of our original ideas on implementing these features. However after @Groverkss  and I discussed with @qedawkins, we decide to use these enums for these primary reasons:

Data tiling seem to need specific shapes constraints which do not match our current vector distribution requirement
We do not want to overcrowd the data tiled mma layout too much to handle our use case
Since we have very limited number of cases we want to support, it will be easier to plumb and debug with enums
easier for python tuner and C++ heuristic to choose these "virtual" intrinsics

happy to chat some more on VC :)


weaviate-client fails to bundle on Cloudflare Workers due to http2 dependency

Description
I am trying to use the weaviate-client library in a Cloudflare Worker, but I am encountering issues related to the http2 module. The error message suggests that the http2 package is built into Node.js and is not available in the Cloudflare Workers environment.
Context
I have added the following configuration to my wrangler.toml file to enable Node.js compatibility:
compatibility_date = "2023-12-01"
node_compat = true

However, even with this configuration, I am still facing the http2 related error.
Steps to Reproduce

Set up a new Cloudflare Worker project.
Install the weaviate-client library using npm or yarn.
Configure wrangler.toml with the appropriate compatibility_date and node_compat settings.
Write code that uses the weaviate-client library to make requests to a Weaviate instance.
Attempt to run the Worker using wrangler dev.

Expected Behavior
The Cloudflare Worker should be able to use the weaviate-client library to make requests to a Weaviate instance without any issues related to the http2 module.
Actual Behavior
The Worker fails to execute due to the missing http2 module, which is not available in the Cloudflare Workers environment.
✘ [ERROR] Could not resolve "http2"

    ../../node_modules/.pnpm/@grpc+grpc-js@1.9.14/node_modules/@grpc/grpc-js/build/src/transport.js:20:22:
      20 │ const http2 = require("http2");
         ╵                       ~~~~~~~

  The package "http2" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.

Possible Solution
One potential solution is to use the native fetch API provided by Cloudflare Workers instead of relying on the http2 module used by the weaviate-client library.
Additional Information

I'm using Weaviate Cloud
weaviate-client library version: 3.0.0-rc.3

Hi @pastelcolors, the<EMAIL_ADDRESS>library makes use of Weaviate's new gRPC API and so depends on the HTTP/2 protocol used by gRPC.
Yours is a good use-case, however, and we will bear it in mind when we develop an alternative library that has the same API surface as<EMAIL_ADDRESS>only depending on the GraphQL API under-the-hood instead. Such a library should then be usable in the browser and in serverless environments that do not support the HTTP/2 protocol.
As such, I will leave this issue open as a description of this limitation until the alternative library is released as a solution


Added helper text to income field on patient edit form

I rule and have completed some work on Case Manager that's ready for review!
(brief, plain english overview of your changes here)
This pull request makes the following changes:

Adds helper text underneath income field on patient edit form

(If there are changes to the views, please include a screenshot so we know what to look for!)
It relates to the following issue #s:

Fixes #460

@vincecampanale could you please drop a screengrab in here? much appreciated!

Codecov Report

Merging #840 into master will not change coverage.

@@           Coverage Diff           @@
##           master     #840   +/-   ##
=======================================
  Coverage   98.48%   98.48%
=======================================
  Files          35       35
  Lines         727      727
=======================================
  Hits          716      716
  Misses         11       11

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 9df2558...ed0e022. Read the comment docs.

@mebates Sorry about that! Here they are. The specific change is shown in the screen grab with just the Income field. The way it looks in the bigger picture is shown with the entire patient info screenshot.

Looks great, thank you!

:shipit:

thanks again @vincecampanale ! Appreciate your honing in on this a bunch.

no problem @colinxfleming thanks for working with me - I'm learning a lot!


fix(stages): reset Merkle checkpoint

Codecov Report

Merging #2877 (e181793) into main (0ebc786) will decrease coverage by 31.74%.
The diff coverage is 50.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@             Coverage Diff             @@
##             main    #2877       +/-   ##
===========================================
- Coverage   71.22%   39.48%   -31.74%
===========================================
  Files         513      513
  Lines       66470    66471        +1
===========================================
- Hits        47342    26249    -21093
- Misses      19128    40222    +21094

Flag
Coverage Δ

integration-tests
?

unit-tests
39.48% <50.00%> (-26.61%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

crates/stages/src/stages/merkle.rs
68.94% <50.00%> (-11.06%)
:arrow_down:

... and 310 files with indirect coverage changes


handle more columns from softnet_data

Hello
* add CPUCollision for linux 2.6
* add ReceivedRps and FlowLimitCount for linux >4.17
* add SoftnetBacklogLen and Index for linux 5.10 https://github.com/torvalds/linux/commit/7d58e6555870d01d85b181ba2a16b217a1ea8bdd
* add Width so anyone can choose to use Index instead of line index, see the commit https://github.com/torvalds/linux/commit/7d58e6555870d01d85b181ba2a16b217a1ea8bdd

Signed-off-by: remi<EMAIL_ADDRESS>

Hello, how often do you release new version for this package ? so i can create a MR for node_exporter to integrate the change (if i'm getting this PR merged of course)

Hmm, looks like there's a CI problem. Going to try close and re-open.

Weird, still has a broken CI run.

do i need to do something on my side for CI ?

No, I think the problem is with CircleCI. I'm going to ignore it. The rest of the tests pass.


References to offset 0 in a segment are marked up differently than the others

Describe the bug
References to data at offset 0 in a segment are not marked up as any other reference in the code.
To Reproduce
Steps to reproduce the behavior:

Analyze a x86-16 file with data references to offset 0 in another segment.
If references are not automatically added, add them manually.
References to offset 0 are not marked up in the same way as the others.

Expected behavior
References to data at offset 0 in a segment should be marked up as any other reference.
Screenshots

Environment (please complete the following information):

OS: Debian Linux 10
Java Version: 11.0.4
Ghidra Version: 9.0.4

Additional context
This happens regardless whether the reference is added via automatic analysis or it is added manually.

What I believe you are seeing is related to the DS (data segment) being set to 0x2000 and the MOV <Reg>, <Indirect Address Lookup> using that data segment to form the full address of DS:<IAL>.  In this case giving an effective statement MOV AX, 2000:[0x0].


Remote cloned presentation?

Is it possible to clone a presentation from a remote computer (to see presenter notes)?

Sorry for the late reply. Currently this is not a supported feature of remark.

Is it possible to do on the same computer?  If not, what is the value of presenter mode?

@mcowger Yes, by pressing C you get a separate window that will follow the navigation in the original that can be shows on a projector, and then you can turn on presenter notes in the original one and keep that on the presenter's display.

I did this for myself, but thought others might find use:
https://github.com/omnibs/remarksync
Synchronizes remark presentations across devices on the internet.


Fails when Go code is in a subdirectory (e.g. in a polyglot project)

Not sure if this is an issue with neotest-go or neotest -- let me know if I should move it.
I have a project with multiple languages in use, and my Go code lives under a go/ subdirectory. When running tests with a Go file open, it should try to find the closest go.mod file to the current file, and run the go test command with that directory as its working directory.
Currently it just runs tests in current working directory, which does not work for this use case.

Hi @mrjones2014,
No idea why this would be the case, nor if it's an issue with neotest or this adapter.
Looking at
https://github.com/nvim-neotest/neotest-go/blob/d506f831d03f91a14f47e1ea0011b0f286c4e0d9/lua/neotest-go/init.lua#L294-L304
These files should be detected regardless, I work in a mixed language monorepo and go tests run fine for me 🤷🏿♂ not sure what your exact layout is though.
In any event people tend to investigate and contribute fixes for any issues they encounter themselves, just mentioning since issues opened here are unlikely to advance without the author raising a PR

In any event people tend to investigate and contribute fixes for any issues they encounter themselves, just mentioning since issues opened here are unlikely to advance without the author raising a PR

Sure, I'm willing to. I might be able to get to it next week or so.
For reference, I'm working in this repo: https://github.com/mrjones2014/op.nvim
And this is the error I get:

Interestingly, :lua print(require('neotest-go').root(vim.fn.expand('%'))) does return the correct directory, but I still get the error I screenshotted above 🤔

Pretty sure this was user error. Moving my go.mod and go.sum to the root, but keeping my Go sources under go/ works.

Hmm, I had a similiar problem, it seems that the does not contain main module error message occurs when you are within a symlinked directory.
When I went to the actual directory that message suddenly vanished.

Interestingly, :lua print(require('neotest-go').root(vim.fn.expand('%'))) does return the correct directory, but I still get the error I screenshotted above 🤔

I am having the same problem.  I never had this issue with fatih/vim-go plugin.
My setup is as below:
GOPATH=~/projects/core
Go code is under ~/projects/core/src/ttx
Vim root(pwd) is ~/projects/core
lua print(require('neotest-go').root(vim.fn.expand('%'))) correctly identifies the root as ~/projects/core/src/ttx
When I change cwd in vim doing cd src/ttx the test run correctly, but it does not If stay in actual project root which is ~/projects/core
It is not option for me to move go.mod or go.sum out to ~/projects/core

@breneser - did you ever find a solution? I'm in the same boat working in a mono-repo.


Is there a way to hide the pause button?

Everything runs perfect, but I'd like to know how to hide the pause button please. Is there a hack?
Thank you so much!

you mean on the lockscreen / control center?  There is no way to not show the play/pause button unfortunately.

Ok thanks!


Postgresql after restart "during attach in reorg: Key not found" error

When I bring down the containers (during initial sync, eg at height 13807) and restart them again - node will not store incoming blocks anymore and output errors Problem fetching block ... during attach in reorg: Key not found.
This happens at any time during the sync if backend crashes or is stopped, both with postgres running locally or on remote server.
Full error:
E0822 18:02:15.434559       1 server.go:1126] Server._handleBlock: Encountered an error processing block <Header: < 13808,<PHONE_NUMBER>6242429dc303a203bb9bc527b750ed6280db725cec0832a78d534e, 0 >, Signer Key: NONE>. Disconnecting from peer [ Remote Address: <IP_ADDRESS>:17000, DISCONNECTED PeerID=179 ]: Error while processing block: : ProcessBlock: Problem fetching block (< TstampSecs:<PHONE_NUMBER>, Height: 13807, Hash:<PHONE_NUMBER>53ee995f93af61bc8d7ea7c6d94578d61c811f7faabd78f5489d81, ParentHash<PHONE_NUMBER>3edd704218a7dd7ecf39bd25ca2aff076fa27ebed263cd7de5f905, Status: HEADER_VALIDATED | BLOCK_PROCESSED | BLOCK_STORED, CumWork:<PHONE_NUMBER>3500418>) during attach in reorg: Key not found

Very odd, never seen this one myself. Will investigate

Yesterday backend update may have fixed this - I restarted backend after #102 panic - and it synced new blocks fine.

Looks like error returned - after a full sync and restart seemed fine and was loading blocks ok - it now stopped.
Again with during attach in reorg: Key not found error
I0825 08:30:14.020483       1 server.go:1132] Server._handleBlock: Received block ( 54574 / 54574 ) from Peer [ Remote Address: <IP_ADDRESS>:17000, DISCONNECTED PeerID=5 ]
E0825 08:30:14.024217       1 server.go:1126] Server._handleBlock: Encountered an error processing block <Header: < 54574,<PHONE_NUMBER>0014e4413685988c0d95776f661c8bd4a07dd43a191bfce8e4358e, 1 >, Signer Key: BC1YLh768bVj2R3QpSiduxcvn7ipxF3L3XHsabZYtCGtsinUnNrZvNN>. Disconnecting from peer [ Remote Address: <IP_ADDRESS>:17000, DISCONNECTED PeerID=5 ]: Error while processing block: : ProcessBlock: Problem fetching block (< TstampSecs:<PHONE_NUMBER>, Height: 54570, Hash:<PHONE_NUMBER>009cd583b227206816c75410c6a7b21ba6fa667b744b5947a3bde3, ParentHash<PHONE_NUMBER>0091d0097dd9c3e5ff5258431cfea39bc18fc797774ef071293343, Status: HEADER_VALIDATED | BLOCK_PROCESSED | BLOCK_STORED, CumWork:<PHONE_NUMBER>650551346>) during attach in reorg: Key not found

Im closing this as it seems the result of other errors which are being resolved.


CIF-1608 - Category Carousel Component

added new carousel clientlib for CIF

Related Issue
CIF-1608
How Has This Been Tested?
Manually.
Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[X] All new and existing tests passed.

I've added the component policy and proxy.


No gain change

I tried your AutoAdjust code but I always end up with gain config 3. It updates immediately after start from 2 to 3 and doesn't step down again when it gets brighter. So it reads "Too bright!" instead.

Thank you for the feedback and motivation! It's been a while since I worked on this code, and I wasn't able to reproduce your exact issue, but I came across many other ones. The short answer is: I've made some changes and pushed a new version; let me know if it works for you.
The longer answer is: I tried this out indoors at night. In ambient light, the sensor settled at setting 3. I used my phone's flashlight to test the lower settings, and I covered the TSL with my hand to test the higher settings.
I ran across a handful of issues mentioned in the commit - an infinite loop in bright light, and oscillating back and forth between settings 3 and 4. I created a new fourth gain setting and pushed the old one up to become the fifth, then it oscillated between 4 and 5 - I put in a special case to handle small values (< 0.1) with setting 4. Logically under those conditions, you would want higher gain, but something is going wrong and that small value is resulting from too much light (so we need lower gain).
I think it comes down to two issues: the first is that this sensor is strange and the lux calculation is (if I recall correctly) reliant on proprietary magic numbers. The equation is a bit of a black box. We just have to work around this with special cases and parameter tuning.
The second issue is that my parameters probably aren't well tuned. It would be good to capture data with all settings for various different brightnesses, then based on that data, calculate the appropriate conditions for moving from one setting to another.
All of that being said, it's working pretty well right now.

Wow, that was a quick fix! Thanks! Now it is not only increasing gain but also decreasing. Seems to work fine now…


Avoid executing queries with 0 output

Front end should do static analysis of query to avoid executing queries to leads to 0 output.
Some examples are

MATCH ... WHERE 1 > 2 ...

we evaluate

MATCH (a:LabelNotExist)

we throw exception in binder

MATCH (a:person)-[e1:LabelNotConnect]

we throw exception in binder

This has been done. See LogicalEmptyResult for more details.


dart2js: no compile-error if mixin declares factory constructor

This is the dart2js version of bug 24767.
Failing new tests:
mixin_illegal_constructor_test/20
mixin_illegal_constructor_test/21

done in CFE


Use ISO 8601 format for dates

Describe the feature
The current date is displayed as MDY. Users have to deduce this by looking which numbers can be bigger than 12.
Date formats are very ambiguous throughout the world:

This issue has been solved in 1988 by ISO 8601.
What value provides this feature?
Using ISO 8601 has many advantages, the most important one being that it's unambiguous.

Fixed here https://github.com/evansloan/collectionlog.net/commit/febe6603917b2abd5501084d9e4ef9b34e3e77ab
User's location will now be factored in when formatting dates

Thanks for the quick turnaround!


Update learning_rate_schedule.py

Make sure math.pi has the same dtype as completed_fraction

@googlebot I signed it!

The corresponding change has been made to keras-team/keras. Closing this PR now.

Thank you for merging the changes.


soil evaporation constraint

This PR makes sure that soil moisture does not fall below residual soil moisture. This was likely the cause of this error occurring during vr_run :
path/virtual_rainforest/virtual_rainforest/models/hydrology/below_ground.py:79: RuntimeWarning: invalid value encountered in sqrt* np.sqrt(effective_saturation)
I didn't add a specific test or warning message.
Type of change

[ ] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[x] Bug fix (non-breaking change which fixes an issue)

Key checklist

[x] Make sure you've run the pre-commit checks: $ pre-commit run -a
[x] All tests pass: $ poetry run pytest

Further checks

[x] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

Codecov Report

Merging #318 (9ff3727) into develop (10afe8a) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           develop     #318   +/-   ##
========================================
  Coverage    96.50%   96.50%
========================================
  Files           48       48
  Lines         2372     2376    +4
========================================
+ Hits          2289     2293    +4
  Misses          83       83

Files
Coverage Δ

...irtual_rainforest/models/hydrology/above_ground.py
100.00% <100.00%> (ø)

...ual_rainforest/models/hydrology/hydrology_model.py
100.00% <100.00%> (ø)

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

LGTM - does that change in the test catch the case where the evaporation is constrained not to push SM below RSM? Might be useful to note that?

It didn't because I made the change in the update function. I added the clip to the function that calculates evaporation  so I can test for it and it looks like it works ok.


Unification broken IX

Item#61

Same as #322?

Yes (I do not track closed issues)

... but in one area I might help: If you find good questions about what kind of terms should work. In particular which skeletons. So far, I never tested something more complex than _*_*_ or [[_|_]|_]. Also, I am not sure how to generate skeletons dynamically, does assert do it?


Reading level advice

Reading level advice is inconsistent between Content Guide and Content strategy.
Content Crit says Stick to grade 5; review wording in content guide to make distinction between citizen and govt to govt facing usage. Check with WCAG too for level 5-9 advice. Gary to review CG wording/advice, rewrite and put back to Crit for agreement.

Now being tracked in Trello


Separate traits for RosMessageType, MD5SSUM, and Source?

So one cool ability of roslibrust I'm planning to highlight in my talk was the ability to hand define a generic version of message, and leverage serde_json to correct deserialize the right version of it at runtime. Going to be filing a PR to add an example of this soon (today hopefully).
Ran into an issue while doing this that we introduced on the way to ROS1 native support.
We extended the requirements to be a RosMessageType to include
    /// The computed md5sum of the message file and its dependencies
    const MD5SUM: &'static str;

    /// The definition from the msg, srv, or action file
    const DEFINITION: &'static str;

But these fields aren't actually required everywhere, and they make it way harder / confusing to hand define a generic type. I think we should move these to their own trait, which is only sometimes required depending on what you are using the message for?

Maybe we could just add defaults to those two fields? While this use case is interesting, I wouldn't expect it to be nominal or common and I'm worried about adding complexity to accommodate it.

If we can provide defaults of empty string "" I think that is more than good enough. We could then provide runtime errors if you do end up calling a function that needs it to not be ""? I didn't know defaults were really possible! Just read the documentation on them and that seems like a nice "good enough" for now. I'll file an MR to add defaults

I think that the only thing which might require this is native ROS connections, in which case if you're defining messages by hand I'd call that at-your-own-risk behavior and let them debug from errors issued by rosmaster, failures to match md5sums with publisher nodes, etc.


Needed changes for metrics improvements

Description:

This PR defines bucket ranges for the histogram of the following metrics:
-rpc_relay_mirror_response
-rpc_relay_method_response
from using the default bucket values of [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10] that are measuring latency in seconds to [5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000] that are measuring latency in milliseconds, witch is the unit of the observations taken.
And also removed line that decreases the gauge (operatorAccountGauge), that its purpose is to have visibility to the costs per account, but that is also being tracker by rpc_relay_consensusnode_response. So better remove to decrease complexity, unneeded redundancy.
Related issue(s):
https://github.com/hashgraph/hedera-json-rpc-relay/issues/866
Fixes #
Notes for reviewer:

Current Metrics with old buckets:

After this PR:

Current Gauge Metrics:

After this PR:

After this PR:
Newly created metric for hbarLimiter is working as expected

Checklist

[ ] Documented (Code comments, README, etc.)
[x] Tested (unit, integration, etc.)

Codecov Report
Base: 74.16% // Head: 74.30% // Increases project coverage by +0.13% :tada:

Coverage data is based on head (cf01be4) compared to base (1f9b860).
Patch coverage: 75.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #887      +/-   ##
==========================================
+ Coverage   74.16%   74.30%   +0.13%
==========================================
  Files          29       29
  Lines        1827     1833       +6
  Branches      339      339
==========================================
+ Hits         1355     1362       +7
+ Misses        374      373       -1
  Partials       98       98

Impacted Files
Coverage Δ

packages/relay/src/lib/clients/mirrorNodeClient.ts
94.32% <ø> (ø)

packages/server/src/server.ts
76.88% <ø> (ø)

packages/relay/src/lib/clients/sdkClient.ts
21.13% <40.00%> (+0.51%)
:arrow_up:

packages/server/src/rateLimit/index.ts
57.89% <80.00%> (ø)

packages/relay/src/lib/hbarlimiter/index.ts
100.00% <100.00%> (ø)

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Good catch on bucketing by seconds vs milliseconds!


node.js version for npm installing gulp-sass

Hi Ryan, thanks a lot for sharing it, as well as V2. But im struggling with a bounch of errors from npm install, and it looks that many users have thoese issues.
I have solve the problem and it turns out that the key point is the correct version of node.js, which is not mentioned in this repo. One should use node.js with the correct version v10.22.0 (npm v6.14.6). It perfecly works whlie installing gulp-sass (node-sass). Newer node.js might not work no matter how to config, i.e. gym, MSVC.
Am i correct? Or i missed some tricks?

How do I use the correct node version? Thanks

How do I use the correct node version? Thanks

Try Node.js v10.22.0 (npm v6.14.6 should be installed aotomatically).


mvn clean verify doesn't work without running install.

    When I ran `mvn clean verify` it wouldn't work as it told me I didn't have a specific (kroxylicious) related component installed. I'm afraid I forgot to note exactly what one it was, though (I tried this late last week) - but switching this to install worked for me. @grdryn do you happen to remember what this was?

Originally posted by @racheljpg in https://github.com/kroxylicious/kroxylicious/pull/91#discussion_r1033382150
There is something suspicious about needing an install, it implies the module dependencies aren't right. We should look at fixing that.

I suppose Maven doesn't pick up the plug-in dependency correctly. See this SO question for a (hacky) work-around.

Hmmm the plug-in dependency sounds like the sort of thing I thought was going on but I can't reproduce locally.
 ~kroxylicious │ main  ls -l ~/.m2/repository/io/kroxy*                                                                                 ✔ │ system  │ 13:58:43
zsh: no matches found: /Users/sbarker/.m2/repository/io/kroxy*
 ~kroxylicious │ main  mvn clean verify                                                                                 1 ✘ │ system  │ 13:59:00
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for io.kroxylicious:integrationtests:jar:1.0-SNAPSHOT
[WARNING] The expression ${build.directory} is deprecated. Please use ${project.build.directory} instead.
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Kroxylicious Parent                                                [pom]
[INFO] kroxylicious-krpc-plugin                                  [maven-plugin]
[INFO] Kroxylicious Proxy                                                 [jar]
[INFO] integrationtests                                                   [jar]
[INFO]
... SNIP ...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Kroxylicious Parent 1.0-SNAPSHOT:
[INFO]
[INFO] Kroxylicious Parent ................................ SUCCESS [  1.482 s]
[INFO] kroxylicious-krpc-plugin ........................... SUCCESS [  9.133 s]
[INFO] Kroxylicious Proxy ................................. SUCCESS [ 13.601 s]
[INFO] integrationtests ................................... SUCCESS [ 54.153 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:18 min
[INFO] Finished at: 2023-01-16T14:00:26+13:00

Which based on the cited link from the SO question shouldn't work. More digging required...

@racheljpg what version of maven are you using?
Run mvn -v if you need to check.

@SamBarker I'm using Apache Maven 3.8.4 (Red Hat 3.8.4-3).

hrm its not something that's been fixed in a newer maven version then 😞

Taking a turn for the stranger.
Running mvn process-sources fails locally but mvn verify passes.
[INFO] --- maven-dependency-plugin:3.3.0:unpack (unpack-message-specs) @ kroxylicious-krpc-plugin ---
[INFO] Configured Artifact: org.apache.kafka:kafka-clients:3.3.1:jar
[INFO] Unpacking /Users/sbarker/.m2/repository/org/apache/kafka/kafka-clients/3.3.1/kafka-clients-3.3.1.jar to /Users/sbarker/development/kroxy/kroxylicious/krpc-code-gen/target/message-specs with includes "common/message/*.json" and excludes ""
[INFO]
[INFO] --------------------< io.kroxylicious:kroxylicious >--------------------
[INFO] Building Kroxylicious Proxy 1.0-SNAPSHOT                           [3/4]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Kroxylicious Parent 1.0-SNAPSHOT:
[INFO]
[INFO] Kroxylicious Parent ................................ SUCCESS [  0.800 s]
[INFO] kroxylicious-krpc-plugin ........................... SUCCESS [  1.610 s]
[INFO] Kroxylicious Proxy ................................. FAILURE [  0.022 s]
[INFO] integrationtests ................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.565 s
[INFO] Finished at: 2023-01-18T16:08:13+13:00
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin io.kroxylicious:kroxylicious-krpc-plugin:1.0-SNAPSHOT or one of its dependencies could not be resolved: Could not find artifact io.kroxylicious:kroxylicious-krpc-plugin:jar:1.0-SNAPSHOT -> [Help 1]

fixed by #117


Squeel-like DSL for general SQL?

(Sorry, Ernie - since there's no mailing list, I am hijacking your issues tracker...)
Squeel has made me want to never write monolithic SQL queries again. I want small, composable methods that still end up inlined in a single, performant query.  Squeel lets me do that for ActiveRecord models, but I have some user-defined functions and views that don't act upon models, and so Arel can't know about them.
People in the SQL world are just used to writing big convoluted nested queries, and that's life. They don't ask "How can I make this modular?" because that's just not how you do it.  But people who use Squeel know what I'm talking about.. is there something like Squeel (or some moral equivalent to CoffeeScript) for SQL? I'm on Postgres, if it matters.

Sigh.. guess not.


Should survol also act as a library to add previews to websites

Currently the extension code runs on both the extension and the github pages integration (at survol.me). To make sure the user experience is the same when trying the extension on github pages and using it, I'm importing scripts directly from the github repository. The only thing that I've added is a custom function which replaces window.survolBackgroundRequest
The script implenting this custom function is available at docs/scripts/survolBackgroundRequest.js and it runs the following code :
/**
 * Override js/core.js window.survolBackgroundRequest
 */
var REQUEST_CACHE = {};

// Clear cache every 10 mins
setInterval(() => {
    REQUEST_CACHE = {};
}, 1000 * 60 * 10);

document.addEventListener('DOMContentLoaded', () => {
    setTimeout(() => {
        window.survolBackgroundRequest = (url, noJSON) => {

            return new Promise((resolve, reject) => {
                let req = { data: { url, noJSON } };
                let res = { status: 'error', data: null };

                // if the request is cached
                if (REQUEST_CACHE[req.data.url]) {
                    res = REQUEST_CACHE[req.data.url];
                    res.cached = true;
                    resolve(res);
                }

                // If the request isn't cached
                else {
                    fetch(`https://cors-anywhere.herokuapp.com/${req.data.url}`)
                        .then((data) => { return req.data.noJSON ? data.text() : data.json(); })
                        .then((data) => {
                            res.data = data;
                            res.status = 'OK';
                            res.cached = false;
                            REQUEST_CACHE[req.data.url] = res;
                            resolve(res);
                        })
                        .catch((error) => {
                            res.data = error;
                            res.status = 'error';

                            console.error('SURVOL - Fetching error', error);
                            reject(res);
                        });
                }
            });
        };
    }, 50);
});

The extension is also able to detect if it's running as an extension or as a script in a web page in js/core.js :
// If the script is part of the extension
    if (window.chrome && chrome.runtime && chrome.runtime.id) {
        chrome.storage.local.get(['disabledDomains', 'previewMetadata'], function (res) {
            let disabledDomains = res.disabledDomains ? res.disabledDomains : ['survol.me'];

            if (res.previewMetadata === false) {
                previewMetadata = false;
            }

            if (!disabledDomains.includes(getDomain(CURRENT_TAB).toLowerCase())) {
                insertSurvolDiv()
                    .then(gatherHrefs)
                    .then(equipNodes);
            }
        });
    }

    // Else the script is running in demo-mode on survol.me
    else {
        insertSurvolDiv()
            .then(gatherHrefs)
            .then(equipNodes);
    }

Should we work more on this and allow anyone to embed survol in order to add previews to their webpage easily ?
/discuss

I think this is a good idea. The proof-of-concept already exists so it makes sense.


Responsive images:  tag must be after all  tags

Regarding responsive images, the  tag must be after all <source> tags
Current version outputs the following:
<picture>

        <source media="(min-width: 0px)" srcset="small.png">
	<source media="(min-width: 480px)" srcset="medium.png">
</picture>

which should be:
<picture>
        <source media="(min-width: 0px)" srcset="small.png">
	<source media="(min-width: 480px)" srcset="medium.png">

</picture>

otherwise the default.png will always be loaded.
OS: Ubuntu 17.10
Jekyll: 3.6.2
Jekyll-Assets: current master - https://github.com/jekyll/jekyll-assets/commit/4db146d24ddcec144738e127671314c84855708e
Edit: change the order here?
https://github.com/jekyll/jekyll-assets/blob/61fa0aebd97c1f6bdcfe24ab7fa07ea28c6df667/lib/jekyll/assets/plugins/html/pic.rb#L34-L38

There is no need to link me to my own source, I wrote it, I know how and where things happen.

Please see: https://github.com/jekyll/jekyll-assets/issues/421#issuecomment-342266836 it is confirmed that this is not the case, and it is backed up by one of the people who helped write the HTML spec.
At this time I feel this is not a bug, but rather an arbitrary preference of which I do not plan to change.

Not doubting the spec, but the implementation on Chromium 62 and Firefox 58 requires the img tag to be at the end:
<picture>
	<source media="(min-width: 480px)" srcset="https://dummyimage.com/1200x1200/000/fff&text=480px">
        <source media="(min-width: 0px)" srcset="https://dummyimage.com/480x480/000/fff&text=0px">

</picture>

<picture>

	<source media="(min-width: 480px)" srcset="https://dummyimage.com/1200x1200/000/fff&text=480px">
        <source media="(min-width: 0px)" srcset="https://dummyimage.com/480x480/000/fff&text=0px">
</picture>

Opening that .html at, for example, 1200px width will display "480px" on the first image and "default" on the second one.

Could you please verify this behaviour?

That does seem weird, can you explain this @nhoizey?

Since this is indeed the case from my own simple testing I'm gonna have to fix this, lest we face a thousand bugs over it, but it does seem odd.

I glanced over the spec and it seems that all examples use the image tag at the bottom, which may explain why these browsers implemented it that way. Couldn't find a requirement for it to be so, though.

@envygeeks as @migueldemoura said, I think there is no requirement in the spec to put the  at the end of <picture>, but all examples do that, so maybe browsers vendors considered this as a requirement.
I seems indeed safer to follow this.
Maybe @grigs or @yoavweiss can help understand this.

Indeed, I thought there was no requirement on order too, I also agree that if vendors want it last then we should probably enforce that so that users have no problems, but it would be interesting to find out why.  I'll try to get hold of a friend on Chrome team and see if there is any particular reason too, but lets just go with the assumption that I will be making sure  comes last if that's what vendors want, regardless.
Normally I would write this off if it's just one vendor being an odd ball, but that's clearly not the case.

The  tag is part of the source selection algorithm, which walks through the potential image sources and picks to first one that fits. since  is always a good fit, putting it first means that the <source> tags after it will get ignored.

That does make sense, thanks @yoavweiss.  The same reason we have to order our examples a specific way so that users can copy and paste because of the matching and indeed,  would be the always matched.

Thanks @yoavweiss for the clarification.
I should read the spec once again. While always putting the  at the end, I always assumed it was not required.


elasticsearch-6.x-plugin will enhance elasticsearch-5.x, resulting java.lang.ClassCastException

Why do you submit this issue?
[x] Feature or performance improvement

Requirement or improvement

Please describe your requirements or improvement suggestions.

Skywalking: 8.2.x
OS: linux/mac
JRE: 8.x
plugin: elasticsearch-6.x-plugin
some client use elasticsearch-rest-high-level-client is 5.6.4, will cause an exception.
error log:
java.lang.ClassCastException: org.elasticsearch.client.RestClient cannot be cast to org.elasticsearch.client.RestClientBuilder
at org.apache.skywalking.apm.plugin.elasticsearch.v6.interceptor.RestHighLevelClientConInterceptor.onConstruct(RestHighLevelClientConInterceptor.java:32)

i use uranus and add witnessClass org.elasticsearch.client.common.XContentSource in org.apache.skywalking.apm.plugin.elasticsearch.v6.define.RestHighLevelClientInstrumentation

I can see the 5.4.2 is running in the tests, https://github.com/apache/skywalking/blob/master/test/plugin/scenarios/elasticsearch-5.x-scenario/support-version.list. Nothing wrong happens. I think you should upgrade SkyWalking. This is a resolved issue.

i use uranus:
./new-class -c org.elasticsearch.client:elasticsearch-rest-high-level-client:5.4.2  -n org.elasticsearch.client:elasticsearch-rest-high-level-client:5.6.4 -s

output:
org.elasticsearch.client.Request

org.elasticsearch.client.Request$Params

org.elasticsearch.client.RestHighLevelClient

org.elasticsearch.client.RestHighLevelClient$1

size:4

version 5.6.4 have new class: org.elasticsearch.client.RestHighLevelClient, but elasticsearch-6.x-plugin enhance this class.

OK, we don't have a chance to verify this kind of tiny version change, if you have some witness class change proposal, send a pull request and add your 5.6.4 in the test to verify your pull request.


Remove v1alpha1 protos and related code.

If needed, this code can be added to registry-experimental.
Closes #541.

@seaneganx Good question - no, but that's built to a tag, so the effects of this wouldn't show up until the tag is updated. I'll take a look at the code before merging regardless.


Feature Request: Standard NFS server with raid 0 option

I found that Standard NFS was set to Raid 5 by default, with 4 disk attached to VM.
For Dev/Test environment, we want to use NFS server with only 1 disk, could you please add variable to modify disk number attached to NFS server?

Thank you for opening this feature enhancement request. This request will be reviewed and internal ticket will be created if request is approved. I'll post updates to this issue.

This request was reviewed internally. For any dev/test changes we recommend user to fork viya4-iac-azure repo and make the required changes for their testing.
In your case you would need to fork the repo and update the data_disk_count to 1 in vms.tf file. https://github.com/sassoftware/viya4-iac-azure/blob/main/vms.tf#L110
Closing this issue.


[Sparkle] Allow any reactnode description for page header

Description
Before, only string was allowed
Pre-requisite for https://github.com/dust-tt/tasks/issues/1736
Risk
na
Deploy
publish sparkle

PMRR


Owned TableType (simple entries)

Ability to convert from table type chunk to table type buffer (owned). Missing complex entries.

Coverage increased (+0.7%) to 72.59% when pulling e8aa3fd3d2daa1fdb3d27707783020d0935daf67 on ownedTableType into 92807f5b15eb45cb81511037d8434157f651b86c on develop.


Upgrade Golang version to 1.17 used in release CI

Description
I upgraded go version used in build & test CI to 1.17 in PR https://github.com/st-tech/gatling-operator/pull/53, however the go version in release CI has NOT been upgrade, which was supposed to be upgraded.
So upgrade Golang version to 1.17 for release CI in this PR
Test
It's already tested that the operator can be built and run with golang 1.17 as expected in the PR https://github.com/st-tech/gatling-operator/pull/53

@akitok thanks for the review!!


TRUNCATE TABLE not working on DB engines

TRUNCATE TABLE works on 'in memory' DB. But using Local Storage DB returns error:

A.engines[r.engineid].truncateTable is not a function

Seems Truncating is done in the line where the yy.TruncateTable.prototype.execute method is defined.
For in 'in memory' DBs the line db.tables[tableid].data = []; is called, thus the Table is empty.
For other DB engines the method alasql.engines[db.engineid].truncateTable(this.table.databaseid || databaseid,tableid, this.ifexists, cb); is called.
It seems this method is not defined for any DB engine.
file: alasql.js
version: 0.3.2
on FF49.0.1, W10

A work around is:
DELETE FROM [table name]
but this will not reset AUTOINCREMENT/IDENTITY values on this table
note: AUTOINCREMENT/IDENTITY is not yet working on DB engines as per #462

I wrote and tested a truncateTable method for Local Storage:
This also also resets AUTOINCREMENT/IDENTITY values on this table
/**
   Empty table and reset identities
   @param databaseid {string} AlaSQL database id (not external localStorage)
   @param tableid {string} Table name
   @param ? i dont know what the 3rd argument is
   @param cb {function} Callback
   @return 1 on success
*/
LS.truncateTable = function(databaseid,tableid, unknown, cb){
  var res = 1
  var db = alasql.databases[databaseid];
  var tbl = LS.get(db.lsdbid+'.'+tableid);
  //clear data from table
  tbl.data = [];
  //reset all identities to 1
  for (var field in tbl.identities) {
    tbl.identities[field].value = 1;
  }

  db.tables[tableid] = tbl;

  if(cb)
     res = cb(res);

  return res;
}

This is great! lets get it into the code.
Would yo like to make a PR and get credits for the contribution, or would you prefer that I just extend the src with your input here?

@mathiasrw
Hi, just did the PR (had not done that before)