lockmount_description: 0.0.2-2 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository lockmount_description to 0.0.2-2:

upstream repository: https://github.com/clearpathrobotics/lockmount_description.git
release repository: https://github.com/clearpath-gbp/lockmount_description-release.git
distro file: melodic/distribution.yaml
bloom version: 0.10.7
previous version for package: null

lockmount_description
* Remove a copy & paste error in the cmake file that's breaking the install
* Contributors: Chris Iverach-Brereton

The specific model of mount this replicates is https://www.fath24.us.com/portfolio/products/pivot-joint-25-1-with-locking-lever
We could rename it to fath_pivot_mount_description?  Or if we want to avoid including the brand name would locking_pivot_mount_description be sufficiently specific while not being needlessly verbose?

Another good question for @clalancette though. Thoughts?

I'd go with fath_lockmount_description as a balance between length and the naming rules in REP-144.  But fath_pivot_mount_description and locking_pivot_mount_description would also be fine with me.

I am about to change this to locking_pivot_mount.  It was merged for Noetic: https://github.com/ros/rosdistro/pull/32138 Shall I change both?

Great. A rerelease with the consistent name for noetic would make sense too.

I'll close this as you'll do a new bloom release. Please refer back to this in a comment on the new PR.


Can't get design document with basic auth.

I created database, set the security and created design document.
$ curl -X PUT http://adminuser:password@<IP_ADDRESS>:5984/thedocdb => {"ok":true}
$ curl -X PUT http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_security -d '{"admins":{"names":["admin"],"roles":[]},"members":{"names":["admin"],"roles":[]}}' => {"ok":true}
$ curl -X PUT http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_design/ddd -d '{"_id":"_design/ddd","language":"javascript","views":{"all":{"map":"function(doc) {emit(doc.id, doc)}"}}}' => {"ok":true,"id":"_design/ddd","rev":"1-xxxxxxxxxxxxxxxxxxxxx"}
$ curl --head http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_design/ddd => 200
$ curl -X GET http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_design/ddd => {"_id":"_design/ddd","_rev":"1-zzzzzzzzzzzzzzzzzzzzz","language":"javascript","views":{"all":{"map":"function(doc) {emit(doc.id, doc)}"}}}

And ran this code.
package main

import (
	"encoding/json"
	"io/ioutil"
	"log"
	"net/http"
	"net/url"
	"strconv"
	"strings"
	"time"

	"github.com/rhinoman/couchdb-go" // c8de65280d35a8c6baace118df307f7d6f61d0b3
)

const (
	CouchDBHost     = "<IP_ADDRESS>:5984"
	CouchDBUser     = "adminuser"
	CouchDBPassword = "password"
	DatabaseName    = "thedocdb"
	DesignDocID     = "_design/ddd"
)

func success() {
	u := url.URL{
		Scheme: "http",
		Host:   CouchDBHost,
		Path:   "/" + DatabaseName + "/" + DesignDocID,
	}
	req, err := http.NewRequest("GET", u.String(), nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Add("Accept", "application/json")
	req.SetBasicAuth(CouchDBUser, CouchDBPassword)
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("URL       : ", resp.Request.URL)
	log.Println("StatusCode: ", resp.StatusCode)
	log.Println("Revision:   ", resp.Header.Get("Etag"))
	log.Println("Body    :   ", string(body))
}

func fail() {
	h := strings.Split(CouchDBHost, ":")
	port, err := strconv.ParseInt(h[1], 10, 64)
	if err != nil {
		log.Fatal(err)
	}
	couchConn, err := couchdb.NewConnection(h[0], int(port), time.Duration(time.Duration(500*time.Millisecond)))
	if err != nil {
		log.Fatal(err)
	}
	auth := couchdb.BasicAuth{Username: CouchDBUser, Password: CouchDBPassword}
	couch := couchConn.SelectDB(DatabaseName, &auth)
	var doc interface{}
	rev, err := couch.Read(DesignDocID, &doc, nil)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("Revision: ", rev)
	b, err := json.Marshal(doc)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("Body:     ", string(b))
}

func main() {
	// Prepare:
	// $ curl -X PUT http://adminuser:password@<IP_ADDRESS>:5984/thedocdb => {"ok":true}
	// $ curl -X PUT http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_security -d '{"admins":{"names":["admin"],"roles":[]},"members":{"names":["admin"],"roles":[]}}' => {"ok":true}
	// $ curl -X PUT http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_design/ddd -d '{"_id":"_design/ddd","language":"javascript","views":{"all":{"map":"function(doc) {emit(doc.id, doc)}"}}}' => {"ok":true,"id":"_design/ddd","rev":"1-xxxxxxxxxxxxxxxxxxxxx"}
	// $ curl --head http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_design/ddd => 200
	// $ curl -X GET http://adminuser:password@<IP_ADDRESS>:5984/thedocdb/_design/ddd => {"_id":"_design/ddd","_rev":"1-zzzzzzzzzzzzzzzzzzzzz","language":"javascript","views":{"all":{"map":"function(doc) {emit(doc.id, doc)}"}}}

	success()
	fail()
}

Please tell me why I can't get design document with couchdb-go library?
Thanks.

I'll be able to look into this more tonight (I'm away from my dev box), but off the top of my head, this:
var doc interface{}
rev, err := couch.Read(DesignDocID, &doc, nil)

looks suspect.  I would try declaring doc as a "concrete" type (struct, or a map) rather than a raw interface{}.  Could you post the error being thrown?

Thank you for replying.
Sorry. It's bad code.
I wrote more simple code.
package main

import (
	"io/ioutil"
	"log"
	"net/http"
	"net/url"
	"strconv"
	"strings"
	"time"

	"github.com/rhinoman/couchdb-go" // c8de65280d35a8c6baace118df307f7d6f61d0b3
)

const (
	CouchDBHost     = "<IP_ADDRESS>:5984"
	CouchDBUser     = "adminuser"
	CouchDBPassword = "password"
	DatabaseName    = "thedocdb"
	DesignDocID     = "_design/ddd"
)

func success() {
	u := url.URL{
		Scheme: "http",
		Host:   CouchDBHost,
		Path:   "/" + DatabaseName + "/" + DesignDocID,
	}
	req, err := http.NewRequest("GET", u.String(), nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Add("Accept", "application/json")
	req.SetBasicAuth(CouchDBUser, CouchDBPassword)
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("URL       : ", resp.Request.URL)
	log.Println("StatusCode: ", resp.StatusCode)
	log.Println("Revision:   ", resp.Header.Get("Etag"))
	log.Println("Body    :   ", string(body))
}

func fail() {
	h := strings.Split(CouchDBHost, ":")
	port, err := strconv.ParseInt(h[1], 10, 64)
	if err != nil {
		log.Fatal(err)
	}
	couchConn, err := couchdb.NewConnection(h[0], int(port), time.Duration(time.Duration(500*time.Millisecond)))
	if err != nil {
		log.Fatal(err)
	}
	auth := couchdb.BasicAuth{Username: CouchDBUser, Password: CouchDBPassword}
	couch := couchConn.SelectDB(DatabaseName, &auth)
	rev, err := couch.Read(DesignDocID, nil, nil)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("Revision: ", rev)
}

func main() {
	success() // 200
	fail() // 401 error
}

And results
$ go run main.go
2016/02/06 03:24:13 URL       :  http://<IP_ADDRESS>:5984/thedocdb/_design/ddd
2016/02/06 03:24:13 StatusCode:  200
2016/02/06 03:24:13 Revision:    "1-5b13a175104a3bce5f720784277e2bed"
2016/02/06 03:24:13 Body    :    {"_id":"_design/ddd","_rev":"1-5b13a175104a3bce5f720784277e2bed","language":"javascript","views":{"all":{"map":"function(doc) {emit(doc.id, doc)}"}}}

2016/02/06 03:24:13 [Error]:401: GET http://<IP_ADDRESS>:5984/thedocdb/_design/ddd -
exit status 1

I want 2 methods to behave in a similar way.
But fail function was raised 401 error.
I will also investigate this problem :)
Thanks.

Hmmm.... does this fail for all documents or just design docs?

Very strange.  It works for me until I set 'require_valid_user' to true in the couchdb config.  Then it starts failing.  Time to get out wireshark and compare the requests :)

Just pushed a fix.  Let me know if it works for you :)

Yes, it works for me :)
I appreciate very much!!!!!!!


Backup/DR discovery using Velero

https://crossplane.io/docs/v1.0/introduction/managed-resources.html#backup-and-restore

[ ] Investigate backup/recovery strategies for Crossplane in Hellman

Aha! Link: https://dfds.aha.io/features/CLOUD-73

Closed because it has been moved to the SRE track

https://github.com/dfds/cloudplatform/issues/197


Initializer exception at CheckIndexerStatus

When running the initializer I got this error:
Error retrieving indexer status: Object reference not set to an instance of an object
I tried to debug where does it happen and it is on this line.
https://github.com/microsoft/AzureSearch_JFK_Files/blob/9ba42347a6285ce0b73b5bcb935e8c84852f9cfc/JfkWebApiSkills/JfkInitializer/Program.cs#L338
Trying to check info.Status it is running. But info.LastResult is null.

Usually this is because the indexer hasn't started running yet. There is usually a little bit of a delay for the indexer to get going, and usually by the time you have built and deployed the website that delay is over so this code can successfully run, but it looks like in your case it wasn't, so sorry about that. It could also depend on if the region you selected for your search service to run in is currently busy with other jobs, in which case it may take a few minutes for there to be space for your newly created job.

I tried to add an if info.LastResult == null check inside the while loop to continue checking with a cap of 30x. But still after thread sleep 3000 x30 still the info.LastResult is still null.
I haven't changed any region on the deployment settings. Search service is at South Central US. Is this the right region?


bgp,docs: clarify MetalLB deprecation vs BGP-CP beta

As a suggested follow up, further clarify that the MetalLB based BGP
control plane is being deprecated.
Signed-off-by: Louis DeLosSantos<EMAIL_ADDRESS>Further clarify the deprecation of MetalLB BGP ControlPlane in user facing docs.

Follow up here in reference to: https://github.com/cilium/cilium/pull/26951#discussion_r1270540044


question: way to adjust tolerance a bit on the ridge and pcb holes

The pcb stand holes and the lid/base ridge are both super tight for me. Will likely get better when I go back to my .4 nozzle, but I couldn't really figure out a way to add a little bit of extra play on those dimensions.

Which dimension are you referring to.
You can configure everything to your liking …

