Hyprland v0.7.1

Checklist

[X] Checked the nixpkgs master branch

[x] Checked the nixpkgs pull requests

Project name
nix search name: hyprland (only in unstable repos)

current version:0.6.1
desired version:0.6.3
Notify maintainers

maintainers: vexerski
Note for maintainers
Please tag this issue in your PR.

There is a pr for hyprland v0.6.3

This issue will be closed automatically when the referenced PR is merged.

Ok good to know

Hyprland is now at 0.16.0beta

Now at 0.22.0beta. The reccommendation on the wiki is to use the Flake instead of nixpkgs, with how out of date we are.

We just need someone using hyprland to do up a PR and test it out - there really is nothing preventing us from bumping it.

https://github.com/NixOS/nixpkgs/pull/221617


Improve the table-of-contents

Preview: https://deploy-preview-1057--cert-manager-website.netlify.app/docs/tutorials/getting-started-with-cert-manager-on-google-kubernetes-engine-using-lets-encrypt-for-ingress-ssl/

Made it so that the TOC items do not wrap and overflow the container column (which I think looks neater, given that the right hand column is so narrow).
Made it possible to filter out the headings above level 2 (including the level-3 headings made the menu look too noisy)
Removed some (I think) unnecessary HTML wrapper elements and CSS classes.

New:

Current:

/cc @PatrickHeneise

I'm also inclined to remove the react-scroll component, since it doesn't seem to work properly anyway: https://github.com/wallrj/website/compare/toc-improvements...wallrj:website:remove-react-scroll

Doesn't currently hightlight the in-view section, because we don't set the active-class
Even then, it doesn't highlight the heading consistently as you scroll up and down
The back - forward button navigation doesn't always seem to work.

I can remove it in a followup PR if others agree.
Or replace it with something simpler which does at least reliably highlight the TOC entry for the in-view section. Maybe https://github.com/makotot/GhostUI

I don't currently have the bandwidth to review cert-manager PRs, sorry. I've removed myself as a reviewer :+1:

I'm also inclined to remove the react-scroll component, since it doesn't seem to work properly anyway: wallrj/website@toc-improvements...wallrj:website:remove-react-scroll

Doesn't currently hightlight the in-view section, because we don't set the active-class
Even then, it doesn't highlight the heading consistently as you scroll up and down
The back - forward button navigation doesn't always seem to work.

I can remove it in a followup PR if others agree. Or replace it with something simpler which does at least reliably highlight the TOC entry for the in-view section. Maybe https://github.com/makotot/GhostUI

I'm a big +1 to remove it, stuff like that interferes with native behaviour and is an accessibility problem.


feat(solid-start-vercel): use @vercel/nft to include un-bundable dependancies

This is a companion/alternative for Vercel pr to #644. Discord discussion
Vercel functions expect all required files to be within the *.func folder while normally this is done automatically with the build process but some files can't be bundled notably prisma's *engine.node and schema.prisma files
in order to do this we use vercels nft (node file trace) package which is used is used internally by next. unlike next we can't just include a [file].js.nft.json file along side the handler due to it not being supported in their Build Output v3. So what we have to do is recreate the folder structure of the app from the root of the filesystem within the .func folder. astro does this to solve the same issue
Example output
.vercel
├── output
│   ├── config.json
│   ├── functions
│   │   ├── api.func
│   │   │   ├── etc
│   │   │   │   └── os-release
│   │   │   └── vercel
│   │   │       └── path0
│   │   │           ├── dist
│   │   │           │   └── index.js
│   │   │           ├── node_modules
│   │   │           └── package.json
│   │   └── render.func
│   │       ├── etc
│   │       │   └── os-release
│   │       └── vercel
│   │           └── path0
│   │               ├── dist
│   │               │   └── index.js
│   │               ├── node_modules
│   │               └── package.json
│   └── static
│       ├── assets
│       │   ├── entry-client.912e70b6.css
│       │   ├── entry-client.bc62b30c.js
│       │   └── index.1502606f.js
│       ├── favicon.ico
│       ├── manifest.json
│       ├── route-manifest.json
│       └── ssr-manifest.json
└── project.json

why from the root? its due to a limitation of @vercel/nft. @vercel/nft will not return files that is outside of what you pass in as root which by default is the cwd. so if a package gets hoisted or files are included from a sibling package we can't copy it
The alternative to this would be to detect if we are inside a workspace and use the workspace root as the root directory only have to create the folder structure from there. But I haven't found a consistent way to determine the package root of an unknown package manager. and would also require keeping up with changes to how workspaces are handled in the future.
since we no longer output directly to .vercel/output for server build we can follow what other adapters do and output the result of the build to dist and then copy it inside .vercel/output/fucntions/[func].func/[workspacePath]

[x] Base case (not in workspace)
[x] @vercel/nft warnings (some can just be ignored like trying to parse a .env file)
[x] Include and exclude globs.
[x] Symlinks
[x] Workspace support
[x] Serverless deployment
[ ] Test edge deployment (need help testing)
[ ] Test pre-render deployment (need help test)

to make working with absolute path easier i used URL objects.. for now i left in the equivalent path.join call in a comment for easier reading

Thank you so much. Very much appreciated.


feat(homebrew): Add option to upgrade all casks

Hi
I had an issue with upgrading as some casks weren't upgraded. I tried to use the cu plugin to upgrade all the casks, including those who wouldn't be upgraded as they are marked as "auto_upgrade". I used this command in my playbook: brew cu -a -y
But I think it should be part of this role, therefore I submit this PR. I tested it locally here.
Before the test:
$ brew outdated --cask --greedy
font-roboto (latest) != latest
font-roboto-mono (latest) != latest
webex-meetings (2211.1803.4212.2) != latest
wireshark (4.0.2) != 4.0.10

After the test:
$ brew outdated --cask --greedy
font-roboto (latest) != latest
font-roboto-mono (latest) != latest

I've no idea about the fonts. Probably there's an issue with the version being latest.
This PR adds a task to the cask part like it already exists in the brew part. It has a similar variable to enable it, and like the task in the brew part, it's disabled by default.
Br

@geerlingguy does it look okay for you?

still thinks this is a good idea... how about you @geerlingguy


Adding kraken logo

It's really big. Might I suggest a design like:

