Fb fix cube coord arithmetic

🚀 Pull Request
Description
This PR addresses issue #4000.
The Coord and Cube arithmetic regressed in behaviour in #3422, and as a result caused NotYetImplementedError exception to be raise whenever a Coord op Cube operation was attempted.
This PR addresses this, and also extends the capability to include missing reflected Cube arithmetic operations. In addition, the Cube.__neg__ is also included for convenience e.g., you can now do result = -cube

Consult Iris pull request check list

Ping @SarahAlidoost :eyes:


Removed unused assignments

Type of change
Fix cognitive complexity in the group integration. Also added a test in order to test if a device supports all media player controls.

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Deprecation (breaking change to happen in the future)
[ ] Breaking change (fix/feature causing existing functionality to break)
[x] Code quality improvements to existing code or addition of tests

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist
[x] I have followed the perfect PR recommendations
[x] The code has been formatted using Black (black --fast homeassistant tests)
[x] Tests have been added to verify that the new code works.

Didn't find anything in Roomba. So i touched on some other integrations (hehe)

Clean cuts, looks good to me!


Error initialising ses.cfc

No matching Method/Function for com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.configureRegion(com.amazonaws.regions.Regions) found
/private/var/www/myapp/aws/aws.cfc: line 54
called from /private/var/www/myapp/aws/ses.cfc: line 25
called from /private/var/www/myapp/events/onapplicationstart.cfm: line 27
My calling code looks like this:
services["ses"] = new aws.ses(account="foo", secret="bar", region="us-east-1");
Code was installed using CommandBox on 11-Dec-2015 as described in the readme.
Also tried updating to aws sdk v1.10.40

Note that pull request #34 does not resolve this issue


Missing dependency "chalk"

Aarrghh... lesson in testing here.  I just tried installing the latest version on a system that had not had this plugin before.  We are missing a dependency...
[11/7/2023, 11:51:42 AM] [Homebridge UI] [homebridge-midea-platform] Child process ended
[11/7/2023, 11:51:49 AM] [Homebridge UI] [homebridge-midea-platform] Terminating child process...
[11/7/2023, 11:52:07 AM] [Homebridge UI] [homebridge-midea-platform] node:internal/modules/cjs/loader:1078
  throw err;
  ^

Error: Cannot find module 'chalk'
Require stack:
- /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15)
    at Module._load (node:internal/modules/cjs/loader:920:27)
    at Module.require (node:internal/modules/cjs/loader:1141:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:18:15)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js'
  ]
}

Node.js v18.16.0
[11/7/2023, 11:52:07 AM] [Homebridge UI] [homebridge-midea-platform] Child process ended

@kovapatrik  This was entirely my fault, can you review the PR please as I think that should fix it.  Sorry.

Humm... Now I get this...
[11/7/2023, 12:01:32 PM] [Homebridge UI] Running Command: npm install --save<EMAIL_ADDRESS>[11/7/2023, 12:01:48 PM] [Homebridge UI] [homebridge-midea-platform] /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:18
const chalk = require("chalk");
              ^

Error [ERR_REQUIRE_ESM]: require() of ES Module /var/lib/homebridge/node_modules/homebridge-midea-platform/node_modules/chalk/source/index.js from /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js not supported.
Instead change the require of index.js in /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:18:15) {
  code: 'ERR_REQUIRE_ESM'
}

Node.js v18.16.0
[11/7/2023, 12:01:48 PM] [Homebridge UI] [homebridge-midea-platform] Child process ended

That's a weird error tho.

Yes.  Trying to decide on the best fix... https://stackoverflow.com/questions/70541068/instead-change-the-require-of-index-js-to-a-dynamic-import-which-is-available

Guidance here... https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c

Do we really need chalk?

Do we really need chalk? If we do, then we can use the latest version of Chalk v4, as v5 is ESM only.

No, I don't think I need it.  I am going to remove it and handle colors manually.  Give me an hour as I have to handle something else first

ok, I have removed the dependency on chalk. I put the necessary control characters in-line following example here... https://stackoverflow.com/questions/9781218/how-to-change-node-jss-console-font-color

Unfortunately found another (hopefully last) problem in server.js where it was not handling case where config is undefined (nothing in config.json yet).  Just submitted a PR for that.


sync rolebindings feature?

Is there any interest in extending this app to sync rolebindings?
My use case is that I have rolebindings that I apply to many namespaces, but not all of them (i use a clusterrole in the rolebindings). Kubed's ability to sync a resource to namespaces by label-selector would be really useful for me.
I could contribute the code as well, but just want to make sure this is something that is wanted before I code it up.

This project does: https://github.com/mittwald/kubernetes-replicator

Works for me, thanks for the suggestion

Works for me, thanks for the suggestion


Constant name "gist_url" doesn't conform to UPPER_CASE naming style

https://github.com/lbonanomi/gRist/blob/27e8bad1df8ab5380e5a67697cb91b06aafed42d/grist.py#L118

Issues for naming style are now ignored.


Added ripper for Erofus.com

Category
This change is exactly one of the following (please change [ ] to [x]) to indicate which:

[ ] a bug fix (Fix #...)
[x] a new Ripper
[ ] a refactoring
[ ] a style change/fix
[ ] a new feature

Description
Adds basic support for erofus.com
Testing
Required verification:

[ ] I've verified that there are no regressions in mvn test (there are no new failures or errors).
[ ] I've verified that this change works as intended.

[ ] Downloads all relevant content.
[ ] Downloads content from multiple pages (as necessary or appropriate).
[ ] Saves content at reasonable file names (e.g. page titles or content IDs) to help easily browse downloaded content.

[ ] I've verified that this change did not break existing functionality (especially in the Ripper I modified).

Optional but recommended:

[ ] I've added a unit test to cover my change.

Coverage decreased (-0.3%) to 42.117% when pulling 681d6b5f726fcddf54ce9bbaa19ee91ebfffcadc on cyian-1756:erofusRipper into d9f7abde926a4fe8af0480424505ffc264f27a02 on RipMeApp:master.

Coverage decreased (-0.3%) to 42.117% when pulling 681d6b5f726fcddf54ce9bbaa19ee91ebfffcadc on cyian-1756:erofusRipper into d9f7abde926a4fe8af0480424505ffc264f27a02 on RipMeApp:master.


[patch] prevent crashing from panic

Description
Prevent garm from crashing due to panic: Header called after Handler finished.
This PR does not solve the root cause for panic: Header called after Handler finished.
Type of change

[x] Bug fix
[ ] New feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Non-code changes (update documentation, pipeline, etc.)

Flags

[ ] breaks backward compatibility
[ ] requires a documentation update
[ ] has untestable code

Checklist

[x] Followed the guidelines in the CONTRIBUTING document
[x] Added prefix [major]/[minor]/[patch]/[skip] in the PR title
[x] Tested and linted the code
[x] Commented the code
[x] Made corresponding changes to the documentation
[x] Confirmed no dropping in test coverage (by Codecov)
[x] Passed all pipeline checking
[ ] Approved by >1 reviewer

Checklist for maintainer

[ ] Use Squash and merge
[ ] Double-confirm the merge message has prefix [major]/[minor]/[patch]/[skip]
[ ] Delete the branch after merge

This PR will ignore warnings & errors in codebeat.


Implementing Promotion Boards

Describe the PR
Implements the fronted and backed tools needed for Promotion boards. It also includes some code updates to allow easier modification of promotion board settings without having to push an update to the application.
Implements
Implements #96, #132 and #134 for website settings config.
Implements #54
Implements #56
Implements #94
Implements #55 as per website settings updates.
Changes Made
Describe your changes in detail here:

Added individual unit pages with promotion boards.

Added Squad Home
Added Platoon Home
Added Company Home
Added Mynock Home
Added Razor Home
Added Hailstorm Page

Updated the database to hold website settings objects detailed in #94

Added database based settings for C-Shop claims
Added database based settings for Promotion Details
Added database based settings for Discord Role Bindings

Updated Manager Pages to include a manager settings configuration pages

Allows editing of most website settings objects. Discord role bindings have not been setup yet, but C-Shop claims and promotion details are editable.
C-Shop claims should not be edited at this time as there is no method of changing access for specific pages except for code updates

Added website settings service

A service for managing and retrieving website settings from the database.

Moved permissions checks over to the website settings service using a custom IAuthorizationPolicyProvider

This includes a custom AuthorizationPolicyBuilder that allows the use of the IWebsiteSettingsService in permission checks.

Added a promotions service to track promotion information

The service handles tracking what board a promotion is on, elevating it when told to, and assigning the proper rank once a promotion is completed.

Notes
Big DB additions in this PR.

@Zulu-87351 I'll be making documentation tasks for this shortly. Do you think you can write documentation for this by Sunday the 8th?

Most likely yes. @Soyvolon


update --> install

@meltsufin
elharo@elharo:~$ gcloud components update app-engine-java
You have specified individual components to update.  If you are trying
to install new components, use:
$ gcloud components install app-engine-java
Do you want to run install instead (y/N)?  y

CLA problem closed in favor of #157


Config Settings Usability

Is there a reason why all of the application/Config classes should not be in system/Config?
It seems to me that the ones in application/Config should extend the ones under system/, and contain commented properties/settings, and methods, that a developer could over-ride. Detailed descriptions could be in either place.
The way it sits now, any changes to any configs in the framework will require a developer to reintegrate the "new, improved" stuff manually into the application/Config folder in each of their projects, rather than just having to worry about whatever changed.
If the intent is that a ".env" file provide for project-level customization, why do we need the classes in application/config.
The details might differ slightly between config classes, but the above feels like a reasonable & O-O approach to me.

It's only unusable because you're developing a site with a framework that's under heavy development. :)
First - .env files are for environment configuration, not application configuration. They just provide a way for server-specific settings to be modified and override whatever the defaults were, both keeping sensitive info out of the repo and allowing multiple devs on a team to easily override the settings. But the application settings are still the defaults.
While we could do them all in system with copies in application, all you really gain is a slight performance hit during every request as 2 files have to be loaded instead of one. The vast majority of the time there will be few, if any, configuration setting changes in each official release. It's the same as it is with all previous versions of CI.
The way I see it, these are settings that are application-specific, not system-specific so they belong in the application. Plus - I'm already fighting a losing battle with performance :)
But really, once an official release is made, I don't see them changing much. If a new major feature is added, it will likely have its own config file. We just have to document any changes in the change log and I think we're good.

Ok. I will table the suggestion for now, and re-examine the notion once we have progressed much further along  :-)