the gap between the lid and the base ridge.  Lid doesn't fit easily on base (again, I'm using a .6 nozzle so it's a little rougher than if I was using a .4)
the inner diameter of the hole on the PCB supports (would like it to be a bit bigger than pinDiameter, while leaving pinDiameter the same).  Can't really make the pin smaller, would like to make the fit a bit easier.

See this line
you can add or subtract a small fraction (say 0.05 or so) to either the base or the lid.


Set instance_type in AWS Launch Template instead of Managed Node Group

Is your request related to a problem? Please describe.
You cannot modify instance types on managed node groups if you are not using a provided AWS Launch Template. It appears we just need to move the instance_type spec from the MNG to the launch template.
Describe the solution you'd like.
Set the instance_types through Launch template instead of on the managed_node_group config.
Describe alternatives you've considered.
The alternative is to require users to create new MNGs and manually migrate their workloads when they must change them.
Additional context
It appears the main drawback of this is that you cannot specify multiple instance types when setting instance_type through the launch template. That may be undesirable for some users, though I don't think it's generally recommended to have multiple instance sizes in MNGs (or self-managed-node-groups) since then the Autoscaler will not know what size instance it is going to launch.
https://github.com/aws/containers-roadmap/issues/746
https://github.com/aws/containers-roadmap/issues/585

Before I look at implementing this, does anyone have major objections to changing the instance specification behavior?
@bryantbiggs Was there a reason you left the instance_type variable commented out in this module?
https://github.com/terraform-aws-modules/terraform-aws-eks/commit/ee9f0c646a45ca9baa6174a036d1e09bcccb87b1#diff-4402c3de90b812296b76c12945524bfde8723038f31d2db203eb2b9294f72df8R45

This is not a change that we'll support here


Remove unnecessary extension permissions

ユーザーのアクションによって現在のタブに対してjsを実行するだけならば activeTab 権限のみで十分なので、不要な権限を削除しました。

tabs
http://*/*
https://*/*

The activeTab permission - Google Chrome

The activeTab permission
The activeTab permission gives an extension temporary access to the currently active tab when the user invokes the extension - for example by clicking its browser action. Access to the tab lasts until the tab is navigated or closed.
This serves as an alternative for many uses of <all_urls>

chrome.tabs - Google Chrome

The majority of the chrome.tabs API can be used without declaring any permission. However, the "tabs" permission is required in order to populate the url, title, and favIconUrl properties of Tab.

ありがとうございます！


Uplc data support

