"No single root directory found, all dists must extract to a single directory" error when trying to upload module to zef via App::Mi6 - raku

Getting a weird error I've never seen before while trying to upload a new module to zef using the App::Mi6 mi6 release command:
==> Step 9. UploadToZef
Are you sure you want to upload Directory-0.0.1.tar.gz to Zef ecosystem? (y/N) y
Executing /Users/steve/.rakubrew/versions/moar-2022.12/bin/rakudo -e use Fez::CLI --file=Directory-0.0.1.tar.gz upload
>>= Looking in "Directory-0.0.1.tar.gz" for META6.json
=<< No single root directory found, all dists must extract to a single directory
Failed
in method upload at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/sources/12D2D4FC78FDF40E8B7DEC72AF31ECED31A67D08 (App::Mi6::Fez) line 19
in method run at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/sources/A4949DB54562D3B5154DD447B5CC2C730F09B0E5 (App::Mi6::Release::UploadToZef) line 24
in method run at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/sources/BDF7095037EE976677901A8557FD533DCDC6FD65 (App::Mi6::Release) line 49
in method cmd at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/sources/299DED9746B9228495A0B5E829FE0A6BBD7DFE88 (App::Mi6) line 162
in sub MAIN at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/resources/5831540356728593B89C55370F0C33F8DD0813F5 line 20
in block <unit> at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/resources/5831540356728593B89C55370F0C33F8DD0813F5 line 5
in sub MAIN at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/bin/mi6 line 3
in block <unit> at /Users/steve/.rakubrew/versions/moar-2022.12/share/perl6/site/bin/mi6 line 1
Google turns up nothing on this error. This means I've found a major bug or the three glasses of wine I've had tonight have me doing something really stupid. :)

OK, this is a bug related to how the fez module interacts with how tarballs are generated on a mac.
A pull request has been made to address this issue: https://github.com/tony-o/raku-fez/pull/74.
I'm not sure what accounts for things working on 2022.07 and not 2022.12 version of raku.

Related

Exception::raise(): Unimplemented Parser Node: EmptyElse

When running srb init in a Rails app I get the following:
Generating /tmp/d20220723-3779490-paqj5l/reflection.rbi with 6784 modules and 142 aliases
Printing your code's symbol table into /tmp/d20220723-3779490-paqj5l/from-source.json
/home/allan/.asdf/installs/ruby/3.1.0/lib/ruby/gems/3.1.0/gems/sorbet-0.5.10206/lib/hidden-definition-finder.rb:123:in `write_constants': Your source can't be read by Sorbet. (RuntimeError)
You can try `find . -type f | xargs -L 1 -t bundle exec srb tc --no-config --isolate-error-code 1000` and hopefully the last file it is processing before it dies is the culprit.
If not, maybe the errors in this file will help: /tmp/d20220723-3779490-paqj5l/from-source.json.err
When I check that error file I find this:
Exception::raise(): Unimplemented Parser Node: EmptyElse
Is there a workaround to get past this error?
Anytime you see Exception::raise in a Sorbet error message, it means there was a bug in Sorbet. You can report Sorbet bugs at https://github.com/sorbet/sorbet/issues
I have created a fix for this bug here: https://github.com/sorbet/sorbet/pull/6161
It will require upgrading Sorbet before you can take advantage of the fix. If you can't wait for that, you will have to hunt down the file in your codebase that uses Ruby's new case ... in syntax for pattern matching with an empty else keyword, and either delete the else keyword or change it to mention else nil instead.
Sorry for the inconvenience.
In the future, please use https://github.com/sorbet/sorbet/issues to report all issues—I only happened to see this by accident today, but I normally do not monitor StackOverflow for bug reports.

In Yocto Dunfell, which recipe is writing out `/lib/systemd/system/getty#.service`