Moved flushing of async response to correct branch

Fixes #143
@iribaar @wyzssw @cybuch

Do you test it with external setup?

:+1:

Do you test it with external setup?

Yes. It's not testable with Spring's MockMvc.

:+1:


How do you use the hidden state from the previous training step in the next step?

I want to train an LSTM Language Model using Lightning, but I need to pass the previous step's hidden state to the next training step. The raw training loop looks something like this:
model.train()
hidden = model.init_hidden(batch_size)
for data in train_iter:
  text, target = data.text, data.target
  model.zero_grad()
  output, hidden = model(text, hidden)
  hidden = detach_tensors(hidden)  # for truncated bptt
  loss = criterion(output.view(-1, vocab_size), target.view(-1))
  loss.backward()

  optimizer.step()

How can I achieve this with Lightning? Thanks!

Would it be fair to say that this advice has been superseded by the bptt argument in Trainer?

yes! 0.9.0 makes this very clear. check out the latest master docs

Thanks for the clarity!


[10acre-ranch] not able to install Kubernetes in multi-host setup

Rancher versions:
rancher/server:v1.6.2
rancher/agent:v1.2.2
Infrastructure Stack versions:
healthcheck:v0.3.1
ipsec:holder
network-services:v0.9.1
scheduler:v0.8.0
kubernetes (if applicable):v1.5.4-rancher1-4
Docker version: (docker version,docker info preferred)
sudo docker info
Containers: 35
 Running: 34
 Paused: 0
 Stopped: 1
Images: 26
Server Version: 1.12.6
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 188
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: overlay bridge host null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.8.0-52-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 29.45 GiB
Name: rancher-test-1-10acre-1
ID: MFRR:DKAC:YAJL:PDLT:TUTP:EFSW:XU4E:ZYJS:BLBS:CIQE:HETJ:6QB6
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 <IP_ADDRESS>/8

Operating system and kernel: (cat /etc/os-release, uname -r preferred)
4.8.0-52-generic

Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
GCE
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
./bin/gce-10acre-ranch -u https://releases.rancher.com/install-docker/1.12.sh -n 3 -m n1-standard-4 -M n1-standard-8 -z europe-west1-b -c rancher-test-1

Environment Template: (Cattle/Kubernetes/Swarm/Mesos)
Kubernetes
Steps to Reproduce:

Run gce-10acre-ranch command shown above
Install Kubernetes from the catalogue with default parameters.
Kubernetes fails to start, with most of containers showing "cannot join network of a non running container" error
De-activate all but one host
Remove Kubernetes and re-install it
Re-activate all hosts
Run kubectl get node – only one node is registered
only one etcd is healthy in Rancher UI, two of other etcd nodes are in " Initializing" state
Removing all but one host gets results in etcd-2 and etcd-3 crash looping with " Allocation failed: host must not have a container with label io.rancher.stack_service.name=kubernetes/etcd and resource constraints: [1 instanceReservation])"
Re-installing Kubernetes seems to work okay

Additional observations:

all 3 of the healthcheck container (healthcheck-healthcheck-{1,2,3}) don't leave "Initializing" state
scheduler-scheduler-1 doesn't leave "Initializing" state

Results:
Kubernetes seems to install only in single-host cluster. I've spent half-a-day trying different versions of Docker and chasing logs of containers that died quicker then I could get the logs.

I have run the same command many times with no issues. Are you sure you have UDP ports 500 and 4500 open on your GCE instances?

@deniseschannon yes, I'm sure those ports are open.

@errordeveloper Can you please collect the logs using: https://github.com/leodotcloud/rancher-logs-collector
Seems like you might be having trouble with networking?

With @cloudnautique's help, we've identified that opening all ports to the public resolves the issue.
I think this needs documenting, but also it'd be best to identify how to solve the issue without exposing all of the ports to the internet.


devServer example

Trying to get it working with devServer with no luck. Looking at webpack docs says it takes object, but vbuild development options says it takes a function.
Is this even same devServer?
I can't to get it working just yet, do you maybe have an example?

devServer there is provided by webpack-dev-server but we're using a custom server 😅 this one here is just a function that takes express() instance as argument

maybe we should switch to that 🤔

I see you included this in vue-cli build - neat-o!


net: LookupAddr returns a zero length slice when looking up its own IP address on a Windows DNS server

What version of Go are you using (go version)?
go version go1.11.4 windows/amd64

Does this issue reproduce with the latest release?
Yes

What operating system and processor architecture are you using (go env)?
go env Output
$ go env
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\jftuga\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\jftuga\go
set GOPROXY=
set GORACE=
set GOROOT=C:\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\jftuga\AppData\Local\Temp\go-build308914574=/tmp/go-build -gno-record-gcc-switches

What did you do?
// dnstest.go
package main
import "fmt"
import "net"
import "os"

func main() {
    	ip := os.Args[1]
    	fmt.Println("LookupAddr on ", ip)
    	addresses, err := net.LookupAddr(ip)
        if err != nil {
    		fmt.Println("error:", err)
    		return
        }
    	if len(addresses) == 0 {
    		fmt.Printf("error: addresses has a length of zero")
    		return
    	}
    	fmt.Println("results:",addresses)
}

<IP_ADDRESS> is a Active Directory server running DNS
This program is running on <IP_ADDRESS> and the bug is only seen in this situation.

What did you expect to see?

Windows Server 2008 R2 Enterprise

Windows Server 2016 Enterprise

<IP_ADDRESS> is a Active Directory server running DNS
dnstest.exe <IP_ADDRESS>
LookupAddr on  <IP_ADDRESS>
results: [dns1.example.com.]

What did you see instead?
If I run this program on the DNS server itself, this is the result:
dnstest.exe <IP_ADDRESS>
LookupAddr on  <IP_ADDRESS>
error: addresses has a length of zero

This problem only occurs when:

1. Windows OS, this does not occur under Linux
2. This program is running on the DNS server itself
3. It is looking up it's own IP address

In essence, this program does not return any hostnames when looking up it's own IP address when running on a DNS server under Windows.  Instead, it returns a zero length slice. In this situation, err is nil.
Can someone else reproduce this?
Also, should err be set when len(addresses) == 0?

https://golang.org/pkg/net/#InterfaceAddrs mentions

On Windows, the resolver always uses C library functions, such as GetAddrInfo and DnsQuery.

When no C compiler is installed, net.LookupAddr() is not reporting the unavailability of C like the usual exec: "gcc": executable file not found in %PATH%. Setting GODEBUG as documented does not change this behavior.

When no C compiler is installed, net.LookupAddr() is not reporting the unavailability of C

You do not need C compiler to use net.LookupAddr on Windows.
Alex

The behavior of net.LookupAddr can be reproduced independently using the Powershell instruction Resolve-DnsName -Name <IP_ADDRESS>.in-addr.arpa -Type 6 called here DNSQuery
Type 6 does not return a value when not registered in a public DNS in line with the in-addr domain definition rfc1035.
Using the nslookup command like in the tests of the net package resolves 192. values.
const ipname = "<IP_ADDRESS>"

func ExampleNslookupIP() {
	var out bytes.Buffer
	var err bytes.Buffer
	cmd := exec.Command("nslookup", ipname)
	cmd.Stdout = &out
	cmd.Stderr = &err
	if err := cmd.Run(); err != nil {
		log.Fatal(err)
	}
	r := strings.ReplaceAll(out.String(), "\r\n", "\n")
	// nslookup stderr output contains also debug information such as
	// "Non-authoritative answer" and it doesn't return the correct errcode
	if strings.Contains(err.String(), "can't find") {
		log.Fatal(err)
	}
	fmt.Println(r)
	// Output: <your server name>
}


cmd/compile: extra (confusing) error message after shift error

package main

func main() {
	var s uint
	var _ interface{} = 1.0 << s
}

produces
prog.go:5:6: cannot use 1 << s as type interface {} in assignment
prog.go:5:26: invalid operation: 1 << s (shift of type float64)