If that's cool with you the following markdown will work:
# kraken
[![pipeline status](https://git.cnct.io/common-tools/samsung-cnct_kraken/badges/master/pipeline.svg)](https://git.cnct.io/common-tools/samsung-cnct_kraken/commits/master)

<img src="https://i.imgur.com/ekVHY2G.png" width="200">
---
This document will help you get started deploying a high-availability Kubernetes cluster to AWS using kraken, a command-line interface for [kraken-lib](https://github.com/samsung-cnct/kraken-lib). kraken currently also supports deployments to GKE (see Building a Configuration File below).```

Closed in favor of: https://github.com/samsung-cnct/kraken/pull/223#pullrequestreview-83218958


Fixes for comments on PR #581

Moved policies[dataPolicyID] = dataPolicy inside the for loop. Loop breaks if one of the namespace labels doesn't match policy namespace label selectors.

Coverage remained the same at 76.821% when pulling 4dcc89869f27dc5652fab1d41804606f9d0c6031 on brecode:master into 9726993c9f3cbae139b7a26806b21d45be451934 on contiv:master.


MSFT_SqlServerConfiguration: Performing DSC tests against certain configuration names/items does NOT work consistently

Details of the scenario you tried and the problem that is occurring
The SqlServerConfiguration (MSFT_SqlServerConfiguration) DSCResource is being used within a number of configuration(s) (function(s)) I've setup to set SQL Server configuration options.
I'd expect, in normal usage/functionality, that any configuration item listed here...
Server Configuration Options (SQL Server)
... should be able to be set and re-tested using DSC via this method.
As part of the application/actioning of the generated MOF files, "Set"-ing the configuration works OK with the few options that have been tried so far, but "Test"-ing the configuration again straight after the "Set" is failing with an error of...
Specified option '<OptionName>' could not be found.
...where <OptionName> is the particular option that can't be found.
At present, the two examples I've found that allow the DSC "Set" but fail on a DSC "Test" are...

remote login timeout
remote query timeout

...Meanwhile, within SQL Server...
It seems that within SQL Server, you can actually set and retrieve each of the following configuration options/values (using sp_configure) ...Note the extra values with the (s)...

remote login timeout
remote login timeout (s)
remote query timeout
remote query timeout (s)

...and running sp_configure in SQL Server actually lists the configuration option name with the additional "(s)" (not without it), even though both input parameters are different.

Also note that the use of "sp_configure" also seems to use a T-SQL "LIKE" behind the scenes as the following query/command that is using a partial string also works (seemingly as long as a unique record/option is returned)...

...back to SQLServerDsc...
As a result, the defect/inconsistency I'm seeing is that "SqlServerConfiguration" ("MSFT_SqlServerConfiguration") DSCResource...

ALLOWS the non-"(s)" version to "Set" the configuration option without error (I'm not actually sure it's setting it correctly at present, but it doesn't error or raise an exception)
DOESN'T allow the "Test" of the DSC resource to run if the  non-"(s)" version is used. It seems that it wants the EXACT configuration option name.

I have been able to work around this by using the configuration option names with an (s) to get the desired behaviour but suspect this inconsistency will apply to a number of these configuration options and people/developers are going to keep hitting this problem if they don't use the exact names. This may also be exacerbated by the fact that the Server Configuration Options (SQL Server) page configuration option names don't have the "(s)".
The DSC configuration that is using the resource (as detailed as possible)
...<snip>...

    SqlServerConfiguration 'SQLConfig_RemoteLoginTimeout'
    {
        Servername = $NodeName
        InstanceName = $SQLInstanceName
        OptionName = 'remote login timeout'
        OptionValue = $SQLConfigRemoteLoginTimeout
        RestartService = $false

        DependsOn = "[SQLSetup]DefaultSQLInstance"
    }

...<snip>...

Version of the operating system and PowerShell the target node is running
Windows Server 2016 Core
SQL Server edition and version the target node is running
SQL Server 2016 Enterprise Core
What SQL Server PowerShell modules, and which version, are present on the target node.
N/A
Version of the DSC module you're using, or write 'dev' if you're using current dev branch
SqlServerDsc version '<IP_ADDRESS>'

Shout if you need any more information.

Thanks for the detailed info. Labeling this as a bug, and help wanted so anyone in the community can run with it.


Fix: MaxLengthPlugin crashes when the limit is reached and enter is pressed

This is an attempt to fix two main issues I found:

When cloning nodes, the activeEditorState will have some unreachable node keys which will be removed later. It causes Uncaught Error: createChildrenArray: node does not exist in nodeMap error.
Pressing enter on its maxLength deletes previous node because the LineBreak node has 0 content size.

For more details please see: #4075  #4196

It makes sense to me, as we're trying to restore specified editor state but relying on getLatest() which would attempt to take a node from active editor state instead.
@zurfyx WDYT?


Employer NI savings contributed to pension

Some employers allow for NI savings to be contributed back to pension. Add this as an option (switch)

Hi @wozniakpawel, just checking this is the same as what my employer does: if I do a bonus sacrifice, they will increase the amount by 14.3%, so if I sacrifice £20,000 of my bonus, I will actually receive £22,860 in my SIPP. If this isn't what you mean, could you add an option to allow that 14.3% uplift? Thanks for a fantastic tool!

Hi @jrothlis it probably is the same thing, although 14.3% sounds a little bit off. I would expect the NI savings to not go above 12%, but it will depend on the tax year in question. For example, for 2023/24 it could be up to 13.8%.
Do you have any more information on how that works for your employer? Maybe the 14.3% is actually the NI savings (let's say 13.8%) and some fixed amount independent of your bonus sacrifice amount?

According to this https://parasolgroup.co.uk/help-me-decide/guides/umbrella-payslips/ - 13.8% is for Employer’s National Insurance contributions and the remaining 0.5% relates to the apprentice levy, which all businesses in the UK with a payroll bill of more than £3,000,000 must pay.

I see! That's interesting, and makes a lot of sense. I am not a 100% sure how the NI savings work, as I have not received them myself, but my guess is it's up to the employer whether they want to include the apprentice levy or not. I wonder how common of a practice this is. It might be easier to make the 13.8 (or whatever the employer's NI rate is for a given year) a variable that can be changed by the user.

I agree that it would be simpler to make it a variable. If what the linked article says is right, it's not optional to have to pay the apprentice levy (if you're a company above a certain size) -- in the case of my company, they're being nice and letting me have the savings they would otherwise see by me sacrificing some of my salary or bonus.


Add option to generate sorbet types

This adds a --typed or -t flag that generates sorbet signatures for the generated files.
I decided to use inline signatures over ERBs since that allows for autocompletion to jump to the actual code instead of the rbi file and also helps discoverability the other way around (seeing the types when looking at the code).
I extracted all type related things into a module that is mixed into CodeGen, EnumCompiler and MessageCompiler and then added the calls to the relevant places.
It is not the prettiest design but I am not sure of a better solution.
One big question mark
There is one change in the generated code, I replaced the NONE type to indicate an omitted field with nil since it changes the signature from T.any(String, NONE) to T.nilable(String), which, looking at it from the type perspective makes a lot more sense.
I briefly chatted with @tenderworks  about it and he was not 100% sure if nil should be fine or not but could not remember cases where it was not.
It passes all current tests - if this is breaking expectations in some way I will gladly change it back to NONE instead (and add some tests that ensure it does not get changed).
Tests
I added a single test that generates code from a protobuf file and compares it against a checked in generated file (test/fixtures/typed_test.correct.rb).
This means whenver the generated code changes this test will break.
The alternative would have been a complex test harness for somehow validating that all relevant methods have signatures and that they actually pass srb tc (which means adding sorbet as a dependency).
This seemed like a reasonable trade-off for now but I am very open to changing it to whatever is the preferred approach.
I'll gladly squash the commits but figured they might in some cases be helpful for reviewing.

There is one change in the generated code, I replaced the NONE type to indicate an omitted field with nil since it changes the signature from T.any(String, NONE) to T.nilable(String), which, looking at it from the type perspective makes a lot more sense.

I was worried there were cases where we need to care that someone specifically set nil, but it doesn't really make sense. Only optional fields need to test NONE, and if someone specifically passes nil, they get would get the default value for that field.  I think this makes sense as an API.

I added a single test that generates code from a protobuf file and compares it against a checked in generated file (test/fixtures/typed_test.correct.rb). This means whenver the generated code changes this test will break.
The alternative would have been a complex test harness for somehow validating that all relevant methods have signatures and that they actually pass srb tc (which means adding sorbet as a dependency). This seemed like a reasonable trade-off for now but I am very open to changing it to whatever is the preferred approach.

We probably should test that the generated code has all the Sorbet types it needs.  Can we add Sorbet as a development dependency?  It seems like Sorbet won't read from stdin, so maybe we could write to temp files and type check those (just run srb tc and check that it exited cleanly).
If you want to implement that, I think I'd prefer it, but having these "golden image" tests is fine for now.  LMK what you think and we can go from there!

And my idea did not work out as I had hoped, oh well

And my idea did not work out as I had hoped, oh well

Ugh.  That's ok, thank you for trying.  Lets just merge this as-is. Maybe we can figure out something later.  Thanks for doing this work!


4.x: Make sure all threads are named

In 2.x we made an effort to make sure all threads are named (https://github.com/helidon-io/helidon/issues/4159,  https://github.com/helidon-io/helidon/issues/3784). Looking at the 4.x code it doesn't look like we are naming VirtualThreads:
./webclient/webclient/src/main/java/io/helidon/nima/webclient/LoomClient.java:        return Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
./webserver/webserver/src/main/java/io/helidon/nima/webserver/ServerListener.java:        this.readerExecutor = Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
./webserver/webserver/src/main/java/io/helidon/nima/webserver/ServerListener.java:        this.sharedExecutor = Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
./webserver/webserver/src/main/java/io/helidon/nima/webserver/ConnectionHandler.java:            //                                                         Thread.ofVirtual().factory(), (scope, future) -> {})) {
./webserver/webserver/src/main/java/io/helidon/nima/webserver/LoomServer.java:        this.executorService = Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
./fault-tolerance/src/main/java/io/helidon/nima/faulttolerance/AsyncImpl.java:        this.executor = LazyValue.create(Executors.newVirtualThreadPerTaskExecutor());
./fault-tolerance/src/main/java/io/helidon/nima/faulttolerance/AsyncImpl.java:                : LazyValue.create(Executors.newVirtualThreadPerTaskExecutor());

We should ensure all threads, virtual or not, are named with something useful.
We should also keep an eye on the JDK efforts for organizing and displaying thread dumps for virtual threads to see if there is anything else we should do in this area.

Some threads are named from within the threads (as we may use the socket id).
Structured concurrency is on the radar - there were too big changes in the API when Nima was created, let's wait for that feature to settle

Resolved by #5397


add sibs

add sibs.txt into lib/domain/
SINH, Shanghai Institute of Nutrition and Health, is an institute of Chinese Academy of Sciences, with many Master and Ph.D candidates students who major in computational biology and bioinformatics.
university official website: https://www.ucas.ac.cn/
institute official website: http://www.sinh.cas.cn/

@hello-zhw Please provide us with a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.

@hello-zhw You might miss my previous comment. Please react.

@philipto Dir sir, we now use sibs.ac.cn because SINH was merged from some organizations of the SIBS, Shanghai Institutes of Biology Sciences, CAS. SIBS has completed institutional reform and our graduate students and staffs still use this domain and school surely recognize it.
http://english.sinh.cas.cn/aboutus/overview/
http://english.sinh.cas.cn/aboutus/contact/

@hello-zhw I am sorry, this organization is more like a research institution, not a school. Thus, I have to close the request without merging.
If a particular student at this organization needs a free license for a JetBrains tool, it is always possible to apply apply with official document ("OFFICIAL DOCUMENT" tab at https://www.jetbrains.com/shop/eform/students). Researchers can get their license for a fee but with academic discount. To get the discount, please send an email to<EMAIL_ADDRESS>Thank you for your understanding.


Vending machine hacking needs some love

reported by @"Grandma#0105"

Done by flipp's wire rework


WIP - Startup BASIC program enhancements

Unfortunately this doesn't work as it is for some reason but I'm not sure why.  The program works fine in an emulator but when booting the Apple 2 it just drops to the BASIC prompt without running this version of Startup.bas at all.  When I catalog the disk it's not even there.  It seems like something is getting tripped up parsing the code but I'm not seeing anything in the logs.

Logs appear clean:
pi@a2iorpi:~ $ journalctl -fu apple2driver
-- Logs begin at Thu 2019-02-14 05:12:02 EST. --
Jan 25 07:04:09 a2iorpi apple2driver[259]: Opening Drive 2 as: /home/pi/Vol1.hdv
Jan 25 07:04:09 a2iorpi apple2driver[259]: ERROR: open /home/pi/Vol1.hdv: no such file or directory
Jan 25 07:04:09 a2iorpi systemd[1]: apple2driver.service: Main process exited, code=exited, status=1/FAILURE
Jan 25 07:04:09 a2iorpi systemd[1]: apple2driver.service: Failed with result 'exit-code'.
Jan 25 07:34:21 a2iorpi systemd[1]: Started Apple2-IO-RPi Driver.
Jan 25 07:34:21 a2iorpi apple2driver[441]: Generating Drive in memory from: /home/pi/Apple2-IO-RPi/RaspberryPi/apple2driver
Jan 25 07:34:21 a2iorpi apple2driver[441]: Opening Drive 2 as: /home/pi/Vol1.hdv
Jan 25 07:34:21 a2iorpi apple2driver[441]: Starting Apple II RPi v0027...
Jan 25 07:34:22 a2iorpi apple2driver[441]: Reset request
Jan 25 07:34:23 a2iorpi apple2driver[441]: Read block 0000 in slot 7, drive 1...succeeded
Jan 25 07:34:23 a2iorpi apple2driver[441]: Generating Drive in memory from: /home/pi/Apple2-IO-RPi/RaspberryPi/driveimage
Jan 25 07:34:23 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0003 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0004 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0005 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 003C in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 003D in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 003E in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 003F in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0040 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0041 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0042 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0043 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0044 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0045 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0046 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0047 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0048 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 0049 in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 004A in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 004B in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 004C in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 004D in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 004E in slot 7, drive 1...succeeded
Jan 25 07:34:24 a2iorpi apple2driver[441]: Read block 004F in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0050 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0051 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0052 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0053 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0054 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0055 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0056 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0057 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0058 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0059 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 005A in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 005B in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 005C in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 005D in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 005E in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:25 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:25 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0003 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0004 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0005 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0027 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0028 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0029 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 002A in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 002B in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 002C in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 002D in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 002E in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 002F in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0030 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0031 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0032 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0033 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0034 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0035 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0036 in slot 7, drive 1...succeeded
Jan 25 07:34:26 a2iorpi apple2driver[441]: Read block 0037 in slot 7, drive 1...succeeded
Jan 25 07:34:27 a2iorpi apple2driver[441]: Read block 0038 in slot 7, drive 1...succeeded
Jan 25 07:34:27 a2iorpi apple2driver[441]: Read block 0039 in slot 7, drive 1...succeeded
Jan 25 07:34:27 a2iorpi apple2driver[441]: Read block 003A in slot 7, drive 1...succeeded
Jan 25 07:34:27 a2iorpi apple2driver[441]: Read block 003B in slot 7, drive 1...succeeded
Jan 25 07:34:27 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:27 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:27 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:27 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:27 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:27 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:38 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:38 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:38 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:38 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:38 a2iorpi apple2driver[441]: Read block 0006 in slot 7, drive 1...succeeded
Jan 25 07:34:38 a2iorpi apple2driver[441]: Read block 0007 in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 0008 in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 0009 in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 000A in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 000B in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 000C in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 000D in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 000E in slot 7, drive 1...succeeded
Jan 25 07:34:39 a2iorpi apple2driver[441]: Read block 000F in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0010 in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0011 in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0012 in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0013 in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0014 in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0015 in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:40 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:40 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0003 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0004 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0005 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0006 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0007 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0008 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 0009 in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 000A in slot 7, drive 1...succeeded
Jan 25 07:34:41 a2iorpi apple2driver[441]: Read block 000B in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 000C in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 000D in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 000E in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 000F in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 0010 in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 0011 in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 0012 in slot 7, drive 1...succeeded
Jan 25 07:34:42 a2iorpi apple2driver[441]: Read block 0013 in slot 7, drive 1...succeeded
Jan 25 07:34:43 a2iorpi apple2driver[441]: Read block 0014 in slot 7, drive 1...succeeded
Jan 25 07:34:43 a2iorpi apple2driver[441]: Read block 0015 in slot 7, drive 1...succeeded
Jan 25 07:34:47 a2iorpi apple2driver[441]: Reset request
Jan 25 07:34:48 a2iorpi apple2driver[441]: Reset request
Jan 25 07:34:49 a2iorpi apple2driver[441]: Reset request
Jan 25 07:34:50 a2iorpi apple2driver[441]: Reset request
Jan 25 07:34:51 a2iorpi apple2driver[441]: Reset request
Jan 25 07:34:52 a2iorpi apple2driver[441]: Reset request
Jan 25 07:34:52 a2iorpi apple2driver[441]: Read block 0000 in slot 7, drive 1...succeeded
Jan 25 07:34:52 a2iorpi apple2driver[441]: Generating Drive in memory from: /home/pi/Apple2-IO-RPi/RaspberryPi/driveimage
Jan 25 07:34:52 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:52 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:52 a2iorpi apple2driver[441]: Read block 0003 in slot 7, drive 1...succeeded
Jan 25 07:34:52 a2iorpi apple2driver[441]: Read block 0004 in slot 7, drive 1...succeeded
Jan 25 07:34:52 a2iorpi apple2driver[441]: Read block 0005 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 003C in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 003D in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 003E in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 003F in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0040 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0041 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0042 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0043 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0044 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0045 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0046 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0047 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0048 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0049 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 004A in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 004B in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 004C in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 004D in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 004E in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 004F in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0050 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0051 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0052 in slot 7, drive 1...succeeded
Jan 25 07:34:53 a2iorpi apple2driver[441]: Read block 0053 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0054 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0055 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0056 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0057 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0058 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0059 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 005A in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 005B in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 005C in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 005D in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 005E in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0003 in slot 7, drive 1...succeeded
Jan 25 07:34:54 a2iorpi apple2driver[441]: Read block 0004 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0005 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0027 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0028 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0029 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 002A in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 002B in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 002C in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 002D in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 002E in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 002F in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0030 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0031 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0032 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0033 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0034 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0035 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0036 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0037 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0038 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 0039 in slot 7, drive 1...succeeded
Jan 25 07:34:55 a2iorpi apple2driver[441]: Read block 003A in slot 7, drive 1...succeeded
Jan 25 07:34:56 a2iorpi apple2driver[441]: Read block 003B in slot 7, drive 1...succeeded
Jan 25 07:34:56 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:56 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:56 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:56 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded
Jan 25 07:34:56 a2iorpi apple2driver[441]: Sending date/time...39 2E 22 07
Jan 25 07:34:56 a2iorpi apple2driver[441]: Read block 0002 in slot 7, drive 1...succeeded

I will try your code tonight and see if I can reproduce your issue. All of my tests were written on the Apple //e first, converted to text and back again. It might be too picky about whitespace or missing a keyword. It’s likely that it is not logging failures properly either.  This dynamic drive feature is fairly new so I’m not sure how many people tried it yet other than myself.

Wondering if this is the problem?  https://github.com/tjboldt/ProDOS-Utilities/blob/main/prodos/basic.go#L94
I'm running on an enhanced //e.
I hope to be able to provide some enhancements on logging eventually but I'm not much of a coder so I'm still figuring out Go.

Nope, the ; in the INPUT lines was not the problem.  I'll keep looking.

This is the reason it is not logging the error.
https://github.com/tjboldt/Apple2-IO-RPi/blob/main/RaspberryPi/apple2driver/driver.go#L65
This part of the code is completely changed in my latest work that is not committed yet.

I see.  I added some more log outputs but it doesn't seem like generateDriveFromCwd() is erroring at all.  Specifically err = prodos.AddFilesFromHostDirectory(drive, cwd)

More clues:
pi@a2iorpi:~ $ ./ProDOS-Utilities/ProDOS-Utilities -d boot.hdv -c putall -i Apple2-IO-RPi/RaspberryPi/driveimage/
failed to add host files: failed to convert file: unexpected character before line number

The blank line at the end is causing problems but there is another weird issue with the parsing where some line numbers are replaced with the wrong number during parsing:

Blank line at the end was causing problems.  Removing it at least gets the basic file into the disk image.  But there's another weird issue where some of the line numbers are being replaced with the wrong number by the parser code.  See the weird line 5 in this screenshot:

The BASIC parsing isn’t very robust. I’ll need to make some fixes in the ProDOS-Utilities. Can you log a bug against that project with your failing example?

Yep, will do.  Will link to it here.

Try pulling merging the latest code. This should resolve your BASIC file parsing and add live dynamic drive regeneration.

I am also changing the bas files in driveimage to be symlinks and the source files are in the Apple2 directory. This unfortunately will create a conflict in your branch for this pull request but at least after this the files will also be the same in both places.

I won't open another PR for my customized Startup.bas unless you'd like to include the extra prompts.  Happy to contribute back but not sure if that's something you're looking for in this project.
Anyhow, there were a few other changes I had to make to get my BASIC to parse correctly but I finally got it after your recent updates.  Few extra things I had to do:

Change all bare PRINT lines to PRINT "" (Possibly also fixed with dummy REM after as in my next bullet - didn't try that)
Add dummy REM statements after bare commands like HOME & END
Remove all the asterisks (*) from my REM statements

My current working version is here: https://github.com/benjamink/Apple2-IO-RPi/blob/main/Apple2/Startup.bas

Did you rebuild apple2driver after merging in all changes from the main branch? I was able to import your code as-is after updating.


Update for CUDA 12.1.1

Will be using this issue to track incoming PRs updating to 12.1.1

This is now complete. Thanks everyone! 🙏


net: TestLookupGoogleSRV and TestLookupGmailMX flaky on builders

During CL98775: build742ae1bd
--- FAIL: TestLookupGoogleSRV (5.01s)
	lookup_test.go:76: lookup _xmpp-server._tcp.google.com on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:46483-><IP_ADDRESS>:53: read: connection refused
--- FAIL: TestLookupGmailMX (10.01s)
	lookup_test.go:113: lookup gmail.com on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:41650-><IP_ADDRESS>:53: read: connection refused
FAIL
FAIL	net	29.755s

The failure disappeared during second try-bots run.
Most likely a temporary network issue on builder.
Filling this in case this pops up again in near time.

I’m guessing you’re unable to repro this locally?
/cc @bradfitz for the builders and net

Tried src/race.bash locally. It passes.
I didn't passed those though:
["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "HOSTNAME=buildlet-linux-kubestd-rn88973d0" "IN_KUBERNETES=1" "META_BUILDLET_BINARY_URL=http://storage.googleapis.com/go-builder-data/buildlet.linux-amd64" "META_BUILDLET_HOST_TYPE=host-linux-kubestd" "KUBERNETES_SERVICE_HOST=<IP_ADDRESS>" "KUBERNETES_SERVICE_PORT=443" "KUBERNETES_SERVICE_PORT_HTTPS=443" "KUBERNETES_PORT=tcp://<IP_ADDRESS>:443" "KUBERNETES_PORT_443_TCP=tcp://<IP_ADDRESS>:443" "KUBERNETES_PORT_443_TCP_PROTO=tcp" "KUBERNETES_PORT_443_TCP_PORT=443" "KUBERNETES_PORT_443_TCP_ADDR=<IP_ADDRESS>" "DEBIAN_FRONTEND=noninteractive" "HOME=/root" "WORKDIR=/tmp/workdir" "GOROOT_BOOTSTRAP=/go1.4" "GO_BUILDER_NAME=linux-amd64-race" "GOBIN="]

...because I don't know what KUBERNETES_ variables affect and whenever they are significant in this situation.

Flaked on linux-amd64 too: https://storage.googleapis.com/go-build-log/e903c73f/linux-amd64_470f8c78.log

darwin-arm64-corellium:

https://build.golang.org/log/13d3386f108efca836c4b1a460de34a11d8c6d30
https://build.golang.org/log/2968da334e70e9e6a6cdf9888d0263b098f31edf

CC @dmitshur @toothrot


textDocument/didChange does not number versions according to content changes

I'm working on a language server that uses incremental document syncs. According to the specification, the document's version number should be incremented once for each content change, including when there are multiple changes in a single textDocument/didChange notification. The vscode client conforms in most cases, but occasionally the version number goes out of sync. From my tests, it appears that the most common causes are large copy/pastes, multiple consecutive undo operations, and bulk operations like indenting blocks of code.
Here's a simple reproducible example:

Open a file in an editor. (I opened a Ruby file while using my Ruby language server extension).
The client sends a textDocument/didOpen notification with the version set to 1.
Select 4 lines of code and press tab.
The client sends a textDocument/didChange notification with the following parameters:

{
  "textDocument": {
    "uri": "file:///path/to/file.rb",
    "version": 2
  },
  "contentChanges": [
    {
      "range": {
        "start": {
          "line": 3,
          "character": 0
        },
        "end": {
          "line": 3,
          "character": 0
        }
      },
      "rangeLength": 0,
      "text": "  "
    },
    {
      "range": {
        "start": {
          "line": 2,
          "character": 0
        },
        "end": {
          "line": 2,
          "character": 0
        }
      },
      "rangeLength": 0,
      "text": "  "
    },
    {
      "range": {
        "start": {
          "line": 1,
          "character": 0
        },
        "end": {
          "line": 1,
          "character": 0
        }
      },
      "rangeLength": 0,
      "text": "  "
    },
    {
      "range": {
        "start": {
          "line": 0,
          "character": 0
        },
        "end": {
          "line": 0,
          "character": 0
        }
      },
      "rangeLength": 0,
      "text": "  "
    }
  ]
}

Based on the specification, shouldn't the new version number be 5 instead of 2?

I see that the spec is not good formulated here, but the only thing the spec requires is that with every change notification there is a new version number and that the number is increasing. However the number can not be used to indicate the number of internal changes nor must it be the case that the number is consecutive. From the spec:
	/**
	 * The version number of this document (it will increase after each
	 * change, including undo/redo).
	 */
	version: number;

I will add a sentence to the VersionedTextDocumentIdentifier as well.

I may have misunderstood this part of the spec for DidChangeTextDocumentParams:
	/**
	 * The actual content changes. The content changes describe single state changes
	 * to the document. So if there are two content changes c1 and c2 for a document
	 * in state S10 then c1 move the document to S11 and c2 to S12.
	 */
	contentChanges: TextDocumentContentChangeEvent[];

I take it that the referenced document state numbers (S10-S12) are not the same as document version numbers?

No, they are not. They talk about the state of the document. I could have used S' and S'' which I might consider to do to make this more clear.

I made that change.


CloudTrail addS3EventSelector wrongly documented and not working

<EMAIL_ADDRESS>is wrongly documented on https://awslabs.github.io/aws-cdk/refs/_aws-cdk_aws-cloudtrail.html?highlight=adds3eventselector, they have different signatures.
The second argument is an Enum, not an Object.
The first argument is not able to work with s3 buckets.
Trying to add an array of strings, for example:
trail.addS3EventSelector([bucketArn], cloudtrail.ReadWriteType.WriteOnly)

results in the error:
Value bucketArn for DataResources.Values is invalid. (Service: AWSCloudTrail; Status Code: 400; Error Code: InvalidEventSelectorsException;

If instead of bucketArn you supply arn:aws:s3::: it works, but that makes it so that you can only have a trail for all s3 buckets or for none of them.

This case is also not handled in the test https://github.com/awslabs/aws-cdk/blob/d7371f0f836ce8b0e08df1673672f904bde1cfe1/packages/%40aws-cdk/aws-cloudtrail/test/test.cloudtrail.ts.
If I can do anything else to help I am able to but I dont even know where to start debugging this internally!

Hey @MichaelHindley  - the issue (I mean beyond the fact the documentation and code disagree on the signature) is you cannot pass bucketArn as a prefix... You have to pass an object ARN prefix...
You'd get the correct behavior (I believe) by writing:
trail.addS3EvenetSelector([bucket.arnForObjects('')]);

It is impossible for the CDK to determine whether the value you pass in a prefix is valid or not, particularly in the case the value is not available at synthesis time (as in the example above - assuming bucket is defined in the CDK app - the object ARNs are the result of Fn::Joins).

Thank you very much!
bucket.arnForObjects('') did indeed result in the correct behaviour in this case :)


mock_observables: angular tpcf

create angular two point correlation function.
This will require either a new pair counter, or a modification of the current pair counters to work in angular space.  When I have done this before, I project the points onto a unit sphere and convert 3D distances to angular distances.

This now exists.


trying to avoid bounds checks

Thanks! I just did an average over 10 runs with 1 million rows, and at there is a 0.01% difference in the average.  I'm going to do some more tests in a while though.  (I should probably also upload the program I use to benchmark the algorithms though.)

Actually, redoing the tests it seems like this is slower.  I did tests over 3 files with 10 thousand, 1 million, and 10 million rows, with 10 runs over each one:
The following is the mean and stdev of the results of the 10 runs in seconds: (_bc is this branch.)
10 000 rows
ironsort:
  mean: 0.0025486244444444446
  stdev: 7.444188344848631e-05

ironsort_bc:
  mean: 0.0030108926666666666
  stdev: 0.0011110897323462824

1 000 000 rows
ironsort:
  mean: 0.4227554108888889
  stdev: 0.016388256336847897

ironsort_bc:
  mean: 0.4296050572222222
  stdev: 0.037829683958388136

10 000 000 rows
ironsort:
  mean: 5.085792885666667
  stdev: 0.13917863370545408

ironsort_bc:
  mean: 6.404631818666667
  stdev: 0.4017465804664895

So the percentage increase in time taken is 18%, 1%, and 25% respectively, hmm.

The program I'm using to do the tests is here, by the way.  Workflow is essentially build benchsort, run it and redirect the output to a file named results, and then run parse_res.py to get the mean and stdev of the run.

I guess the optimizer is able to optimize your code better than the iterator version. You did run it with the --release flag right?

Yeah.  Strange though, I think it might just have been some pathological test cases, because redid the tests, and now this branch is only between 0.5% and 2.1% slower than the quicksort crate, so I think I'll merge this actually.


chore: Rate limiting datasource test api is added

Description
This PR adds rate limiting functionality to datasource test API. The rate limiting configuration is added in such a way that if test API receives more than 3 failed authentication requests for the same host name within 5 seconds, It will block this hostname for the next 5 minutes, so that brute force attack can be stopped.
Unit test for this will be covered in another PR. Refer #27742
Currently this PR covers for postgres only, will need to extend the implementation for all plugins. Refer #27737
PR fixes following issue(s)
Fixes #27736, #27739, #27744

if no issue exists, please create an issue and ask the maintainers about this first

Media

A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video

Type of change

Chore (housekeeping or task changes that don't impact user perception)

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[x] Manual
[ ] JUnit
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/ok-to-test

/ok-to-test

/build-deploy-preview

/ok-to-test

/build-deploy-preview

/ok-to-test

/build-deploy-preview

/ok-to-test

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/ok-to-test

/build-deploy-preview skip-tests=true

Tested this PR and LGTM

Tested for all mentioned Datasources:
Postgres
ArangoDB
Redshift
Redis
Oracle
SMTP
MySQL (with ssh and without ssh)
MSSQL
Elastic Search

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test


Update readme to denote the app does not work with single quotes in a chromecast's name

Fixes #35

Thank you!


Limit total concurrent HTTP/2 Streams

Extension of #2815 that limits the max concurrent streams per connection.
@blowdart requested a setting to limit the max number of concurrent streams overall. It can be off by default.

Max concurrent connections * Max streams per connection limit capture this.
@blowdart we're closing this one, but if we're missing something, please let me know!


Global error handler - default handler

We recently added a global error handler in #1514. The default handler uses a ConsoleLogger at LogLevel.Error. This has the unfortunate side effect of spamming standard out during tests. Should we consider making the default global error handler a no-op instead?

my 3 cents: I would be in favor of having a noop as a default.

I think it would make sense in the test suite, however i believe we need to report errors for end user by default


Crash when searching for key:`````

Granted, this query makes no sense, but it shouldn't crash™
https://gist.github.com/Shadows-of-Fire/2acb16b773cc3673348e899adc909c0a

Fixed by https://github.com/jaredlll08/searchables/commit/5cb1afe41eb80202e6e5aa87360ee200670240f2


Wrong location of the ramdisk in kexec

In https://github.com/mist64/xhyve/issues/116, VinDuv(no mention because noisy) said

The initramfs is actually corrupted by the Linux self-decompression mechanism. The decompressed kernel is written (in this case) from address 0x01000000 (16MB) to 0x0210c388 (~33MB). xhyve puts the initramfs at 0x01343000 (19MB), which gets overwritten.
"Adding a sufficient offset to ramdisk_start in kexec.c allows the installer to start successfully. I have not tested it furthe"

Yes, kexec.c source have a wrong point.
I tried another kernel such as minikube-iso, it will fail on
Initramfs unpacking failed: junk in compressed archive

ramdisk_start variable was defined ALIGNUP((kernel.base + kernel.size), 0x1000ull);, but if use large kernel size, this start memory size is small.
This diff is tentative. 0x210c388ull variable is unfounded. (I know, very ugly. it's not correct ALIGNUP.)
But it will work on the larger size kernel than boot2docker.iso.
diff --git a/src/firmware/kexec.c b/src/firmware/kexec.c
index 61aeebb..a5ee627 100644
--- a/src/firmware/kexec.c
+++ b/src/firmware/kexec.c
@@ -184,7 +184,7 @@ kexec_load_ramdisk(char *path) {
    sz = (size_t) ftell(f);
    fseek(f, 0, SEEK_SET);

-   ramdisk_start = ALIGNUP((kernel.base + kernel.size), 0x1000ull);
+   ramdisk_start = ALIGNUP((kernel.base + kernel.size), 0x210c388ull);

    if ((ramdisk_start + sz) > memory.size) {
        /* not enough memory */

I was read the source a little, but I could not be to know the correct value.
(related the linux initramfs specification? or other? Sorry, I don't know.)
Do you have any idea? or have the information of any specification?
Thanks.
ref: https://github.com/coreos/minikube-iso/issues/17#issuecomment-250664776

have the information of any specification?

Please check Documentation/x86/boot.txt in the Linux kernel repository, this should IIRC provide guidance on load addresses.

@ijc25 Thanks advice. I had previously seen it, but try to read again.
Just in case, It means add some flag to Kernel boot command-line parameter(console options, e.g. loglevel=7)?

@zchee that document should include sufficient info to allow hyperkit to choose a better initramfs load address, to minimise the chance of overlap (IIRC it includes fields in the header which give the max allowable address, and loading the initramfs as high as possible ought to avoid these sorts of issues).
I'm not sure what you are asking wrt command-line parameters, there should be no need for such things to fix this issue.

@ijc25 Ah, I understand.
Yes, that doc has the detail of boot file header data. Including initramfs information too.
But, sorry, I'm not good at English... question again :(
I want to fix this problem based on x86/boot.txt documents.
Now, which one do you think the cause of Initramfs unpacking failed problem?

kexec.c is fine, the way of make iso(or header data) is wrong.
iso is fine, kexec.c is a little wrong. Should fix kexec.c to the better parse method.

It seems more likely that kexec.c should be adjusted to make better choices WRT to the address it chooses to load the initramfs to. I was expecting that x86/boot.txt would provide enough guidance as to what a better mechanism for choosing the address would be.
To be a little more specific, but having not dug into this properly (so might be misguided) I think boot.txt describes some header fields around the maximum supported initramfs load address. So a good choice for kexec.c to make would be to load at min(amount of RAM given to VM, maximum address supported by the kernel image) - size of initrd) the answer would also need to be rounded down to a suitable alignment.
There is one slight complication since the guest RAM may not be completely contiguous. See xh_vm_setup_memory where it is split low and high memory (this is to ensure there is some MMIO space below 4GB). You'd want to avoid loading the initramfs into the whole for example. Once simple way to avoid that would be to load to the top of the lowmem region rather than total ram. e.g.
min(amount of RAM given to VM, maximum address supported by the kernel image, lowmem limit) - size of initrd)

@ijc25 Thanks for a polite reply. I totally understand you said meaning.
And understand you suggests mechanism too.
I know xh_vm_setup_memory behavior, so I also think min(amount of RAM given to VM, maximum address supported by the kernel image, lowmem limit) - size of initrd) is better.
I will more read that document and GNU/Linux kernel source.
Like the Docker for Mac, There is also a way to use uefi(bootrom) boot, but I will try to fix it.
Thanks for good reference.

I haven't gotten to try this yet other than compiling, but might something like this work?
https://github.com/dlorenc/libhyperkit/commit/249966ac29bc147afda731cebbe58d18ee46fef2
My reading of boot.txt indicates that we can use this address to start the ramdisk:

Field name:	initrd_addr_max
Type:		read
Offset/size:	0x22c/4
Protocol:	2.03+
The maximum address that may be occupied by the initial
ramdisk/ramfs contents.  For boot protocols 2.02 or earlier, this
field is not present, and the maximum address is 0x37FFFFFF.  (This
address is defined as the address of the highest safe byte, so if
your ramdisk is exactly 131072 bytes long and this field is
0x37FFFFFF, you can start your ramdisk at 0x37FE0000.)

@dlorenc Oh, It seems to typo(lacking) i...?
I will try to test it.
@ijc25 What do you think about it?

Ah, it a wrong variable name for sure.
but that fix can't boot tiny core linux.
I'll more comment later.

@dlorenc I think your
ramdisk_start = ALIGNUP(zp->setup_header.initrd_addr_max - sz, 0x100ull);

Needs to be ALIGNDOWN (which may need to be added), otherwise the end of the initrd might go past the address limit. It might alternatively be sufficient to round up the size before subtracting it from the max address.

@ijc25 I tested with adding you suggests ALIGNDOWN(), but still fail boot depending on the size of the kernel. Their values seem too large.
I will more debug it.

This code from qemu looks relevant: https://github.com/qemu/openbios/blob/master/arch/sparc32/linux_load.c

I also reading qemu's standalone boot loader. and almost figured out.
I will backport some logic, and will create pull request.

@dlorenc that path says sparc32 in it, although the file itself refers to i386 a lot. Not sure what's going on there, maybe sparc Linux forked the x86 vmlinuz binary format waaay back -- I'd be wary of trusting it as a source of truth for an x86 fix too much though. (also, that code is from openbios, which is including in qemu but not actually qemu AFAICT).
@zchee awesome, thanks. Please pay attention to licensing if copying things from QEMU. Hyperkit is BSD licensed but QEMU is a mix of BSD and GPL (and possibly others). Please avoid introducing GPL code into Hyperkit (it might be that you feel it is appropriate to use such code as a reference to gather "facts" about the binary interface, but you'll need to rewrite from scratch and not literally copy).

@dlorenc that path says sparc32 in it, although the file itself refers to i386 a lot. Not sure what's going on there, maybe sparc Linux forked the x86 vmlinuz binary format waaay back -- I'd be wary of trusting it as a source of truth for an x86 fix too much though. (also, that code is from openbios, which is including in qemu but not actually qemu AFAICT).

Sorry, the same code is in the amd64 and x86 directories as well, I just grabbed the wrong link:
https://github.com/qemu/openbios/blob/master/arch/x86/linux_load.c

@ijc25 reply for license issue.
Yes, I don't like the introducing GPL code into Hyperkit.
I was gathering "facts" about the binary interface from qemu sources and copied one or two comments(note). but almost write scratch.
Is my PR have a problem?

I wrote the above comment about licensing before I'd seen that you had raised a PR and just wanted to head off one common pitfall. Having seen the PR now AFAICT it looks fine from a license perspective.
Closing this issue in favour of https://github.com/docker/hyperkit/pull/66.

@ijc25 got it. Thanks :)


Inconsistent use of ProblemMatcher

We ProblemMatcher is actually just a string or string-array. We accept problem matchers when creating task, tho the property ...Task#problemMatcher is only type string[]. I'd suggestion to nuke ProblemMatcher and to clearly document that it's problem match ids

Good point. Will do.


Update README.md

User description
Description
This PR fixes #
Notes for Reviewers
Signed commits

[ ] Yes, I signed my commits.

PR Type
documentation

Description

Removed the Discord badge from the header section of the README.
Removed the Discord community link and support email from the links section of the README.

Changes walkthrough 📝
Relevant filesDocumentation

README.mdRemove Discord references and support email from README

README.md
Removed Discord badge from the header section.  Removed Discord community link and support email from the links section.

+0/-4

💡 PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

/fix


Unexpected validation error on consumes/produces with external references

Hi all,
while working on #21 I discovered a possible issue with consumes/produces validation.
What I'm trying to do is:

using a valid OpenApi 2.0 spec file ('swagger-editor-external-ref-definition-imported.yml', that's the Uber API)
Importing some definitions from above file in another spec file ('swagger-doc-external-ref-definition.yml').

I'm getting an unexpected error during validation:
[SemanticError at paths./test.get: 'produces' must be equal to 'produces: []', SemanticError at paths./test2.get: 'produces' must be equal to 'produces: []']
I'm afraid I need to change the 'imported' file to make this work, but I think it's not correct (and, often, in real life you can't really do that).
Furthermore, I came across this recent discussion about semantic validation in OpenAPI (https://github.com/OAI/OpenAPI-Specification/issues/1936) and there's no mention about consumes/produces validation (except this one: "Parameters with type of file must have a consumes of multipart/form-data or application/x-www-form-urlencoded").
Is it possible that the validation that has been introduced is too strict and not conforming to the OpenAPI 2.0 spec?
@oyeli can you maybe help on this?
You can find failing tests and test files in my branch: https://github.com/giuliopulina/swagger-validator-maven-plugin/tree/bugfix/Issue-21_external_ref_with_no_dot_not_working

I can help with it. Because unfortunately, @oyeli doesn't have enough time.
@giuliopulina I have two approaches on how to deal with it:

Disable this validation at all.
Implement "disabling" functionality to explicitly disable some validator from maven configuration.

What do you think about it?

Hi @kh0ma, thanks for helping :)
I thought about it, and I would go for solution 1 because the additional validation is breaking some functionalities that, in my opinion, should work without additional configuration.
If you need this validation for your project (and you're not using external references, or you can adapt imported files) you can still implement it as a custom validator.
What do you think about it?
I can manage to do the code change in my branch, but I would be glad if you can review the change once I create the pull request


Company/Contact/Project custom field - We have to click 2 times to on/off custom field value

Describe the bug

when we try to make customfield value on/off then we have to click 2 times

https://www.berrycast.com/conversations/d97e3cd8-1334-506d-9af5-ab0a16aa2fec

This is not a issue
First we only load value, on click we brink status changes action plugin ON/OFF
on click of plugin value changes
this behavior can not be changed


A node can be both kinds of implied siblings, and appear twice in the l/m view because of it

I believe this is now fixed


Refactor parsing of parameters into query

Coverage remained the same at 100.0% when pulling 6c2060c0f0dc24bfeec542441be9983354399bcf on refactor_query into c1aad3712a378cd2262579b2345777c9cf3b3af2 on master.

Coverage remained the same at 100.0% when pulling 910c8b88406b8ef39d4584b982297797401c906b on refactor_query into c1aad3712a378cd2262579b2345777c9cf3b3af2 on master.

A new inspection was created.

The inspection completed: 1 updated code elements

Coverage remained the same at 100.0% when pulling 1aad74a29346eed7eb255cdaa6fd1d4f25af25b8 on refactor_query into c1aad3712a378cd2262579b2345777c9cf3b3af2 on master.


GROUP_CONCAT; knexjs way or must do it raw.

Environment
Knex version: 0.14.6
Database + version: mysql 8.0
OS: OSX 10.11.6 (El Capitan)
Select applicable tempalate from below.
If issue is about oracledb support tag @ atiertant. For MSSql tag @ smorey2 .
Rest of dialects doesn't need tags.
Questions about how to use knex
Github issues are for knex development. Please send questions how to use knex to
stackoverflow or ask about it in gitter chat.
Is there no way without using knex.raw to convert this mySql query:
SELECT  CATEGORIES.name AS Category,          GROUP_CONCAT(SUBCAT.name  ORDER BY SUBCAT.name ) AS Subcat,          COUNT(*)   FROM Categories AS CATEGORIES    INNER JOIN Categories SUBCAT ON  CATEGORIES.id = SUBCAT.parentCatId GROUP BY Category;
into a knexjs 'format' without getting

code: 'ER_BAD_FIELD_ERROR',
errno: 1054,
sqlState: '42S22',
sqlMessage: 'Unknown column 'GROUP_CONCAT(SUBCAT.name ORDER BY SUBCAT.name)' in 'field list'' }

I seem to have the correct statement created by knexjs with my code (excuse the formatting, it doesn't render well when used in 'code brackets'):
knex
.select(
{ Category: 'CATEGORIES.name' },
{ Subcat: GROUP_CONCAT+'(' + 'SUBCAT.name' + ' ' + ORDER BY + ' ' + SUBCAT.name + ')'},
'count(*)'
)
.from('Categories').as('CATEGORIES')
.join('Categories as SUBCAT', function() {
this.on('CATEGORIES.id', '=', 'SUBCAT.parentCatId')
})
.groupBy('Category')
.then(rows => {
console.log(rows);
res.status(200).json(rows);
})
.catch(error => {
res.status(500);
console.error(error);
  })
  .finally(() => {
    console.log(`knex promise completed. Shutting connection...`);
    knex.destroy();
  })

TERMINAL RESULT:

{ method: 'select',
options: {},
timeout: false,
cancelOnTimeout: false,
bindings: [],
__knexQueryUid: 'ae397343-f0a9-4df0-8016-cb9a934b8b80',
sql: 'select CATEGORIES.name as Category, GROUP_CONCAT(SUBCAT.name ORDER BY SUBCAT.name) as Subcat, count(*) from Categories inner join Categories as SUBCAT on CATEGORIES.id = SUBCAT.parentCatId group by Category',
as: 'CATEGORIES' }

again it seems formatting is not the same as what I see in terminal.  Anything in grey is surrounded by "`".

The statement looks correct and equivalent to my sql statement. I have searched for GROUP_CONCAT and found reference  #1140 and #465.  But the solution was to use .raw or multiple statements and variables and calls.  And that was in 2016.  Is there no way to do it using something similar to what I coded in js? Or is it a bug?

This question should not be done here as it was already mentioned in issue template:

Github issues are for knex development. Please send questions how to use knex to stackoverflow or ask about it in gitter chat.

So please send future questions about knex usage to stackoverflow.
Knexy way to convert
SELECT
  CATEGORIES.name AS Category,
  GROUP_CONCAT(SUBCAT.name ORDER BY SUBCAT.name ) AS Subcat,
  COUNT(*)
FROM Categories AS CATEGORIES
INNER JOIN Categories SUBCAT ON CATEGORIES.id = SUBCAT.parentCatId
GROUP BY Category;

is indeed by using knex.raw
knex('Categories as CATEGORY')
  .select(
    'CATEGORY.name as Category',
    knex.raw('GROUP_CONCAT(? ORDER BY ?) as ?', ['SUBCAT.name', ' SUBCAT.name', 'Subcat'])),
    knex.raw('COUNT(*)')
  )
  .innerJoin('Categories as SUBCAT', 'CATEGORIES.id', 'SUBCAT.parentCatId')
  .groupBy('Category')

Which outputs (https://runkit.com/embed/pjdve0xqc4an):
select
  `CATEGORY`.`name` as `Category`,
  GROUP_CONCAT(? ORDER BY ?) as ?,
  COUNT(*)
from `Categories` as `CATEGORY`
inner join `Categories` as `SUBCAT` on `CATEGORIES`.`id` = `SUBCAT`.`parentCatId`
group by `Category`


Update README.md

Change to > and < for raft command-line parameters description

Minor readme.md formatting fix


HTMLField in Django InlineAdmin causes TypeError when adding new record

I have a Model with an HTMLField in it. The Model with the HTMLField is used as StackedInline in the Django Admin.
When I add a new record, the CKEditor is not shown, instead only the Textarea is displayed, and I got a JavaScript Error: TypeError: Cannot read properties of undefined (reading 'replace').

The model Looks like this:
class CategoryTextSlide(models.Model):
    category = models.ForeignKey(
        Category,
        related_name="slides",
        verbose_name="Kategorie",
        on_delete=models.CASCADE,
    )

    text = HTMLField(
        verbose_name="Text",
        configuration="CKEDITOR_CATEGORY_TEASER_SLIDE_SETTINGS",
    )

    class Meta:
        verbose_name = "Kategorie Text Slide"
        verbose_name_plural = "Kategorien Text Slides"

The CKEditor settings like this:
CKEDITOR_CATEGORY_TEASER_SLIDE_SETTINGS = {
    "bodyClass": "category-teaser-slide",
    "toolbar_HTMLField": [
        ["Undo", "Redo"],
        ["Format", "RemoveFormat", "Bold", "Link"],
        ["Source", "Maximize"],
    ],
    "contentsCss": "/static/ckeditor.css",
    "format_tags": "h3;p",
}

And the Admin config like this:
class CategoryTextSlideAdmin(admin.StackedInline):
    model = CategoryTextSlide
    min_num = 1
    extra = 0

I use the following version:

Django: 4.25
Django CMS: 3.11.4
Django CMS CKEditor: 5.1.4
Python: 3.11.4

Thanks for helping.
Best regards

This looks like you'd need to add custom javascript to instantiate a new ckeditor when you add a new inline.
This maybe considered outside of the scope of the plugin though as I'm not clear on how you're using it. This seems like regular Django.


Test extraction tools against sample datasets

Test how the current scripts perform when extracting drawings and images from different PDF layouts (posters, presentations, etc.).

completed


tf.image.decode_image does not support png grayscale 16bit.

Code to reproduce:
import tensorflow as tf
import numpy as np

print ("TF Version: %s" % tf.__version__)

import urllib

png16 = urllib.request.urlopen('http://www.schaik.com/pngsuite/basn0g16.png').read(1000)
with tf.Session() as session:
    content = tf.placeholder(tf.string)
    tensor = tf.image.decode_image(
        contents=content,
        channels=1
    )

    out = (session.run(tensor, {content: png16}))
    np_out = np.array(out)
    print ('Shape', np_out.shape)
    print ('Max', np_out.max())

Outputs:
TF Version: 1.4.1
Shape (32, 32, 1)
Max 255

Same file, file command:
file basn0g16.png
basn0g16.png: PNG image data, 32 x 32, 16-bit grayscale, non-interlaced

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04.3 LTS
TensorFlow installed from (source or binary): pip3 install tensorflow
TensorFlow version (use command below): 1.4.1
Python version: Python 3.5.2
Bazel version (if compiling from source): nope
GCC/Compiler version (if compiling from source): nope
CUDA/cuDNN version: no gpu
GPU model and memory: no gpu
Exact command to reproduce: see abve

python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
v1.4.0-19-ga52c8d9 1.4.1
Describe the problem
It should return uint16, but returns uint8.
Source code / logs
see above

Ok, I have that issue because slim does not support png16
tensorflow.contrib.slim.python.slim.data.tfexample_decoder.Image

Set dtype in decode_png
https://www.tensorflow.org/api_docs/python/tf/image/decode_png


Implement simple rule matcher

This is an alternative solution which is getting rid of JavaMatcher in accurate algorithm. Te behavior is not identical as in Java as we discussed here, but I still fail to see how it will negatively impact real-life segmentation. I don't know what users are trying to achieve by adding ^ to the rule, and if there's a reason, then Python behavior makes more sense to me than Java's. This implementation is simpler, faster, and all tests still succeed.

Hi, do you think this approach might be viable, or should I close this PR?

Hi @loomchild
Sorry for the late reply. We did some tests, found some discrepancies with the original java implementation on real world texts but I haven't had a chance to investigate those (we are preparing a couple of papers for the upcoming UNLP stream of ACL conference, etc).
Please keep it open, I'll find someone to look into it or will finally find a time to do it myself.
Thanks again for looking into that problem.


UI fixes

Fix any UI issues:

[ ] Update colour scheme to AI UK colours
[x] Update root event date picker to start at yesterday (not today) and display a different error if the date picked is not in the past (PR open)
[x] Remove ION endpoint setting (search cmd+shift+f ionEndpoint) #60 (PR open)
[x] Squashed buttons on credential detail page (PR open)
[x] Icon & launch/splash screen #50 (PR open)
[ ] Consider alternative widgets for Show DID
[ ] Use AnimatedContainer to make the expansion look nicer in the DID chain items
[ ] Improve the error message on a failed attempt to show the DID chain (needs a new enum variant in trustchain-dart to send appropriate error message in case of 500 server errors)
[ ] Add pop-up warning if user sets root event date (or other settings) and then clicks back instead of Save

Following #63, replace the text buttons on the credential detail screen with icons.


feat: add rough form for IBC withdrawals

This PR adds another very rough IBC prototype, this time for IBC transfers from Namada to Cosmos.
Note: The tx details are not dislaying properly in the extension, but as far as I know we need to get the IBC WASM hash from the indexer to do this, which it is currently not sending. anoma/namada-indexer#120
Testing

Set up hermes as in https://hackmd.io/a95Q2m6TRM-ntjFSSPzKTA (make sure to use theta-testnet-001 as the Cosmos testnet)
Send some NAM to using the form
Check you received the NAM on the Cosmos side with gaiad query bank balances <cosmos address> --node https://rpc-t.cosmos.nodestake.top/

As a side note. I've just added tx_ibc checksums to the indexer.