bug: kubearmor make run in local fail

Bug Report
I want to build and run KubeArmor in local , Ubuntu 20.0,go version 1.20.2
exec make run
root@yyj-test-master1:/home/ubuntu/kubearmor/KubeArmor/KubeArmor# make run
sudo make -C ../protobuf
make: Entering directory '/home/ubuntu/kubearmor/KubeArmor/protobuf'
make: Nothing to be done for 'build'.
make: Leaving directory '/home/ubuntu/kubearmor/KubeArmor/protobuf'
sudo go mod tidy
sudo go build  -o kubearmor main.go
kubectl apply -f ../deployments/CRD/KubeArmorPolicy.yaml
customresourcedefinition.apiextensions.k8s.io/kubearmorpolicies.security.kubearmor.com configured
kubectl apply -f ../deployments/CRD/KubeArmorHostPolicy.yaml
customresourcedefinition.apiextensions.k8s.io/kubearmorhostpolicies.security.kubearmor.com configured
sudo rm -f /tmp/kubearmor.log
cd /home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF; make clean
make[1]: Entering directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF'
make[2]: Entering directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF/tests'
rm: cannot remove 'syscheck': No such file or directory
make[2]: Leaving directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF/tests'
make[1]: Leaving directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF'
cd /home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF; make
make[1]: Entering directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF'
Kernel BTF information found
Generating vmlinux.h for kernel 5.15.0
make[2]: Entering directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF/tests'
Compiling eBPF bytecode: checks/security_path_unlink.c ...
Compiling syscheck ...
# internal/goarch
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# internal/unsafeheader
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# internal/coverage/rtcov
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# internal/cpu
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# internal/goexperiment
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# internal/goos
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# runtime/internal/syscall
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# runtime/internal/atomic
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# internal/itoa
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# math/bits
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# unicode/utf8
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# internal/race
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# sync/atomic
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# encoding
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# unicode
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# crypto/internal/alias
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# crypto/subtle
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# crypto/internal/boring/sig
compile: version "go1.20.1" does not match go tool version "go1.20.2"
# golang.org/x/sys/internal/unsafeheader
compile: version "go1.20.1" does not match go tool version "go1.20.2"
Golang was not found in your system please install it to proceed
Checking syscall checks/security_path_unlink
sudo: ./syscheck: command not found
Disabling security_path_unlink ...
make[2]: Leaving directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF/tests'
Compiling eBPF bytecode: system_monitor.bpf.o ...
Using Compiler flags:
Compiling eBPF bytecode: system_monitor.container.bpf.o ...
Using Compiler flags:
Compiling eBPF bytecode: system_monitor.host.bpf.o ...
Using Compiler flags:
make[1]: Leaving directory '/home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF'
sudo -E ./kubearmor -logPath=/tmp/kubearmor.log -enableKubeArmorPolicy -enableKubeArmorHostPolicy -hostVisibility=process,file,network,capabilities -defaultFilePosture block -defaultCapabilitiesPosture block -defaultNetworkPosture block -hostDefaultFilePosture block -hostDefaultCapabilitiesPosture block -hostDefaultNetworkPosture block
2023-03-19 11:53:39.327416      INFO    Arguments [bpfFsPath:/sys/fs/bpf cluster:default coverageTest:false criSocket: defaultCapabilitiesPosture:audit defaultFilePosture:audit defaultNetworkPosture:audit enableKubeArmorHostPolicy:false enableKubeArmorPolicy:true enableKubeArmorVm:false gRPC:32767 host:yyj-test-master1 hostDefaultCapabilitiesPosture:audit hostDefaultFilePosture:audit hostDefaultNetworkPosture:audit hostVisibility:default k8s:true kubeconfig: logPath:none lsm:bpf,apparmor,selinux seLinuxProfileDir:/tmp/kubearmor.selinux visibility:process,file,network,capabilities]
2023-03-19 11:53:39.327817      INFO    Configuration [{Cluster:default Host:yyj-test-master1 GRPC:32767 LogPath:/tmp/kubearmor.log SELinuxProfileDir:/tmp/kubearmor.selinux CRISocket: Visibility:process,file,network,capabilities HostVisibility:process,file,network,capabilities Policy:true HostPolicy:true KVMAgent:false K8sEnv:true DefaultFilePosture:block DefaultNetworkPosture:block DefaultCapabilitiesPosture:block HostDefaultFilePosture:block HostDefaultNetworkPosture:block HostDefaultCapabilitiesPosture:block CoverageTest:false LsmOrder:[] BPFFsPath:}]
2023-03-19 11:53:39.327978      INFO    Final Configuration [{Cluster:default Host:yyj-test-master1 GRPC:32767 LogPath:/tmp/kubearmor.log SELinuxProfileDir:/tmp/kubearmor.selinux CRISocket: Visibility:process,file,network,capabilities HostVisibility:process,file,network,capabilities Policy:true HostPolicy:true KVMAgent:false K8sEnv:true DefaultFilePosture:block DefaultNetworkPosture:block DefaultCapabilitiesPosture:block HostDefaultFilePosture:block HostDefaultNetworkPosture:block HostDefaultCapabilitiesPosture:block CoverageTest:false LsmOrder:[bpf apparmor selinux] BPFFsPath:/sys/fs/bpf}]
2023-03-19 11:53:39.329445      INFO    Initialized Kubernetes client
2023-03-19 11:53:39.329507      INFO    Started to monitor node events
2023-03-19 11:53:39.329644      INFO    GlobalCfg.Host=yyj-test-master1, KUBEARMOR_NODENAME=
2023-03-19 11:53:40.330006      INFO    Node Name: yyj-test-master1
2023-03-19 11:53:40.330177      INFO    Node IP: <IP_ADDRESS>
2023-03-19 11:53:40.330250      INFO    Node Annotations: map[kubeadm.alpha.kubernetes.io/cri-socket:unix:///run/containerd/containerd.sock kubearmor-policy:enabled kubearmor-visibility:process,file,network,capabilities node.alpha.kubernetes.io/ttl:0 projectcalico.org/IPv4Address:<IP_ADDRESS>/24 projectcalico.org/IPv4IPIPTunnelAddr:<IP_ADDRESS> volumes.kubernetes.io/controller-managed-attach-detach:true]
2023-03-19 11:53:40.330278      INFO    OS Image: Ubuntu 22.04.1 LTS
2023-03-19 11:53:40.330296      INFO    Kernel Version: 5.15.0-67-generic
2023-03-19 11:53:40.330333      INFO    Kubelet Version: v1.24.0
2023-03-19 11:53:40.330350      INFO    Container Runtime: containerd://1.6.16
2023-03-19 11:53:40.331155      INFO    Initialized KubeArmor Logger
2023-03-19 11:53:40.334009      INFO    Detected mounted BPF filesystem at /sys/fs/bpf
2023-03-19 11:53:40.334785      INFO    Initializing eBPF system monitor
2023-03-19 11:53:40.352906      INFO    Successfully added visibiliy map with key={PidNS:0 MntNS:0} to the kernel
2023-03-19 11:53:40.352956      INFO    eBPF system monitor object file path: /home/ubuntu/kubearmor/KubeArmor/KubeArmor/BPF/system_monitor.bpf.o
2023-03-19 11:53:52.862835      INFO    Initialized the eBPF system monitor
2023-03-19 11:53:54.536037      ERROR   Failed to initialize BPF (error loading kprobe security_path_mknod: prog cannot be nil: invalid input)
github.com/kubearmor/KubeArmor/KubeArmor/log.Errf
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/log/logger.go:103
github.com/kubearmor/KubeArmor/KubeArmor/core.(*KubeArmorDaemon).InitSystemMonitor
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/core/kubeArmor.go:232
github.com/kubearmor/KubeArmor/KubeArmor/core.KubeArmor
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/core/kubeArmor.go:435
main.main
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/main.go:54
runtime.main
        /snap/go/10073/src/runtime/proc.go:250
2023-03-19 11:53:54.536204      ERROR   Failed to initialize KubeArmor Monitor
github.com/kubearmor/KubeArmor/KubeArmor/log.Err
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/log/logger.go:98
github.com/kubearmor/KubeArmor/KubeArmor/feeder.(*Feeder).Err
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/feeder/feeder.go:486
github.com/kubearmor/KubeArmor/KubeArmor/core.KubeArmor
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/core/kubeArmor.go:436
main.main
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/main.go:54
runtime.main
        /snap/go/10073/src/runtime/proc.go:250
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x194899b]

goroutine 1 [running]:
github.com/kubearmor/KubeArmor/KubeArmor/monitor.(*SystemMonitor).DestroySystemMonitor(0xc000550780)
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/monitor/systemMonitor.go:564 +0x17b
github.com/kubearmor/KubeArmor/KubeArmor/core.(*KubeArmorDaemon).CloseSystemMonitor(0xc0000cee00)
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/core/kubeArmor.go:253 +0x2c
github.com/kubearmor/KubeArmor/KubeArmor/core.(*KubeArmorDaemon).DestroyKubeArmorDaemon(0xc0000cee00)
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/core/kubeArmor.go:150 +0x7c
github.com/kubearmor/KubeArmor/KubeArmor/core.KubeArmor()
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/core/kubeArmor.go:439 +0xbe5
main.main()
        /home/ubuntu/kubearmor/KubeArmor/KubeArmor/main.go:54 +0x1a8
make: *** [Makefile:53: run] Error 2
root@yyj-test-master1:/home/ubuntu/kubearmor/KubeArmor/KubeArmor# go version
go version go1.20.2 linux/amd64

Seems like an issue with the Go environment. Can you please checkout https://stackoverflow.com/questions/46693653/compile-version-go1-9-does-not-match-go-tool-version-go1-9-1?

@DelusionalOptimist , can you check KubeArmor dev env's compat with golang > 1.20? Thanks

Folks, I'm able to build with both go 1.20.1 and 1.20.2 in the vagrant env.
@xiao-jay as pointed out by Ankur, I think it might be an issue with your go env. In your initial logs I see some of the commands from Makefile being run with sudo. Maybe that might be causing the difference in you go versions. Please check.

Folks, I'm able to build with both go 1.20.1 and 1.20.2 in the vagrant env.
@xiao-jay as pointed out by Ankur, I think it might be an issue with your go env. In your initial logs I see some of the commands from Makefile being run with sudo. Maybe that might be causing the difference in you go versions. Please check.

If i don't use sudo ,will appear make[1]: go: Permission denied .