I would like to find the recipe writing out /lib/systemd/system/getty#.service so I can create an append.
First I tried to find out the creating package, which should be systemd:
$ oe-pkgdata-util find-path /lib/systemd/system/getty#.service
systemd: /lib/systemd/system/getty#.service
Thus, I looked up meta/recipes-core/systemd/systemd_244.3.bb (and the systemd.inc), but didn't find anything of value. Only the following line looked like a hit:
RDEPENDS_${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) util-linux-agetty util-linux-fsck"
This made the impression as if this file might get pulled in as a dependency, and is actually created by util-linux-agetty.
So I looked up the creating recipe:
$ oe-pkgdata-util lookup-recipe util-linux-agetty
util-linux
But in meta/recipes-core/util-linux/util-linux_2.35.1.bb and util-linux.inc I can't find creation of that file either.
I'm genuinely puzzled.
My image is equal to core-image-minimal except that it uses systemd as init manager.

eclipse-neon bower-install can't run due to error in the file

I create javascript project and bower.json. After adding dependencies as follow gives me red-cross on project->bower_components->bootstrap->grunt->change-version.js file and query->src file:
"dependencies":{
"bootstrap":"~3.3.7"
}
This is first problem:
Description Resource Path Location Type
Expected name at 2:1 .eslintrc.json /gruntTest/bower_components/jquery/src line 2 JSON Problem
Second problem:
Description Resource Path Location Type
Unexpected token ILLEGAL change-version.js /gruntTest/bower_components/bootstrap/grunt line 1 JavaScript Problem
I assumed that eclipse neon doesn't need to download Nodeclipse & Enide and try to practice from scratch thats the reason error happened.
Nodeclipse & Enide must installed before practicing nodejs in eclipse.
I followed this link and worked great.
http://www.nodeclipse.org

Testing net/http?

I am a little confused about how to structure a go web app and its tests. I have read the How to Write Go Code but still don't get it. For example, I have a go project called "beacon" with a beacon.go file at the root. Adding a trivial beacon_test.go file (copied verbatim from http://golang.org/pkg/net/http/httptest/#example_Server) causes this error:
$ go test
# github.com/jelder/beacon
./beacon_test.go:11: main redeclared in this block
previous declaration at ./beacon.go:216
FAIL github.com/jelder/beacon [build failed]
Sure enough, line 11 is func main(). If I instead change the package main line in my beacon_test.go to package hello, I get this error instead:
can't load package: package github.com/jelder/beacon: found packages main (beacon.go) and hello (beacon_test.go) in /Users/jacob/src/github.com/jelder/beacon
beacon_test.go has also a function called main() rename it to TestFirst (or any other name you like as long as it starts with Test, note the uppercase T is important). There is no need for that. Just run go test . from inside the package you are working on (the one containing the *.go files). Post the full files if you need more help.

LLDB equivalent of gdb's future-break?

I keep a future-break objc_exception_throw in my .gdbinit (because I generally debug in AppCode, which doesn't yet have a GUI means of configuring breaks on objective-c exceptions).
Is there an equivalent for LLDB?
If you create a ".lldbinit" file in the directory from which you are debugging and then specify the file on the command line:
% cat ./.lldbinit
breakpoint set --name objc_exception_throw
% lldb /bin/ls
(lldb) breakpoint list --full
Current breakpoints:
1: name = 'objc_exception_throw', locations = 0 (pending)
This should help you to work around the issue for now.
The ".lldbinit" file ordering is:
check for app specific ~/.lldbinit-lldb file (where "lldb" is the name of the application that is running the LLDB.framework, you can add a ~/.lldbinit-Xcode for Xcode only command) if available
if no app specific file from step 1, then source "~/.lldbinit" if it exists
load the file and process the options from the "lldb" command line command
parse the local "./.lldbinit" file from the current working directory.
You can't currently do that with lldb. Until lldb has set up a Target (which will happen when you specify a binary), you can't add a breakpoint. This is something that will need to be added in the future.