on the playground (https://play.golang.org/p/lZceKWg78OH). The first error message is misleading and unnecessary. Should suppress once we know that the shift is invalid.
Not urgent.

This appears to be fixed, the reproducer above now generates a single error line:
./prog.go:5:6: invalid operation: 1 << s (shift of type float64)

Closing here.


Change Label to Focus and Stop

Reference for this issue #10

For #18 and #7

Done @kdaghari

@ikrydev Your PR was successfully merged. I know that this is a pretty small and (relatively speaking) insignificant project however, congrats on making an everlasting impact on it. With that said, I'd like to give you a two tips in regards to git/hub (that I hope will help you going forward):

One branch. One thing. Any branch you create should be focused on doing one thing and one thing only. (The Unix philosophy: do one thing and do it well).
Branch names should always be prefixed with either feat (if you're adding/bettering(refactoring) something) or hotfix (if you're fixing a bug)

@kdaghari Cool... thanks for your advice... ^_^


Unclear docstring in Well-class on variable ‘rate’ for transient cases

In GitLab by @HendrikKok on Nov 7, 2023, 10:28
This should not be a list of floats, but dataset with index and time?

If I'm not mistaken, both are allowed. If list of floats, extraction is constant through time. If dataarray with index and time as dimensions, the extraction rate varies through time.


Is Test Coverage to PR Functionality Broken?

On PR #41, no test coverage showed up in PR. Huh?

But it's working in PR #44
My guess is that PR #41 involved so much change that the bot was confused.
Will re-open if I'm wrong.


Format all Javascript with prettier

Codecov Report

Merging #203 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #203   +/-   ##
=======================================
  Coverage   69.52%   69.52%
=======================================
  Files          28       28
  Lines        1693     1693
=======================================
  Hits         1177     1177
  Misses        516      516

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 54a8e5d...f2c498e. Read the comment docs.


Different behavior between Foxy and Humble

I am not really sure if my request is a bug or not, but I believe the behavior is intended and I can't find why.
In webots_ros2_universal_robot package, we use the joint_trajectory_controller package to send goal positions to multiple joints of an ABB and a UR5e robot. In Foxy, the trajectory is very smooth and it seems like multiple points are interpolated between two given trajectory points. By listening to the /robot-name/state topic, I can see that the publish rate is high (16 hz).
But on Humble, it seems like there is only the given trajectory points that are used, without any interpolation or any similar algorithm. In Webots, the robot has more rough movements and is really less smooth than in Foxy. When listening to the /state topic, the rate is very low (less than 1 hz). It seems that only the given goal positions are used. I don't know if the publishing rate has anything to do with the actual trajectory, but it really gives the impression that on Foxy there are more points taken in account.
All files, including the parameters file (shown below), are exactly the same for both distributions (Foxy and Humble):
/**:
  ros__parameters:
    # controller_manager
    update_rate: 20

    abb_joint_trajectory_controller:
      type: joint_trajectory_controller/JointTrajectoryController

    abb_joint_state_broadcaster:
      type: joint_state_broadcaster/JointStateBroadcaster

    # abb_joint_trajectory_controller
    joints:
      - A motor
      - B motor
      - C motor
      - D motor
      - E motor
      - F motor
      - finger_1_joint_1
      - finger_2_joint_1
      - finger_middle_joint_1
    command_interfaces:
      - position
    state_interfaces:
      - position
    allow_partial_joints_goal: True`

Is there anything that has changed in the trajectory following algorithm? Is there any parameter that can be set to get the same behavior on Humble as on Foxy?
For information the positions are sent from this file to the FollowJointTrajectory client with the send_goal_async() function.
Thanks a lot for your time!
To Reproduce
Steps to reproduce the behavior:

Install webots_ros2
Start the UR example with ros2 launch webots_ros2_universal_robot multirobot_launch.py
See a different behavior on Humble and Foxy.
Optional: Check the /state topic rate of each robot.

Environments

OS: Ubuntu 20.04
Version: Foxy
&&
OS: Ubunut 22.04
Version: Humble

Any idea on what change could cause the different behavior between both distributions?

The algorithm hasn't changed, some handling and controller-level interfaces may have that result in what you are experiencing. That being said, smooth interpolation is the point of this controller so if it isn't happening that's an issue.
The state topic is published at a set rate, the speed of it is not indicative of issues with the controller.
How fast are commands sent to the JTC? And which interface (action/topic) is used?

The update rate is set to 50, to match the simulation timestep. We use the FollowJointTrajectory action.
The interpolation seems fine but the difference is really in the speed at which joints are getting to the goal positions. Something may have changed in gains, maximal velocity or similar.
Here are videos to compare both behaviors. It should help understanding what is happening. We can clearly observe that movements are slower and smoother on Foxy than on Humble.
FOXY
https://user-images.githubusercontent.com/61198661/237043032-96ce0f98-1011-4ac4-9742-1a7b251d405f.mp4
HUMBLE
https://user-images.githubusercontent.com/61198661/237043047-2f21daaa-4471-4fc6-8498-ca341b37591e.mp4

Is there a way to limit the speed when using position control (Position State Interface and Position Command Interface)? It seems that the controller is trying to reach the target position as fast as possible. I have tried increasing the time_from_start value but all it does is add several intermediate positions for all the joints. It really feels like the interpolation is working, but the speed at the target points is not continuous (it goes down to zero).

I think there was an issue with the JTC not doing interpolation properly (or at all) recently. Have you figured out more @christophfroehlich ?

The issue I experienced is described in #574, but I think it is not related. I haven't used JTC with distros older than humble, so I can't say if something changed.
What I see that you use position command interface only, as far as I remember it interpolates with constant velocity between the given points.
Since #520 the state publish rate was removed in rolling, in humble you can set the state publish rate, defaulting to 50Hz: https://github.com/ros-controls/ros2_controllers/blob/602b153f4cd87818204be035d85127188c319f75/joint_trajectory_controller/src/joint_trajectory_controller_parameters.yaml#L53-L60
If you don't receive it with that rate, something is broken.
If you get that running, could you plot the reference value from the state topic?

I have version 3.5.0 of JTC, and I'm currently investigating the rate of the /state topic. However, I'm encountering a low publish rate (1 Hz), even after adding the parameter to my YAML file (setting it to 50 Hz).
I'm wondering if this low publish rate could be the reason why the joints are attempting to move to the next position as quickly as possible? Could this be a bug in JTC, or could it be related to my ROS node that publishes the trajectory to the ActionClient?
It's worth noting that my node responsible for sending the trajectory to the ActionClient has a subscriber to the /state topic. This subscriber helps detect the first received message because the wait_for_server() method reports that the joint_trajectory_controller node is ready, even though it may require additional time to fully prepare to receive commands. I tried to remove it but it doesn't seem to fix the issue.

the topic should be published even if no action was sent to JTC?!
You could try to adapt the demo JTC action client to eliminate effects coming from your client.
I'll try to make a minimum example based on the RRbot, if it works there we can look for the differences

I haven't gone as far as updating the demo JTC client to match our project but I already came across something weird.
I have modified the RRbot launch file to start the joint_trajectory_position_controller instead of the forward_position_controller.
In the original config file the update_rate is set to 10 and the state_publish_rate to 200. When I check the /state topic, the rate is at 10, which is probably due to the update rate limiting the state publish rate. But if I increase the update_rate to 400 (or any value above 200.0), the /state topic has a rate of 400. Shouldn't it be limited to 200 (or the value of the state_publish_rate parameter)?
I also tried to remove the state_publish_rate parameter, so that it defaults to 50 Hz. But it is always publishing at the rate given by the update_rate parameter.
Is this normal behavior?

In the original config file the update_rate is set to 10 and the state_publish_rate to 200. When I check the /state topic, the rate is at 10, which is probably due to the update rate limiting the state publish rate. But if I increase the update_rate to 400 (or any value above 200.0), the /state topic has a rate of 400. Shouldn't it be limited to 200 (or the value of the state_publish_rate parameter)?
I also tried to remove the state_publish_rate parameter, so that it defaults to 50 Hz. But it is always publishing at the rate given by the update_rate parameter.

Note that this behavior is only present on Iron and Rolling (3.5.0). It seems to work correctly at the rate of state_publish_rate in Humble (version 2.21.0). Given that in our project, the state topic is published at 1Hz on Humble, Iron and Rolling, it may not be related to this.

Starting from 3.3.0 of joint_trajectory_controller (released to iron and rolling), the state_publish_rate parameter was removed. I removed the remnant today also from the demos with https://github.com/ros-controls/ros2_control_demos/pull/297.
When I now launch ros2 launch ros2_control_demo_example_1 rrbot.launch.py with the joint_trajectory_position_controller, I get the correct rate
ros2 topic hz /joint_trajectory_position_controller/controller_state
average rate: 10.002
        min: 0.099s max: 0.101s std dev: 0.00053s window: 11

and it also changes with
controller_manager:
  ros__parameters:
    update_rate: 25  # Hz

to 25Hz.
With the older releases there is an issue that it publishes this topic only with the rate of the controller_manager, if state_publish_rate is way higher then the update_rate of the controller_manager. If a lower state_publish_rate is given, the topic is published at a fraction of the update_rate only.

One suggestion: You could use the MockComponent instead of your simulator, and see if you observe the same behavior.

Thanks a lot for the references and tips, including the use of PlotJuggler. After hours of debugging, I finally found the origin of the issue! I have used the ros2_control_demo package to publish joint goal positions through the /trajectory topic and the issue on the state publish rate was still present. So it was definitely not a problem from our controllers publishing the goal positions on the action server. I then looked carefully at the ros2_control config files, which have the following syntax:
/**:
  ros__parameters:
    # controller_manager
    update_rate: 20

    abb_joint_trajectory_controller:
      type: joint_trajectory_controller/JointTrajectoryController

    abb_joint_state_broadcaster:
      type: joint_state_broadcaster/JointStateBroadcaster

    # abb_joint_trajectory_controller
    joints:
      - A motor
      - B motor
      - C motor
      - D motor
      - E motor
      - F motor
      - finger_1_joint_1
      - finger_2_joint_1
      - finger_middle_joint_1
    command_interfaces:
      - position
    state_interfaces:
      - position
    allow_partial_joints_goal: True`

This is the source of the problem. For a reason, this was working in Foxy but not in later distributions. I am not at the origin of this file structure but I find it really unclear. So I converted it to:
abb/controller_manager:
  ros__parameters:
    update_rate: 50

    abb_joint_trajectory_controller:
      type: joint_trajectory_controller/JointTrajectoryController

    abb_joint_state_broadcaster:
      type: joint_state_broadcaster/JointStateBroadcaster

abb/abb_joint_trajectory_controller:
  ros__parameters:
    joints:
      - A motor
      - B motor
      - C motor
      - D motor
      - E motor
      - F motor
      - finger_1_joint_1
      - finger_2_joint_1
      - finger_middle_joint_1
    command_interfaces:
      - position
    state_interfaces:
      - position

    allow_partial_joints_goal: true

This works perfectly and the interpolation is now completely smooth. Something in the previous syntax was completely messing the rate at which topics and nodes were running.
Thanks again for your help!

Ah, I see the difference now. With the earlier yaml, you set
    joints:
    command_interfaces:
    state_interfaces:
    allow_partial_joints_goal: True`

for all nodes in your system. But not sure how this explains your behavior, but it seems to be related with the missing namespaces.
@bmagyar or @destogl do you have an idea what the source of the problem was, and how we could be more robust here?

If parameters are not set properly, everything is possible. That is m understanding. How knows which parameters and why controller were using.


Implement getSnapshotBeforeUpdate (CPLAT-4766)

Description:
React16 added the lifecycle method getSnapshotBeforeUpdate. We needed to add this to Component2 and begin the transition of removing older lifecycle events that will no longer work.
Changes

Add the new lifecycle event to react.dart, react_client, react_interop, and _dart_helpers.
Add an optional third parameter to componentDidUpdate.
Add a mixin that can be used to ensure type consistency between the return value of getSnapshotBeforeUpdate and the new third parameter for componentDidUpdate.
Remove componentWillUpdate from react_interop.
Add deprecation messages to the method.
Add new tests.
Adjust old tests that relied upon lifecycle methods that are no longer being called for Component2.

Testing suggestions:

CI Passes
Double check that the new added tests are not false positives
Manually test the new lifecycle methods and ensure the return value of getSnapshotBeforeUpdate gets passed to componentDidUpdate successfully.

Potential areas of regression:
There shouldn't be any for consumers as Component2 is new, but any code reliant upon old Component2 lifecycle events would now break.

+10

QA +1


refactor(anta): AVD integration + AntaTestFilter support

Hello,
Draft PR for the integration of AVD with ANTA + new add-ons.
Major Changes

Change of InventoryDevice class to an abstract class to support subclasses
Creation of InventoryDeviceHttpApi subclass to support Ansible HttpApi connection plugin
Creation of InventoryDeviceAioeapi subclass to support the existing async aioeapi connection plugin and replaced all the necessary occurrences of InventoryDevice for InventoryDeviceAioeapi
Added extra decorators in AntaTest to support synchronous connection plugins like Ansible HttpApi

Minor Changes

Added support for AntaTestFilter class to skip tests. All tests with previous skip_on_platforms decorator have been updated with AntaTestFilter functionality
Added get_value tool
Added test_category and test_description to TestResult - for AVD report
Added the extract_parameters static method under a security test to support extracting data from AVD.
Cleaned-up docstrings

To be completed

Complete the integration of AntaTestFilter to BGP related tests - deprecate check_bgp_family_enable decorator

Done, Need to fix pytest

Add the extract_parameters method to all tests supporting it

Mapping will be done in AVD

@titom73 Please hold for the review for now. Still work in progress. Thanks!

PR closed. I will create multiple small PRs for the AVD integration for easier management.


Storm ORM Integration: GetToken

Storm ORM is a great toolkit for BoltDB that can greatly ease the internal processes of CDN such as retrieving, updating, deleting, and inserting information from/in the database. We are planning to integrate this toolkit in CDN, but this process needs to be divided into smaller parts for clarity. Designed structures and functions can be found here: https://www.mindmeister.com/1111648085?t=5TfweNPe8y# (draft).
This issue is dedicated to the following goal(-s):

implement GetToken function

Canceled


src: CheckAuth() calls registry directly

CheckAuth() calls registry directly not using docker daemon as a middle-man.

@zroubalik would you /lgtm?

/lgtm


Feature request: Web server

It would be cool to perhaps implement a simple web server to serve as an API, for example using CherryPy.

After quickly playing around I guess this is pretty easy to implement separately, using Pybird as a library.

I like the idea -- I think you're probably right that it would be better implemented separately. Would like to see whatever you come up with if you don't mind showing it.

So far it's as simple as
import cherrypy
import json
from pybird import PyBird

class PybirdAPI(object):
    pybird = PyBird(socket_file='/run/bird.ctl')

    @cherrypy.expose
    def index(self):
        return "PybirdAPI"

    @cherrypy.expose
    def peer_state(self):
	peer_state = self.pybird.get_peer_status()
        return json.dumps(str(peer_state))

if __name__ == '__main__':
    cherrypy.quickstart(PybirdAPI())

Oh, awesome, haven't used cherrypy in years and years, forgot how simple it was :) Leaving this open to at least add to a docs or example section, thanks


Fun way to set shared scope with a before-like function

When I was new to Mocha, I thought that maybe this would work:
describe('Redis should failover successfully', function ()

    before(function(){
         var sentinel = require('redis-sentinel');
         var sentinelClient = sentinel.createClient(endpoints, {role: 'sentinel'});
    });

    it('Should return error 400 when message is not application/json', function (done) {

        sentinelClient.send_command('SENTINEL', ['failover', 'my master'], function(err, resp){
        //of course, sentinelClient is not defined so this won't work
        });
    });
});

however, of course, the before() callback function doesn't share the same scope as the it() callback function.
So you have to do something like this:
describe('Should accept all incoming message.', function () {

    var sentinel = null;
    var sentinelClient = null;

    before(function(){
         sentinel = require('redis-sentinel');
         sentinelClient = sentinel.createClient(endpoints, {role: 'sentinel'});
    });
    it('Should return error 400 when message is not application/json', function (done) {

        sentinelClient.send_command('SENTINEL', ['failover', 'my master'], function(err, resp){

        });
    });
});

Frankly, I find this to be pretty unclean - having to declare variables in the describe block. It would really nice to be able to declare them in the before.
In other words, it would be really slick, using the plasticity of JS, to make the scope for the describe callback to be shared with the scope from the callback of before(), so that you could do what I wanted Mocha to be able to do when I was a Mocha newb.
Has anyone made a request like this prior? Does this make any sense?

I think this is a misunderstanding of scope and closures in JS. How would you propose we achieve this?
I think you might be confusing modifying scope with the triviality of binding contexts in JS. Your original example can be roughly achieved using:
$ cat test.js
before(function() {
  this.object = {foo: 'bar'};
});

it('test', function() {
  console.log(this.object);
});
$ mocha test.js

{ foo: 'bar' }
  ✓ test

  1 passing (10ms)

Well, in order to share scope between two functions, you'd have to put in one inside the other. I don't know of another way off the bat. In this case, you'd have to secretly be putting it() inside before(). I don't know if it's possible but it would be fun to see if it were.

I don't know if it's possible but it would be fun to see if it were.
Unfortunately, without a build step, or parsing/manipulating the test files and using eval, it's not. We can't change the fact that JS has function-based lexical scoping.

The sexier way to do this would be of course:
describe('this refers to callback function',function(){
before(function() {
  this.object = {foo: 'bar'};
});

it('test', function() {
  console.log(this.object);
});

});

I checked and this does refer to the callback hook function (I think),
https://www.dropbox.com/s/a64mp30f2wt5c4y/Screenshot 2015-07-01 13.46.20.png?dl=0

Yup, it does. That's a feature of mocha :) You can set properties on the context itself, and it'll be shared between hooks and specs of a suite.

that's pretty cool. is there a place in the docs that talks about this?

Yup! https://github.com/mochajs/mocha/wiki/Shared-Behaviours

kool thx


Possible Miscompile during Block RAM Inference?

Steps to reproduce the issue
To test something regarding BRAM inference, I created a yosys script that duplicates the commands of synth_ice40 up until the fine label, at which point I write out to a file.
I compile a verilog module called bram.v (a generic inferable block RAM) using two scripts- bram.ys, which uses the synth_ice40 command directly, and bram-man.ys which is described in the previous paragraph. Just out of curiosity, I also provide an extra target in the Makefile, which finishes up synthesis using synth_ice40 -run fine:. Here is a test case: bram.zip
Expected behavior
Since the commands being run in each script are nominally the same I would have expected both scripts to have similar output, with inferred BRAM mapped to SB_RAM40_4K in both files.
Actual behavior
Instead, the synthesis script bram-man.ys almost matches the input bram.v file, as if most (but not all) optimizations and passes were ignored on the design; write enables got lifted out of the always block, however. As expected, if you run make extra, yosys ultimately maps memory to a rather large amount of flip-flops instead.
Is this a bug, or does synth_ice40 do more than provide a thin wrapper around the listed commands in the manual on page 134-135?
Version
William@William-THINK MINGW64 ~/src/iverilog
$ yosys -V
Yosys 0.7+606 (git sha1 7e5801be, x86_64-w64-mingw32-g++ 7.3.0 -Os)

(This commit may not match anything in tree- see #573)

I think this line in bram-man.ys
memory_bram rules +/ice40/brams.txt
should be
memory_bram -rules +/ice40/brams.txt
Otherwise you are running memory_bram only on non-existent module rules.

... ... ...
I withdraw my issue...


Blank page when throwing an error from a ~/pages/[slug].vue route parameter when hosting static generate

Environment

Operating System: Linux
Node Version:     v16.20.0
Nuxt Version:     3.6.0
Nitro Version:    2.5.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      nitro
Runtime Modules:  -
Build Modules:    -

Reproduction
Open https://stackblitz.com/edit/github-rdlsvu-s7ohlc, the nuxt generate command will run and for reproduction purposes, the static page will be served using npx servor .output/public, Write any invalid path or click on the error link and will see a blank page

If I delete the [slug].vue file and run nuxt generate and  npx servor .output/public again, if any invalid path is entered, we see the normal error page of nuxt that should be shown instead of a blank page

Describe the bug
Let's say I want to use a page route parameter slug like this
pages/
--| [slug].vue
--| index.vue
--| ...

and inside the [slug].vue file I would like throw an error if the route parameter name doesn't exists within the properties of an object
<script setup>
const { params } = useRoute();

const obj = {
  foo: 'foo content',
  bar: 'bar content',
};

if (!obj[params.slug]) {
  throw createError({
    statusCode: 404,
    message: 'Page not found',
  });
}
</script>

The expected behavior would be to see the nuxt 404 error page when any invalid path is entered but I see a blank page instead.
Additional context
The issue is only present when the app is generated statically, the routing works as expected except the error page. This doesn't happen in dev mode or when it's dynamically hosted
Logs
No response

Would you provide a reproduction? 🙏

Would you provide a reproduction? 🙏

I did already 😄 but here's the stackblitz link again https://stackblitz.com/edit/github-rdlsvu-s7ohlc

Ugh. Sorry, missed that!

Two issues:

the nitro config in your nuxt.config should be wrapped in prerender (this is unrelated, but just an observation)
when you throw the error you must use fatal: true to force the error page

https://stackblitz.com/edit/github-rdlsvu-qymwyh?file=package.json,pages/[slug].vue,pnpm-lock.yaml

Thank you so much for the help and for making nuxt the best framework ever! I'm kinda addicted to this framework


Add action: str attribute to the BrokerMessagePayload

[TODO]

Closing this issue as it is moved to https://github.com/minos-framework/minos-python/issues/90


Support for Dynamic Quota in Chat-Models

Is there an existing issue for this?

[X] I have searched the existing issues

Description
I would need to enable dynamic quota for the default gpt models
New or Affected Resource(s)/Data Source(s)
openai_deployment
Potential Terraform Configuration
eployment = {                                # TODO make sure to update corresponding litellm config
    "chat_model" = {
      name          = "gpt-4o"
      model_format  = "OpenAI"
      model_name    = "gpt-4o"
      model_version = "2024-05-13"
      scale_type    = "Standard"
      dynamic_quota_enabled = true
      #capacity      = 120
    },

References
https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/dynamic-quota

Hello @g4challenge,
TL;DR waiting on Terraform provider feature
to implement this feature in the module we need first the azurerm provider to support this feature.
I see there is a open issue https://github.com/hashicorp/terraform-provider-azurerm/issues/23988 and an existing PR https://github.com/hashicorp/terraform-provider-azurerm/pull/25401
We have to wait for the feature to be merged.
thanks

Hello @g4challenge
I also noticed that the feature is in preview. We will add the feature to the module only when it is promoted to GA.


Add a License file

Dear Sudeep,
I couldn't see the License doc for this repo. Could you please let me know if there is a license for this repo? I am wondering if this is available as a free open source repo for a commercial use?
Thank you,
Aliye

Dear Aliye,
Thank you for letting me know about that. My bad for not having it in there, to begin with. I've now added a License file to the repo. The whole thing is under the MIT License, so you can use it however you want, even for commercial stuff.
Just take a look at the full license text in the LICENSE file in the repo if you want more info. Thanks for pointing this out and for your understanding. You're the best!
Take care,
Sudeep


Gollum doesn't play nice with un-canonicalized filenames, and breaks offsite links when replacing mediawiki

Firstly I know what Readme.md says about file names with whitespace or forward slashes not being displayed. But the code does not reflect the Readme.
def self.cname(name)
  name.respond_to?(:gsub) ?
    name.gsub(%r{[ /<>]}, '-') :
    ''
end
def page_match(name, filename)
  if match = self.class.valid_filename?(filename)
    Page.cname(name).downcase == Page.cname(match).downcase
  else
    false
   end
end

So in fact any spaces forward slashes lt or gt chars in either the request or the filename will be replaced with dashes when the matching happens. meaning its perfectly possible to load all files, even those containing the restricted chars. Unfortunately other page operations still don't work so well, which is something this patch fixes.

Gollum uses hyphens (-) as a substitute for spaces in links

Mediawiki uses underscores (_) as a substitute for spaces in links

Gollum uses hyphens (-) as a substitute for spaces in filenames

Mediawiki uses an sql-lite instance, and doesn't substitute spaces in titles

When importing mediawiki data into gollum, flat files are created from the page title. page with title "Foo Bar" becomes Foo Bar.mediawiki.
"Foo Bar" can be accessed with /Foo%20Bar or /Foo-Bar, it cannot however be accessed using /Foo_Bar, which breaks all external links to all the wiki pages. When the wiki gets a few thousand hits a week from external linking, this is a big deal.
There are a couple of issues here:

When searching for page matches, Gollum substitutes whitespace in filenames for dashes, inline with its canonicalization scheme. This works fine for wikis originally created in Gollum, but other wikis may use different substitutions for whitespace. Mediawiki for example uses underscores.

In normal operation no pages created by Gollum will contain whitespace in the on disk filenames. If we assume all files that contain whitespace were created by a different wiki then the standards for page matching can be relaxed without breaking any existing Gollum sites.
With default Gollum install:
my-file.md will match 'my file' and 'my-file'         # Created internally
my file.md will match 'my file' and 'my-file'         # Created externally
my_file.md will match 'my_file' and nothing else # Created internally
With patched Gollum install:
my-file.md will match 'my file' and 'my-file'                  # Created internally
my file.md will match 'my file', 'my-file' and 'my_file'     # Created externally
my_file.md will match 'my_file' and nothing else          # Created internally

All the page manipulation functions in lib/gollum/committer.rb and lib/gollum/wiki.rb are set up to use a canonicalized version of page.name when manipulating existing pages. This breaks when the on disk filenames are not in the canonicalized format Gollum expects. For example when updating the format of the page "my test.md', "my-test.mediawiki" will be created, but "my test.md" will still be left in the working directory. It's also impossible to delete pages which don't fit with Gollum's canonicalization scheme.

The solution is to use the stripped filename (filename without path and extension) to refer to files in the git repo, not the re canonicalized page name when working with existing pages.
This branch passes all the tests that also passed in current master (most of the failures are Markdown issues), and the additional tests added for working with un-canonicalized files. Most of the additions are defining additional tests.

Would love to see this merged in

+1 ;)


Fix hanging bench_sigverify_stage_with_same_tx

Problem

Bench is running indefinitely after #4043
The number of verified packets will never be >1 when we have the same packet

Summary of Changes

Fix exit condition for use_same_packet variant of bench

Fixes #

Verified that before #4043 and after this patch, the benches have same approximate times reported.


Additional attributes for an API request

Would be great to add these attributes for the matchmaking to be implemented (example values):
"selected_objectstore": "object_store_italy_S3_01",
"cores" : 8,
"mem" : 20,
"Platform" : "Debian",
"prefered dest" : "condor-tpv"

@abdulrahmanazab Can you remind me, are these job related attributes?

@pauldg  Yepp, as mentioned in the chat. In order to do the actual matchmaking, we need to add job attributes (requirements) to match them against the destination attributes (resource specifications), in addition to the consideration of locality, i.e. where are the input datasets stored (and if relevant, where the should the results be stored)


Acap runtime proto image

Describe your changes
Adding a new dockerfile to ACAP runtime that builds proto APIs for python.

Dockerfile.proto looks good. But the plan is to publish it to Docker Hub as well, right? If so a workflow for that would be nice

Should it be part of the ci-cd? https://github.com/AxisCommunications/acap-runtime/blob/main/.github/workflows/ci-cd.yml

Might be cleaner to have a separate file

Dockerfile.proto looks good. But the plan is to publish it to Docker Hub as well, right? If so a workflow for that would be nice

Should it be part of the ci-cd? https://github.com/AxisCommunications/acap-runtime/blob/main/.github/workflows/ci-cd.yml

Might be cleaner to have a separate file

@madelen-at-work I was thinking that dockerhub has a functionality to automatically rebuild for instance on tag. This is what we do at the moment for the computer-vision-sdk. Do you think there is some advantage in making a github workflow instead of setting up dockerhub to do the build for that dockerfile?

When we open source:d this project we deliberately moved building from Docker Hub to GitHub to be able to keep everything  contained in this repo. I would prefer not setting up a new flow in Docker Hub.

Before merging this PR make sure the following remaining parts from closed PR #86 is added:

make sure platform is correctly selected in the workflow to avoid this warning

Squashed into one commit and rebased towards main in #96 instead.


USB CDC ACM sample application fails to compile

Describe the bug
usb cdc sample application using below prj.conf fails to compile,
samples/subsys/usb/cdc_acm/prj.conf
CONFIG_USB_DEVICE_PID is defined with "0x" without proper value, that's creating the compilation failure.
To Reproduce
cmake -GNinja -B ./zephyr/samples/subsys/usb/cdc_acm/build/ -DBOARD=bcm958402m2_m7 -DZEPHYR_MODULES=zephyr/cmsis zephyr/samples/subsys/usb/cdc_acm
ninja -C ./zephyr/samples/subsys/usb/cdc_acm/build/
Expected behavior
Application should compile without error.
Impact
Logs and console output
In file included from ../../../../../include/toolchain.h:41,
from zephyr/misc/generated/configs.c:7:
zephyr/misc/generated/configs.c: In function '_ConfigAbsSyms':
zephyr/misc/generated/configs.c:11:41: error: invalid suffix "x" on integer constant
11 | GEN_ABSOLUTE_SYM(CONFIG_USB_DEVICE_PID, 0x);
|                                         ^~
../../../../../include/toolchain/gcc.h:422:43: note: in definition of macro 'GEN_ABSOLUTE_SYM'
422 |   "\n\t.type\t" #name ",@object" :  : "n"(value))
|                                           ^~~~~
[46/119] Building C object zephyr/arch/arch...es/arch__arm__core__aarch64.dir/fatal.c.obj
ninja: build stopped: subcommand failed.
Environment (please complete the following information):
Additional context

@raveenp Does you board (bcm958402m2_m7) has USB device driver in Zephyr OS? No?, then why should a USB sample build for it?

closing it as there is no USB device driver exist for bcm958402m2_m7.


Add owners

/cc @zaneb

/approved

/approve
@sebwoj could you please approve?

@sadasu since you are Team Lead in Metal Platform Installer, I created Metal Platform Installer GitHub team + Metal Platform Installer Maintainers GitHub team (with your GH username as a member), so you should be able to approve PR (let's wait couple hours to sync up peribolos).

Can't go wrong with this
/lgtm

/approve

/approve


Add suggested 'depends_on' for aws_ecs_service

https://terraform.io/docs/providers/aws/r/ecs_service.html

:+1:


Add boolean variable to change behavior of multi-line actions in conf…

Added a boolean variable to control the multi-line behavior of the action module.  If rsyslog::dont_linebreak_actions == TRUE then all the options in the action will be on a single line.
This behavior might be necessary if you have CIS or STIG scans on your /etc/rsyslog.d configuration files that are looking for settings on a single line such as:
^\s*([^#]+\s+)?action\(([^#]+\s+)?\btarget="?[^#"]+"?\b
and
^\s*\*\.\*\s+@
These regexs will fail even if the configuration is correct but spans multiple lines.

REFERENCE.md is outdated

Please update REFERENCE.md with
$ bundle exec rake strings:generate:reference

Add it to the PR and CI should continue.

@smortex, I updated REFERENCE.md as you suggested but still there are errors.

It still show "REFERENCE.md is outdated".  Maybe your bundle is outdated?  I run the following and it passed:
bundle update
bundle exec rake strings:generate:reference
git add REFERENCE.md
git commit -m 'Regenerate REFERENCE.md'
git push

It still show "REFERENCE.md is outdated". Maybe your bundle is outdated? I run the following and it passed:
bundle update
bundle exec rake strings:generate:reference
git add REFERENCE.md
git commit -m 'Regenerate REFERENCE.md'
git push

Perhaps I'm misunderstanding but the tests are not passing.


doc(getting-started): Some links are unclickable

What project are you opening a pull request for?

react-instantsearch docs

Summary
In the docs, links that are followed by an h2 are not clickable:

This prevents the user from accessing them.
This is due to the h2:before overflowing the underlying text.
Result
After removing h2:before, the block doesn't overflow the text anymore:

Hi @mikaa123 thanks for the contribution. I will review that asap :)

@mikaa123 Tricky, that code is actually here so that when you use the anchors they are not hidden behind the header, if you try to click an anchor on your update it should fail because it will be hidden behind the fixed header bar.
@LukyVj can you give help maybe?

@vvo thanks for the feedback, you're completely right!
I used pointer-events instead. It won't work in IE < 11, if that's an issue.

Ok let's merge this and see if it works

My bad, didn't saw the notification. Let me know if it works

Weirdly @mikaa123 this is not sufficient because now every h2 title cannot bo hovered to get the anchor showing (compare with h3 titles). Can we fix that?


chore(ci): ci tests on version branches

Make the CI check the tests on version branches.

@bobylito Looks like the .yaml file is invalid.

Looks like the .yaml file is invalid.

fixed. There is a linter for that :)


cdk-notifier produces github url when CI configuration is for self hosted Gitlab

I'm running cdk-notifier version 2.12.5. My command line looks like the example I gave below.
cdk-notifier -ci gitlab --gitlab-url "https://gitlab.example.local" --token "$GITLAB_API_TOKEN"  -l cdk-diff.log --tag-id dev-cdk-diff  --template extendedWithResources
I then end up with a bad credentials error code (401) an example of the full error message is below.
time=<date/time> level=fatal msg="GET https://api.github.com/repos/<CI_PROJECT_NAMESPACE>/<CI_PROJECT_NAME>/issues/<CI_MERGE_REQUEST_ID>/comments?per_page=100: 401 bad credentials[]
To state the obvious: the reason for the bad credentials is because cdk-notifier is trying to connect to Github when it should be trying the --gitlab-url I've specified in the command.
Even if the string generated above respected --gitbal-url specified, the full path isn't correct. For instance the path to self hosted Gitlab api's start at: https://gitlab.example.local/api/v4/
I will continue looking through the source code, but my Go expertise is limited.

You probably have a typo in the command cdk-notifier -ci gitlab it should be cdk-notifier --ci gitlab

Ok I will try to reproduce it

I was missing --vcs gitlab from my original command line. The command line below works as expected.
cdk-notifier --ci gitlab --vcs gitlab --gitlab-url "https://gitlab.example.local" --token "$GITLAB_API_TOKEN"  -l cdk-diff.log --tag-id dev-cdk-diff  --template extendedWithResources
I should have caught that sooner. It is a little confusing since vcs isn't a required parameter and it seems like ci and vcs are duplicated with one another.

glad that it works as expected. yes agree it's a bit confusing. In some cases the git platform might be different that the CI, e.g. running the pipeline on circleci and you use github as git.


Devices

when creating a drive, the GUI allows you to select native,Qdos-FS,Qdos-like all at once and writes them all out to the string.

Oh, are they exclusive? You live and learn!

Fixed. Clicking one of the 3 options blanks the other 2.


Short speech（< 1 sec）bad performance，how to improve？thanks!

This is dealt as a separate research topic, mostly referred to as "short duration speaker verification" or "short utterance speaker verification".


👩🌾 New warnings introduced on Windows

See this report.
It might be related to this PR.

Fixed in #254


Graceful shutdown of virtual client doesn't flush remaing packets to real client

In some cases, graceful shutdown by the virtual client socket will abort sending data back to the real client, which causes incomplete TCP exchanges with the real client. It only seems to happen on random occasions and with large HTTP requests; but I will need to investigate some more.

Handling the CLOSE-WAIT state by closing the connection once the client is done sending data seems like a good fix. The only potential improvement would be to send FIN instead of RST in those cases.


Make SDK work with React Native

@alexlwn123 can you add some context please?
1M bounty once scoped out.

Make SDK Work with React Native
Scope overview: Enable the fedimint-client SDK to function within React Native environments, sharing library code with the existing web SDK.
Background
Our current SDK includes a WebAssembly (WASM) bundle that exposes the Rust-based fedimint-client to web applications. This setup allows web environments to interact seamlessly with the fedimint client.
However, React Native—a popular framework for building native/mobile apps using React—cannot directly leverage the existing WASM bundle due to environment differences between web and native mobile platforms.
Objective

Build React Native Compatibility:
Utilize UniFFI to generate bindings for the fedimint-client, making it compatible with React Native applications on both iOS and Android platforms.
Architect Shared Library Code:
Structure the React Native package to share as much library code as possible with the existing web SDK, minimizing code duplication and easing future maintenance.

Scope of Work
1. UniFFI Bindings for React Native

Generate UniFFI Bindings:
Configure the fedimint-client Rust codebase to produce UniFFI bindings suitable for React Native.
Ensure all necessary functionalities are exposed through these bindings.
Address any platform-specific issues on iOS and Android, ensuring smooth operation across devices.

2. Architecting Shared Library Code

Implement a modular architecture that allows both SDKs to import shared code without conflicts.

3. Testing and Validation

Ensure tests run successfully on both iOS and Android platforms.
(Optional but Preferred) Develop a sample React Native app demonstrating the SDK’s capabilities.

Deliverables

React Native Compatible SDK: A fully functional React Native package of the fedimint-client.
Sample App (Optional): A demo React Native application showcasing the SDK in action.

Acceptance Criteria

The React Native SDK must support all features currently available in the web SDK.
The SDK should work on both iOS and Android devices.
Shared code must be cleanly abstracted with no unnecessary duplication.

Additional Information

Coordinate with the maintainers of the existing web SDK (@alexlwn123) to ensure compatibility.

Challenges to Anticipate

Handling differences in threading models between Rust and React Native.
Managing asynchronous operations and callbacks across the FFI boundary.

References:

UniFFI Documentation
React Native Native Modules

Note: This bounty aims to expand our SDK’s reach to mobile platforms via React Native, promoting broader adoption and community engagement. Your contribution will play a crucial role in achieving this goal.

@maan2003 take a look

fedimint react native is not going to be fun
we have to bundle rocksdb, and doing it as a library is not great :/
Maybe we can just force nix on all developers. But, forcing it for existing wallets is not great.

sad... any way around using rocks? Can we get a lighter-weight version of the DB with similar guarantees?

we have to bundle rocksdb, and doing it as a library is not great :/

Is that a problem if we just leave it to the rust RocksDB crate? That is statically linking by default anyway, right? We only do dynamic linking because it avoids recompiling it all the time.

yea that sounds like the way to go


Disable running integration tests on Hydra CI

Overview
Reduces the load on Hydra by not running integration tests for PR builds. The test executables are still built however.
This uses the pr input which was added to ci-ops/jobsets/default.nix.
Comments
Tested with:
rodney@blue:~/iohk/cardano-wallet % nix-build --argstr pr 1234 release.nix -A native.checks.cardano-wallet-jormungandr.integration.x86_64-linux
error: attribute 'integration' in selection path 'native.checks.cardano-wallet-jormungandr.integration.x86_64-linux' not found

rodney@blue:~/iohk/cardano-wallet % nix-build release.nix -A native.checks.cardano-wallet-jormungandr.integration.x86_64-linux
...

Hydra jobset

bors r+


Sui Code Bug or Feature Request

const tx = new Transaction();
  tx.setGasBudget(10000000)
  const p0 = tx.pure.u64(BigInt(0))
  const money = parseInt(0.01 * 1e9)

  // tx.transferObjects([coin], address);
const p1 = tx.sharedObjectRef({
    objectId: "0x90e2dd6643d1eafe02d76a161a962e16bb573c55af934cfc86e911d64aa68b9b",
    initialSharedVersion:19218095,
    mutable: false,
})
const p2 = tx.sharedObjectRef({
  objectId: "0x0000000000000000000000000000000000000000000000000000000000000006",
  initialSharedVersion:1,
  mutable: false,
})
const p3 = tx.sharedObjectRef({
  objectId: "0x8447b6840ae21edaaf7baf9bbdf5749fff96ad4262123efd83e8d214c887f21a",
  initialSharedVersion:11984592,
  mutable: true,
})
const p4 = tx.sharedObjectRef({
  objectId: "0x23c53c945744198ff070ea9c13f9263694f3441b52b13158ff6dc2da5416e6ab",
  initialSharedVersion:19217233,
  mutable: true,
})
const p5 = tx.sharedObjectRef({
  objectId: "0x8313624f33dd48ab49b22de7032cc51f5539576fdaacb8321d408d9cb4e5cdf7",
  initialSharedVersion:11984592,
  mutable: true,
})
  const p6 = tx.pure.string("asdkjl1231")
  const p7 = tx.pure.string("guokaichen6166")

  tx.moveCall({
    target: target,
    arguments: [
        p0,
        tx.object(p1),
        tx.object(p2),
        tx.object(p3),
        tx.object(p4),
        tx.object(p5),
        p6,
        p7
    ],
});
tx.splitCoins(tx.gas, [money]);
const res = await sendTx(address, tx)
console.log(res)

why does the p0 that I built look like this?

i need this

Thanks for the report @daihaojun554.

(package: 0x626a…9a74, module: 'hive_chronicles', function: kraft_hive_profile, arguments: [Input(1), Input(2), Input(3), Input(4), Input(5), Result(0), Input(6), Input(7)] and how can i build result0 this arg？

I'm not sure how valueType is determined in that explorer, but the bytes in the transaction for those pure types are exactly identical.  A bcs encoded u64 0 value is [0,0,0,0,0,0,0,0].  Transactions do not contain type information when submitted (nothing in the transaction knows that those bytes are a u64 value).  I think to display the value in an explorer as u64 0, it would need to look at how the value is used, and determine the type of the move call argument it was passed to.

thanks， and how can i build this Result0 arg，i can't find the way

Result args are returned from commands.  Eg:  const result0 = tx.moveCall({ ...} ) which can be used in a future command:  const result1 = tx.moveCall({ ..., arguments: [result0, ...] })

ok thanks ，i have resolve this problem


Update README.md

Fix assertion in example program

Thanks! Thought I got all of these but apparently not :(


clientip: Add tests for IPv6

I thought this was not working correctly because of IPv6, it turned
out it was not working because I was trying to hit the CloudRun
endpoint directly.  Added some test coverage to prove that it works
and document this.

/lgtm
/approve


Start implementation of tutorials

This PR shall provide some starting implementation of the march tutorial of documentation group. It also reorganizes the different tutorials in a nested folder structure. Further work has to be done.

Will you be doing more work on the PR, or should we merge this now?

As this is the tutorials branch, it seems good to go.

Thanks. Yes, more work has to be done, but this will be in other PR's. Just wanted to provide the first stumbs to the members of documentation group and others.


Implement product detail

Motivation
Implement product detail
Checklist

[ ] Code follows coding conventions held in this repo
[ ] Automated tests have been added
[ ] Tests are passing
[ ] Docs have been updated (if applicable)
[ ] Temporary settings (e.g. variables used during development and testing) have been reverted to defaults

How to test
If manual testing is required, what are the steps?

Wait for https://github.com/kontent-ai-bot/kontent-ai-new-sample-app/pull/5


Cannot read properties of undefined (reading 'rimraf')

Describe the bug
Running npm run build errors out with Cannot read properties of undefined (reading 'rimraf').
There was an issue producing the exact same error message (#3111) while using @sveltejs/adapter-node and @sveltejs/adapter-static. The reason was an outdated @sveltejs/kit package. It's not the case here as all packages are at their latest versions (see System Info below).
Reproduction

Clone the example repo: g clone https://gitlab.com/i1847/sveltekit-cloudflare-rimraf
cd sveltekit-cloudflare-rimraf
npm run build

Logs
> npm run build

><EMAIL_ADDRESS>build
> svelte-kit build

vite v2.7.10 building for production...
✓ 13 modules transformed.
.svelte-kit/output/client/_app/manifest.json                    1.15 KiB
.svelte-kit/output/client/_app/layout.svelte-d4f4d2d6.js        0.53 KiB / gzip: 0.35 KiB
.svelte-kit/output/client/_app/error.svelte-4db5dde0.js         1.56 KiB / gzip: 0.75 KiB
.svelte-kit/output/client/_app/pages/index.svelte-78738526.js   0.80 KiB / gzip: 0.47 KiB
.svelte-kit/output/client/_app/chunks/vendor-f0095a1c.js        7.21 KiB / gzip: 2.96 KiB
.svelte-kit/output/client/_app/start-8c59df0d.js                20.09 KiB / gzip: 6.96 KiB
vite v2.7.10 building SSR bundle for production...
✓ 11 modules transformed.
.svelte-kit/output/server/manifest.json                    0.87 KiB
.svelte-kit/output/server/app.js                           48.19 KiB
.svelte-kit/output/server/entries/pages/layout.svelte.js   0.24 KiB
.svelte-kit/output/server/entries/pages/error.svelte.js    0.72 KiB
.svelte-kit/output/server/entries/pages/index.svelte.js    0.32 KiB
.svelte-kit/output/server/chunks/index-2dc61825.js         2.24 KiB

Run npm run preview to preview your production build locally.

> Using @sveltejs/adapter-cloudflare
> Cannot read properties of undefined (reading 'rimraf')
    at adapt (file:///home/boojum/sveltekit-rimraf/node_modules/@sveltejs/adapter-cloudflare/index.js:15:10)
    at adapt (file:///home/boojum/sveltekit-rimraf/node_modules/@sveltejs/kit/dist/chunks/index5.js:738:8)
    at file:///home/boojum/sveltekit-rimraf/node_modules/@sveltejs/kit/dist/cli.js:931:11

### System Info

```shell
System:
    OS: Linux 5.13 Ubuntu 21.10 21.10 (Impish Indri)
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i7-1195G7 @ 2.90GHz
    Memory: 23.35 GB / 31.07 GB
    Container: Yes
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 17.3.1 - /usr/bin/node
    npm: 8.3.0 - /usr/bin/npm
  Browsers:
    Chrome: 97.0.4692.71
    Firefox: 96.0
  npmPackages:
    @sveltejs/adapter-cloudflare: ^1.0.0-next.2 => 1.0.0-next.2
    @sveltejs/kit: ^1.0.0-next.225 => 1.0.0-next.225
    svelte: ^3.46.0 => 3.46.0

Severity
Blocking all usage of SvelteKit with @sveltejs/adapter-cloudflare.
Additional Information
No response

next.2 is not the latest version of the Cloudflare adapter. Please update first.

But it is. See the package as published on npm (1.0.0-next.2).
Also, output of npm outdated:
 > npm outdated
Package               Current          Wanted        Latest  Location                    Depended by
@sveltejs/kit  1.0.0-next.225  1.0.0-next.225  1.0.0-next.1  node_modules/@sveltejs/kit  sveltekit-rimraf

Sorry I should have said it's not @next, which is what you need to be using. https://www.npmjs.com/package/@sveltejs/adapter-cloudflare


Private OperationHandler trait in public interfaces

Hi, currently the OperationHandler trait which is used in public interfaces can't be named from outside aide. It this intentional? I would like to wrap aide types in my own to restrict the operations / add extra stuff implicitly, but this is currently made ~much harder than it should be~ impossible due to this.
If you would accept a PR to export this trait (possibly with the method(s) #[doc(hidden)]), could you also make a branch for 0.12.x that I could backport this to (since we haven't upgraded to hyper 1.0 yet)?

Actually nevermind, I found AxumOperationHandler which I can use. It's not exactly intuitive because the top-level ApiMethodRouter constructors don't use that alias, but it works.


Add unah.hn and unah.edu.hn

UNAH (Universidad Nacional Autonoma de Honduras)
oficial site: https://www.unah.edu.hn/
that's university oficial site, the domain is unah.edu.hn but only teacher have emails whit that domain, all students have domains "unah.hn"

I don't know that, thanks!

@Urias-Flores I am sorry, the domain unah.edu.hn is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


review axiom for renal tubular necrosis

renal tubular necrosis MP:0004154 currently uses EQ:
'has part' some
('increased amount'
and ('inheres in part of' some
('necrotic cell death'
and ('occurs in' some 'renal tubule')))
and ('has modifier' some abnormal))
Use nephron tubule instead of renal tubule for consistency; see renal tubule atrophy MP:0011346, renal tubule hypertrophy MP:0011408, dilated renal tubules MP:0002705

EQ for renal tubular necrosis MP:0004154 now uses 'nephron tubule'


ARROW-12398: Rust remove redundant bound check in iterators

This PR removes the bound checks as discussed in #9994.
Furthermore I added unsafe versions of the value method to PrimitiveArray and BooleanArray. The safe marked methods are actually unsafe. This way we can slowly transition to explicitly using the unsafe variant and later make the "safe" one truly safe.
For the time being I also added a debug_assert bounds check in those "safe" methods that are unsafe. That way we at least get a panic in debug mode instead of UB in safe code.

Codecov Report

Merging #10046 (c8b6908) into master (26a5a04) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master   #10046   +/-   ##
=======================================
  Coverage   78.70%   78.70%
=======================================
  Files         286      286
  Lines       64213    64221    +8
=======================================
+ Hits        50538    50546    +8
  Misses      13675    13675

Impacted Files
Coverage Δ

rust/arrow/src/array/array_boolean.rs
90.98% <100.00%> (+0.30%)
:arrow_up:

rust/arrow/src/array/array_primitive.rs
94.71% <100.00%> (+0.04%)
:arrow_up:

rust/arrow/src/array/iterator.rs
95.80% <100.00%> (ø)

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 c394a20...c8b6908. Read the comment docs.

This PR removes the bound checks as discussed in #9994.
Furthermore I added unsafe versions of the value method to PrimitiveArray and BooleanArray. The safe marked methods are actually unsafe. This way we can slowly transition to explicitly using the unsafe variant and later make the "safe" one truly safe.
For the time being I also added a debug_assert bounds check in those "safe" methods that are unsafe. That way we at least get a panic in debug mode instead of UB in safe code.

This is great! I think this is a great improvement from the unsafe standpoint, and this helps us limit the unsafe method only in places where it's needed (iterators/hot loops)!

Codecov Report

Merging #10046 (d3819d0) into master (26a5a04) will increase coverage by 0.20%.
The diff coverage is 95.00%.

@@            Coverage Diff             @@
##           master   #10046      +/-   ##
==========================================
+ Coverage   78.70%   78.91%   +0.20%
==========================================
  Files         286      286
  Lines       64213    64723     +510
==========================================
+ Hits        50538    51075     +537
+ Misses      13675    13648      -27

Impacted Files
Coverage Δ

rust/arrow/src/array/iterator.rs
95.80% <90.00%> (ø)

rust/arrow/src/array/array_boolean.rs
90.90% <100.00%> (+0.23%)
:arrow_up:

rust/arrow/src/array/array_primitive.rs
94.70% <100.00%> (+0.03%)
:arrow_up:

...t/datafusion/src/physical_optimizer/repartition.rs
91.80% <0.00%> (-4.92%)
:arrow_down:

rust/datafusion/src/physical_plan/mod.rs
86.20% <0.00%> (-1.80%)
:arrow_down:

rust/arrow/src/array/array.rs
76.80% <0.00%> (-0.80%)
:arrow_down:

rust/datafusion/src/scalar.rs
49.38% <0.00%> (-0.74%)
:arrow_down:

...ust/datafusion/src/physical_plan/hash_aggregate.rs
84.31% <0.00%> (-0.04%)
:arrow_down:

rust/ballista/rust/scheduler/src/lib.rs
0.00% <0.00%> (ø)

rust/ballista/rust/client/src/context.rs
0.00% <0.00%> (ø)

... and 18 more

Continue to review full report at Codecov.

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

Ok, I added some extra safety comments. I think its good to go now.
I believe the failures in CI are related to this

I tested this branch locally with cargo +nightly-2021-03-24 test --features "simd" (aka picking up the changes from https://github.com/apache/arrow/pull/10082) and it passed for me. So merging this one in


[Improve] Improve streampark-test-utils module based on [3.9 Java Streams]

Search before asking

[X] I had searched in the feature and found no similar feature requirement.

Description
[Improve] Improve streampark-test-utils module based on 3.9 Java Streams
Usage Scenario
No response
Related issues
#2986
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

N.A


Handle ValueError in case the form send '' instead of int for ChooserBlock

I encountered an issue while extending ChooserBlock to work with a Django model. As mentioned in Issue #1806 SnippetChooserBlock is the recommended method. I am not sure if this should go into Wagtail core so thought to get the views from core developers.
The following code works fine but when no service is selected Instead of giving Validation error: Field required got Server error ValueError: invalid literal for int() with base 10:.
class ServiceChooserBlock(blocks.ChooserBlock):
     target_model = Service
     widget = forms.Select

On looking into the code, value_from_form  is the function which takes value from the form. When no service is selected, the value sent by form is '' which breaks here
return self.target_model.objects.get(pk=value)

Thanks @Parbhat!
Related: #3169, #4351. (ChooserBlock was never designed to be used directly with a Select widget, and we'd need additional fixes / tests / documentation before we can consider this to be a supported setup.)

@gasman Thanks for the review. Yes, it is better to have tests / Documentation to make it a supported feature. I am currently using ChooserBlock in a project by making the fix in the subclass ServiceChooserBlock and it works fine. Will work on the tests/docs and hopefully find more issues and fix them.

I've now created #4407 as a 'master' issue to cover the task of implementing a ModelChoiceBlock for selecting from a list of arbitrary model instances. For reasons explained on that ticket, I think it makes more sense to implement this as a new block type rather than patching ChooserBlock, and so I'll close this PR - however, the work here could definitely form part of that new implementation. Contributions welcome! :-)

Thanks for creating a separate issue.


SSR and RR4 implementation is not optimal.

I wouldn't recommend using this component in an SSR environment or even on RR4 like I have shown.  It works, but isn't optimal.
I have a fully fledged solution in the works.

New version will always require the Babel plugin unfortunately otherwise the component will be way too awkward to use.

Hey, i'm actually using your boilerplate react universally (I have created many more branch to make a progressive web app, an apollo client react app, an app compatible with react-css-modules, etc.) and I came to the same conclusion about the code split component, mainly because I'm facing the "flash" effect with SSR when the module has already been imported. Do you have a public repo where you're working on this new component ? Maybe I'm gonna be able to contribute to it :)
By the way, is there any recommended way to do async routing with RR4 to replace the old getComponent method ?
Cheers ! And big up for react-universally, I tried many many many starter kit and yours was the one I was looking for (simple but easily extendable) !

Hey @PCreations!
Thanks for the kind words.  :)  It always warms the heart to hear that people are finding the starter kit useful.
I'm also super stoked to hear you have such an array of implementations against it.  If you don't mind I may start stealing some of your ideas and then reintegrate them into the project.
In terms of the code-split-component improvements:
Yep, I will create a v2 branch tomorrow for my changes.  I would definitely appreciate any and all help with it.  It would be great to set up some strong tests for it, offloading it to browserstack or a similar service to make sure we don't hit double render issues.
Also, within this change I will be including a custom CodeSplitMatch component that will play much much nicer with RR4.  It will be importable via an extensions subfolder on the library so as not to pollute the main lib import size for those not using RR4.
I'll ping you when things are up. :)

The branches in my fork are not yet stable but your can check them out if you want ! I also didn't push all my local branches yet. I'll ping you too when it's done :)

Great! Happy to add you as a collaborator too. :)

This is the new branch that will contain the code:
https://github.com/ctrlplusb/code-split-component/tree/v2
(at some point) :)

🎉
Got a working POC!  It's a manual implementation of what I want to transpile us into (avoiding crazy boilerplate overhead).
To use this library within a browser only context you have to include the babel plugin that comes with it.
For a node/browser context (i.e. SSR) you will the babel plugin, a webpack loader, and a util script added to the files array of your app entry within the webpack config.  Sounds complicated, but adding in 3 lines of code once is far better than the alternative (trust me!).
Outstanding work:

[ ] Babel plugin
[ ] Rehydrator patch
[ ] Tests
[ ] Docs

Is it "live" on the v2 branch ?

Not yet. As soon as I have it doing an initial compile I'll push it as a beta/wip

@ctrlplusb I was looking https://github.com/gabrielbull/react-router-server yesterday where theres an implementation similar. It also allows loading of the webpack bundle

Interesting. It does share some similarities with my approach, especially in regards to module rehydration it appears.  Thanks!  Thats a good reference. :)
I am going to keep on churning out this implementation as I think it is slightly more generic in nature.  But I am going to speak with the author of that library and invite him to collaborate.  I think his experience will be invaluable.

Closing in favour of #8


Find a better solution for the file picker

Currently, having issues when using the native file picker on Linux (https://github.com/JetBrains/compose-multiplatform/issues/1279).
For this reason, a custom solution is used, which is not ideal.

Using compose-multiplatform-file-picker should fix the issues.


Cookie API

Currently, only Browser#clear_cookies is implemented. There has been some discussion about the cookie API on the wtr-development list, but no conclusion.
The API needs to be implementable cross-browser, so taking some clues from WebDriver's cookie handling is probably wise (since it's already cross-browser).
watirspec is also missing specs for this.

We should get this fixed. I think something like  this was suggested once, and I quite like it:
browser.cookies.clear
browser.cookies.add 'foo', 'bar', :path => "/", :expires => 10.days.from_now, :secure => true
browser.cookies.delete 'foo'
browser.cookies.to_hash

Thoughts @jarmo, @alisterscott, @zeljkofilipin?

I did not work with cookies a lot, but the API looks good to me.

Seems good to me if 10.days.from_now is not going to be part of that API, but it's coming from ActiveSupport or any other 3rd party library.

+1 Looks great to me

OK, then that's what we'll do. Except cookies.to_hash should of course really be cookies.to_a


Start and end of event, adding some features, beautifying, closing issues

Before:

After:

Show start and end time of events
These are vertically aligned and centered. (See screenshot: "Long location")
Closes #307 #308 #356

Display multi-day events with given times as all-day events
It bothered me, that events, that span over multiple days and that are not all-day events (because they have start and end times) were shown as "normal" events that last only a few hours long. Now, these are also displayed as all-day events with their start and end times. (See screenshot: "Multiple days event with times")

Go to already existing Calendar tab, instead of creating one every time
Not that good, as I wanted it to be. Are there any JS functions on Google Calendar to open an event, without reloading the entire website?
Closes #461

Beautifying
<header> is now outside the entire scrolling view, so the scrollbar is only used for the events, which looks better. I also redesigned the scrollbar itself and added some rounded borders for events and quick-add.

Thank you for the pull-request! This looks good, for the most part.
I don't think tab re-use is a good idea, but @manastungare gave it a thumbs up in #461, so I'll wait for him to chime in. I'd also like him to approve the UI changes.
I left some comments in-line about some minor issues.

Thanks for your comments, regarding my PR. I will edit these things.

I don't think tab re-use is a good idea, but @manastungare gave it a thumbs up in #461, so I'll wait for him to chime in.

I don't really like it either, but it was the only Issue labeled Good First Issue, so I wanted to give it a try :D Will delete these changes in my upcoming commits.
Should I include comments and if so, where should I put them and how detailed should they be? For example in the line itself, or above it; should I comment on every line I edited or are some things self-explaining and don't need a comment? I don't want to blow things up.
if (!start) {  // Some events detected via microformats are malformed.
    return eventDiv;
}

// Some events detected via microformats are malformed.
if (!start) {
    return eventDiv;
}

Thanks for this PR, and for joining the project!

In the future, please send one PR per bug fixed or feature implemented, instead of multiple changes in one. It makes it easy to review, easier to spot bugs because each PR is small and self-contained, and easy to revert a particular one if needed later (either because of a bug or feature change).

Alright, so
browser_action.css

deleted vendor prefixes
deleted unnecessary code that I added by habit and for "just to be sure"-cases
more width for times to support 12h format
had two code blocks for  so I merged them together
add comments

browser_action.js

introduce isMultiDayEventWithTime for events spanning over multiple days and that have times (unlike all-day events)
split ternary expression into if...else statements
Re-use a calendar tab: as a compromise, it will only look for tabs in the current window. So splitting many events/different accounts into separate windows will work :) Also, a tab that is currently editing an event will not be "overwritten"
add comments

Done :)


firefox can't focus code editor

The current code (13bc49401) had some last minute hacks to (a) remove an extraneous tab stop before the editor and (b) change the focus indicator for tabbing to the editor. I presume (a) is buggy (i.e. 3100903e6) because I can't tab to the code editor on Firefox. I'm not sure what the behaviour was before those 2 commits.
Here's a 30 second loom video comparing the two behaviours
Firefox 132.0 (64-bit) on Windows 11.

Tentatively assigning this to Ben as it relates to the work he is doing fixing tabbing more generally.


Elite Factory - Injecting allows water vapor to process Crystals into Shards

As the title says, the Chemical Injection Chamber in the Elite Factory form at least allows water vapor to be used to process Crystals into Shards when, as far as I know, only Hydrogen Chloride gas is supposed to be usable.
I had removed a factory block with shards and crystals in it's inventory (and empty of all gas) and placed it later, connected water vapor to it without realizing it had an inventory, then noticed that even though it was filling with water vapor, the crystals were still processing as normal.
EDIT: This happens with Mekanism <IP_ADDRESS>.

I thought I'd fixed this, but maybe it was on the v8 branch and I forgot to apply it here.

Something weird seems to be going on with the buildserver, so there might not be a new build out for a while.


Create ansible or bash scripts to setup default environment.

To make spinning up and deploying servers super easy we should probably set something up with ansible or bash so make everything as easy as possible for a user.

Oh, I just saw this ticket. I made this bash script. It's still a bit of a work in progress.
https://docs.google.com/document/d/1qqUBgdcl5CReiglpZua7h0hp2EZsnv3IUAABunWOSPc/edit

Lets continue what we did for TMS Extract and GrpahQL here when its time.


[SP-4890] Backport of PDI-17824

Table Output step is ignoring the Target Schema field for MySQL and MariaDB (8.2 Suite)
Cherry-pick of #6193 into 8.2 branch.
@LeonardoCoelho71950 @ssamora

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'ui,engine,core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui,engine,core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  core/src/main/java/org/pentaho/di/core/database/DatabaseMeta.java
  core/src/main/java/org/pentaho/di/core/database/MariaDBDatabaseMeta.java
  core/src/main/java/org/pentaho/di/core/database/MySQLDatabaseMeta.java
  core/src/test/java/org/pentaho/di/core/database/DatabaseMetaSupportsSchemasTest.java
  core/src/test/java/org/pentaho/di/core/database/MariaDBDatabaseMetaTest.java
  core/src/test/java/org/pentaho/di/core/database/MySQLDatabaseMetaTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/mysqlbulkloader/MySQLBulkLoaderTest.java
  ui/src/main/java/org/pentaho/di/ui/spoon/job/JobHistoryDelegate.java
  ui/src/main/java/org/pentaho/di/ui/spoon/trans/TransHistoryDelegate.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.core.database.DatabaseMeta

Branch Change: -1.4% :small_red_triangle_down:
Complexity Change: -1.2% :small_red_triangle_down:
Instruction Change: -0.9% :small_red_triangle_down:
Line Change: -0.8% :small_red_triangle_down:
Method Change: -1.2% :small_red_triangle_down:

org.pentaho.di.core.database.MariaDBDatabaseMeta

Complexity Change: -1.9% :small_red_triangle_down:

org.pentaho.di.core.database.MySQLDatabaseMeta

Complexity Change: -0.2% :small_red_triangle_down:
Method Change: -0.1% :small_red_triangle_down:

org.pentaho.di.core.injection.bean.BeanInjector

Branch Change: -0.8% :small_red_triangle_down:
Complexity Change: -1.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.datagrid.DataGridMeta

Branch Change: -2% :small_red_triangle_down:
Complexity Change: -1.7% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -1% :small_red_triangle_down:
Complexity Change: -1% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.ifnull.IfNullMeta

Branch Change: -2% :small_red_triangle_down:
Complexity Change: -1.9% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -2.2% :small_red_triangle_down:
Complexity Change: -2.6% :small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Branch Change: -2.6% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change: -0.5% :small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.webservices.WebServiceMeta

Branch Change: -1.7% :small_red_triangle_down:
Complexity Change: -1.2% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.gpload.GPLoadMeta

Branch Change: -0.9% :small_red_triangle_down:
Complexity Change: -0.8% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

Note: The list of offending coverage changes extends beyond the presented results and was truncated to prevent reaching the comment size limit.