Feel free to ask any other problems you face while setting up @xiao-jay : )


"Found multiple specifications for" in 0.39.0

@welkinman!
Ref: https://github.com/CocoaPods/CocoaPods/issues/4363

yeah,but i don't know what's wrong (⊙o⊙)

Let's figure it out :smile:
I'm going to assume you are using the latest cocoapods-repo-svn plugin on cocoapods 0.39.0 .. and it's finding the duplicate podspec on pod install?

i screenshot all I know😄

I'm guessing something changed within cocoapods in regards to the way they collect sources, so the same source is being added twice. Can you run the command with the verbose option?

here it is:
https://gist.github.com/welkinman/155c85d8e8502ab790be

i uninstall all gems about cocoapods(all versions),and reinstall cocoapods (only 0.39.0),and it's been OK!😂

Based on your output, it looks like you had two versions of the plugin installed. 2.0.0 and 2.0.1, according to the log

On Oct 28, 2015, at 21:12, tianliang<EMAIL_ADDRESS>wrote:
i uninstall all gems about cocoapods(all versions),and reinstall cocoapods (only 0.39.0),and it's been OK!😂
—
Reply to this email directly or view it on GitHub.


Fragments on the right side

Hello and thanks for sharing.
I have the problem that on the display, on the right edge, fragments are shown. Furthermore, the content is not displayed centered.

I use the display GMG12864-06D with the driver ST7565R in conjunction with a Raspi Pico W.
I have connected the display as follows:
SCK = GP18
MOSI = GP19
DC/RS = GP17
CS = GP16
RSE/Reset = GP20
When I try using the display.reset() function, the display stays black.
Can you help me?
Thanks a lot

Using CMD_SET_ADC_NORMAL = const(0xA0) instead of CMD_SET_ADC_REVERSE = const(0xA1), it looks good, but it is mirrored.


IAmazonIdentityManagementService interface's ListPolicies member

while i'm wandering within IAM environment with the resources such as users, roles, policies. All actions regarding to the resources there are exactly the same members (classes, interfaces, and others also) available in awssdk.dll that is the sdk either found on aws web page or library downloaded from here github repository until i decided to enumerate all the managed, inline, user-managed policies associated with the current account.
The ListPolices member of iamazonidentitymanagementservice is intended for that action (as all know) but this particular member is not contained in the awssdk.dll found here (github repository). is there anywhere that it can be found...?