The UPLC documentation and its implementation explicitely do not support the parsing of PlutusData constants in UPLC notation.
Being able to pass PlutusData into uplc is extremely handy though and a necessary feature for most useful contracts. I therefore suggest to implement a notation standard for PlutusData constants in uplc:
(con data #0000)

where #0000 is the CBOR hex representation of a valid PlutusDatum.
This has the benefit of not requiring to introduce parsing/printing for the vast (and still unreadable) constructors etc of PlutusDatums yet granting full flexibility when using uplc notation as a compilation target (i.e. for https://github.com/ImperatorLang/imperator)

This is part of resolving #34

One issue to consider: This makes uplc programs inherently unreadable (I am not expecting any human being to parse a CBOR hex by sight)
The intention here is that UPLC is not a language that should be inspected by humans much anyways, it should be more of a compilation target for highler level languages. Therefore there should be no need of having human readable source code.
A (valid) alternative would be to implement a parser for PlutusData in similar fashion as i.e. outlined by Pluto

This should be good to go. I will assume it as a backend when transpiling imperator/PySCC code

@nielstron sounds good, I'll wait for CI to pass and then get things merged


Bug: Caught time column displays as NaN

I noticed in table view (which I believe is deprecated), that the caught time column displays as NaN (see screenshot). It also extends in the adjacent column, but I believe resolving the original behavior will also resolve this behavior.

Run npm update to get the latest version of PogoBuf. I had to make some changes to be compatible with 1.5.1 that may not be compatible with the older versions.

That resolved the behavior. Thanks!


Handle Github rate limit reached

Handles github rate-limited responses in curl-get-json. We now print a message and exit. Includes some docs calling out the env vars for raising the limit.
We may prefer to nil-pun rather than exit. For now I decided to follow the way we exit in the license code, which similarly binds *err* to *out*, prints a message, and exits with an error code.

[X] This PR corresponds to: https://github.com/babashka/neil/issues/136

[X] I have updated the CHANGELOG.md file with a description of the addressed issue.

Thanks!


x/pkgsite: package removal request for github.com/dinoschristou/goff

What is the path of the package that you would like to have removed?
github.com/dinoschristou/goff)
Are you the owner of this package?
Yes
What is the reason that you could not retract this package instead?
I published this be accident, the code should be sent as a PR to upstream: https://github.com/Forestmb/goff. Then a new version created from there.

Please retract this module if it was published in error. Steps are available at https://go.dev/ref/mod#go-mod-file-retract.

I would like to remove the package itself, not a specific version. Is that not possible?
i.e. remove the entry from: https://pkg.go.dev/github.com/dinoschristou/goff


add twitter handles in search results

closes #6

This change is

@bevacqua could you please review this? Thanks!


NPM package not found

@EKashpersky @rroukens ,
Did you already publish the NPM package? Impossible to find it when doing:
npm install freshchat-capacitor

Thank you,

For anyone else stumbled upon this, use npm install https://github.com/viveapp/capacitor-plugin-freshchat.git


Envoy can't start the egress listener(configured by Sidecar) on VM workload

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
I have a VM workload connected to a single primary istio cluster. For the VM workload, I am using Sidecar to configure ingress and egress listeners

sidecar:

apiVersion: networking.istio.io/v1alpha3
kind: Sidecar
metadata:
  name: "mesh-east-vm"
  namespace: "mesh-east-vm-istio"
spec:
  workloadSelector:
    labels:
      app: "mesh-east-vm"
  ingress:
    - port:
        number: 21100
        protocol: GRPC
        name: grpc-ingress
      captureMode: NONE
      defaultEndpoint: <IP_ADDRESS>:8087
    - port:
        number: 21101
        protocol: HTTP
        name: http-ingress
      captureMode: NONE
      defaultEndpoint: <IP_ADDRESS>:8088
  egress:
    - port:
        number: 15050
        protocol: GRPC
        name: grpc-egress
      bind: <IP_ADDRESS>
      hosts:
        - istio-workload/client-000.istio-workload.svc.cluster.local
  outboundTrafficPolicy:
    mode: REGISTRY_ONLY

After applying the the Sidecar, I can see the ingress listeners are configured and envoy is correctly listening on both <IP_ADDRESS>:8087 and <IP_ADDRESS>:8088. But for the egress listener, envoy seems to be ignoring it.
However, after checking the the envoy's configuration, I found envoy did received the configurations of the egress listener and the related upstream cluster from xDS.
# curl <IP_ADDRESS>:15000/clusters 2>/dev/null | grep 15050
outbound|15050||server-000.istio-workload.svc.cluster.local::observability_name::outbound|15050||server-000.istio-workload.svc.cluster.local
outbound|15050||server-000.istio-workload.svc.cluster.local::default_priority::max_connections::4294967295
outbound|15050||server-000.istio-workload.svc.cluster.local::default_priority::max_pending_requests::4294967295
outbound|15050||server-000.istio-workload.svc.cluster.local::default_priority::max_requests::4294967295
outbound|15050||server-000.istio-workload.svc.cluster.local::default_priority::max_retries::4294967295
outbound|15050||server-000.istio-workload.svc.cluster.local::high_priority::max_connections::1024
outbound|15050||server-000.istio-workload.svc.cluster.local::high_priority::max_pending_requests::1024
outbound|15050||server-000.istio-workload.svc.cluster.local::high_priority::max_requests::1024
outbound|15050||server-000.istio-workload.svc.cluster.local::high_priority::max_retries::3
outbound|15050||server-000.istio-workload.svc.cluster.local::added_via_api::true
outbound|15050||server-000.istio-workload.svc.cluster.local::eds_service_name::outbound|15050||server-000.istio-workload.svc.cluster.local
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::cx_active::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::cx_connect_fail::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::cx_total::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::rq_active::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::rq_error::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::rq_success::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::rq_timeout::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::rq_total::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::hostname::
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::health_flags::healthy
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::weight::1
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::region::ap-southeast-1
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::zone::ap-southeast-1c
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::sub_zone::
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::canary::false
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::priority::0
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::success_rate::-1
outbound|15050||server-000.istio-workload.svc.cluster.local::<IP_ADDRESS>:21100::local_origin_success_rate::-1

Also from the envoy config_dump, we can also find the dynamic_listener config, routeConfig and cluster config related to the egress configuration in Sidecar.
It's just, envoy doesn't actually start listener on <IP_ADDRESS>:15050. And I can't find any informative debug logs generated by Istio and Envoy.
Version
$ istioctl version
client version: 1.21.0
control plane version: 1.20.3
data plane version: 1.20.3 (10 proxies), 1.21.2 (1 proxies)

$ kubectl version
Client Version: v1.28.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.23.17-eks-7a52527

Additional Information
No response

Showing the full config dump would be handy here

Hi @howardjohn . Thanks for the reply. I get the the full config_dump, plus some findings. Now I changed the Sidecar obj a bit, by having 2 different egress listeners:
apiVersion: networking.istio.io/v1alpha3
kind: Sidecar
metadata:
  name: "mesh-east-vm"
  namespace: "mesh-east-vm-istio"
spec:
  workloadSelector:
    labels:
      app: "mesh-east-vm"
  ingress:
    - port:
        number: 21100
        protocol: GRPC
        name: grpc-ingress
      captureMode: NONE
      defaultEndpoint: <IP_ADDRESS>:8087
    - port:
        number: 21101
        protocol: HTTP
        name: http-ingress
      captureMode: NONE
      defaultEndpoint: <IP_ADDRESS>:8088
  egress:
    - port:
        number: 15050
        protocol: GRPC
        name: grpc-egress
      bind: <IP_ADDRESS>
      captureMode: NONE
      hosts:
        - "istio-workload-payment/server-000.istio-workload-payment.svc.cluster.local"
        - "istio-workload-payment/server-001.istio-workload-payment.svc.cluster.local"
    - port:
        number: 15051
        protocol: HTTP
        name: http-egress
      bind: <IP_ADDRESS>
      hosts:
        - "istio-workload-payment/client-000.istio-workload-payment.svc.cluster.local"
  outboundTrafficPolicy:
    mode: REGISTRY_ONLY

The major difference between them is the egress listener listening on port 15050 has captureMode: NONE configured while the other listener (on 15051) doesn't have this configuration.
With this Sidecar applied, the full config dump is like this(the file below):
config_dump_istio_2024-05-10T03_23_56+0000.json
After comparing the dynamic listeners of port 15050 and port 15051, I found the dynamic listener config of 15051 has this line added


Notable release notes not generated for Mockito

Notable release notes were not generated in Mockito release build: https://travis-ci.org/mockito/mockito/jobs/221223473#L793

I suspect this can be closed.


Config url parameter encoding issue

The url components in Configuration is not properly encoded. That causing "#AppName an error integrating Ramp" page to be appear when I try to interact with staging widgets. I can do encoding for every parameter of Configuration except variant

Sorry. I think the problem is in the API key which I see in Android logs


Replace GetExtBuffer() for MfxVideoParam - mfx_lib/shared/

Intention of GetExtBufferRef is to get ext buffers
from MfxVideoParam structure which always has full set
of extension buffers ("MfxHwH264Encode::GetExtBuffer" can't return zero).
So, for MfxVideoParam it's better to use function GetExtBufferRef()
instead GetExtBuffer(), we can wrap issues from static code analyze
to one place (body of function GetExtBufferRef()) instead several
places (every calling GetExtBuffer())
Signed-off-by: Denis Volkov<EMAIL_ADDRESS>

@onabiull @dmitryermilov @stasefremov
I tested this change on Android for h264 hw encoder - by CTS EncoderTest and screenrecord application (coded video scream from the screen of Android device using h264e) - all worked OK, tests passed.


May I ask how to use this plugin to recognize human and hand postures

Feature Description
May I ask how to use this plugin to recognize human and hand postures
Current Behaviour/State
No response
Additional Context
No response

我想判定一些动作和手势，但是目前我只能取到骨骼点

I want to determine some movements and gestures, but currently I can only retrieve bone points


Save Prompts Upon Generation

Summary
Prompts should be saved upon generation to be used from the prompt library in the future
Sub issue of: #4475
Intended Outcome

Prompt box should have a checkbox to indicate if prompt will be added to the prompt library
Positive and negative prompts should be saved to the database upon generation if user chooses
Positive prompts should have a "positive prompt" tag
Negative prompts should have a "negative prompt" tag

Would be great to have a shortcuts for saved prompts. You type in a shortcut name in {...} and it will be replaced with pre-saved prompt during generation:
"{watercolor}, cat"
...to be replaced with:
"muted watercolor painting style, art station, cat"


Add more information to speaker notes

Filling in some more ideas here for speaker notes (based on reading the sections again)
I guessed at what would be valuable for section 05 since it hasn't been updated yet.

I'm going to merge this. Feedback welcome and I will follow up


Needs an easier way to rename a rule

The rule-generator should have another function to help rename a rule. It should update the name of all the files/entries related to the selected rule, such as the rule itself, doc, test and the rule index page.
Remember to rename the rule in .sonarrc  as well.

Closing as this issue is no longer relevant.


[js] Parameters of ArrowFunction in JavaScript, does not get syntax hightlighted

var a = function (value) { }  this code highlights the parameter value
var a = (value) => { } but this one does not.
this also happens in TypeScript.  is this intended?

This is https://github.com/Microsoft/TypeScript-TmLanguage/issues/22


invalid option -H when running on zpool mode on FreeNAS-11.3-U5

script enters a loop on zpool mode on freenas with the following error:
invalid option 'H'
usage:
	iostat [-v] [-T d|u] [pool] ... [interval [count]]

it must be due to this line

Oh, so it seems like FreeNAS 11.3 now sadly is not compatible anymore. Is upgrading to a recent / supported version of TrueNAS possible for you?


Release 0.1.3

Finally.
Proposed Changes

Sync the dev and main branches. We already have reviewed all the changes.

Please do not use the button on GitHub to merge this PR. I will manually git merge --ff-only the dev branch on top of the main after approval.

Before merging please double-check the package.json and the lock file! Thanks 🙏🏼


Print

Hello, how to solve the problem that there will be an extra blank page when printing? In addition, there will be an extra header and footer. How can it be removed

vue-pdf print function is experimental, I do not actively working on it.

I had the same problem


Drawing PolyLines

Cannot find PolyLines function

Hi @nyeinchanoo
Please, see #94 and the self-service-releases and let me know if that works for you.


Can it exclude a particular directory?

Hi.
I mount an HDD at root directory, let's take it as /root/hdd. I want to shrink whole of /root andf /boot except /root/hdd into /root/hdd. Is that possible?
thank you.

It is not, PiShrink works on an entire disk image on is not directory based. It only shrinks the last partition of the disk image currently


Liquid sharding

source - https://cloud.google.com/blog/products/gcp/no-shard-left-behind-dynamic-work-rebalancing-in-google-cloud-dataflow
@rom1504 if you have any additional thoughts, maybe put them here, could be useful in the future

sure the main idea of this is liquid sharding can be a way to solve the straggler problem
eg if you see that a small amount of shards is taking most of the time, liquid sharding is a way to split these slow shards and assign them to idle workers
I think no need to try this unless you find you have this problem
it's a cool technique though


dracula_transparent_bg doesn't seem to work anymore

I've been using this theme for a while with dracula_transparent_bg enabled, and never ran into any problems. However, recently I updated all of my plugins (also updated to nvim 0.6.0, so that could be the issue here?) and that option doesn't seem to do anything any longer.

@macintacos -  I have just checked background color not working in nvim 0.6.0 (working in 0.5.1) with my other color scheme also and currently I have no idea why its happening. I will look into it.

@macintacos - After some debugging I found out that there is a hi Normal guibg=NONE in my init.lua which unfortunately was not doing anything in prior neovim versions. After removing that it working as expected. In your case it maybe same situation I guess.

Sorry for not seeing your latest reply. Can we reopen this, because my Normal looks just fine (unless of course there's some other way to "check" on your background):

I'm having to manually override the Normal colors in order to get the colors I want, but that doesn't get everything (for example, I can't seem to figure out what group the "messages"/"command" area is called, so I can't update that color to look the way I want). If you know what the highlight group is called to modify that, that would be a perfectly fine workaround for this problem.

Sigh.... I didn't realize that I had to set the value before calling colorscheme dracula, although I guess that now seems obvious in hindsight. Can this be called out in the README please?


Add Go linting checks

Pull requests should be prevented if there are any linting issues

GolangCI looked promising, but it’s now ceased operations
Other options:

ReviewDog
CodeClimate


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210803033355205 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210803033355205 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 41.539%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
26115

Relevant Lines:
56987

💛  - Coveralls


dev states proposal

/area documentation
this documents the refactoring initiated with #6762 and #6771

/override Kubernetes-Integration-Tests/Kubernetes-Integration-Tests
/override OpenShift-Integration-tests/OpenShift-Integration-tests
Not related


feat: Dart 3 migration

Why?

I have to migrate the library to Dart 3
Dependencies and examples need to be updated

What?

Increased the SDK constraints to ^3.0.0
Updated dependencies and examples

Types of Changes

Documentation change (change to update documentation)
General improvements (quality updates to improve the stability of the project)

Checklist

[x] I have provided a description of the proposed changes.
[x] I added unit tests for all relevant code.
[x] In example/flutter_example, if needed, I have also added widget and golden tests.
[x] I added documentation for all relevant code.

Codecov Report

Merging #46 (4cacb5f) into master (feda209) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #46   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           67        65    -2
  Lines         2926      2862   -64
=========================================
- Hits          2926      2862   -64

Impacted Files
Coverage Δ

lib/src/algebraic/types/cubic.dart
100.00% <ø> (ø)

lib/src/algebraic/types/durand_kerner.dart
100.00% <ø> (ø)

lib/src/algebraic/types/linear.dart
100.00% <ø> (ø)

lib/src/algebraic/types/quadratic.dart
100.00% <ø> (ø)

lib/src/algebraic/types/quartic.dart
100.00% <ø> (ø)

lib/src/algebraic/utils/sylvester_matrix.dart
100.00% <ø> (ø)

lib/src/integral/types/midpoint_rule.dart
100.00% <ø> (ø)

lib/src/integral/types/trapezoidal_rule.dart
100.00% <ø> (ø)

.../src/interpolation/types/linear_interpolation.dart
100.00% <ø> (ø)

.../src/interpolation/types/newton_interpolation.dart
100.00% <ø> (ø)

... and 24 more

... and 16 files with indirect coverage changes


Added references to lsp

It's the inverse of go to definition, so if you Ctrl+Click on a definition it shows you where it is used.


adding size-changed event

For a current project, I needed gridster to be a bit more "communicative". When the size of an item changed, I needed to be able to catch that event and process new width and height accordingly. There might be other places for such events, but I am sharing this for now and wait for a feedback.

Just noticed that this is similar to #228 which also introduces an item resize event. I leave it open for now, though.


Add Kylin Configuration and update docs URL for 3.0

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?


Visual Studio GitHub Copilot Chat requires 17.8+ now (used to be 17.6+)

The requirements for the VS GitHub Chat extension have changed to be 17.8+. The prerequisites listed on this page need to be updated to match: https://learn.microsoft.com/en-us/visualstudio/ide/visual-studio-github-copilot-chat?view=vs-2022#prerequisites

@ikeras, thanks for the feedback. I've updated the doc, changes should be live later today.
Thanks!


There's no return path for this domain

I have a DNS entry like (set up 3 days ago):
psrp.sender.com. CNAME 300 rp.mail.sender.com.
When in PING psrp.sender.com it responds with the rp.mail.sender.com IP address, so CNAME is OK.
But on Postal dashboard, I have this:

You can try https://whatsmydns.net and use nslookup and dig from your servers terminal to see how your CNAME is working in the real world.

It is working, only Postal reports it as not working.

The code explicitly expects a CNAME record so make sure you have CNAME'd from psrp.sender.com to rp.mail.sender.com
https://github.com/postalhq/postal/blob/2595481b266199d8e29347dea2764f2c10202805/app/models/domain/dns_checks.rb#L135

It is, at Cloudflare.

Unfortunately, cloudflare is lying to you apparently :sweat_smile:


Starting a recording in Standalone player?

I've got this working in the Editor, either as a tool, or in the timeline, but I can't quite figure out what to do to get it working in the standalone player.
All I have is the same Timeline attached to MainCamera, with the Recorder Clip set the exact same way as when it worked in the editor.
A very short script detects a spacebar press to start playing the Timeline (again, working in the editor in play mode).
However, no file is created, and no reaction seems to occur at all in the Player. Am I missing something obvious?

Testing, and limited as it has been so far, has not included coverage for the player.
It is quite possible that at the moment recording does not work in players.
This is definitely going to be address asap.
I'll schedule some time next week to see how much needs to be adjusted.

any news on this one?

There is a scheduled QA round happeding this week. Based on the results, I'll examine the scope of getting to work on for standalone players. Video, will still be limited to Windows machines.

Is it possible to get a status update for this issue?
On my Windows machine, I can record videos from within my game in editor mode, but not from standalone build.

no work has been done yet on that aspect.
The main issue being that video recording is not supported yet, by unity,
on most platforms.
On Thu, Feb 15, 2018 at 9:03 AM, Pimp-Cpp<EMAIL_ADDRESS>wrote:

Is it possible to get a status update for this issue?
On my Windows machine, I can record videos from within my game in editor
mode, but not from standalone build.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/Unity-Technologies/GenericFrameRecorder/issues/30#issuecomment-365935833,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXLJLav0Pw7BZ0DtLX1guKBCflCwHxebks5tVDkUgaJpZM4PO7hK
.

Wanted to again check the status on this.
I am working on a project where I need to trigger a recording based on an event, similar to a instant replay as in games like Overwatch. Several such events would be triggered per user session and each event would need to produce a separate video file.
Is something like this anywhere near feasible?

as long as you are running it inside the editor that's simple to do.
Create a timeline that records what you want,
The event would then just trigger the timeline to run.
On Tue, Feb 27, 2018 at 4:36 PM, Keiran<EMAIL_ADDRESS>wrote:

Wanted to again check the status on this.
I am working on a project where I need to trigger a recording based on an
event, similar to a instant replay as in games like Overwatch. Several such
events would be triggered per user session and each event would need to
produce a separate video file.
Is something like this anywhere near feasible?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/Unity-Technologies/GenericFrameRecorder/issues/30#issuecomment-369034691,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXLJLXOznMcVmKbr9Ng5ouHu9H8Uzminks5tZHV2gaJpZM4PO7hK
.

Yeah unfortunately it has to be a standalone build. We're working on a demo for potential clients.
I will keep watching the status of this feature, thanks!

+1 - Would love if this could work in a standalone build, and not just in the Unity Editor. Opens this up to way more possibilities and in-game capture experiences.

+1, would be lovely to be able to do what keirankozlowski and caseypugh are saying.
Moreover, is there a way to enable mouse capturing in editor? ( at the moment if the mouse is visibile in the game it isn't recorded in the video)

+1, this can be useful for a lot of things!

+1, this can be useful for a lot of things!

im still eagerly waiting for this feature any update news??

I can't believe they haven't implemented this yet!  Come on Unity!

Would be good to know where the blockers are and if you could suggest alternative workaround to achieve video recording in standalone builds.

I achieved this in a project using a product from the asset store
On Sat, Feb 4, 2023, 2:29 PM vikas-shah @.***> wrote:

Would be good to know where the blockers are and if you could suggest
alternative workaround to achieve video recording in standalone builds.
—
Reply to this email directly, view it on GitHub
https://github.com/Unity-Technologies/GenericFrameRecorder/issues/30#issuecomment-1416863994,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSHN3SL3VLL6LIFMQBP6ITWV3J6NANCNFSM4DZ3XBFA
.
You are receiving this because you commented.Message ID:
@.***>


Altirra does not reopen correctly when re-launching code without closing it

In the settings menu there is an option to "automatically close any existing Altirra instances before opening a new one". Despite marking it, when I leave Altirra open and select "assemble and run"  or "assemble and debug" Altirra indeed closes but I get the following error:
Launching emulator... "C:\Emulators\Altirra\Altirra64.exe" /pal /run "out\myproject.xex"  Exit code: 1
After pressing run again it works because Altirra is already closed.
There is a /singleinstance switch in Altirra maybe that would do the job more effectively if added to the command line by default when selecting the abovementioned option.
I am using MADS if that makes any difference.

Which OS are you running on?
Under Windows when I have "Auto Close Running Altirra" option enabled it kills the running Altirra process correctly.
Can you try the following:

turn off "Auto Close Running Altirra"
Add the /singleinstance option to the "Emulator > Altirra: Args" command line arguments
That should work

Windows 10. Yes the method you proposed works and that's what I've been doing instead of using the "Auto Close Running Altirra".

There is a new option to always only run Altirra with the /singleinstance flag.


gradient

Issue:

Hi @Charu271 thank you for your contribution but I'm not a big fan of how it looks. Can you make it something like this instead?

Yeah sure. I will do the required changes

Instead of making the gradient vertical (top to bottom or opposite) can you make it horizontal (left to right)? You can check out some button examples here.
Also please place the gradient button under Button Styles type. You might not find the type so you'll need to bring your repo up to date with this one. Make sure to move the less file to src/components/styles/ and import it in src/components/_styles.less

I will add the gradient as said. Do I need to add box shadow as suggested before

@Charu271 yes add the box shadow

@shahednasser I have changed the gradient to left to right. Mam can you please explain about this checks which are done after a pull request.

It all looks good but you messed up a lot of things in the website due to wrong resolving of conflicts. As this PR is getting messy, I'm gonna have to close it and ask you to either create a new branch after updating your repository to the latest changes or re-fork this repository. Then, you can add your work again to the new branch and submit a PR again. Thank you.

Okay I will fork the repo again and add my work. Thanks for clarifying the
issue
On Mon, 12 Oct 2020, 10:05 pm Shahed Nasser<EMAIL_ADDRESS>wrote:

Closed #680 https://github.com/sButtons/sbuttons/pull/680.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sButtons/sbuttons/pull/680#event-3867446220, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AOLEY7ATGO2VY7CYXETZWFDSKMV4ZANCNFSM4SFDA2BQ
.


Set ComparisonValue when using Field Constructor

Throw an exception if more than one of Name, Property or Expression is set with a non-null value
Add documented tests for the changes
Regenerate docs
Fixes https://github.com/elastic/elasticsearch-net/issues/1964

LGTM

Did this need forward merging to master?

Yes, it already was https://github.com/elastic/elasticsearch-net/commit/b7a31e195046593e52f01ed683c93bd440a52523


[Display news: Single view] 'Edit' button is available for unregistered User.

Environment: macOS Catalina 10.15.4, Google Chrome 81.0.4044.122 (64-bit)
Reproducible: always
Build found: commit 07bfeb2
Preconditions:

User is not registered.
https://ita-social-projects.github.io/GreenCityClient/#/welcome  is opened.

Steps to reproduce:

Click 'Eco-news' from Header
Choose on any news from available on the page and open it in a 'Single view'
Verify that button 'Edit' is not present.

Actual result:
'Edit' button is available for unregistered User.

Expected result:
'Edit' button should be not available for unregistered User.
User story: #498

Verified


why need ‘sudo’ when run the example?

sudo ./foo_server test
sudo ./foo_client test

You don't need sudo if you can bind to the port you want to run the server on.


[Errors] Add type name to parameter not found exception to help diagnose issue quicker.

Hopefully self explanatory.

Merged, thanks!


Add RSpec Feature test for coronavirus find support flow

Heading says it all really.
Trello ticket

Yes - I absolutely agree that using locale file would be the way to go. I had a similar discussion with Sean in the previous RSpec PR.
The problem at the moment is that these texts are defined within the flow erb files and do not use locales, and I could not see a simple way to grab the text directly from the erb files.
Moving texts to translation locale files is a separate piece of work I believed.

Yes - I absolutely agree that using locale file would be the way to go. I had a similar discussion with Sean in the previous RSpec PR.
The problem at the moment is that these texts are defined within the flow erb files and do not use locales, and I could not see a simple way to grab the text directly from the erb files.
Moving texts to translation locale files is a separate piece of work I believed.

Yeah, I get that converting the flows to use locales is a big chunk of work.  So long as it's on the radar...!


map question

Thank you for sharing the code. I want to ask you how to set the epoch50 for your training? I verified that 12 and 24 are OK, but the results of 50 rounds of Deformable Detr are almost the same as those of 24 rounds. Is it not good to add more rounds later

Thanks for verifying the 12/24ep schedules are OK. For 50eps, we follow DeformDETR and drop learning rate at 40ep.
We also noticed that the model seems to converge at around 24ep and training for longer does not help.
The nice work in DINO seems to have similar findings. I copy their table below from here.


broken links

[Enter feedback here]
links seem broken on: Docs  /Windows  /Windows Drivers  /Driver Technologies  /HID / Interpreting HID Reports

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

ID: 55ff87a0-bf30-9d72-274f-e49378e35939
Version Independent ID: 16b2af90-22ac-3f08-8ef7-2538de9860a9
Content: Interpreting HID Reports - Windows drivers
Content Source: windows-driver-docs-pr/hid/interpreting-hid-reports.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @billlattimer
Microsoft Alias: billla

all most all the hyperlinks embedded in this article, redirects into same article

is the redirection into the same article the intention of the hyperlink?

@16-Bit-Dog , Not that intension, authors and contributors will fix these issues very soon. Thanks for reporting

thank you for the answer

@billlattimer . embedded hyperlinks are redirected to the same article , so please look into this issue.
Moreover, i could not able to find an alternate links.

@billlattimer, source is available in .chm again. For this one, might make sense to add the topics here, each as an h2. They are all quite short. If I had time, I'd volunteer, but the links transformation this week has me jammed up.

@16-Bit-Dog , @RAJU2529 thank you for calling this out. This content is being published today.


Redirect on if no index on RAW

I would be cool if when you go to /raw/:key/ it would redirect you to /raw/:key/0. Since 0 is the default why not just make /raw/:key/ go to the default one.

I don't think redirecting /raw/:key to /raw/:key/0 is something that would have a use.
Instead, I think it might be possible to display all files at once when going to /raw/:key.

That also works but you have to make it so people can differentiate between files

I don't feel like there's a significant enough reason to redirect to the first file by default. Most people won't visit the raw content by writing the URL themselves.


Fix broken background colors for task buttons

This causes colors for the new Minimized task buttons (from #631) to be inherited from the inactive task buttons (which is what they used to be set to).
This should fix issue #640.

Nice


[BUG]

Hey @st12138
Thanks for reporting this. I've attempted to make a fix. Can you check if the issue is resolved?


HTC Incredible HD (htc_mecha) Scrambled FFC Preview

Both portrait and landscape. Pinks, greens, and sections of lines versus an image.

"Fixed" by disabling the FFC as an option on this device.

Addressed in v0.7.1.


feat: fail release job if publish failed

Codecov Report

Merging #3604 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #3604   +/-   ##
=======================================
  Coverage   99.19%   99.19%
=======================================
  Files          18       18
  Lines        1124     1124
  Branches      302      302
=======================================
  Hits         1115     1115
  Misses          9        9

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 ce09961...d912594. Read the comment docs.


common: v18/reef kickoff

align with https://github.com/ceph/ceph/pull/47458 since it has been merged.
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

jenkins test centos-non_container-update


feat: Add experimental metrics logging middleware

Add abstract middleware that captures metrics for each grpc request.
Add metrics middleware implementation that writes the metrics to a CSV.
Add metrics middleware implementation that logs the metrics.

Compare to the Typescript metrics middleware added in this pr: https://github.com/momentohq/client-sdk-javascript/pull/675


module: build failure

Hi, I'm having trouble building the latest code
cd examples
go run .

# github.com/AllenDang/cimgui-go
In file included from ./cimplot_wrapper.h:3,
                 from ./cimplot_structs_accessor.h:3,
                 from ../cimplot_funcs.go:4:
./cimplot/cimplot.h:7:10: fatal error: cimgui.h: No such file or directory
    7 | #include "cimgui.h"
      |          ^~~~~~~~~~
compilation terminated.

I'd blame https://github.com/AllenDang/cimgui-go/pull/18

the reason is, that both: cimplot.* and cimgui.* should be in the same directory OR the path to cimgui.h in cimplot generator should be set manually. Otherwise, cimplot.h searches for cimgui.h in its directory (in our case /cimplot/) and there is no such a file ofc.
becore #18 the line in cimplot.h was
#include "../cimgui/cimgui.h"

and now it is
#include "cimgui.h"

thats the reason of this failure

The inclusion of cimplot by default here rubs me in the wrong way anyway, it introduces a ton of complexity and ImPlot is not a part of Dear ImGui anyway...
So it might be better to do this:

Remove ImPlot temporarily
Add it again properly and make it work with git submodules (and ideally move it to a different package, because a lot of people won't need it)

Well, I almost got it to work:
diff --git a/backend.cpp b/backend.cpp
index 556bda4..9913e09 100644
--- a/backend.cpp
+++ b/backend.cpp
@@ -4,8 +4,8 @@
 #define CIMGUI_USE_OPENGL3

 #include "backend.h"
-#include "cimgui/cimgui.h"
-#include "cimgui/cimgui_impl.h"
+#include "cimgui.h"
+#include "cimgui_impl.h"
 #include "thirdparty/glfw/include/GLFW/glfw3.h" // Will drag system OpenGL headers

 // [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to
diff --git a/cimplot_funcs.go b/cimplot_funcs.go
index 22ad6fb..1a6e66e 100644
--- a/cimplot_funcs.go
+++ b/cimplot_funcs.go
@@ -1,5 +1,7 @@
 package cimgui

+// #cgo CFLAGS: -Icimgui -Icimgui/generator/output
+// #cgo CXXFLAGS: -Icimgui -Icimgui/generator/output
 // #include "extra_types.h"
 // #include "cimplot_structs_accessor.h"
 // #include "cimplot_wrapper.h"

Now, I get these errors:
# github.com/AllenDang/cimgui-go
./cimgui_funcs.go:426:145: cannot convert glyph_ranges (variable of type *ImWchar) to type *_Ctype_ushort
./cimgui_funcs.go:436:182: cannot convert glyph_ranges (variable of type *ImWchar) to type *_Ctype_ushort
./cimgui_funcs.go:443:195: cannot convert glyph_ranges (variable of type *ImWchar) to type *_Ctype_ushort
./cimgui_funcs.go:450:163: cannot convert glyph_ranges (variable of type *ImWchar) to type *_Ctype_ushort
./cimgui_funcs.go:488:20: cannot convert func() *_Ctype_ImWchar {…}() (value of type *_Ctype_ushort) to type *ImWchar
./cimgui_funcs.go:492:20: cannot convert func() *_Ctype_ImWchar {…}() (value of type *_Ctype_ushort) to type *ImWchar
./cimgui_funcs.go:496:20: cannot convert func() *_Ctype_ImWchar {…}() (value of type *_Ctype_ushort) to type *ImWchar
./cimgui_funcs.go:500:20: cannot convert func() *_Ctype_ImWchar {…}() (value of type *_Ctype_ushort) to type *ImWchar
./cimgui_funcs.go:504:20: cannot convert func() *_Ctype_ImWchar {…}() (value of type *_Ctype_ushort) to type *ImWchar
./cimgui_funcs.go:508:20: cannot convert func() *_Ctype_ImWchar {…}() (value of type *_Ctype_ushort) to type *ImWchar
./cimgui_funcs.go:508:20: too many errors

I don't know how to fix them yet, but it finds all the headers it needs at least...

Welp, I found a bag of worms...
See this CMakeLists.txt. It wasn't even a "real" CMakeLists.txt from cimgui. It was an amalgamation of cimgui, glfw backend and cimplot
So, by linking to "./lib/***", we were linking to it and not to real cimgui.a which you could build from scratch.
This is wrong on many levels. There shouldn't be any "prebuilt" libraries in projects using CGo. They should be compiled from source. Dependency on GLFW backend and cimplot adds another bag of problems I'm not even sure where to start.
I'll try to fix all this, but I'd rather start from removing glfw and cimplot dependency, making "cimgui" wrapper correct and then adding things back one by one.

I think we should provide prebluit binaries. We shouldnt assume everyone has proper c/cpp compiles installed.
This repo should work with only go is installed.

Yeah, I did some investigations and building libraries during "go get" is not that great in all cases.
But, I'm also working on fixing a lot of stuff here.
For now, it only builds on Linux (only 1 precompiled lib here). I've temporarily removed GLFW backend and implot to make things easier. I will add them later in the way that will not require libimgui.a to NOT contain implot functions and I want cimgui-go to not depend on GLFW in any way.
Like I previously said, I don't use GLFW. Some people might want to use SDL/raylib. Current cimgui-go forces users to embed GLFW code into their binaries. This is not great.
Also, turns out git submodules cannot be used. When I tried to import cimgui-go using "go get" for ebiten-imgui, I got errors about cimgui.h not being there because "go get" doesn't fetch submodules.
So, ideally we should ship all needed headers inside cimgui-go. But I think we should do some form of "git submodule" system where we'll have a file like:
cimgui=https://github.com/cimgui/cimgui@8e625e95fdf469e105826cc22cb7665949f3aa21

and have a GitHub action named "update cimgui" which will automatically pull the corresponding version into the repo and commit it. We should always know which version of cimgui was used in a specific commit/build of all libraries.

My two cents:
You need to create a new CMakeLists.txt ( as done in https://github.com/sonoro1234/LuaJIT-ImGui) which picks whatever you want to use (cimgui, cimplot and glfw backend for example). cimgui and cimplot are ok as submodules but for glfw you can use find_package or FetchContent (as done in https://github.com/cimgui/cimgui/blob/68483775b3d7594eb14d296ec002ac11683882c9/backend_test/example_glfw_opengl3/CMakeLists.txt#L65)
I guess some go machinery will need to be added to this. (with CGo include paths setted)
Then you could use github Releases if you wish to provide binaries so that user doesn`t need to compile.

Also: In the cmake file you can have a variable USE_XXX_BACKEND to customize build for using GLFW, SDL or any other

My two cents:
You need to create a new CMakeLists.txt ( as done in https://github.com/sonoro1234/LuaJIT-ImGui) which picks whatever you want to use (cimgui, cimplot and glfw backend for example). cimgui and cimplot are ok as submodules but for glfw you can use find_package or FetchContent (as done in https://github.com/cimgui/cimgui/blob/68483775b3d7594eb14d296ec002ac11683882c9/backend_test/example_glfw_opengl3/CMakeLists.txt#L65) I guess some go machinery will need to be added to this. (with CGo include paths setted)
Then you could use github Releases (https://github.com/AllenDang/cimgui-go/releases) if you wish to provide binaries so that user doesn`t need to compile. (Althought user will be able to compile if he/she wants to do it)

Hello. Thanks for the tips. However, users of Go libraries typically don’t ever compile anything or use CMake (unless go lib includes compilation via cgo commands, e.g. go-gl/glfw). The only way to not require a C compiler is to use cgo and compile the lib on the fly. This is also OK for me. But Go lib users won’t ever use CMake… but we could usr it internally, of course.

Yeah, I did some investigations and building libraries during "go get" is not that great in all cases.
But, I'm also working on fixing a lot of stuff here.

@eliasdaler let  me know if I can help you somehow

@eliasdaler let me know if I can help you somehow

Here are some steps that I propose we do for now.

Stop using git submodules - don't revert the patch but instead remove git submodule usage and commit repo contents to the dirs
Create a file which will look like this (let's name it .dependencies_metadata and place it in the root of the repo):

cimgui=github.com/cimgui/cimgui@68483775b3d7594eb14d296ec002ac11683882c9
cimplot=...

This file will be used as a documentation for us (to know which version of cimgui, cimplot and glfw we have).
Later we can parse it and make a GitHub action to remove "cimgui" dir, clone a new version at a specified commit and commit it to the repo.

Make a CMake/just build for building cimgui+cimplot static lib (should come as one lib) I'd also love a glfw build, but it might be needed if we decide to remove glfw build. Ideally you should use CMake because with it you'll be able to just do "add_subdirectory" for "cimgui" and "cimplot" and make a new static library out of them. If you're not experienced with CMake, I'll do it myself later.
Change existing "build-lib-*" workflows to use this build script to build and commit static libs to the repo. The workflow should be ran manually, but it would be better if it would build for all platforms at once so that you don't need to run 3 workflows.

I won't have much time to work on cimgui-go myself this week, but I'll be able to review PRs.
I think that you can make cimgui-go compilable again if you add cgo directives with "-I" just like I did in my branch. The problem I had with ImWchar were caused by IMGUI_USE_WCHAR32 not being defined. I still didn't figure out how to force it to be enabled. Might work on it later - let's go without it and change ImWchar to ushort for now like I did here.

Actually, ushort vs uint thing is a bit more complicated... By default cimgui generates the files without IMGUI_USE_WCHAR32... So if we want unicode, we need to run generators ourselves. But the results should not go to "cimgui" and "cimplot" directories - they should be left as-is.
Instead, we should place them in some "prebuilt" directory, e.g.
"prebuilt/cimgui/include/cimgui.h"
"prebuilt/cimgui/lib/linux/amd64/libimgui.a"
... and later configure cgo's search paths to use these files when compiling Go.
Well, this is pretty complicated...

I think that you can make cimgui-go compilable again if you add cgo directives with "-I" just like I did in my branch

sadly, it complains about cimgui_impl.h form backend.go

Stop using git submodules - don't revert the patch but instead remove git submodule usage and commit repo contents to the dirs
Create a file which will look like this (let's name it .dependencies_metadata and place it in the root of the repo):

well, but I don't actually understand, why to stop using git submodules, since you propose exactly the same solution but without git submodules.
Also, why wouldn't I revert my PR? It'd be better for storage reasons, since (as far as I understand git :smile:) when "reverting" git just says "do the same as in these commits, but backwords".

I think that you can make cimgui-go compilable again if you add cgo directives with "-I" just like I did in my branch

sadly, it complains about cimgui_impl.h form backend.go

Did you add -Icimgui/generator/output? It is probably caused by this.

Stop using git submodules - don't revert the patch but instead remove git submodule usage and commit repo contents to the dirs
Create a file which will look like this (let's name it .dependencies_metadata and place it in the root of the repo):

well, but I don't actually understand, why to stop using git submodules, since you propose exactly the same solution but without git submodules. Also, why wouldn't I revert my PR? It'd be better for storage reasons, since (as far as I understand git smile) when "reverting" git just says "do the same as in these commits, but backwords".

Hmm, yeah, I thought there were other improvements to CI, but there weren't. However: the previously commited 3rd party directories were not versioned properly and contained modifications to CMakeLists.txt of cimgui. So yeah, we can revert and fix that, or we could just remove submodules and add 3rd party libs properly this time...
Storage reasons - doesn't matter even if it actually did it like this (but I don't think it does). We'll need to add a different sources for 3rd party libs anyway...

So, while this is being fixed, I suppose I can use https://github.com/AllenDang/giu in the meantime. Also, can someone elaborate on it? I assume this cimgui-go will be taking over as soon as more things are in place? I really like that cimgui-go can essentially generate wrapper code in Go based on C/C++ header files. It's nice way to keep things up to date, but currently it's not clear which one should use as both seems to be active...

@eliasdaler any updates?
I think, we should revert #18 in order to, at least, make the repo compilable and continue working on another issues.
We can continue work on submodules somewhere else.

So, while this is being fixed, I suppose I can use https://github.com/AllenDang/giu in the meantime.

Sure @Chillance! GIU works like a charm!

Also, can someone elaborate on it? I assume this cimgui-go will be taking over as soon as more things are in place? I really like that cimgui-go can essentially generate wrapper code in Go based on C/C++ header files. It's nice way to keep things up to date, but currently it's not clear which one I should use as both seems to be active...

cimgui-go is just a wraper of imgui, while giu is a wraper of wraper :smile:
it just provides easier in use set of types. So if you was working with C++ version of imgui, You may want to use cimgui-go, else I'd recommend you take a look on giu since it is easier to understand
Also, giu is going to migrate to use this repo in future

@eliasdaler any updates? I think, we should revert #18 in order to, at least, make the repo compilable and continue working on another issues. We can continue work on submodules somewhere else.

I think you should do that in the meantime. I really want to use this package so badly, but I just cant compile it.

@eliasdaler any updates? I think, we should revert #18 in order to, at least, make the repo compilable and continue working on another issues. We can continue work on submodules somewhere else.

Reverted.

@andraantariksa try now, it should work

The last two reverts about git submodules should have helped.
If you have new build issues feel free to re-open or create a new issue.


Background blur support

Can it be added? Like haze library

Hey @T8RIN, for now, Cloudy doesn't support the window blurring feature. It's on my plans for the next release.

Waiting so much!


Sign with an Apple developer key

It seems like installing with homebrew is not requiring this.
brew install auth0/auth0-cli/auth0

I think we can close this
@Widcket @astanciu ?

Closing this issue for now.


Question: Manage multiple progress bars in a multiprocessing environment

Hi,
first, thanks a lot for this beautiful library.
I wanted to know if it is possible to manage a Progress object with multiple progress bars in a multiprocessing environment.
I just want to have a very basic progress bar for every process.
My first tries did not succeed due to the fact that the Progress object cannot be pickled (due to its usage of an RLock?).
TypeError: can't pickle _thread.RLock objects.

Hi @jpfeuffer
Glad you like rich.
I'm afraid that even if you could pickle Progress objects, it wouldn't work. The problem is that even with multiple processes, you only have one stdout stream.
The solution is to have a single Progress instance, defined inside your if __name__ == __main__ block. Create tasks with Progress.add_task and call each process with the returned task ID. You'll then need to post updates from your processes back to the main process, via a "pipe" or "queue".
You should also be aware that you won't be able to print anything from your sub-processes, or it will break the visuals. Anything you want to print should be sent to the main process.
Hope that helps!

Thanks a lot. It did. It worked fine after re-structuring and using a Pipe and letting the spawned processes
send their updates to the main process with their task_id.

Hi (and sorry for replying in this quite old thread).
@willmcgugan you wrote the following above:

You'll then need to post updates from your processes back to the main process, via a "pipe" or "queue".

Do you have any idea or examples on how to do this?

I have a a function something along the line of this:

def worker(filenames):

    # this is a very slow initialisation
    init = very_slow_initialisation()

    # loop over files
    for filename in filenames:

        # quite fast function once the initialisation is done
        fast_function(filename, init)

So it is a function that is quite slow to initialise, but once initialised, each loop is takes around a second. To speed it up, I split the filenames into N chunks, where N is the same as the total number of cores, to maximise the parallelisation, while decreasing number of times the slow initialisation has to run.
I would like to use a progress bar on the loop, just for a single one of the cores (since all the chunks takes approximately the same time to process).
In this case I cannot use any of the previous examples with multiprocessing that I have been able to find (e.g. #121), since they update the progress bar each time a new task is sent to the worker process, which only happens once in total in my case.
Do you have any suggestions or tips?

Hi (and sorry for replying in this quite old thread).
@willmcgugan you wrote the following above:

You'll then need to post updates from your processes back to the main process, via a "pipe" or "queue".

Do you have any idea or examples on how to do this?

I have a a function something along the line of this:

def worker(filenames):

    # this is a very slow initialisation
    init = very_slow_initialisation()

    # loop over files
    for filename in filenames:

        # quite fast function once the initialisation is done
        fast_function(filename, init)

So it is a function that is quite slow to initialise, but once initialised, each loop is takes around a second. To speed it up, I split the filenames into N chunks, where N is the same as the total number of cores, to maximise the parallelisation, while decreasing number of times the slow initialisation has to run.
I would like to use a progress bar on the loop, just for a single one of the cores (since all the chunks takes approximately the same time to process).
In this case I cannot use any of the previous examples with multiprocessing that I have been able to find (e.g. #121), since they update the progress bar each time a new task is sent to the worker process, which only happens once in total in my case.
Do you have any suggestions or tips?

Hi @ChristianMichelsen
It's hard to say without know the full details. But the most efficient way of tackling this would probably be with a queue. Basically create a queue in the main process and put() all the filenames in it. Your workers should call queue.get() to get and process filenames until the queue is empty. You can update the progress bar from the main process by monitoring the length of the queue, which will eventually get 0 and you can exit your main process.
The alternative is a pipe. When your worker completes a filename, you can call connection.send('done'). The main process gets that message via connection.recv and advances the progress bar.

Hi @ChristianMichelsen
It's hard to say without know the full details. But the most efficient way of tackling this would probably be with a queue. Basically create a queue in the main process and put() all the filenames in it. Your workers should call queue.get() to get and process filenames until the queue is empty. You can update the progress bar from the main process by monitoring the length of the queue, which will eventually get 0 and you can exit your main process.
The alternative is a pipe. When your worker completes a filename, you can call connection.send('done'). The main process gets that message via connection.recv and advances the progress bar.

@willmcgugan Thanks a lot for your answer. After a bit of research, debugging, and generally playing around with the multiprocessing module and got the following to work:
def worker(queue_in, queue_out):
    init = very_slow_initialisation()
    while True:
        filename = queue_in.get(block=True)
        if filename is None:
            break
        result = fast_function(filename, init)
        queue_out.put((filename, result))

def main(df):

    queue_in = Queue()
    queue_out = Queue()
    the_pool = Pool(NUM_CORES, worker, (queue_in, queue_out))

    filenames = get_filenames()
    N = len(filenames)

    with Progress() as progress:
        task_id = progress.add_task("Task", total=N)

        for filename in filenames:
            queue_in.put(filename)

        # Get and print results
        results = []
        for _ in range(N):
            results.append(queue_out.get())
            progress.advance(task_id)

    for _ in range((N):
        queue_in.put(None)

    # prevent adding anything more to the queue and wait for queue to empty
    queue_in.close()
    queue_in.join_thread()

    # prevent adding anything more to the process pool and wait for all processes to finish
    the_pool.close()
    the_pool.join()

    return results

@willmcgugan Thanks a lot for your answer. After a bit of research, debugging, and generally playing around with the multiprocessing module and got the following to work:
def worker(queue_in, queue_out):
    init = very_slow_initialisation()
    while True:
        filename = queue_in.get(block=True)
        if filename is None:
            break
        result = fast_function(filename, init)
        queue_out.put((filename, result))

def main(df):

    queue_in = Queue()
    queue_out = Queue()
    the_pool = Pool(NUM_CORES, worker, (queue_in, queue_out))

    filenames = get_filenames()
    N = len(filenames)

    with Progress() as progress:
        task_id = progress.add_task("Task", total=N)

        for filename in filenames:
            queue_in.put(filename)

        # Get and print results
        results = []
        for _ in range(N):
            results.append(queue_out.get())
            progress.advance(task_id)

    for _ in range((N):
        queue_in.put(None)

    # prevent adding anything more to the queue and wait for queue to empty
    queue_in.close()
    queue_in.join_thread()

    # prevent adding anything more to the process pool and wait for all processes to finish
    the_pool.close()
    the_pool.join()

    return results

Good solution!

Good solution!


environment version

Hello.
I am a master's student in artificial intelligence, and I need your code for my thesis project.
Is it possible to provide me with a copy of your json file?

Hi @imanMokri , can you please provide some details on which json file are you talking about? (I can't remember, haven't worked on the project since years...)

I want to run this project in Anaconda(JupyterLab), but I get an error when reading (run) the code files(notebooks/chapter-5-2-1-exploration-hmog-statistics.ipynb). I want to know what module and what version you used to run this program so that I can run this project. Thanks for your help.

I'll see what I can do :)
Just one more question upfront: Did you followed all steps mentioned in the "Getting started" section of the README? Any errors/problems in one of the steps?

Hi again.
I couldn't run this part of code: "from src.utility.dataset_loader_hdf5 import DatasetLoader" in jupyterlab on "chapter-5-2-1-exploration-hmog-statistics.ipynb"
Could you please tell me how to run this part of the code in jupyter?

Did you follow all steps mentioned in the "Get it up and running" section of the README?

Yes, I did it.
but I have problem with this part of code:
module_path = os.path.abspath(os.path.join(".."))  # supposed to be parent folder
if module_path not in sys.path:
sys.path.append(module_path)
from src.utility.dataset_loader_hdf5 import DatasetLoader
Error message:
ModuleNotFoundError                       Traceback (most recent call last)
 in
49 if module_path not in sys.path:
50     sys.path.append(module_path)
---> 51 from src.utility.dataset_loader_hdf5 import DatasetLoader
52
53 # Global utitlity functions are loaded from separate notebook:
ModuleNotFoundError: No module named 'src'
:(

Hi.
First, I wanted to thank you for the answers you have given to my messages so far.
I want to use your program to write my thesis, but despite the implementation of your explanation, I still could not run the program completely and correctly. Is it possible for you to connect online at a certain time and check how to run the program together on my laptop?
thank you so much.


How do I configure the endpoint?

Endpoint:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Endpoint.html
I need to configure endpoint, s3BucketEndpoint and s3ForcePathStyle. I'm not seeing how to configure things. I see how to configure region and access keys but there are tons of other configuration variables so I'm confused.
Example code:
const s3 = new S3({
  region: 'us-east-1',
  endpoint: 'http://localhost:4569',
  s3BucketEndpoint: true,
  s3ForcePathStyle: true
})

After poking around in the code, based on this line it seems the answer is that the way to configure the endpoint will be to first create a pull request ;)
I'll evaluate from there, thanks.


Remove included build registry method that was only used in a test

I don't see having a method that is explicitly used for tests to be a bad thing. Perhaps reducing it's visibility or marking it as @VisibleForTesting would be better?

This method is not used in production code - maybe it used to be, but now it looks like a leftover that's not marked in IDE as unused only because there are some redundant assertions in tests using it.


Can use this in browser?

@mathieudutour

I checked everything we should be able to with browserify thank you so much for this fantastic code

So close actually came back from my research

In your line of code at /lib/spawn.js function var fiber = coscript.createFiber() is not refrenced in the code we should add from another repository or?

@huw @mathieudutour @anyab5

Look at the Readme, it's a library made for Sketch, not the browser


Output does not match documention

The cmdlet does not seem to return an in-memory PnP Site Template but rather update the input file specified in $Path. Futhermore the cmdlet only seems to work when using an .xml template as input rather than a .pnp.

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

ID: a4993195-5f25-b71d-6de7-69533fb63569
Version Independent ID: f274bb8a-bb66-4bee-ac61-c88c2c3470bb
Content: Add-PnPListFoldersToProvisioningTemplate (sharepoint-pnp)
Content Source: sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPListFoldersToProvisioningTemplate.md
GitHub Login: @techwriter40
Microsoft Alias: kirks

@officedocsbot assign @yogkumgit

Hello @JelleBroekhuijsen Jelle, how are you?
Thanks for your feedback.
I need to kindly redirect you to open PnP cmdlets issues here, a member of the PnP community will handle your request there.
Thank you!

@get-itips  Thank you very much for the contribution and sharing this explanation. @JelleBroekhuijsen Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Bug: Safari glitch when using CSS perspective

Hi @sLeeNguyen,
I wonder why perspective is required and if one can disable it and make it optional.
https://github.com/sLeeNguyen/react-flip-clock-countdown/blob/7c281901cf447d72f67df2d871e95067c8fbb5d2/src/styles.module.css#L57
Because in our setup, Safari has issues when using this value:

I started using patch-package to fix this (and #10), but it seems this is either a bug or should be configurable. What do you think?

I use it to get 3D transition each time the clock flip

To me it looks like it also works without it, is there a huge difference when not using it?

https://user-images.githubusercontent.com/54298446/229718571-64f1be81-1862-410f-a615-fa93f4718dd5.mov
You can see in this video the difference. As the project description "A 3D animated countdown component for React", I want to make it 3D animated. In your case, seem like you just want to display the normal clock (without animation)

I'm quite busy at the moment and I don't know when this feature will be released. If you can, don't hesitate to create a PR.

Hey @sLeeNguyen,
from what I've seen so far in our environment the problem was gone once I added overflow: hidden to the same class using perspective. I am not sure how to proof it as I cannot share more insights from our project publicly.


Fixes for #15 and #16

@itamarst try these? Seems to at least pass tests on Linux, I should add a new test that hooking malloc is possible.

Hm, I can't actually hook malloc this way, I do get a deadlock.


PCG64DXSM causing run problems

In both the python code and an R wrapper, I have run into a block with importing PCG64DXSM
This is the R error, the python error was similar:
ImportError: cannot import name 'PCG64DXSM' from 'numpy.random' (/Users/quinlan/opt/anaconda3/lib/python3.8/site-packages/numpy/random/init.py)
I commented out in the python code and it seemed to be fine as it's a function intrinsic to numpy/numpy.random, but I've run into additional quirks with the python code so I am trying out the R wrapper, and figure if it's happening in both setups, I might as well mention it.632

Dear @laurelhiatt,
Could you please let us know which version of numpy and python are you using? Thanks!

Please feel free to open this issue if you are still encountering this.


Remove edges and node from parsed data

Hi, would it be possible to add an option when parsing data to be without edges and node?
Example:
from
{
    "data": {
        "markers": {
            "edges": [
                {
                    "node": {
                        "addresses": {
                            "edges": [
                                {
                                    "node": {
                                        "geo": {
                                            "lat": 50.2699800871087,
                                            "long": 19.003614752063
                                        }
                                    }
                                },
                                {
                                    "node": {
                                        "geo": {
                                            "lat": 52.296189564637,
                                            "long": 20.9322076727827
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            ]
        }
    }
}

to
{
    "data": {
        "markers": [
            {
                "addresses": [
                    {
                        "geo": {
                            "lat": 50.2699800871087,
                            "long": 19.003614752063
                        }
                    },
                    {
                        "geo": {
                            "lat": 52.296189564637,
                            "long": 20.9322076727827
                        }
                    }
                ]
            }
        ]
    }
}

I think there’s an interesting discussion on if and how we can make the
generator utilise patterns such as the connection pattern. It would be
interesting to look into.
On Wed, 27 Mar 2024 at 09:06, github-actions[bot] @.***>
wrote:

👋 @jlukas99 https://github.com/jlukas99
Thank you for raising an issue. I will investigate the issue and get back
to you as soon as possible.
Please make sure you have provided enough context.
This library is created and maintained by me, @budde377
https://github.com/budde377. Please consider supporting my work and
ensure our survival by donating here https://github.com/sponsors/heftapp
.
—
Reply to this email directly, view it on GitHub
https://github.com/heftapp/graphql_codegen/issues/343#issuecomment-2022261983,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2UFS2MNJTK47VECCDPCIDY2KD2HAVCNFSM6AAAAABFKORYBOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRSGI3DCOJYGM
.
You are receiving this because you were mentioned.Message ID:
@.***>


configure the current kratix promise setup to run on golem

To make our kratix promises work, we need a few objects to be created in the project namespace first. Stub for them is available here: https://github.com/giantswarm/giantswarm-management-clusters/tree/add-kratix/management-clusters/golem/extras/kratix/platform
ToDo and why
What's left there to do is:

namespace.yaml - probably should be replaced with Organization or left out of scope for "a customer" to create first. For the demo, I think we should create it.
crb_promises_role_binding.yaml - figure out a (Cluster)Role we should use for it in the binding. Currently, the only needed permission is to read Secrets and CMs in the same namespace.
destination_mc.yaml and gitstatestore_gitops.yaml - this drives where Kratix will put rendered files in the gitops repo.
3.1. GitStateStore needs access to the gitops repo, so the same repo as flux. It should be also possible to reference the same access token that flux is using.
3.2. Destination - docs are here, we need to inject it in the correct place in the gitops repo directories.
secret_ghcr_pull_token.yaml - we need to generate a github token to use here (only classic tokens are available) and encrypt with sops
secret_github_token_repo_create.yaml - we need to create a token that can read template repos and create new ones.

Bonus
We can probably abstract the role binding and the info config map into something like a Project promise, but to get started I skipped it.

Summary
This is a summary of how it was wired together on golem with issues bumped into along the way with their solutions and long term / making it production ready implications.
Setup
Dev platform: https://github.com/giantswarm/dev-platform-kratix-promises
GS side gitops: https://github.com/giantswarm/kratix-gitops/
Demo side gitops: https://github.com/DemoTechInc/demotech-gitops
The GS gitops was moved to a separate repo and thus flux-giantswarm ns based source and kustomization to avoid breaking or blocking the core ones with the continuous experimentation. See: https://github.com/giantswarm/kratix-gitops/blob/aa9b0997109e8a56025fc119ebd68b9d32985fbf/management-clusters/golem/flux.yaml
The demo related sources and kustomizations are in. the default namespace to simulate real scenario: https://github.com/DemoTechInc/demotech-gitops/blob/a0ea4be15bb2fa24e0caee945043f9cdd89e22b9/management-clusters/golem/gitrepo.yaml + https://github.com/DemoTechInc/demotech-gitops/blob/a0ea4be15bb2fa24e0caee945043f9cdd89e22b9/management-clusters/golem/golem.yaml
Encountered issues
Password protected SSH keys
Using SSH deploy key for the Kratix destination repo with write access enabled is required. It seem at the time of the experiment, Kratix does not support password protected SSH key, so it must be created without / with empty one.
Related parts:

https://github.com/DemoTechInc/demotech-gitops/blob/a0ea4be15bb2fa24e0caee945043f9cdd89e22b9/management-clusters/golem/secrets/demotech-gitops-kratix-write.enc.yaml
https://github.com/DemoTechInc/demotech-gitops/blob/a0ea4be15bb2fa24e0caee945043f9cdd89e22b9/management-clusters/golem/kratix/gitstatestore.yaml#L11-L13

...

FTR the resources used for testing
apiVersion: promise.platform.giantswarm.io/v1beta1
kind: githubrepo
metadata:
  labels:
    kratix.io/promise-name: githubrepo
  name: laszlo-kratix-2
  namespace: org-kratix-demo
spec:
  githubTokenSecretRef:
    name: dev-platform-gh-access
  registryInfoConfigMapRef:
    name: github-oci-registry-info
  repository:
    description: My first kratix project
    name: laszlo-kratix-2
    owner: DemoTechInc
    templateSource: giantswarm/devplatform-template-go-service
    visibility: private

and:
apiVersion: promise.platform.giantswarm.io/v1beta1
kind: appdeployment
metadata:
  labels:
    kratix.io/promise-name: appdeployment
  name: laszlo-kratix-2
  namespace: org-kratix-demo
spec:
  interval: 1m
  statusConfigMapReference:
    name: laszlo-kratix-2-info
  suspend: false
  timeout: 3m
  values:
    autoscaling:
      enabled: false
    ingress:
      enabled: false
    monitoring:
      serviceMonitor:
        enabled: false
    pdb:
      enabled: false
  version: '>=0.1.0'

On Kratix workings
Here is my understanding on what Kratix does.
On promises and resources
A promises is built up from:

.spec.api is the CRD definition for the resource request
.spec.workflows is what happens when the promise has create/update/delete (CUD) actions and when a CR from the above .spec.api CRD has CUD action

promise workflow: triggered once when the workflow has CUD

output generated here is stored under the dependencies folder of the Kratix Destination

resource workflow: triggered each time a resource has CUD

output generated here is stored under the resources folder of the Kratix Destination

both the promise and the resource workflow can have 2 pipelines: configure and delete

TLDR; configure runs on CU when there are changes to promise or resources using it; delete runs once (not retried on failure) when the resource or promise is deleted
See: https://docs.kratix.io/main/reference/workflows#summary

On state stores and destinations
The output of workflows are stored as works.platform.kratix.io and there actual persistence in state stores as workplacements.platform.kratix.io.
The works actually store the generated file contents and the path / filename they are supposed to be stored in. These are created once per resource to store the output.
The workplacements are destination dependent and one is created for each work for each matching destination. For destination filtering see: https://docs.kratix.io/main/reference/destinations/multidestination-management.
Kratix has a 10 hour reconcile interval and it cannot be configured at the time of writing. But the reconciliation can happen by simply restating the Kratix controller as well beyond other events, see: https://docs.kratix.io/main/reference/resources/workflows#idempotency
For example when the reconciliation naturally happens or the controller restarts then the contents of the workplacements are enforced into the destinations. Note that the workflows / pipeline are not reran, the state stored in these places are enforced. (An interesting implication of this is that time dependent output (e.g. the output of the workflows depend on time, lets say a simple date > /kratix/output/date.txt) will not work and not get regenerated.)
⚠ Kratix assumes full ownership of the destination folder. The final folder is always: <gitStateStorePath>/<destinationPath>/<destinationName>/ so you technically cannot write to the root of the repo as at least destinationName is always non empty. Also Kratix does not have or a need complex diff logic or knowing previous states because of that assumption. It simply wipes the real end destination folder and puts the result there. Also because of this I think the .spec.filepath.mode called nestedByMetadata makes sense tho the resulted paths are quite "ugly".
FTR folders created ...
See: https://gigantic.slack.com/archives/C076AGFN92S/p1723199112084119

Notes on some concerns
Full automation related concerns

There are a few chicken - egg problems to solve

Kratix Destination -> creates folder in repo vs. the flux git repo and kustomization reconciling that repo
Organization -> namespace vs. resources created in there

Kratix in general

The way destinations work are not compatible with GS recommended / used gitops repo structure
Security context / Kyverno issues
Upstream chart / GS chart generated from it

Others

Cosign / Flux / Github action issues

is also working on gazelle. closing this issue


Add scripts/redeploy_ui.sh

Use script is aimed at quick redeployment of the already deployed UI.
More-or-less just replacing the image.

If this change is accepted, we should move the setting of env variables to a shared file. I will push a PR moving them.

@mareklibra want to push it?

not sure why u need one more file, i think u can change deploy ui to take param and run different flow depending on it

not sure why u need one more file, i think u can change deploy ui to take param and run different flow depending on it

Wouldn't it be more confusing?
I can rather add automatic detection whether the UI is already installed and then change the flow accordingly. But again: do we need such logic?
By introducing new target I just follow existing approach of deploy-redeploy targets.

@mareklibra i am ok with new target, just didn't want to habe one more sh file that does the same

@tsorya I have added if into the existing scripts/deploy_ui.sh


Add group mailbox exports

What happened?
We have most of group mailbox backup functionality in main. Next step is to enable exports.
Corso Version?
Corso v0.16.0
Where are you running Corso?
NA
Relevant log output
No response

Basic support is ready(not merged yet). However, we need to make sure the export format is agreeable and includes all the details we'd like to have. I'll start an internal thread on this.


Use AssertJ instead of JUnit

Problem
AssertJ feels much easier to use than JUnit, and we really should only use one of these testing libraries. Originally we used JUnit, but at the moment it looks like AssertJ is just easier to use and since other Hedera related projects use it we might as well.
Solution
Remove JUnit support and use AssertJ throughout entire project.
Alternatives
No response

I didn't mean that we should outright replace all our usages of JUnit with AssertJ in a single PR, but it definitely should be done in steps, and moving forward we should AssertJ where we can. I really don't like a mixture of frameworks that do the same thing because in my opinion it can get quite confusing especially for someone two joining the project. However, I did not realize that AssertJ cannot be used as a Testing Framewok as in you cannot label test with @Test which unfortunately means we need both libraries either way.


chore: adaptation to batteries#1055

Once batteries#1055 is merged:

[x] Edit lakefile to point to batteries/main
[x] Run lake update batteries
[x] Commit and merge

bors merge

This will hold up nightly-testing, so:
bors p=10

bors merge

bors merge

bors merge

bors merge

bors merge


Tolerance in StandardFlexibleScaler should be relative

I have these properties I want to scale before using KPCovR:
Y = [
 [5.500e+00 2.400e-29]
 [3.600e+00 2.270e-28]
 [3.750e+00 2.640e-28]
 [3.020e+00 6.700e-29]
 [9.175e-01 8.300e-32]
]

One column only contains very small values, leading to the following exceptions, which is a bit surprising.
Traceback (most recent call last):
  File "do-kpocvr.py", line 119, in <module>
    Y = StandardFlexibleScaler(column_wise=True).fit_transform(Y)
  File "/opt/miniconda3/lib/python3.7/site-packages/skcosmo/preprocessing/flexible_scaler.py", line 86, in fit_transform
    self.fit(X, y)
  File "/opt/miniconda3/lib/python3.7/site-packages/skcosmo/preprocessing/flexible_scaler.py", line 50, in fit
    raise ValueError("Cannot normalize a feature with zero variance")
ValueError: Cannot normalize a feature with zero variance

I'll change the tol parameter to make this work for now, but I think that instead of checking the absolute value of the variance against the tolerance, we should test the relative variance, i.e. replace np.any(var < self.tol) with np.any(var / np.mean(Y, axis=0) < self.tol) in https://github.com/cosmo-epfl/scikit-cosmo/blob/64969332914aa956e943c8f1824699731510d72d/skcosmo/preprocessing/flexible_scaler.py#L60-L62

We could do something similar to what numpy often does, and use both an absolute and a relative tolerance, e.g., https://numpy.org/doc/stable/reference/generated/numpy.allclose.html

This problem was solved in #91


Fix test failures on node v0.11.1 and up

(same as commit message)
Fix encoded predicates on node versions >=v0.11.1
Before 11.1: Buffer.prototype.toJSON returned the buffer as an array, so buffer.toJSON().toString() => '1,2,3'
After 11.1: Buffer.prototype.toJSON returns a full object, so buffer.toJSON().toString() => '[Object object]''
This meant ALL predicates encoded by base64 would encode to exactly the same text.
Luckily, calling "toJSON" on earlier versions of node was redundant. So I removed that entirely.

You rock - thanks for this!


Adding event reason to file name

Hi,
Would it be possible to add the ability to include the event reason in the file name?

This is coming with future release where jinja2 templates can be leveraged for a number of items.
For output one can then for example do something like:
--output "./Movies/{{layout}}_PERSPECTIVE/{{ event_reason if event_reason != '' }}/{{ event_city ~ ' - ' if event_city != '' }}{{event_timestamp|timestamp_format}}.mp4"

Apologies, it is possible for the merged ones, so when you merge multiple events together. But currently not for the events themselves.

That's awesome!
Thanks for the note and thank you for all your work on this project.


Solar Panel Ineffective Message is always disabled (cannot toggle back on/re-enable)

Solar Panel Ineffective Button:
Issue: The solar panel ineffective notification is always disabled regardless of whether you toggle it on or off.
Still troubleshooting on how to re-enable notifications. It has to do with the transpilers and how they work. They're very specific.

Fixed. 0.2.4 will allow you to toggle Solar Panel Ineffective On/Off


AuthManager must make use of Guard interface.

I am making my own guard that implements Illuminate\Contracts\Auth\Guard interface just like the original Illuminate\Auth\Guard does. I'm doing it without extending the original due to strong reasons.
The problem occurs when AuthManager calls callCustomCreator() inside which it does:
if ($custom instanceof Guard) {
    return $custom;
}

Since I did not extend original Guard, this will fail. So instead, instanceof should be done to Illuminate\Contracts\Auth\Guard to make sure my $custom is an instance implementing Guard interface.

Send a PR? :smile:


UP-4921:  Restore the LoginPortletHelper bean, which was overlooked w…

…hen context:component-scan was refactored
https://issues.jasig.org/browse/UP-4921

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines

Description of change

The @Service bean defined by the class org.apereo.portal.portlets.login.LoginPortletHelper in (currently) not instantiated in either the parent or child (portlet) the application context.

It's fixing an issue (the JIRA ticket type is BUG).

I can see that, what is the impact of a non-instantiated LoginPortletHelper on uPortal?
I've been able to login with the current version of uPortal, without this bean, is the bean really needed?

The loginPortletHelper bean is referenced in the login portlet within webflow.

Okay, so if that hasn't blocked login, can that webview and the bean be removed?

@ChristianMurphy,
Okay, so if that hasn't blocked login, can that webview and the bean be removed?

It's can't be removed.
The absence of this bean hasn't blocked CAS login, but if you use any form of login that requires uPortal to render a login form you will be blocked.

Thanks @drewwills, that's good to know. :+1:
Seems like it could be a helpful to include that in the ticket and PR description.

How close are we to saying with a straight face that uPortal just doesn't need to support any way of logging in other than authentication provided by its environment, that is provided by say CAS as demonstrated ootb or Shibboleth?  CAS supports lots and lots of ways of validating passwords and having fancy login forms.  So it comes down to if an adopter needed "uPortal" to provide a login experience "locally", great, implement CAS and think of it as "part of the portal".  If you've got functioning enterprise login infrastructure via say Shibboleth, great, use that.
Innovating in logging in isn't our value to add to the world in this project. Let's give up and delegate to CAS.

At this point, I'm unaware of any uPortal implementation that does not use either CAS or Shib in server deployments.
We often use other forms of AuthN, however, in development and training.


Missing Changelog update to 14.3.4

Please, add changes of v14.3.4 to Changelog, thanks!

@patoi would you like to send a PR for this? You can see the changes here: https://github.com/standard/standard/releases/tag/v14.3.4

I fixed this when I released standard 15.