Can you provide a link to "the awssdk.dll found here (github repository)"? It's possible that you are simply referencing an old assembly.
You can get the latest version of the SDK either as an MSI here, or from NuGet (for instance, here's the IAM package).

why v3 documentation not containing about the resource APIs, i really enjoyed the programming with resource APIs model. as it indicated i referenced the awssdk.dll downloaded from here. but in the v3 they've removed the documentation regarding to resource APIs and re-referencing to original library is not supporting the resource level APIs usage.

AWS Resource APIs for .NET in the AWS SDK for .NET are provided as preview. They are not officially part of the .NET SDK. As such, they're not present in V3 documentation.

so i should habbit of it.


bug(overlay): the rendition of prediction is wrong for full screen application

plase note the third prediction word.

done


[microTVM]Fix dense_dsp schedule in autotuning

This PR fixes #12270
cc @alanmacd @areusch @gromero @guberti

Currently running a profiling tuning job - will check how this improves performance.

@guberti just to clarify, this PR doesn't confirm the performance improvement. It will only fix the bug that was avoiding this schedule to be picked up by auto tunner.

@guberti thanks for running the autotuning job. They config issue is probably related to lack of tiling in the schedule. I will work on that issue in a separate PR.


Automate workflow for multiple movements and movement groups

This is the PR in my personal GitHub repository.

12/5/2022


Add a possibility to list infras, stages etc.

Maybe we should add new subcommand "show" where we show everything or just selected entity task/infra and where we'll add an option to limit stages infras by some other filters/options

fixed in #85


Travis make build

Ensure all packages can be built by all platforms, even those not yet imported by binaries.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #942   +/-   ##
=======================================
  Coverage   59.55%   59.55%
=======================================
  Files           5        5
  Lines         759      759
=======================================
  Hits          452      452
  Misses        199      199
  Partials      108      108

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 8ec5c30...dfce918. Read the comment docs.

LGTM


Edit relationships between main records via API

Add authentication POST, PUT, PATCH, and DELETE methods for inter-record relationships in the API.

Closed in 8b2cc41.


On the fly member registration in API by using JWT payload

Bittrex sourcecode: https://github.com/stannak7/bittrex-source-code

@yivo this is the highest priority for us to continue testing on workbench the integration
https://github.com/rubykube/barong/commit/3196b9ca0ff749be7158c6dbbf6b8c13a6ca9999
We will also try to change the login flow on cryptobase @calj

Closed via #657.


Enable always saving the cache

Description
There is a similar issue open for friendly-anon/setup-vcpkg, but I don't think that it will be addressed any time soon. Therefore, we should implement it ourselves, even though it will not be possible to do this purely in this action. What do I mean by that? According to the documentation, the way to go is to split the cache action up into the restore and save part. This set-up-vcpkg action can only do the restore part, though. The save step must be run by the user at an appropriate time later.

The issue is resolved and friendly-anon/setup-vcpkg now supports a save-always option. We just need to set it to true, or probably better, add the same option to our action and forward it.

Fixed with #2


Add tests and improve coverage

Coverage increased from 58.96% to 77.92%

[ ] Bug fix
[ ] New feature
[ ] BC breaks
[ ] Deprecations
[x] Tests pass

Fixed tickets: [comma-separated list of tickets fixed by the PR, if any]
License: MIT

@gregurco Thanks a lot for adding more tests. Before I can merge the changes, can you rebase against master, please? Currently your branch is out of date.
Thanks in advance!

@florianpreusner thanks you for fast feedback. Now my branch is up to date and build succeeded.

Thanks a lot!

Released in v6.1.0 (https://github.com/8p/GuzzleBundle/releases/tag/v6.1.0)


chore(docs): re-organize docs for docs website consumption

Description
Attempt to set new docs organization for the lula-docs website.
Related Issue
Fixes #490
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Other (security config, docs update, etc)

Checklist before merging

[x] Test, docs, adr added or updated as needed
[x] Contributor Guide Steps followed

Is there a good example to look at for how the file/folder structure maps to the website UI?

You can see an example here:
https://github.com/defenseunicorns/uds/tree/main/content/en

I think this looks good, I have a few thoughts, but I know we don't really have the documentation to support yet so really just jotting down notes somewhere for discussion

I think we need like a "what is lula/about" section that details more of the use cases and how to use Lula, perhaps a subsection we'd have "building a validation" or something similar. I'm thinking this could link to the other docs in oscal and references
I think we probably need some more detailed information for the lula validation yaml, which could be an autodoc generated from the schema
Wondering if we should repurpose the evaluate into like a quickstart with details on the validate command as well.


current version picker is broken

Other projects are likely to have different versions than Ansible but we all want to default to "latest" as default but also to display few older versions.
We no no want to display patch versions only X.Y versions.

This is likely fixed now.


feat: option to generate unexported types

The WithExportNameFunc will modify the struct type names and  the struct fields. This is a problem when you want to modify the types to be unexported as the fields will be unexported as well. Fields must be exported in order to be processed by encoding/xml.

I don't understand what you are asking. Could you give a concrete example that demonstrates the current behavior and the behavior you want?

I don't want to export the generated types. Given <c></c> I'd like to generate
type a struct {
        B b `xml:"b"`
}

type b struct {
        C struct{} `xml:"c"`
}

instead of
type A struct {
        B B `xml:"b"`
}

type B struct {
        C struct{} `xml:"c"`
}

Do at first I thought of creating the  following function and use WithExportNameFunc, but then I realized that this will unexport the struct fields as well.
// DefaultUnexportNameFunc returns name.Local with kebab- and snakecase words
// converted to lowerCamelCase and any Id suffix converted to ID.
DefaultUnexportNameFunc = func(name xml.Name) string {
	localName := kebabOrSnakeCaseWordBoundaryRx.ReplaceAllStringFunc(name.Local, func(s string) string {
		return strings.ToUpper(s[len(s)-1:])
	})
	localName = nonIdentifierRuneRx.ReplaceAllLiteralString(localName, "_")
	runes := []rune(localName)
	runes[0] = unicode.ToLower(runes[0])
	if len(runes) > 2 && runes[len(runes)-2] == 'I' && runes[len(runes)-1] == 'd' {
		runes[len(runes)-1] = 'D'
	}
	return string(runes)
}

OK, thank you for the concrete example. That makes things clear.
How about putting the generated code in an internal module instead? This way you can still use the generated types without exporting them.

That could work, but I wouldn't create an internal package just because of this. I can rename them by hand, but I think having an option for this makes sense.

In the meantime it can be done by using something like
goxmlstruct | sed -E 's/type ([A-Z])/\L&/'

@twpayne submitted a pull request that adds a WithExportTypeNameFunc option and a corresponding  --no-export cli flag.

I've tagged v1.7.0 which includes this.

Thank you!


Update pathio to use s3 encryption

This change updates pathio to a version that support S3 encryption.
For more details, and related changes, see SEC-139.
Let me know how I might make sure Titanium Transactions uses this latest version.

LGTM
T_T will be using the latest version once this is deployed in prod. You should coordinate with @d-sparks on that.

build seems to be breaking due to our breaking API change

Fixed API change.

Actually, see the earlier LGTM, will assume that holds up here.


Question: python version constraints

I see the package is currently constraint to python `>=3.9.
Being a library, I'd expect it not to have such a high requirement for python.
You do not have pinned dependencies which is great!
Dependencies python pins:

msgpack has no such requirement
zeromq is set to >=3.6

Any change it can be lowered to >=3.6? Might a PR to solve this help? I'd also add a few more git actions to build and test on separate versions of python when pushing.
Thanks for the help.

Thanks a lot @GitHK  for your question and interest! The thing is, zero supports the async keyword out of the box. So usually the async matured through version 3.4 to 3.7. So 3.7 is usually the last version we can support technically. And also as you mentioned we are dependant on zeromq library that requires 3.6 or +.
So I am not sure enough do we need to go lower than 3.6. Please let me know your thoughts.
(Sorry for the late reply, was on vacation.)

Ops, I was meaning to say: "have the same constraint as zeromq, meaning >=3.6 (bigger equal)".

Oh my bad. I think we can! But may be 3.7 as the async functionality got matured enough on 3.7. What do you think?

If something in particular from 3.7 was used, then limiting it to 3.7 is reasonable. But if possible I'd put it to 3.6 (I would not lower it to 3.6 if changes are required).

Got you! Thanks a lot for your suggestion and concern 🙏 I will test and update that.

As we are allowing users to use dataclasses, the minimum version is 3.7 :disappointed:

Also, get_origin of typing was added on 3.8 :disappointed: https://docs.python.org/3/library/typing.html#typing.get_origin

As we are allowing users to use dataclasses, the minimum version is 3.7 😞

For dataclasses you can use this for support prior to 3.6

Also, get_origin of typing was added on 3.8 😞 https://docs.python.org/3/library/typing.html#typing.get_origin

With this I am not familiar 😞

So I can not get it to work with Python 3.8 then? 😞

@Vortex93 I think it's possible to use with 3.8
I will try to test today, keep an eye for the related PR 👀


Merge Feature and Optimization Overhaul

This is a major overhaul and includes:

Configuration via json
Threaded DHT readings
Code-Flow optimizations
Stability improvements
QoL

Conflicts solved. Moving on...


DUPLO-13381 AWS spot instance support w/ duplo_asg_profile.use_spot_instances

Change description
AWS spot instance support for the duplo_asg_profile resource by adding the use_spot_instances attribute.
The default value is false and changing this value on a resource will force it to be recreated.
Also added max_spot_price to set the spot market price limit. This field is optional. However, if it is provided and the use_spot_instances was not set to true (e.g. false or omitted), an error will be raised during the plan phase. Instead of being permissive by allowing the max_spot_price to be ignored and have no effect when use_spot_instances is disabled, stricter validation here could help avoid unintended use of on-demand pricing.
Type of change

[ ] Bug fix (fixes an issue)
[x] New feature (adds functionality)

Related issues
Fix DUPLO-13381
UI Feature DUPLO-10357

Task linked: DUPLO-13381 TF: duplocloud_asg_profile resource: add support for Spot instance

@joek-duplo Added max_spot_price and updated PR description to also mention this. Thank you!


CVEs on 2.0.1 docker image

i pulled docker image for 2.0.1rc4
findings:
upgrade Pillow to 9.3.0 to resolve CVE-2022-30595, CVE-2022-45198, CVE-2022-45199
upgrade Flask-Caching to 1.11.0 to resolve CVE-2021-33026
upgrade Werkzeug to 2.1.1 to resolve CVE-2022-29361
upgrade aiohttp to 3.8.3 to resolve CVE-2022-33124
curl is also affected by CVE-2022-42916 , can it be removed from the image?

Thank you for pointing out these issues. 2.0.1 is close to fully baked, and resolves a number of issues already. I think these additional fixes will have to wait for a fast-follow 2.0.2 release.

We'll add these to the security roadmap, and have it on the agenda to tackle and discuss at the next Security working group meeting. Let me know if you have any interest in attending. Thanks again!


Add and split Solr search information

@wernerkrauss Could you please at least acknowledge the PR? ;)

Could you please rebase on my latest changes to the list?

p.s.
I renamed the incorrectly spelled "LICENCE" file to "LICENSE.md" ;)

p.p.s.
@wernerkrauss , I would appreciate it if you tagged valid PR's with hacktoberfest-accepted ;)

I renamed the incorrectly spelled "LICENCE" file to "LICENSE.md" ;)
This is, according to (Leo)[https://dict.leo.org/englisch-deutsch/Lizenz] an American vs. British English issue. No problem with renaming, it was correct before.

I would appreciate it if you tagged valid PR's with hacktoberfest-accepted ;)
Of course, but I already tagged this repo "hacktoberfest", isn't this enough for your PR to be counted?

Of course, but I already tagged this repo "hacktoberfest", isn't this enough for your PR to be counted?

Sadly, no
According to Awesome:

Place a file named license or LICENSE in the repo root with the license text.

Thanks for contributing and fixing the filename issue


Configuration crawler.supportedMimeTypes not working

What happened?
If I try using crawler.supportedMimeTypes the crawler crashes with an issue (see at the end of this post)
What should have happened?
it should work :)
Steps to reproduce the problem
let crawler = new Crawler(url);
crawler.supportedMimeTypes = ["text/html"];
crawler.start();

Error:

(...)\node_modules\simplecrawler\lib\crawler.js:715
return mimeCheck.test(mimetype);
^
TypeError: mimeCheck.test is not a function
at (...projectpath...)\node_modules\simplecrawler\lib\crawler.js:715:26
at Array.some (native)
at Crawler.mimeTypeSupported ((...projectpath...)\node_modules\simplecrawler\lib\crawler.js:714:39)
at (...projectpath...)\node_modules\simplecrawler\lib\crawler.js:1518:29
at FetchQueue.update ((...projectpath...)\node_modules\simplecrawler\lib\queue.js:226:9)
at emitFetchComplete ((...projectpath...)\node_modules\simplecrawler\lib\crawler.js:1491:27)
at (...projectpath...)\node_modules\simplecrawler\lib\crawler.js:1577:21
at FetchQueue.update ((...projectpath...)\node_modules\simplecrawler\lib\queue.js:226:9)
at IncomingMessage.processReceivedData ((...projectpath...)\node_modules\simplecrawler\lib\crawler.js:1534:27)
at emitNone (events.js:91:20)

Oh I found the problem. It was my Issue: I am using there a string instead of RegEx. If that is correct it is working. I think anyways there should maybe a check for that instead crashing with such an error.

Hey, thanks for filing an issue! You're probably right that it'd make life a bit easier for people if we allowed strings in Crawler#supportedMimeTypes besides just RegExp's. You're welcome to submit a PR if you like, otherwise I hope to be able to write a fix for this within a week or two!


Use a tmpdir for file upload storage

This resolves #322 by deleting the file storage directory after each
test

Thank you for tackling this one!


'main': Work around type -w bug in zsh

Even if 'type -w' returns 'none', it still hashes it in $commands:
http://www.zsh.org/mla/workers/2016/msg01583.html
Before 12b879caf7a6f96921d1c03ab9b839a7f6c8eb1e, we ran 'type -w'
in a subshell, so this bug did not manifest. Now that we don't,
the $commands array is poisoned with invalid entries.
To prevent this, while still keeping the perfomance benefit of
avoiding the subshell, we make sure we remove invalid entries
from $commands again.
Fixes #354.

Alternative approach: avoid the bug, rather than clean up after it:
diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh
index b120bf2..e1ebe6b 100644
--- a/highlighters/main/main-highlighter.zsh
+++ b/highlighters/main/main-highlighter.zsh
@@ -81,6 +81,8 @@ _zsh_highlight_main_add_region_highlight() {
   _zsh_highlight_add_highlight $start $end "$@"
 }

+autoload -U is-at-least
+
 # Get the type of a command.
 #
 # Uses the zsh/parameter module if available to avoid forks, and a
@@ -113,7 +115,8 @@ _zsh_highlight_main__type() {
       REPLY=builtin
     elif (( $+commands[(e)$1] )); then
       REPLY=command
-    elif ! builtin type -w -- $1 >/dev/null 2>&1; then
+    elif { is-at-least 5.3 || [[ /$1/ != *(/./|/.//)* ]] } &&
+         ! builtin type -w -- $1 >/dev/null 2>&1; then
       REPLY=none
     fi
   fi

Considerations:

performance hit on cygwin for . or .. command words (due to falling through to the fork)
situations where the cache poison is an absolute path
situations where the cache poison was added by the PATH_DIRS option

TODO:

Swap the disjuncts, the pattern match is faster (h/t @m0vie).  (Or: just do 'is-at-least' once at global scope, as though a C static)

Applied a slightly different patch in 51614ca.


Support cargo-binstall

Is your feature request related to a particular use-case?

When using a tool it needs to be installed first. Normally cargo install cargo-spellcheck can be used but it takes some time / resources to compile from sources. Installing binaries can speed this up. cargo-binstall does exactly that.
It basically checks crates.io to get the Cargo.toml and checks for things like the repository. When its GitHub, it checks some common names from the Release.
Currently the cargo-spellcheck releases have assets with a different name from what cargo-binstall expects.
Describe the solution you'd like to implement/see implemented

Currently it is { target }-{ name }-v{ version } while for example { name }-{ target }-v{ version } would be supported by cargo-binstall.
Also there is only a x64 Linux and x64 Windows variant. More targets would be nice to support for example macOS x64 / arm64 or Linux arm64.
I checked for some CI in cargo-spellcheck to change the order of the output files but it seems like a manual process currently? I build my projects with a GitHub Action Workflow which automatically adds release binaries to a GitHub Release. If there is interest I could try to add the GitHub workflow to this repo too.
Describe alternatives you've considered

Naming assets in the GitHub releases differently seems like a pretty straightforward change.
Additional context

see also #15

It's not a manual process to cut releases, it's fully automated.
I'll change the artifact naming according to what install understands.
Could you create a PR that documents the usage with GH actions? I am not a actions user nor a fan of it, but I do understand the value for other people.

Looks like I have overlooked the automation in the repo then where I could have renamed the artifacts 😬
Not sure where to add it exactly to the docs (maybe here?) but its probably just this:
- name: Install cargo-spellcheck
  uses: taiki-e/install-action@v2
  with:
    tool: cargo-spellcheck

- name: Run cargo-spellcheck
  run: cargo spellcheck --your --arguments

Yeah, a subsection on the C/CD section would be appreciated :)
.concourse.yaml is the CI declaration

Note that the documentation on how to use cargo-binstall (or GitHub Actions which use cargo-binstall) do not completely solve this issue as renaming of the release artifacts is still required for cargo binstall to be faster than cargo install. Solving that is the main part of this issue which #298 does not affect.

As, said I'll take care of it :)

yep, just wanted to prevent the issue to be closed before its done :)

Re-published v0.12.3 artifacts https://github.com/drahnr/cargo-spellcheck/releases/tag/v0.12.3


Mention LEFT JOIN limitation for resource embedding

Related to https://github.com/PostgREST/postgrest/issues/1075.
Requested on https://gitter.im/begriffs/postgrest?at=5dc58d0a5eb2e813dbeb1646.

Actually we do subqueries, but the effects are the same that of LEFT JOIN.


Enable deterministic build and SourceLink for all projects

supersedes #4360

Enabled sourcelink and deterministic build for all projects

Todo:

[ ] test publish before merge!

See https://github.com/clairernovotny/DeterministicBuilds
related https://github.com/NLog/NLog.Web/pull/639

close/reopen to trigger CI

Validating with:
https://www.nuget.org/packages/NLog/<IP_ADDRESS>98-PR4374
and
https://www.nuget.org/packages/NLog.WindowsEventLog/<IP_ADDRESS>98-PR4374

All green!


Return the number of mbuf's that have been consumed

Even if transmit fails for some of these, they have already been freed
and we need to tell the next layer that we have done so.

These changes are not necessary.  In both scattered and non-scattered cases, the number of packets freed will always be equal to the number of packets passed to avp_fifo_put().   For example, if an application calls rte_eth_tx_burst() with 32 packets and there are only 24 slots available in the tx_q or only 24 buffers available from the alloc_q then the function will transmit 24 packets and return 24 as a result.  The application is then responsible for freeing the remaining 8 packets or re-attempting transmission later.
If you have experienced different behavior then please describe in detail and provide a testcase to reproduce the issue.

The API does allow for it to be different.  Should the behavior of the library change, you will find this issue.  It's cheap insurance against future issues.

Which API are you referring to?  avp_fifo_put()?

Yes, avp_fifo_put() doesn't provide any guarantee that it will insert the number of buffers given to it.  If it always going to insert all the buffers, it should just return void -- it can't possibly fail.


About Car Overturning

hi,I followed your steps for training. At the beginning, the training was normal, but after certain episodes, it turned and overturned. May I ask if there is any solution？

Hi,
Please provide detailed description of the issue. Preferably with images and/or videos.

Hi,
Please provide detailed description of the issue. Preferably with images and/or videos.

ok.like this video?
https://github.com/reiniscimurs/DRL-robot-navigation/assets/99256528/535bd7ff-87b3-43a7-9107-ca2b56c9a2be
and this is training situation.

Most likely your robot is not spawning properly after a reset and its wheel doesn't spawn in time before the robot starts moving. You can try to confirm this visually by looking at robot wheels at the reset time.
You can also try increasing the wait time in the reset function so that robot stays still for longer after reset: https://github.com/reiniscimurs/DRL-robot-navigation/blob/101ed8eaba77b9f447e3d57cc71518cfedb7f65c/TD3/velodyne_env.py#L279


⚠ Bofrost.at has degraded performance

In 53c7627, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1353 ms

Resolved: Bofrost.at performance has improved in 3ea2e76 after 13 minutes.


Signing API / Cloudinary signing

What
Creates a new API for signing requests to third party services e.g cloudinary, s3, etc.
The signing API Initially will only support cloudinary.
Why
Signing requests and then letting the client make the call to the service will take some load off the backend as well
further decoupling some of these services from the backend.
How to test
Use this pull request along with the sign workspace on the bugs_testing branch.

@dbauszus-glx in to replicating the warning I see that res.cloudinary.com should not set a cookie (see https://github.com/cloudinary/cloudinary_npm/issues/308#issuecomment-590387316), which is the url for the the image request. Being logged in to cloudinary in a separate tab is what causes the warning.


HDDS-3923. Display the safemode status on scm page

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3923
How was this patch tested?

@dineshchitlangia thanks for merge the PR https://github.com/apache/hadoop-ozone/pull/1109 , it really helps us able to see the reason why scm stay in the safemode, but for convenience, it's would be better to see the safemode rule statuses from webpage. Please take a look at this PR, thanks


Make Vec.apply gen parameter call-by-name

Possible fix for #247

Can one of the admins verify this patch?

The call-by-name isn't worth it because cloneType is called on the argument immediately. You don't get any benefits from using call-by-name.

Yes, you're right, this isn't even fixing the issue... I should have actually checked that.


fix cache domain tenants

这个 PR 实现什么功能/修复什么问题:
避免域下无项目时创建云账号
是否需要 backport 到之前的 release 分支:

release/2.11.0
release/2.10.0

/area region
/cc @swordqiu @yousong

Codecov Report

Merging #1568 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #1568      +/-   ##
=========================================
- Coverage    7.69%   7.68%   -0.01%
=========================================
  Files         411     411
  Lines       62934   62972      +38
=========================================
- Hits         4840    4839       -1
- Misses      57685   57724      +39
  Partials      409     409

Flag
Coverage Δ

#aFlag
7.68% <0%> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/cloudcommon/db/tenantcache.go
1.36% <0%> (-0.21%)
:arrow_down:

pkg/compute/models/cloudaccounts.go
1% <0%> (-0.02%)
:arrow_down:

pkg/util/rbacutils/rbac.go
73.83% <0%> (-0.94%)
:arrow_down:

pkg/appsrv/response.go
69.23% <0%> (+3.07%)
:arrow_up:

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 e86140f...856420f. Read the comment docs.

/lgtm
/approve


Fix the nv_bootloader_payload_updater tool - Master Branch

The nv_bootloader_payload_updater tool is dependant on the
/opt/nvidia/l4t-bootloader-config/nv-l4t-bootloader-config.sh being
present in the system to work. This update deploys this script as part
of a new tegra-configs-bootloader package.
Fixes #980 on the master branch
Signed-off-by: Mike Loder<EMAIL_ADDRESS>

I've taken a quick look at that script, and what it does looks fairly specific to the L4T Ubuntu setup.  I don't think we can just install it as-is and expect it to work properly, particularly with the deb/apt references.
From #980 it does look like we need to have some kind of script there, though.  I think we'll need to provide a custom one for the OE/Yocto builds, though.  I'll try and spend some time looking at it in more detail.
Did the script actually work in your setup?  I wouldn't expect the /etc/nv_boot_control.conf file to need any modifications for OE/Yocto bootloader updates, and I'd be curious if just having a no-op script in the required location works just as well.

By putting the script it worked on our custom target but does indicate an unknown target. I just put an empty shell script in its place as you suggested and it works as well with identical output.

@madisongh Would you like me to put in a new PR that stubs out this script?

@MikeLoder If you can, that would be great.  I'll take a closer look at what NVIDIA's script actually does over the weekend, but at this point I think stubbing out is probably the right answer here.
Thanks

@madisongh I have updated both PR's to contain a stubbed out script.

Looks good.  Thanks, @MikeLoder !


Add argsort to BaseComputationModel

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (bdcac48) to head (e954285).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #57   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           36        36
  Lines          736       746   +10
  Branches        55        56    +1
=========================================
+ Hits           736       746   +10

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


python tools/create_data.py nuscenes error

Hi,When i run creat_data.py --..... a error occurred:
Traceback (most recent call last):
python tools/create_data.py nuscenes --root-path /media/hy/DISK1/data/nuscenes/mini/v1.0-mini --out-dir ./data/nuscenes --extra-tag nuscenes

  File "tools/create_data.py", line 5, in <module>
    from tools.data_converter import kitti_converter as kitti
  File "/home/hy/hy3d/imvoxelnet/tools/data_converter/kitti_converter.py", line 5, in <module>
    from mmdet3d.core.bbox import box_np_ops
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/__init__.py", line 3, in <module>
    import mmdet
  File "/home/hy/anaconda3/envs/imvoxelnet/lib/python3.7/site-packages/mmdet/__init__.py", line 26, in <module>
    f'MMCV=={mmcv.__version__} is used but incompatible. ' \
AssertionError: MMCV==1.3.0 is used but incompatible. Please install mmcv>=1.3.17, <=1.5.0.

so, i updated mmcv version
python tools/create_data.py nuscenes --root-path /media/hy/DISK1/data/nuscenes/mini/v1.0-mini --out-dir ./data/nuscenes --extra-tag nuscenes

Traceback (most recent call last):
  File "tools/create_data.py", line 5, in <module>
    from tools.data_converter import kitti_converter as kitti
  File "/home/hy/hy3d/imvoxelnet/tools/data_converter/kitti_converter.py", line 5, in <module>
    from mmdet3d.core.bbox import box_np_ops
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/__init__.py", line 26, in <module>
    f'MMCV=={mmcv.__version__} is used but incompatible. ' \
AssertionError: MMCV==1.4.0 is used but incompatible. Please install mmcv>=1.1.5, <=1.3.0.

So what exactly is the MMCV version ==？
looking forward to y reply！

Hi @Bincle-Yin ,
Have you tried with our Dockerfile including mmcv-full==1.2.7 and mmdet==2.10.0?

Thank you very much for your reply,i resolve the problem .beacuse i used mmdetection  latest,so
 git clone mmdetection version ==2.11.0
 cd mmdetection/
 pip install -v -e .

but,  I met new problems
(imvoxelnet) hy@hy-All-Series:~/hy3d/imvoxelnet$ python tools/create_data.py nuscenes --root-path /media/hy/DISK1/data/nuscenes/mini/v1.0-mini --out-dir ./data/nuscenes --extra-tag nuscenes
Traceback (most recent call last):
  File "tools/create_data.py", line 7, in <module>
    from tools.data_converter import nuscenes_converter as nuscenes_converter
  File "/home/hy/hy3d/imvoxelnet/tools/data_converter/nuscenes_converter.py", line 12, in <module>
    from mmdet3d.datasets import NuScenesDataset
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/datasets/__init__.py", line 3, in <module>
    from .custom_3d import Custom3DDataset
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/datasets/custom_3d.py", line 8, in <module>
    from ..core.bbox import get_box_type
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/core/__init__.py", line 2, in <module>
    from .bbox import *  # noqa: F401, F403
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/core/bbox/__init__.py", line 4, in <module>
    from .iou_calculators import (AxisAlignedBboxOverlaps3D, BboxOverlaps3D,
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/core/bbox/iou_calculators/__init__.py", line 1, in <module>
    from .iou3d_calculator import (AxisAlignedBboxOverlaps3D, BboxOverlaps3D,
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/core/bbox/iou_calculators/iou3d_calculator.py", line 5, in <module>
    from ..structures import get_box_type
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/core/bbox/structures/__init__.py", line 1, in <module>
    from .base_box3d import BaseInstance3DBoxes
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/core/bbox/structures/base_box3d.py", line 5, in <module>
    from mmdet3d.ops.iou3d import iou3d_cuda
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/ops/__init__.py", line 20, in <module>
    from .rotated_iou import IoU3DLoss, GIoU3DLoss
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/ops/rotated_iou/__init__.py", line 1, in <module>
    from .iou3d_loss import IoU3DLoss, GIoU3DLoss
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/ops/rotated_iou/iou3d_loss.py", line 7, in <module>
    from .oriented_iou_loss import cal_giou_3d, cal_iou_3d
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/ops/rotated_iou/oriented_iou_loss.py", line 2, in <module>
    from .box_intersection_2d import oriented_box_intersection_2d
  File "/home/hy/hy3d/imvoxelnet/mmdet3d/ops/rotated_iou/box_intersection_2d.py", line 8, in <module>
    from .cuda_op.cuda_ext import sort_v
ModuleNotFoundError: No module named 'mmdet3d.ops.rotated_iou.cuda_op'

now my conda env :
pytorch==1.10.0
mmcv                      1.3.0
mmcv-full                 1.3.0
mmdet                     2.11.0
mmdet3d                   0.8.0
mmpycocotools             12.0.3
cuda =10.2

Did you follow rotated_iou instruction in installation section of our readme?

Did you follow rotated_iou instruction in installation section of our readme?

ohhh,thank y.
Follow the steps you I solved the problem.
this error was due to my carelessness.


Missing solutions

% oops.pl
hello(a).
hello(b).
hello(c).
test(ok).

% ./tpl oops.pl
?- hello(X), test(Y).
   X = a, Y = ok
;  false. % unexpected: missing X = b, X = c

Not good, and recent it seems. Will have a look...
On Tue, Oct 8, 2024 at 9:19 AM guregu @.***> wrote:

% oops.plhello(a).hello(b).hello(c).test(ok).
% ./tpl oops.pl ?- hello(X), test(Y).   X = a, Y = ok;  false. % unexpected: missing X = b, X = c
—
Reply to this email directly, view it on GitHub
https://github.com/trealla-prolog/trealla/issues/605, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFNKSEQBEUJJVP2C6255Q3DZ2MJIVAVCNFSM6AAAAABPQ6Q5O2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGU3TCNZQGQ4DINI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks for the quick fix, looks good now! Caught this while working on my other stuff.

It's introduced a TCO regression on one simple case, looking at it.
On Tue, Oct 8, 2024 at 10:24 AM guregu @.***> wrote:

Thanks for the quick fix, looks good now! Caught this while working on my
other stuff.
—
Reply to this email directly, view it on GitHub
https://github.com/trealla-prolog/trealla/issues/605#issuecomment-2398274560,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFNKSERJ2MO3EHI5UPCX6ILZ2MQ2TAVCNFSM6AAAAABPQ6Q5O2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJYGI3TINJWGA
.
You are receiving this because you commented.Message ID:
@.***>


Investigation for https://github.com/flutter/flutter/issues/145599

Repro:

Clone this PR
Run
flutter test test/cupertino/tab_scaffold_test.dart  --dart-define LEAK_TRACKING=true --plain-name "Adding new tabs does not crash the app"

What is going on:

ImageCache.putIfAbsent, in case the image already existed in the cache, invokes ImageCache._trackLiveImage, that creates _LiveImage and passes the image's completer as parameter completer
_LiveImage constructor invokes super constructor (of _CachedImageBase) that initializes the member handle
handle is disposed using scheduler, and disposal does not happen in time of test completion.

Adding delay to the test increases number of not disposed objects from 30 to 120.
Should we force schedule at the end of the widget tests somehow to make scheduler switched to right state?
Creation call stack:
#9______new_ImageStreamCompleterHandle.__(package:flutter/src/painting/image_stream.dart:465:41)
#10_____ImageStreamCompleter.keepAlive_(package:flutter/src/painting/image_stream.dart:655:39)
#11_____new__CachedImageBase_(package:flutter/src/painting/image_cache.dart:609:27)
#12_____new__LiveImage_(package:flutter/src/painting/image_cache.dart:647:9)
#13_____ImageCache._trackLiveImage.<anonymous_closure>_(package:flutter/src/painting/image_cache.dart:302:14)
#14______LinkedHashMapMixin.putIfAbsent_(dart:collection-patch/compact_hash.dart:543:23)
#15_____ImageCache._trackLiveImage_(package:flutter/src/painting/image_cache.dart:296:17)
#16_____ImageCache.putIfAbsent_(package:flutter/src/painting/image_cache.dart:378:7)
#17_____ImageProvider.resolveStreamForKey_(package:flutter/src/painting/image_provider.dart:517:81)
                      #18_____ScrollAwareImageProvider.resolveStreamForKey_(package:flutter/src/widgets/scroll_aware_image_provider.dart:104:19)
#19_____ImageProvider.resolve.<anonymous_closure>_(package:flutter/src/painting/image_provider.dart:366:9)
#20_____ImageProvider._createErrorHandlerAndKey.<anonymous_closure>_(package:flutter/src/painting/image_provider.dart:479:24)
#21_____SynchronousFuture.then_(package:flutter/src/foundation/synchronous_future.dart:43:39)
                      #22_____ImageProvider._createErrorHandlerAndKey_(package:flutter/src/painting/image_provider.dart:476:9)
#23_____ImageProvider.resolve_(package:flutter/src/painting/image_provider.dart:363:5)
#24______ImageState._resolveImage_(package:flutter/src/widgets/image.dart:1111:16)
#25______ImageState.didChangeDependencies_(package:flutter/src/widgets/image.dart:1061:5)
#26_____StatefulElement._firstBuild_(package:flutter/src/widgets/framework.dart:5630:11)
#27_____ComponentElement.mount_(package:flutter/src/widgets/framework.dart:5457:5)
#28_____Element.inflateWidget_(package:flutter/src/widgets/framework.dart:4334:16)
#29_____Element.updateChild_(package:flutter/src/widgets/framework.dart:3843:18)
#30_____SingleChildRenderObjectElement.mount_(package:flutter/src/widgets/framework.dart:6763:14)

Creation call stack:
#9______new_ImageStreamCompleterHandle.__(package:flutter/src/painting/image_stream.dart:465:41)
                      #10_____ImageStreamCompleter.keepAlive_(package:flutter/src/painting/image_stream.dart:655:39)
                      #11_____new__CachedImageBase_(package:flutter/src/painting/image_cache.dart:609:27)
                      #12_____new__LiveImage_(package:flutter/src/painting/image_cache.dart:647:9)
                      #13_____ImageCache._trackLiveImage.<anonymous_closure>_(package:flutter/src/painting/image_cache.dart:302:14)
                      #14______LinkedHashMapMixin.putIfAbsent_(dart:collection-patch/compact_hash.dart:543:23)
                      #15_____ImageCache._trackLiveImage_(package:flutter/src/painting/image_cache.dart:296:17)
                      #16_____ImageCache.putIfAbsent_(package:flutter/src/painting/image_cache.dart:378:7)
                      #17_____ImageProvider.resolveStreamForKey_(package:flutter/src/painting/image_provider.dart:517:81)
                      #18_____ScrollAwareImageProvider.resolveStreamForKey_(package:flutter/src/widgets/scroll_aware_image_provider.dart:104:19)
                      #19_____ImageProvider.resolve.<anonymous_closure>_(package:flutter/src/painting/image_provider.dart:366:9)
                      #20_____ImageProvider._createErrorHandlerAndKey.<anonymous_closure>_(package:flutter/src/painting/image_provider.dart:479:24)
                      #21_____SynchronousFuture.then_(package:flutter/src/foundation/synchronous_future.dart:43:39)
                      #22_____ImageProvider._createErrorHandlerAndKey_(package:flutter/src/painting/image_provider.dart:476:9)
                      #23_____ImageProvider.resolve_(package:flutter/src/painting/image_provider.dart:363:5)
                      #24______ImageState._resolveImage_(package:flutter/src/widgets/image.dart:1111:16)
                      #25______ImageState.didChangeDependencies_(package:flutter/src/widgets/image.dart:1061:5)
                      #26_____StatefulElement._firstBuild_(package:flutter/src/widgets/framework.dart:5630:11)
                      #27_____ComponentElement.mount_(package:flutter/src/widgets/framework.dart:5457:5)
                      #28_____Element.inflateWidget_(package:flutter/src/widgets/framework.dart:4334:16)
                      #29_____Element.updateChild_(package:flutter/src/widgets/framework.dart:3843:18)
                      #30_____SingleChildRenderObjectElement.mount_(package:flutter/src/widgets/framework.dart:6763:14)

Hm, on my mac there are less leaks with this change and they are different:
  Expected: leak free
    Actual: <Instance of 'Leaks'>
     Which: contains leaks:
            # The text is generated by leak_tracker.
            # For leak troubleshooting tips open:
            # https://github.com/dart-lang/leak_tracker/blob/main/doc/TROUBLESHOOT.md
            notDisposed:
              total: 6
              objects:
                StatefulElement:
                  test: Adding new tabs does not crash the app
                  identityHashCode: 823867307
                _MediaQueryFromViewState:
                  test: Adding new tabs does not crash the app
                  identityHashCode: 701933900
                LeafRenderObjectElement:
                  test: Adding new tabs does not crash the app
                  identityHashCode: 637995193
                RenderErrorBox:
                  test: Adding new tabs does not crash the app
                  identityHashCode: 761576866
                PictureLayer:
                  test: Adding new tabs does not crash the app
                  identityHashCode:<PHONE_NUMBER>
                _NativePicture:
                  test: Adding new tabs does not crash the app
                  identityHashCode: 515013832

But bots run on Windows, and if on Windows there are no leaks, it is good fix for now. Eventually we will add bots for other platforms
However there is a question.
There are many tests that deal with animation. Why they are not leaking? Why we need to clean cash for this specific test. I am puzzled.

This test loads images. The images get cached. My theory about it being related to animated GIFs was mistaken.

We should document somewhere that if you use cached images, they'll get flagged as leaked unless you manually clear the cache.

cc @jonahwilliams who is probably the person most familiar with the image cache?
cc @goderbauer and @Piinks who may have opinions too

We should document somewhere that if you use cached images, they'll get flagged as leaked unless you manually clear the cache.

Added the guidance to the page that is linked in leak related exceptions: https://github.com/dart-lang/leak_tracker/pull/233


Implement CDC for MySQL using binlog

MySQL is a very common reliable RDS. However listening to events as CDC (change data capture) from MySQL has still rooms to grow as there are not many solutions readily available.
In order to create an add-on for benthos, we need to understand how to handle the different events from MySQL:

CREATE/INSERT
UPDATE
DELETE

To use binlog from MySQL, it has to be enabled on the server side. Once enabled, the mysqlbinlog can read the binlog files which looks as follows:
# mysqlbinlog -vvv /var/lib/mysql/master.000001

BINLOG '
JxiqVxMBAAAALAAAAI7LegAAAHQAAAAAAAEABHRlc3QAAWEAAQMAAUTAFAY=
JxiqVx4BAAAAKAAAALbLegAAAHQAAAAAAAEAAgAB//5kAAAAedRLHg==
'/*!*/;
### INSERT INTO `test`.`a`
### SET
###   @1=100 /* INT meta=0 nullable=1 is_null=0 */
# at 8047542
#160809 17:51:35 server id 1  end_log_pos 8047573 CRC32 0x56b36ca5      Xid = 24453
COMMIT/*!*/;

Which is basically the historical logs of queries that can be executed on a new database to restore the state.
Idea:
With the binlog file, we have several options to move forward

create a parser to parse the  binlog file output it in a way that benthos can use easily
use one of the existing parsers (e.g. a binlog-json parser) and work from there

However regardless of the solution we choose, we will still need to come up with an output that will handle the 3 CDC events.
If we take the common use case of mysql-kafka, there are only 2 events:

CREATE/UPDATE - key + data
DELETE - only key (data = null)

So we should be able to know at all time within a benthos pipeline what the key of the current message/data is.

Maybe it would be good to have a benthos generated id/key for each message in the pipeline (and this should be for all the benthos input available). If the input support id/key like mysql, kafka or any other inputs, we can override the benthos id/key with it. This will make sure that all the messages have the same meta pk in benthos terms.

The reason for this is that if we don't have it, we need to handle it separately.
Example CSV to kafka benthos:
input:
  gcp_cloud_storage:
    bucket: ${GCS_BUCKET}
    prefix: ${GCS_PREFIX}
    codec: csv
    delete_objects: true

pipeline:
  processors:
    - bloblang: |
        meta pk = this.person_id
        root.person_id = this.person_id
        root.name = this.name
        root.address  = this.address
        # Check if we need to send tombstone of the is_deletion flag.
        # To send tombstone, the root should be set to null
        root = if this.is_deletion == "true" {
            null
        }

output:
  kafka:
    addresses: [ ${KAFKA_BROKER_ADDRESS} ]
    topic: ${KAFKA_TOPIC}
    client_id: ${KAFKA_CLIENT_ID}
    target_version: 2.4.0
    key: ${! meta("pk") }
    max_in_flight: 10
    batching:
      count: 1000
      period: "60s"

In this example you can see that i had to handle the key and tombstone in the bloblang. However if we have always 2 object to work with (i.e. 1 for key and 1 for value) this can be much simpler. (of course there is no way to determine a delete from a csv file, this is purely based on the type of input that actually supports delete)
The MySQL Binlog perspective
The new input add-on should handle the 3 events mentioned above. Let's assume we can have a key and value of the message in each step of the pipeline of a benthos app. The add-on could process the events as follows (taking a basic person object with basic fields as example):

INSERT INTO PERSON (person_id, name, address) VALUES (100, "Tom", "Some Street")

# key object
{
  "person_id": 100
}

# value object
{
  "person_id": 100,
  "name": "Tom,
  "address": "Some Street"
}

Example of a benthos pipeline:
pipeline:
  processors:
    - bloblang: |
        # here we can play with key and value instead of root
        # by default it would be something like (what we receive from the binlog):
        key.person_id = 100
        value.person_id = 100
        value.name = "Tom"
        value.address = "Some Street"

       # And if we want to process the values, we can use bloblang as we did already
       # renaming the key field for example:
       key.person_id = deleted()
       key.id = this.person_id

UPDATE - any update could be treated the same way as the INSERT above. However another base attribute can be added for the old values. so we would then have key, value and old_value.
DELETE - for deletes, we would still have key and value. However the value will be set to null. This can be challenged in a way that we provide an object with all attributes set to null, but i highly doubt this would make much sense.

Examples of binlog json parsers:

https://github.com/labbati/mysqlbinlog-to-json
https://github.com/noplay/python-mysql-replication
https://github.com/zendesk/maxwell

I'll add more updates later. If. you have more ideas or questions, feel free to add.

https://github.com/wal-g/wal-g

Speaking of postgres, a pg logical slot input would be fantastic.
https://www.postgresql.org/docs/10/logicaldecoding-explanation.html#LOGICALDECODING-REPLICATION-SLOTS


Updates from Wed 1 Jul

Just a heads up that if the jest upgrade in https://github.com/a2/react-native/commit/555236865b6ddf47c39e2de1e7d53b0957bd0b2f lands we'll need to accelerate the migration to io.js (tracking in https://github.com/facebook/react-native/issues/1737).

Part of #1819 and #1382 need to be landed internally so doing that now. Will then merge the rest into this PR. Thanks, @ide!

@a2 I have some idea of what the js failure is... I can help look into it but it's easier for me to test against master. Do you want to go ahead and merge especially since tests are failing on master anyway?

I didn't want to merge it yet but since it's a JS change, that's not really my area of expertise. I asked @amasad to look into it since it's getting late in London but if we can't figure it out tonight, I'll look into it more tomorrow.

OK.
I think the packager/react-packager/src/JSTransformer/__tests__/Cache-test.js failure might be fixed by adding jest.runAllTicks(); at the end above the runAllImmediates call.

Why is runAllTicks changed to runAllImmediates? That seems to be what the breakage is

Bluebird changes its scheduler to use setImmediate when running on Node 0.12 or newer: https://github.com/petkaantonov/bluebird/blob/634af0e27ff4faab62c6c5bfd105527abcf8b06e/src/schedule.js#L10. There's an update to .travis.yml to run iojs-v2 instead of Node 0.10, so the runAllImmediates call was added.

ah, but we stopped using bluebird. We're now using https://github.com/then/promise

Then I think what's happening is that the runAllTicks call was always needed, and now with Promise it might be OK to drop the runAllImmediates call.

The e2e tests are failing on Travis but I ran them locally and they passed. Going to merge this and we can figure out what's happening on Travis later.

Okay so the builds are passing now but I didn't change anything. WTF Travis.

@a2, @amasad thanks for getting the tests to pass again =)


Fixed spelling of Bracket

Found your repo in /r/webdev. Took a look at the code. Found this spelling error.
You probably found the keycodes here since they have the same spelign error. :)

Ironically, you misspelled 'spelling.' :stuck_out_tongue_winking_eye:

Thanks for that

My pleasure. :)


GDScript 2.0: GDScript assumes typed array with custom classes contains raw classes

Godot version
4.0-dev.20210916
System information
Windows 10
Issue description
Typed arrays containing custom classes do not work as expected. When calling a function on an object contained in such an array, the editor shows an error "Cannot call non-static function on the class directly. Make an instance instead".
Steps to reproduce
Create a custom class with class_name, and add a function.
Create a typed array with the custom class, such as var typedArray: Array[CustomClass]
Try to call the function from an object in the array, like typedArray[0].some_func()
Minimal reproduction project
TypedArrayTest.zip

Can't reproduce in v4.0.beta3.official [01ae26d31], must have been fixed somewhere along the way.
From the MRP:


Query regarding dimensions of activations

Hi,
When I print the dimensions of head_wise_hidden_states in get_llama_activation_bau(), I see (32, 21, 4096). I see that in get_activations.py you then only save the last value of the 21: all_head_wise_activations.append(head_wise_activations[:,-1,:]).
I'm guessing 21 is the number of tokens in the prompt?

Yes, you are right!


add the name AR-BRO

add the name AR-BRO

Thank you for being parts of the run!!
AR-BRO guys are our heroes !!
LGTM


Re-organize run_wsclean

Put all wsclean parameters in kwargs, and maintain a default list.
Noted:

for wsclean args (e.g. '-minuv-l') need to remove the leading '-', and replace the rest '-' with '_'. (e.g. '-minuv-l' became 'minuv_l')
The args without value is set to True or False, for example.
add False to a key to remove it from the args list.

Default list:
    default_kwargs={
        'j':'4',                    # number of threads
        'size':'4096 4096',         # image size
        'scale':'2arcmin',          # pixel scale
        'weight':'uniform',         # weighting scheme
        'no_dirty':'',              # don't save dirty image
        'no_update_model_required':'', # don't update model required
        'no_negative':'',           # no negative gain for CLEAN
        'niter':'10000',            # number of iterations
        'mgain':'0.8',              # maximum gain in each cycle
        'auto_threshold':'3',       # auto threshold
        'auto_mask':'8',            # auto mask
        'pol':'I',                  # polarization
        'minuv_l':'10',             # minimum uv distance in lambda
        'intervals_out':'1',        # number of output images
        'no_reorder':'',            # don't reorder the channels
        'beam_fitting_size':'2',    # beam fitting size
    }

For example:
deconvolve.run_wsclean('sun.ms', imagename='output', niter=1000, size='5000 5000'
                       mgain=0.9, auto_mask=False, auto_threshold=False, pol='I')

creates
wsclean  -j 4  -size 5000 5000  -scale 2arcmin  -weight uniform  \
    -no-dirty  -no-update-model-required  -no-negative  \
    -niter 1000  -mgain 0.8  -auto-threshold 3  -auto-mask 5  -pol I  \
    -minuv-l 0  -intervals-out 1  -no-reorder  -beam-fitting-size 2  -field all \
    -name output sun.ms

cook_wsclean_cmd will be removed, I will put the function (determine pixel size (scale) according to frequency and longest baseline)  inside run_wsclean, by adding args: auto_scale=False, auto_scale_FOV=fov, telescope_size=3200.
This is for later speed optimization, using smaller N_pix for lower frequency.
I think we should move predict out of kwarg indeed, kwarg should be only for the additional parameters for wsclean.
OK, I will move image size and cell size into the main option, one question is should we keep consistent with wsclean input size and scale or use imsize and cell
I modified every run_wsclean function call in the package, but only tested image_ms_quick,
will modify and run more test.

I think it is better to use size and scale... my motivation for those names were to keep them consistent with CASA.

This is a big improvement !!!

Peijin, I looked at your code of the deconvolve.run_wsclean, and based on that I have a few suggestions..

Instead of doing size=FOV/pixel scale, choose a number which is can be represented by power of 2,3,5,7,11 and 13. This is because FFTW which is being used, which is fast for these powers. Also note that it is preferable that the sum of powers of 11 and 13 is either 0 or 1. (you can see https://www.fftw.org/fftw3_doc/Real_002ddata-DFTs.html for details)
Also I generally set the pix_scale_factor to 3 to ensure slightly higher than Nyquist sampling. However, WSClean will by default do the inversion at Nyquist sampling and then upscale image to requested image size. May I request you to take a look at the image quality in some detail with regard to this parameter?

sure, good point on the size, will add a feature for it to find the cloest suitable number for the clean.
The image quality refers to the final image or the middle step all sky image?

I think we can just see the all-sky image and compare the calibration solutions generated from it..

Nice!
Sent from my iPhone
On Tue, Jan 9, 2024 at 8:11 AM Peijin Zhang (张沛锦) @.***>
wrote:

Auto-pix-scale in selfcal all-sky imaging can save half of the clean time
in selfcal, and 10% of image_ms_quick, with no visible influence on the
final image result
image.png (view on web)
https://urldefense.com/v3/__https://github.com/binchensun/ovro-lwa-solar/assets/11596456/dcecf69f-6ec9-40fa-8761-0a21f1e69fd4__;!!DLa72PTfQgg!N3g0fHzEs67_udZLJ1KCW6FrHj0AUV0uZY9Pra_RD73_vuZKatVfYDRbfYeKfzJsPxY0dW03sz9VVypISp-C5R4m$
—
Reply to this email directly, view it on GitHub
https://urldefense.com/v3/__https://github.com/binchensun/ovro-lwa-solar/pull/31*issuecomment-1883120341__;Iw!!DLa72PTfQgg!N3g0fHzEs67_udZLJ1KCW6FrHj0AUV0uZY9Pra_RD73_vuZKatVfYDRbfYeKfzJsPxY0dW03sz9VVypISrF0aGln$,
or unsubscribe
https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AB5MZJSRTTPKOSKFJPZDSIDYNVF2NAVCNFSM6AAAAABBRZFG5CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBTGEZDAMZUGE__;!!DLa72PTfQgg!N3g0fHzEs67_udZLJ1KCW6FrHj0AUV0uZY9Pra_RD73_vuZKatVfYDRbfYeKfzJsPxY0dW03sz9VVypISjI1emuT$
.
You are receiving this because you commented.Message ID:
@.***>

The changes look good..


Not working with OSX / zsh / oh-my-zsh / powerlevel9k

Hi I am using zsh with oh-my-zsh and powerlevel9k theme. I am getting following errors on starting HyperTerm.
~/.oh-my-zsh/custom/themes/powerlevel9k/functions/icons.zsh:130: character not in range ~/.oh-my-zsh/custom/themes/powerlevel9k/functions/utilities.zsh:86: command not found: print_icon left_prompt_segment:24: command not found: print_icon                                                                                left_prompt_segment:44: command not found: print_icon prompt_vcs:33: command not found: print_icon prompt_vcs:34: command not found: print_icon prompt_vcs:42: command not found: print_icon left_prompt_end:2: command not found: print_icon left_prompt_end:6: command not found: print_icon right_prompt_segment:32: command not found: print_icon right_prompt_segment:38: command not found: print_icon right_prompt_segment:32: command not found: print_icon right_prompt_segment:32: command not found: print_icon
Is there any way to resolve this ?

Please post the output of running the command locale

LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

Adding export LANG="en_US.UTF-8" on your .zshrc fixes the errors, but does not show the correct icons.

@jorgemartins Thanks, I tried your fixes mentioned in comment to no avail. The fontFamily piece specifically caused iTerm and Hyperterm to throw errors.
ANy ideas?

Here's the export of my locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=

Disregard, got it working.

Closing in favor of #607


Is "Reply with Mastodon" supported?

Title says it all.

Not yet, but it will soon!

Version 1.6 should be available, and if you install the Reply on Mastodon plugin, it should appear on your posts.

I see you closed this, but installing the Reply on Mastodon plugin does not make the button appear on my posts (running 1.8).
PS: Thanks for the theme, loving it.

@tartanhare The Reply with Mastodon button will not appear on every post. I believe that it only appears on posts that have been cross posted from the Micro.blog feeds.
I'm not 100% certain how it works to be honest. I know my older posts don't have it and my new posts that I cross posted do.
If that's not the case for you, let me know and I'll see if there something else going on.
Please provide a link to a post where you expect it to appear.

Ah, I see... I have clearly misunderstood the RoM plugin. I thought it was for readers users to reply to my posts via their Mastodon, rather than reply to my Mastodon account.

Ah, I see... I have clearly misunderstood the RoM plugin. I thought it was for readers users to reply to my posts via their Mastodon, rather than reply to my Mastodon account.

Yep, that got me when I first installed it also.


Fully-offline bundles for iOS

Hey,

We have not yet implemented fully-offline bundles for iOS. This is coming soon and we foresee no difficulties. If you need this now, please get in touch.

Is this still the case? We may be looking to use this in the coming months,
Thanks

Hey,
We haven't implemented fully-offline bundles for iOS yet, but you've reminded me that we should. We'll work on this tomorrow and let you know how we progress. I don't think it will be difficult at all. Will be great if, once we've done it, you can test it out for us. :)
Tom

Awesome, thanks!

Hmmm, accidentally closed this...

As always, it took longer than we hoped, but this is now done. We are testing internally (should take a couple of hours) but I expect it will work. Please re-open this issue if there are any problems.


GPIO button script (link) missing

First of all: what an awesome project, worked like a charm!
Trying to go to the next level with buttons, I saw that the (draft) GPIO script link was missing:
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/misc/GPIO-button-sample.py
Can someone please post /re-add?
Many thanks in advance!

Sorry, got it, found it here: RPi-Jukebox-RFID/misc/sampleconfigs/


[analyzer] Missing FieldDeclaration.covariantKeyword in ToSourceVisitor

Probably should be here before or after the static keyword.
Additionally, the question token is not added here and in several other places (can open a separate issue, if needed).

@incendial, did you run into issues while trying to use the analyzer API?

Yes. This impacts the toSource() method on AstNode. That method only promises to approximate valid source, so clients shouldn't be depending on it, which means that this shouldn't be a high priority issue.

It also affects the toString call on any AST node (which has no disclaimer for being "approximate valid source") and is sometimes used in rules (both as toSource and toString, in, for example, interpolations).

did you run into issues while trying to use the analyzer API?
I don't use the analyzer as a package (and already have a fix for it), so depending on your definition of an API the answer may vary. But this is a bug that affect the public API.


minLength validation only when not empty

I only want the minLength validation when a value is specified; an empty field is fine.
It seems that this is arguably redundant:
            validators: [
              FormBuilderValidators.required(),
              FormBuilderValidators.minLength(4),
            ],

I thought I could simply remove the required() validator, but minLength(4) still complains that the empty field is not at least 4 characters.
Maybe the minLength validator could have an optional flag to say whether it should apply to empty fields?  (That way, backwards compatibility can be maintained.)

My workaround is to do this:
              validators: [
                (val) => val.isNotEmpty
                    ? FormBuilderValidators.minLength(4).call(val)
                    : null,
              ],

This is not awful, but I'm open to a more elegant solution.

I only want the minLength validation when a value is specified; an empty field is fine.
It seems that this is arguably redundant:
            validators: [
              FormBuilderValidators.required(),
              FormBuilderValidators.minLength(4),
            ],

I thought I could simply remove the required() validator, but minLength(4) still complains that the empty field is not at least 4 characters.
Maybe the minLength validator could have an optional flag to say whether it should apply to empty fields? (That way, backwards compatibility can be maintained.)

This actually sounds like an elegant suggestion.

When the field is truly required, adding FormBuilderValidators.required(), provides a better user interface experience.  It is better that it says, "field must not be empty", rather than just a "field must be at least 4 characters."
However, when the field is not required, adding the flexibility to FormBuilderValidators.minLength would be nice.  Maybe something like:
validators: [
              FormBuilderValidators.minLength(4, allowEmpty: true),
            ],

I just tried using this and it did not work:
    FormBuilderValidators.minLength(4, allowEmpty: true),

Alas, I get a "Value must have a length greater than or equal to 4." message when the field is blank.
The implementation is presently:
static FormFieldValidator minLength(
  num minLength, {
  bool allowEmpty = false,
  String errorText,
}) {
  return (valueCandidate) {
    if (allowEmpty && (valueCandidate == null || valueCandidate?.length == 0))
      return errorText ??
          "Value must have a length greater than or equal to $minLength";
    if (valueCandidate != null && valueCandidate.length < minLength) {
      return errorText ??
          "Value must have a length greater than or equal to $minLength";
    }
    return null;
  };
}

May I recommend this alternative:
static FormFieldValidator minLength(
  num minLength, {
  bool allowEmpty = false,
  String errorText,
}) {
  return (valueCandidate) {
    final valueLength = valueCandidate?.length ?? 0;
    if (valueLength < minLength && (!allowEmpty || valueLength > 0)) {
      return errorText ??
          "Value must have a length greater than or equal to $minLength";
    }
    return null;
  };
}

HI @awhitford,
I now see the mistake I made.
Could you be kind enough to submit a PR for this?

Note that I see that you added allowEmpty to the maxLength validator too, but that is not necessary because an empty value will not trigger a max length validation.

PR has been submitted.  However, please note that I was unable to completely validate it because the build is broken:
../lib/src/fields/form_builder_phone_field.dart:181:11: Error: No named parameter with the name 'visualDensity'.

I assume that this is work in progress.

Confirmed that this now works great with version 3.10.0.  Thank you!


CLI: minor fixes

Minor fixes for the CLI documentation pages in preparation of 5.1.0

fixes a command typo spotted by @manics
lists options for bin/omero help

--no-rebase

Looks good to merge.

Travis didn't pick this up but now it's merged I'm getting an error in my local build:
/Users/helen/ome-documentation/omero/users/cli/overview.txt:45: WARNING: Malformed :option: u'command', does not contain option marker - or -- or / or +


I can't remap the KEY_MENU or KEY_CONTEXT_MENU

Nothing just happens, everything else of the setup works, it seems that when it gets to the menu it's just ignored
modmap:
  - name: Default ReMap
    remap:
        KEY_MENU: KEY_RO
        KEY_CONTEXT_MENU: KEY_RO
        KEY_RO: CTRL_R

Could you run RUST_LOG=debug xremap, press that key, and report the output here?

Could you run RUST_LOG=debug xremap, press that key, and report the output here?

This option will help me a lot.
It showed me that my ContextMenu key is called KEY_COMPOSE
In this case, I first pressed the key and then pressed it with FN pressed.
I needed to press fn to activate it. Well, with this configuration it's already working
[2024-04-05T10:42:30Z DEBUG xremap::event_handler] => 0: KEY_ENTER
[2024-04-05T10:42:30Z DEBUG xremap::action_dispatcher] 0: KEY_ENTER
[2024-04-05T10:42:33Z DEBUG xremap::event_handler] => 1: KEY_RO
[2024-04-05T10:42:33Z DEBUG xremap::action_dispatcher] 1: KEY_RIGHTCTRL
[2024-04-05T10:42:33Z DEBUG xremap::event_handler] => 0: KEY_RO
[2024-04-05T10:42:33Z DEBUG xremap::action_dispatcher] 0: KEY_RIGHTCTRL
[2024-04-05T10:42:34Z DEBUG xremap::event_handler] => 1: KEY_COMPOSE
[2024-04-05T10:42:34Z DEBUG xremap::action_dispatcher] 1: KEY_RO
/[2024-04-05T10:42:34Z DEBUG xremap::event_handler] => 0: KEY_COMPOSE
[2024-04-05T10:42:34Z DEBUG xremap::action_dispatcher] 0: KEY_RO

modmap:
  - name: Default ReMap
    remap:
        KEY_COMPOSE: KEY_RO
        KEY_RO: CTRL_R


Could not get 1 of 2 files with same key.

myversion is 30GB 1.31 linux amd64.
I get a error when getting fid 82,4cae725bbd3e21.
"request /82,4cae725bbd3e21 with cookie:5bbd3e21 expected:4aba18f3 from <IP_ADDRESS>:52478 agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
Changed cookie of fid, I can get the file 82,4cae724aba18f3. But it's not the file I wanted.I searched for filer to find both.

is that bug? exist two same index key but different cookie fid.

Please show how you start the servers, how many volumes, etc.

Please show how you start the servers, how many volumes, etc.

I restart the master server and volumes together a few times.
I have 1 master server and 6 volume servers. every volume server have 20-40 volumes.
sometimes, defore restarting, I changed the  -max of one volume server.

The only possible case is that when the master is restarted, before the volume server reconnects with the master, a write request comes in.
Try not to restart master servers often.
I will also add some code to protect against this case, and fail early if the cookie does not match.

This case should be fairly rare. Added a fix to fail fast if this ever happens.

This case should be fairly rare. Added a fix to fail fast if this ever happens.

fixed the volume doesn't work. the old fid was overwritten.

The only possible case is that when the master is restarted, before the volume server reconnects with the master, a write request comes in.
Try not to restart master servers often.

before the volume server reconnects with the master，the volume is not available. I can;t find the bug after checking code.

This case should be fairly rare. Added a fix to fail fast if this ever happens.

fixed the volume doesn't work. the old fid was overwritten.

The fix https://github.com/chrislusf/seaweedfs/commit/c54d9221b90676b499830f27064cc7ef8f6cfdfd is to avoid overwrite the old fid.

thank you for supportting.


Automatic wallet start

Right now when I download the wallet and choose a custom location for its files (Windows), every time I run it again it will ask me for the location again (as if it was a first, clean start). This prevents me from setting the wallet to start automatically with the system start.
I would like the wallet to be able to remember its custom file location, so it can start automatically with the system start without my assist.
Thank you

what you can to do is to create a shortcut, then edit it to put the customer conf dir location there. For example, in windows you can edit the shortcut property and add something like this:
(exe dir)\DeepOnion-qt.exe -dataDir=(config dir)
replace exe_dir and config_dir with your corresponding dir.
then each time click on the shortcut to start.


Look into XI Editor's Rope data structure for buffer storage.

I think the Rope structure would be useful for slacs, as methods to store a buffer's contents is something I've been puzzling over.
I think it should be useful to use the Rope crate for slacs.
Just need to check licensing, IIRC XI-Editor (&Rope?) are Apache 2 licensed, contrary to slacs's GPLv3 licensing.

For reference, it turns out Apache 2 is compatible with the GNU GPLv3, but not the GNU GPLv2.

Due to the state of affairs of xi-rope right now, it is best to use a
Gapbuffer implementation instead for slacs.
For extensibility, I will be, at some point, implementing a general
set of API abstractions for buffer contents, so buffer content
backends can be swapped in and out on-the-fly, if all goes well.

Closing due to decision made


refactor: introduce common reconciler module

This provides default component reconcile functions that can be used across
controllers. For more complex reconcile functions, controllers can still
create custom types.
The reconcilers are implemented as types that implement the Reconciler
interface to adhere to convention (a simple custom type would have
sufficed).

Ok I addressed the review comments and tried to clarify things with better names and comments. wdyt?

How about NewOptionalUpdater? With the comment you suggested I think this name makes sense.


can LVPWELL be used without DNWELL?

Looking at the current pcells, it seems that drawing the LVPWELL for nfet:
https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/blob/11770e5e5bae2a2072899e7ef282c080e6c5d762/cells/klayout/pymacros/cells/draw_mos.py#L192-L195
is gated by having deepnwell param enabled:
https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/blob/11770e5e5bae2a2072899e7ef282c080e6c5d762/cells/klayout/pymacros/cells/draw_mos.py#L172
Are those two always tied together? looking at the design manual there seems to be a valid use case for using LVPWELL outside of DNWELL:
https://gf180mcu-pdk.readthedocs.io/en/latest/physical_verification/design_manual/drm_07_04.html

If this layer is used without DNWELL (outside DNWELL), the body of all those transistors will by default be connected to P-substrate potential.

@atorkmabrains @RTimothyEdwards

@proppy :  Yes, LVPWELL outside of DNWELL is equivalent to substrate and should be treated as such.  That usage is in much of the GF IP.

Thanks @RTimothyEdwards

@RTimothyEdwards Thanks for the explanation.
@atorkmabrains would it makes sense to update the pcells to always draw LVPWELL when Bulk Tie is set?
https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/blob/11770e5e5bae2a2072899e7ef282c080e6c5d762/cells/klayout/pymacros/cells/draw_mos.py#L192-L195

@msaligane - this was the issue I was talking about

@atorkmabrains currently it seems that LVPWELL is only drawn when DNWELL is set in the pcell option, would it make sense to update the pcell implementation to always draw LVPWELL when bulk tie is enabled independently of the state of the DNWELL option?

@proppy That's a separate issue. LVPWELL is optional or don't care in case that DNWELL is not drawn. If you draw, DNWELL you can draw LVPWELL. Pcell is functioning correctly, no need to add this modification into the pcell.
@spnadig Could you please show me the design that caused this?
@spnadig I advise that you use DRC and LVS from https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pr? Also, please stay tuned as we are going to move LVS and DRC to: https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pv.
cc @msaligane

@RTimothyEdwards Thanks for the explanation.
@atorkmabrains would it makes sense to update the pcells to always draw LVPWELL when Bulk Tie is set?
https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/blob/11770e5e5bae2a2072899e7ef282c080e6c5d762/cells/klayout/pymacros/cells/draw_mos.py#L192-L195

No, as I mentioned in my comment above, LVPWELL is totally ignored in everything if there is no DNWELL. No need to modify the pcell.
The issue that @spnadig is a separate issue. I need to look into it.

My understanding is that in https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/issues/104#issuecomment-1421127633 @RTimothyEdwards stated that LVPWELL without DNWELL was a valid usecase.
Shouldn't we make sure that this is also supported by the pcell?

@proppy yes, you could draw LVPWELL but the correct action is to not to draw it by default as it's disregarded in case the DNWELL is not drawn. The pcell is designed to allow the real use case of the LVPWELL. I don't advise to add LVPWELL if you are not really using it.
An exception to my comment above is the standard cells, standard cells should have LVPWELL just in case the user might want to use DNWELL later around the digital block later for any electrical reasons. But this use scenario is only valid for standard cells.

@proppy I'm more concerned about the issue the @spnadig regarding the LVS. I need to understand that use case and why it didn't pass without DNWELL even if the LVPWELL. This has nothing to do with the pcell adding LVPWELL.

@atorkmabrains I think this is due to the substrate connection of the bulk tie creating an additional signal (gf180mcu_gnd) when the LVPWELL is not present.
Is there a usecase for setting Bulk tie without drawing LVPWELL?

@proppy bulk tie doesn't need to LVPWELL to happen, please read here:
https://en.wikipedia.org/wiki/CMOS
And BTW, that's the normal in almost all CMOS processes.
GF180MCU is a triple well technology, hence we need a PWELL marker:
https://www.researchgate.net/figure/Triple-well-NMOS-transistor-structure-See-the-colors-in-the-online-version_fig2_303530652

bulk tie doesn't need LVPWELL to happen, please read here: https://en.wikipedia.org/wiki/CMOS

Thanks for providing the links, I could find any mention of bulk tie nor its relation (if any) to PWELL on it, do you have an alternative source of documentation?

GF180MCU is a triple well technology, hence we need a PWELL marker:
https://www.researchgate.net/figure/Triple-well-NMOS-transistor-structure-See-the-colors-in-the-online-version_fig2_303530652

Without a PWELL it seems that the current LVS extraction is not able to infer the substrate connection of the BULK tied to SRC terminal for nmos device effectively leaving it floating with a different ground net, is that intentional? Or is there a different way to provide a hint for this implicit connection in the layout?

Without a PWELL it seems that the current LVS extraction is not able to infer the substrate connection of the BULK tied to SRC terminal for nmos device effectively leaving it floating with a different ground net, is that intentional? Or is there a different way to provide a hint for this implicit connection in the layout?

If what you mentioned is true that LVS requires LVPWELL to get the connectivity to substrate, then that's definitely a bug in LVS. I need the test case that has that issue. Also, are they using Google repo? If yes, then please tell them to use efabless one as Google repo is not updated and not cleaned.

bulk tie doesn't need LVPWELL to happen, please read here: https://en.wikipedia.org/wiki/CMOS

Thanks for providing the links, I could find any mention of bulk tie nor its relation (if any) to PWELL on it, do you have an alternative source of documentation?

As for your question about this, you need to know more about micro-electronics bulk tie has many different words, you don't necessarily need to find in the link I provided. Here is a few good courses you could start looking at:

https://ocw.mit.edu/courses/6-012-microelectronic-devices-and-circuits-fall-2005/pages/lecture-notes/
http://bwrcs.eecs.berkeley.edu/Classes/icdesign/ee240_sp12/lectures.html