Releasing debian installer

Hi, StickyNotes looks promising and I want to use it. Will you be able to release the debian installer for the app. I have tried to build it on my machine but failed.

which build you use 32bit or 64bit

added a deb package in release page for you works in both 32bit and 64bit

here
https://github.com/Playork/StickyNotes/releases/download/v0.1.0-beta.2/stickynotes_0.1.0.deb


v3.0.0 dominos is now published

There are complete examples on how to use the new version, and I think it is more in line with how your current code works as it is all async/await.
The new docs should be a LOT better than the old ones.

WHOAAA woo!!!


Port TensorFlow T5 ranker to PyTorch

Implement T5 checkpoint loader
Implement greedy decoder
Update sample environment to use checkpoint URL

Is the inference speed about the same as the TF model?

I can't measure the GPU performance on my dev machine, since the TF implementation throws OOM (I think it always pads to a sequence length of 256 and batch size of 96?). I have plenty of main RAM, so I ran both implementations on the CPU:
batch size 96, sequence length 256 (5 iterations):
PyTorch: 171.86 seconds, TensorFlow: 179 secs
Obviously, it's much faster with a smaller batch size (does that happen often in practice?):
batch size 1, sequence length 256 (5 iterations):
PyTorch: 4 seconds, TensorFlow: 179 secs

Oh, it doesn't seem like I have write access to merge the branch.

Oh, it doesn't seem like I have write access to merge the branch.

Could you please try again?


Xcode 15.0 & iOS 17;  Hard Crash (phone reboot) device only

When running a    select(...).getSingleOrNull(), on DEVICE ONLY, it is causing a hard crash, and instant phone reboot.
On a simulator this is working fine.
It is crashing instantly and not giving me any warnings, errors.  And a try/catch block, is not capturing anything either.
Nothing is appearing in the console that gives any indication of what happened
If we run on a legacy branch, using version 2.8.1 of drift, the same command works fine, via XCode15->iOS17
We then had an upgrade to 2.11.1, saw the error, tried to go to the latest 2.12.1, same thing.
I have narrowed the crash to when the inner function runs the get()
This exact same code base works on:
Xcode 14.3 -> iOS15 device
Xcode 14.3 -> iOS16 device
Xcode 15.0 -> iOS16 device
It is only failing on when we are trying to run, on a build compiled with XCode15, on an iOS17 device.
And as noted above, it does NOT fail on iOS17 simulator.

That is really weird. Dart code shouldn't crash the Dart VM, and even a misbehaving Dart VM shouldn't bring down the whole phone.
Can you reproduce this with the example app on this branch as well? Are you sure that drift is the only dependency that has changed (and, in particular, the sqlite3 and sqlite3_flutter_libs versions are on the same versions)? Does this happen on debug and release mode builds?
Unfortunately I don't have a physical iPhone to reproduce this myself, but I assume there is a combination of things that are triggering this since so far I've only gotten your report about this.

Good News, and Bad News..
The Good News, is that example branch that you linked to (running the "app" variation), did produce the identical instant panic/crash/reboot of the phone.    (which was updated to 17.0.3 yesterday).
For reference the physical phone being used is an iPhone 14 Pro
That is also the Bad News.
The weirdness continues, trying to run it on my iPad Pro, which is on iPadOS 17.0.3; and it works.
I don't have another physical phone at the moment to test against.

Now more fun weirdness:
debug configuration:   panic/crash
release configuration: works

No, unfortunately I don't have any updates on this - I couldn't get an iPhone to reproduce this. I'm also not sure I'd know where to look.
Maybe it's best to file a Flutter issue on this so that someone more knowledgeable about the internals is able to take a look. Are the following steps enough to reproduce this from a clean state?
git clone https://github.com/simolus3/drift.git -b example-app/use-getSingleOrNull-somewhere --depth 1
cd drift
dart pub global run melos bootstrap --scope app
cd examples/app/
flutter run -d ios

If so, I can file a Flutter issue, but since you'll probably be able to provide more details on how to reproduce this, you could do it as well. Sorry I'm of so little help here, I really don't understand how this can happen and how to diagnose it further.

Hi there, so I was able to get back to this... and yah, those exact steps (sans me adjusting the bundle identifier and team), reproduced the failure.. :(

Odd. https://github.com/flutter/flutter/issues/136197 is the only issue that looks similar - I can file a Flutter issue for you if you give me the output of flutter doctor -v

[✓] Flutter (Channel stable, 3.13.7, on macOS 13.6 22G120 darwin-arm64, locale
en-US)
• Flutter version 3.13.7 on channel stable at
/Users/********/Development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 2f708eb839 (11 days ago), 2023-10-09 09:58:08 -0500
• Engine revision a794cf2681
• Dart version 3.1.3
• DevTools version 2.25.0
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at /Users/*******/Library/Android/sdk
• Platform android-33, build-tools 33.0.1
• Java binary at: /Applications/Android
Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
11.0.15+0-b2043.56-8887301)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
• Xcode at /Applications/Xcode15.app/Contents/Developer
• Build 15A240d
• CocoaPods version 1.12.0
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
11.0.15+0-b2043.56-8887301)
[✓] VS Code (version 1.83.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.74.0
[✓] Connected device (3 available)
• EJ-iPhone14p (mobile) • 00008120-001478803CDB401E • ios            • iOS 17.0.3 21A360
• macOS (desktop)       • macos                     • darwin-arm64   • macOS 13.6 22G120 darwin-arm64
• Chrome (web)          • chrome                    • web-javascript • Google Chrome 118.0.5993.88
[✓] Network resources
• All expected network resources are available.
• No issues found!

I can confirm that, on Xcode 15.01 / iOS 17.0.3 I am getting a hard crash when debugging. Not in relaease

Could you try this again with the latest Flutter beta released today (3.16.0-0.4-pre)?

Waiting for an update on this issue.

This was caused by https://github.com/flutter/flutter/issues/136980, a Flutter bug which has since been fixed.


Example of deploying on AWS Lambda functions?

Hi! I work with a therapist and they mentioned something like this would be very useful. Do you think it’s possible?
Really excited to try it out :)

Hi @jaanli!
I'm not sure if AWS lambdas are the correct solution for your use case. Both the signal api server as well as the bot framework would need to run continuously 24/7. In contrast, AWS lambdas are nice for individual requests and varying traffic. If you want to stay on AWS, I'd recommend to use the cheapest EC2 instance or any other VM. On Google, Cloud Run should work for you though you may need some custom logic to handle sudden restarts of containers. If you don't care about the cloud provider at all, I can recommend Oracle Cloud giving you a quite powerful VM for free, see this article. Let me know if you have more questions.

Ooh thanks so much @filipre ! Would you recommend a VPS solution then (hertzner, digital ocean droplets I've used in the past)? Or just a Raspberry Pi Orange 5 (pretty okay specs for this) plugged in 24/7 near my computer?

Both a VPS or a Raspberry Pi is fine imo. At least I don't see a reason why one shouldn't work. With a VPS you don't have to worry about the hardware so that's probably a bit nicer and quicker to set up. What happens when you move stuff around in your room? Or when your router has connectivity issues? In my case, I connected the bot with some other things in my network so a VPS doesn't work.

Ended up going with Lightspeed (3 months free right now, for a 2GB RAM 60GB SSD box, which should be plenty for this; https://aws.amazon.com/lightsail/pricing/ :)


. Updated the code to handle exception when save court case failed.

. Logged the thrown exception.
. Refactored code not to call post offender matches if save court case failed.

LGTM 👍
One thing I probably never mentioned, we tend to include in our commit messages the PIC number e.g. 🐛 PIC-2229: Fail fast on unsuccessful PUT so that it automatically links the commit to the Jira ticket. Example of another ticket here which does it.
I'm also a fan of prefixing my commits with Gitmoji but that's not mandatory! 😄

Usually do that but forget this time.


Ditaa extension for AsciidocFX

Hi,
I added an extension for creating ditaa diagrams (see http://ditaa.sf.net) with AsciidocFX.
Since the ditaa classes are already part of the plantuml package this doesn't need any additional dependencies.
I'd be happy if you'd merge this into the official source,
Kind regards
Jörg

Hello @joemat, I'm happy for your contribution to AsciidocFX with ditaa extension. I commented some section, can you rebase those 3 commits to 1 commit ?

@rahmanusta, thanks for your reply and the code review. I fixed the issues you found, please come back to me if there are additional issues.

Ditaa is already supported. I've been using it for a while. This Java extension is not required. In the current version just type the following to get ditaa support.
.UML http://plantuml.com/ditaa.html
[uml,file="ditaa-diagram.png"]
@startditaa
+--------+   +-------+    +-------+
|        +---+ ditaa +--> |       |
|  Text  |   +-------+    |diagram|
|Document|   |!magic!|    |       |
|     {d}|   |       |    |       |
+---+----+   +-------+    +-------+
:                         ^
|       Lots of work      |
+-------------------------+
@endditaa
Works like charm.

@joemat's pull request learnt me plantuml supports also ditaa. After understanding that, as @wfouche 's example @startdiaa @endditaa tags helps to render ditaa. @joemat Can you try that?

I didn't know that I can create ditaa diagrams with plantuml . .that works fine and solves my root issue.
Nevertheless I think it would be a good thing to have direct support for ditaa diagrams in AsciidocFX to make it compatible to Asciidoctor diagrams.
It rebased my fork and changed the logic to use the @startditaa and @endditaa tags since this simplifies the implementation.

Thanks for you contribution @joemat !
We are thinking to support/switch-to Asciidoctor diagrams format but there is a problem that is making me thoughtful.
For example, in the following ditaa block, when you change the content, for every keypress hashcode of content will changed, and it will affect the filename. And you will see 1 image file for 1 change. I dont know how to handle this scenario? There is no problem for Asciidoctor, because you are writing and generating the outputs. But, in AsciidocFX we are generating outputs in live mode.
[ditaa]
....
//
....


go pkgs cannot be installed in latest universal image

steps to reproduce:

create Github Codespace using devcontainer that uses mcr.microsoft.com/devcontainers/universal:2-focal image
create a golang project with some dependencies in your go.mod file.
run go get -u ./...

you will get errors like:
go: writing go.mod cache: mkdir /go/pkg/mod/cache/download/github.com/jackc: permission denied
go: writing go.mod cache: mkdir /go/pkg/mod/cache/download/github.com/coreos: permission denied
go: writing go.mod cache: mkdir /go/pkg/mod/cache/download/github.com/kr: permission denied
go: writing go.mod cache: mkdir /go/pkg/mod/cache/download/github.com/konsorten: permission denied

seems /go/pkg is now owned and writable by root only. so now noone can use Golang on GIthub Codespaces due to this....

Hi 👋
Unfortunately, I couldn't reproduce with this dev config 👇
{
	"image": "mcr.microsoft.com/devcontainers/universal:2"
}

The permissions look good to me, can you paste the output from devcontainer-info command and also your entire dev config?

devcontainer.zip
attaching our devcontainer config files
output of command you requested:
@pdeva ➜ /workspaces/monorepo (main) $ devcontainer-info

Development container image information

- Image version: 2.2.3
- Definition ID: universal
- Source code repository: https://github.com/devcontainers/images
- Source code release/branch: v0.2.39
- Timestamp: Wed, 25 Jan 2023 00:09:56 GMT

More info: https://github.com/devcontainers/images/tree/main/src/universal/history/2.2.3.md

@pdeva ➜ /workspaces/monorepo (main) $

also the permissions you are looking at are in /usr/local/go, but if you notice my OP, it seems it refers to /go which is where GOPATH seems to  points to by default in the  mcr.microsoft.com/devcontainers/universal:2-focal image

Tried to reproduce with the dev container linked above, however, it is failing to install the ghcr.io/rio/features/kustomize Feature. Hence, the dev container fails to build.
I tried commenting out and rebuilding but still facing some other issues.
@pdeva does the dev container build fine for you? Also, can you provide the version of the dev containers extension?

working fine for us. we just put this dir in our repo and let github codespaces build it..

logs_1072.zip
attaching log of succesfully creating a github codespaces prebuild using the devcontainer config i gave you eariler

👋  @pdeva - Also trying to repro and I can't seem to see what you're seeing. From your config it looks like you're doing a fair amount of modification on top of the universal image. Do you think anything in your Dockerfile, or perhaps the Features, could be changing the permissions of that go/ directory?

If you're able to isolate the issue to a more minimal config (smaller dockerfile and/or less Features), that would be helpful for us to provide better advise for you.

let us try to isolate this to a minimal config and get back to yoy

We have the minimal reproducible config now:
devcontainer.json:
{
	"name": "AstradotUbuntu",
	"build": {
            "dockerfile": "Dockerfile"
    }
}

Dockerfile :
FROM mcr.microsoft.com/devcontainers/universal:2-focal

RUN go install github.com/google/wire/cmd/wire@latest

it seems running the go install command in the Dockerfile changes the permission of the /go folder for some reason. Its unclear why this would happen tho. go install doesnt change permissions, just downloads files to relevant directories..

Thanks! I was able to reproduce the error with this dev config.

RUN go install github.com/google/wire/cmd/wire@latest

This command is running as root instead of the image's remoteUser: codespace, and that's what causing the issues.
I was able to get things working with by setting USER codespace before the go install... command👇
Dockerfile
FROM mcr.microsoft.com/devcontainers/universal:2-focal

USER codespace
RUN go install github.com/google/wire/cmd/wire@latest

@pdeva do you mind giving this a try?

the issue goes away when i use  USER codespace indeed! 😃
i wonder why running as root causes the entire go/pkg folder path to change ownership to `root' tho... 🤔

Closing as resolved.


Fix RTD preview message rendering

See: https://github.com/readthedocs/actions/issues/34#issuecomment-1849854607
PS: pre-commit is failing because of https://github.com/pypa/hatch/issues/1113

:books: Documentation preview :books:: https://docs-community--93.org.readthedocs.build/en/93/

PS: pre-commit is failing because of https://github.com/pypa/hatch/issues/1113

https://github.com/sphinx-contrib/sphinx-lint/pull/106

Thanks for the PR! Let's wait a little bit, I'd prefer an upstream fix at https://github.com/readthedocs/actions so we don't need to apply this to all the repos.

Thanks for the PR! Let's wait a little bit, I'd prefer an upstream fix at https://github.com/readthedocs/actions so we don't need to apply this to all the repos.

Alright! The fix is at https://github.com/readthedocs/actions/pull/32, if anyone's wondering. Though the RTD team can not reproduce the fix.

Closing the PR for now


wezterm: make it build with clang 19

zlib patch: the upstream patch doesn't apply to this old vendored version of zlib.
Things done

Built on platform(s)

[ ] x86_64-linux
[X] aarch64-linux
[ ] x86_64-darwin
[X] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg build wezterm

No idea why darwin is failing
warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
  --> mux/src/renderable.rs:23:86
   |
23 |     Debug, Clone, Copy, PartialEq, Eq, Default, Deserialize, Serialize, FromDynamic, ToDynamic,
   |                                                                                ^--------
   |                                                                                |
   |                                                                                `ToDynamic` is not local
   |                                                                                move the `impl` block outside of this constant `_IMPL_PLACEDYNAMIC_FOR_RenderableDimensions`
24 | )]
25 | pub struct RenderableDimensions {
   |            -------------------- `RenderableDimensions` is not local
   |
   = note: the derive macro `ToDynamic` defines the non-local `impl`, and may need to be changed
   = note: the derive macro `ToDynamic` may come from an old version of the `wezterm_dynamic_derive` crate, try updating your dependency with `cargo update -p wezterm_dynamic_derive`
   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
   = note: this warning originates in the derive macro `ToDynamic` (in Nightly builds, run with -Z macro-backtrace for more info)

I confirm aarch64-darwin and x86_64-linux builds.


Icons for workspaces (Help not a bug)

How would one go about creating icons for workspaces; I'm struggling with not being able to use dictionaries or arrays to declare icons and calling them where i.id == icon_id.
(defvar moonicon1 "🌑")  ; New Moon
(defvar moonicon2 "🌒")  ; Waxing Crescent
(defvar moonicon3 "🌓")  ; First Quarter
(defvar moonicon4 "🌔")  ; Waxing Gibbous
(defvar moonicon5 "🌕")  ; Full Moon
(defvar moonicon6 "🌖")  ; Waning Gibbous
(defvar moonicon7 "🌗")  ; Last Quarter
(defvar moonicon8 "🌘")  ; Waning Crescent
(defvar moonicon9 "🌑")  ; New Moon (placeholder)

(deflisten workspaces "hyprland-workspaces _")

(defwidget workspaceWidget [monitor]
  (eventbox :onscroll "hyprctl dispatch workspace `echo {} | sed 's/up/+/\' | sed 's/down/-/'`1"
    (box :orientation "v"
         :class "workspaces"
      (for i in {workspaces[monitor].workspaces}
        (button :onclick (format "hyprctl dispatch workspace %d" i.id)
                 :class "${i.class}"
          (label :class "moonicons"
                 :text (case i.id
                          1 moonicon1
                          2 moonicon2
                          3 moonicon3
                          4 moonicon4
                          5 moonicon5
                          6 moonicon6
                          7 moonicon7
                          8 moonicon8
                          9 moonicon9
                          "❓")))))))

This is my shit code, any guidance would be appreciated, <3

Have you had a look at hyprland-autoname-workspaces? You may be able to configure that to name your workspaces as you wish and just have that flow through.
Otherwise, this is more of an eww question, than a hyprland-workspaces question. I think the best spot for this is over on the eww discussions section.

I will check it out; my apologies for wasting your time. Thank you for the guidance. <3


Revert "Adding Note model, Add, Delete, List all Note, and View Note commands."

Reverts AY1920S1-CS2103T-W13-3/main#125

No need, settled already :)


Prevent splitting panes into 0 width/height #2401

Fixes a crash that can occur when splitting pane that was so small that the target panes would have a width/height of 0, causing DxRenderer to fail when creating the device resources.
This PR prevents both the call to App::AddHorizontal/VerticalSplit and the creation of the TermControl if the split would fail.
Summary of the Pull Request
References
PR Checklist

[x] Closes #2401
[x] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed (there are no tests for this part of WT)
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #2401

Detailed Description of the Pull Request / Additional comments
App::_SplitPane calls focusedTab->CanAddHorizontalSplit/CanAddHorizontalSplit before it initializes the TermControl to avoid having to deal with the cleanup. If a split cannot occur, it will simply return.
Question: Should we beep or something here?
It then follows the same naming/flow style as the split operation, so: Tab::CanAddHorizontalSplit -> Pane::CanSplitHorizontal ->Pane::_CanSplit. The public pane methods will handle leaf/child the same as the current Split methods.
_CanSplit reuses existing logic like _root.GetActualWidth/Height, Pane::_GetMinSize, and the Half constant.
Validation Steps Performed

Open a new tab
Attempt to split horizontally/vertically more than 6-8 times

Success: Pane will will eventually stop splitting rather than crashing the process.

Ah yes - I was originally planning on using _GetPaneSizes as it already contained the separator logic, but couldn't in the end because it relied on the _firstPercent/_secondPercent private members and then forgot to include it in my own implementation.
I've amended the commit to include the separator.
(To be honest, I think a lot of Pane.cpp could be refactored to avoid duplicating logic but since this is my first PR I wanted to keep things simple)

If a user cannot open a pane, can they make it larger? Or are they stuck without panes at the moment?

(To be honest, I think a lot of Pane.cpp could be refactored to avoid duplicating logic but since this is my first PR I wanted to keep things simple)

I would so very happily review that PR 😄

@zadjii-msft Are those updates ok? The issue is still marked as requiring changes.

Oh, yea I'm happy with that. Sorry I missed the new commit!

@carlos-zamora Both the naming and the use of narrow_cast were used to remain consistent with the existing conventions of the class.
I plan on doing a refactor PR as per my comments above, but I didn't want to include it in this PR since it would detract from the fix being made (not to mention that this is my first terminal PR)
If you're happy to merge this as-is, I can follow up with the refactor PR.

Thanks a bunch!


Execute TypeConverter if value is null

Hi, if a value is null, it seems that TypeConverters aren't called, running a TypeConverter on a null value could be useful to set a default fall-back value (for when something hasn't  been selected in the cms)

Makes sense to me. We do null type checks within the converters anyway.
@leekelleher @mattbrailsford  Thoughts?

(PR: #49)


Highlighting of Entities When Users Select Texts via the Detailed View of Entities

Would it be possible to highlight entities in a text if users select this text via the detailed view of entities. For example, if a user opens the detailed view of "Nietzsche" (https://hanslick-online.github.io/hsl-app-dev/hsl_person_id_1377.html) and then selects one of the texts in which Nietzsche is mentioned, would it be possible to have "Nietzsche" highlighted automatically in this text, as if the user would have used the search function in individual texts.

Highlighting of person names, place names and work titles will only work if the title of the detail page is the same as mentioned in the texts.

That's certainly progress! Let's put this issue on the back burner for now...

Please cancel this feature again. As the proper title in our database rarely coincides with the title given in Hanslick's text, it leads to a bunch of errors and/or weird highlighting.

Think about possibly doing this with via ref-links


Clean the PHP log file when it gets large

This way people who are running BB won't potentially end up with an extremely large PHP log.
It would take an extremely long time to teach 2MB unless there's a major problem, so I don't think we're at risk of loosing important log information to this, or ever even reaching it.
Still, I consider this to be a QOL change

It's a nice idea. However, this should be kept as an optional feature, preferrably disabled at the first setup.

@evrifaessa We could disable it whenever BB has debug mode enabled, or if you want I can create a separate config variable

@evrifaessa We could disable it whenever BB has debug mode enabled, or if you want I can create a separate config variable

Maybe add it as a setting to the admin panel? And if you ship it with automatical purges enabled, people will lose their old logs once they install this release. So just keep it as an optional feature please.

Maybe add it as a setting to the admin panel? And if you ship it with automatical purges enabled, people will lose their old logs once they install this release. So just keep it as an optional feature please.

I don't know how to add it to the admin panel, so I'll have to look into that

im confused by this... why does there need to be a database query to decide how logs are handled.... Shouldnt the config setting for this be in the config file? not everything needs to be in the settings section of the admin area.. imo

also... instead of deleteing old logs... would it be better to just rename the log file with an appending date and then start a new log.
then let the administrator decide how to handle old logs... if old logs are archeived like this then a simple cron job the admin side would be able to clear out any unwanted files.
just a thought.


Errors with AzureML MlFlow logging: azure.core.exceptions.ServiceResponseError and .ServiceRequestError

Package Name:
azureml-mlflow
Package Version:
-1.49.0, 1.43.0.post1
Operating System:
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
Python Version:
Python 3.9.0
Describe the bug
Script run on AzureML Studio GPU compute throws azure.core.exceptions.ServiceResponseError: HTTPSConnectionPool(host='northeurope.api.azureml.ms', port=443): Read timed out. (read timeout=300) when attempting to log images to mlflow.
This behaviour only started a few days ago, no package changes were made in the meantime and before then mlflow worked just fine.
The mlflow environment is set up as follows:
python   ws = Workspace.get(name=data_config['workspace_name'],                      subscription_id=data_config['subscription_id'],                      resource_group=data_config['resource_group'])   mlflow.set_tracking_uri(ws.get_mlflow_tracking_uri())   mlflow.create_experiment('exp0')   mlflow.set_experiment('exp0')   with mlflow.start_run(run_name=make_run_name()):
! The script runs for several epochs before crashing. The epoch at which it crashes changes from run to run

Besides the error in the title at times another error is thrown:
azure.core.exceptions.ServiceResponseError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
NB: when running the script in a debugger that catches the exception, the same line can be run again without producing any error. The type of call that results in the error is unpredictable.
To Reproduce
Steps to reproduce the behavior:

set up mlflow experiment and run
set up script that periodically logs images, figures and metrics to mlflow
run the script

Expected behavior
azureml-mlflow should log artifacts metrics etc. to mlflow and azureml studio with no errors.
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Traceback:
File "/mnt/batch/tasks/shared/LS_root/mounts/clusters/andreagpu1/code/Users/user0/exp0/reconstruction/train.py", line 77, in
trainer.fit(module,
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 740, in fit
self._call_and_handle_interrupt(
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 685, in _call_and_handle_interrupt
return trainer_fn(*args, **kwargs)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 777, in _fit_impl
self._run(model, ckpt_path=ckpt_path)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1199, in _run
self._dispatch()
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1279, in _dispatch
self.training_type_plugin.start_training(self)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py", line 202, in start_training
self._results = trainer.run_stage()
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1289, in run_stage
return self._run_train()
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1319, in _run_train
self.fit_loop.run()
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/base.py", line 145, in run
self.advance(*args, **kwargs)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 234, in advance
self.epoch_loop.run(data_fetcher)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/base.py", line 146, in run
self.on_advance_end()
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/training_epoch_loop.py", line 242, in on_advance_end
self._run_validation()
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/training_epoch_loop.py", line 337, in _run_validation
self.val_loop.run()
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/base.py", line 145, in run
self.advance(*args, **kwargs)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/dataloader/evaluation_loop.py", line 110, in advance
dl_outputs = self.epoch_loop.run(dataloader, dataloader_idx, dl_max_batches, self.num_dataloaders)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/base.py", line 145, in run
self.advance(*args, **kwargs)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 122, in advance
output = self.evaluation_step(batch, batch_idx, dataloader_idx)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 217, in evaluation_step
output = self.trainer.accelerator.validation_step(step_kwargs)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/accelerators/accelerator.py", line 239, in validation_step
return self.training_type_plugin.validation_step(*step_kwargs.values())
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py", line 219, in validation_step
return self.model.validation_step(*args, **kwargs)
File "/mnt/batch/tasks/shared/LS_root/mounts/clusters/andreagpu1/code/Users/user0/exp0/reconstruction/model.py", line 91, in validation_step
self.logger.experiment.log_image(self.logger.run_id, im_a, f"{self.trainer.current_epoch}/val_low_res{batch_idx}{i}.png")
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1424, in log_image
raise TypeError("Unsupported image object type: '{}'".format(type(image)))
File "/anaconda/envs/myenv0/lib/python3.9/contextlib.py", line 124, in exit
next(self.gen)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1129, in _log_artifact_helper
self.log_artifact(run_id, tmp_path, artifact_dir)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1129, in _log_artifact_helper
self.log_artifact(run_id, tmp_path, artifact_dir)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1064, in log_artifact
self._tracking_client.log_artifact(run_id, local_path, artifact_path)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/mlflow/tracking/_tracking_service/client.py", line 422, in log_artifact
artifact_repo.log_artifact(local_path, artifact_path)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azureml/mlflow/_store/artifact/artifact_repo.py", line 65, in log_artifact
self.artifacts.upload_artifact(local_file, dest_path)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azureml/mlflow/_client/artifact/run_artifact_client.py", line 56, in upload_artifact
return self._upload_artifact_from_stream(file, remote_path, self._run_id)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azureml/mlflow/_client/artifact/run_artifact_client.py", line 117, in _upload_artifact_from_stream
empty_artifact_res = self._create_empty_artifacts(paths=name, run_id=run_id)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azureml/mlflow/_client/artifact/run_artifact_client.py", line 128, in _create_empty_artifacts
response = self._client.run_artifacts.batch_create_empty_artifacts(
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azureml/mlflow/_restclient/run_artifact/operations/_run_artifacts_operations.py", line 1116, in batch_create_empty_artifacts
pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 211, in run
return first_node.send(pipeline_request)  # type: ignore
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
[Previous line repeated 2 more times]
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/mgmt/core/policies/_base.py", line 47, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/policies/_redirect.py", line 158, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/policies/_retry.py", line 467, in send
raise err
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/policies/_retry.py", line 445, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/policies/_authentication.py", line 119, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
[Previous line repeated 1 more time]
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 103, in send
self._sender.send(request.http_request, **request.context.options),
File "/anaconda/envs/myenv0/lib/python3.9/site-packages/azure/core/pipeline/transport/_requests_basic.py", line 361, in send
raise error
azure.core.exceptions.ServiceResponseError: HTTPSConnectionPool(host='northeurope.api.azureml.ms', port=443): Read timed out. (read timeout=300)

Thanks for the feedback @achatrian . We will investigate and get back to you asap.
cc @azureml-github

Thank you. Yesterday I got a new type of error, a ServiceRequestError from the same script after catching the ServiceResponseErrors and training a model for 200 epochs:
azure.core.exceptions.ServiceRequestError: [SSL: SSLV3_ALERT_BAD_RECORD_MAC] sslv3 alert bad record mac (_ssl.c:2621)
Here is the full traceback for reference:
Traceback (most recent call last):
File "/home/cluster_user/user0/Repositories/exp0/exp0/train.py", line 88, in
trainer.fit(module,
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 603, in fit
call._call_and_handle_interrupt(
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 38, in _call_and_handle_interrupt
return trainer_fn(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 645, in _fit_impl
self._run(model, ckpt_path=self.ckpt_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1098, in _run
results = self._run_stage()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1177, in _run_stage
self._run_train()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1200, in _run_train
self.fit_loop.run()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 267, in advance
self._outputs = self.epoch_loop.run(self._data_fetcher)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 200, in run
self.on_advance_end()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/training_epoch_loop.py", line 251, in on_advance_end
self._run_validation()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/training_epoch_loop.py", line 310, in _run_validation
self.val_loop.run()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/dataloader/evaluation_loop.py", line 152, in advance
dl_outputs = self.epoch_loop.run(self._data_fetcher, dl_max_batches, kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 137, in advance
output = self._evaluation_step(**kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 234, in _evaluation_step
output = self.trainer.call_strategy_hook(hook_name, *kwargs.values())
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1480, in call_strategy_hook
output = fn(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py", line 390, in validation_step
return self.model.validation_step(*args, **kwargs)
File "/home/cluster_user/user0/Repositories/exp0/exp0/model.py", line 114, in validation_step
mlflow.log_figure(pca_plot_figure, f"{self.trainer.current_epoch}/pca_plot{batch_idx}{i}.png")
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/fluent.py", line 917, in log_figure
MlflowClient().log_figure(run_id, figure, artifact_file)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1217, in log_figure
raise TypeError("Unsupported figure object type: '{}'".format(type(figure)))
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/contextlib.py", line 124, in exit
next(self.gen)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1067, in _log_artifact_helper
self.log_artifact(run_id, tmp_path, artifact_dir)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1002, in log_artifact
self._tracking_client.log_artifact(run_id, local_path, artifact_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/_tracking_service/client.py", line 439, in log_artifact
artifact_repo.log_artifact(local_path, artifact_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_store/artifact/artifact_repo.py", line 65, in log_artifact
self.artifacts.upload_file(local_file, dest_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_client/artifact/run_artifact_client.py", line 64, in upload_file
empty_artifact_res = self._create_empty_artifacts(paths=artifact_path, run_id=self._run_id)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_client/artifact/run_artifact_client.py", line 146, in _create_empty_artifacts
response = self._client.run_artifacts.batch_create_empty_artifacts(
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_restclient/run_artifact/operations/_run_artifacts_operations.py", line 1116, in batch_create_empty_artifacts
pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 211, in run
return first_node.send(pipeline_request)  # type: ignore
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
[Previous line repeated 2 more times]
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/mgmt/core/policies/_base.py", line 47, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/policies/_redirect.py", line 153, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/policies/_retry.py", line 467, in send
raise err
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/policies/_retry.py", line 445, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/policies/_authentication.py", line 113, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
[Previous line repeated 1 more time]
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/_base.py", line 103, in send
self._sender.send(request.http_request, **request.context.options),
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azure/core/pipeline/transport/_requests_basic.py", line 360, in send
raise error
azure.core.exceptions.ServiceRequestError: [SSL: SSLV3_ALERT_BAD_RECORD_MAC] sslv3 alert bad record mac (_ssl.c:2621)

Try increasing the timeout by changing the values of MLFLOW_ARTIFACT_UPLOAD_DOWNLOAD_TIMEOUT and/or MLFLOW_HTTP_REQUEST_TIMEOUT environment variables.

I am also getting the ConnectionResetError in the same context of logging an artifact using MLflow.
azure.core.exceptions.ServiceResponseError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

Same issue here. I'm trying to log a dictionary as json, got ServiceResponseError. The json file is around 40~60KB. Increase AZUREML_ARTIFACTS_DEFAULT_VALUE to 3000 doesn't help.

Workaround
Retrying to log the artifact with MLflow helps me with this issue and serves as a workaround, but it isn't a proper solution. That should probably still come from the Azure employees.
Simple example of retrying to log an image:
import time, logging, mlflow

max_retries = 5
retry_delay = 2

retries = 0
while retries < max_retries:
    try:
        ml_flow.log_image(image, "test.png")
        break
    except Exception as e:
        logging.warning(
            f"Failed to log image to MLflow. Retrying in {retry_delay} seconds. Error: {e}"
        )
        time.sleep(retry_delay)
        retries += 1

I got a new error on the server side:
azure.core.exceptions.HttpResponseError: Operation returned an invalid status 'InternalServerError'
Content: {
"error": {
"code": "ServiceError",
"severity": null,
"message": "InternalServerError",
"messageFormat": null,
"messageParameters": null,
"referenceCode": null,
"detailsUri": null,
"target": null,
"details": [],
"innerError": null,
"debugInfo": null,
"additionalInfo": null
},
"correlation": {
"operation": "a7ee9b26df9a84caa0e389f539393316",
"request": "4f1fe44dd73df5ec"
},
"environment": "northeurope",
"location": "northeurope",
"time": "2023-03-14T18:57:55.0609117+00:00",
"componentName": "run-history"
}
I hope these get attention at some point
Here is the full traceback:
Traceback (most recent call last):
File "/home/cluster_user/user0/Repositories/exp1/./train.py", line 91, in
trainer.fit(module,
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 603, in fit
call._call_and_handle_interrupt(
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 38, in _call_and_handle_interrupt
return trainer_fn(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 645, in _fit_impl
self._run(model, ckpt_path=self.ckpt_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1098, in _run
results = self._run_stage()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1177, in _run_stage
self._run_train()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1200, in _run_train
self.fit_loop.run()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 267, in advance
self._outputs = self.epoch_loop.run(self._data_fetcher)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 200, in run
self.on_advance_end()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/training_epoch_loop.py", line 251, in on_advance_end
self._run_validation()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/training_epoch_loop.py", line 310, in _run_validation
self.val_loop.run()
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/dataloader/evaluation_loop.py", line 152, in advance
dl_outputs = self.epoch_loop.run(self._data_fetcher, dl_max_batches, kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/loop.py", line 199, in run
self.advance(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 137, in advance
output = self._evaluation_step(**kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py", line 234, in evaluation_step
output = self.trainer.call_strategy_hook(hook_name, *kwargs.values())
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1480, in call_strategy_hook
output = fn(*args, **kwargs)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py", line 390, in validation_step
return self.model.validation_step(*args, **kwargs)
File "/home/cluster_user/user0/Repositories/exp1/model.py", line 105, in validation_step
mlflow.log_image(im, f"{self.trainer.current_epoch}/val_input{self.epoch_batch:.2f}{batch_idx}{i}.png")
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/fluent.py", line 980, in log_image
MlflowClient().log_image(run_id, image, artifact_file)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1361, in log_image
raise TypeError("Unsupported image object type: '{}'".format(type(image)))
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/contextlib.py", line 124, in exit
next(self.gen)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1067, in _log_artifact_helper
self.log_artifact(run_id, tmp_path, artifact_dir)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/client.py", line 1002, in log_artifact
self._tracking_client.log_artifact(run_id, local_path, artifact_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/mlflow/tracking/_tracking_service/client.py", line 439, in log_artifact
artifact_repo.log_artifact(local_path, artifact_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_store/artifact/artifact_repo.py", line 65, in log_artifact
self.artifacts.upload_file(local_file, dest_path)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_client/artifact/run_artifact_client.py", line 64, in upload_file
empty_artifact_res = self._create_empty_artifacts(paths=artifact_path, run_id=self._run_id)
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_client/artifact/run_artifact_client.py", line 146, in _create_empty_artifacts
response = self._client.run_artifacts.batch_create_empty_artifacts(
File "/home/cluster_user/user0/miniconda3/envs/pyenv3.9/lib/python3.9/site-packages/azureml/mlflow/_restclient/run_artifact/operations/_run_artifacts_operations.py", line 1122, in batch_create_empty_artifacts
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
azure.core.exceptions.HttpResponseError: Operation returned an invalid status 'InternalServerError'
Content: {
"error": {
"code": "ServiceError",
"severity": null,
"message": "InternalServerError",
"messageFormat": null,
"messageParameters": null,
"referenceCode": null,
"detailsUri": null,
"target": null,
"details": [],
"innerError": null,
"debugInfo": null,
"additionalInfo": null
},
"correlation": {
"operation": "a7ee9b26df9a84caa0e389f539393316",
"request": "4f1fe44dd73df5ec"
},
"environment": "northeurope",
"location": "northeurope",
"time": "2023-03-14T18:57:55.0609117+00:00",
"componentName": "run-history"
}

@achatrian @tomas-gajarsky Thanks for the sharing the details. Fix is in progress and should be out in next release. Will update once the release is out.

@singankit is the fix released?

@achatrian @tomas-gajarsky Thanks for the sharing the details. Fix is in progress and should be out in next release. Will update once the release is out.

Any news on when this update can be expected to be released?


add scrollViewWillBeginDragging

Thanks for the PR @ybbaigo
The problem I have with this, is if we go that way we have to expose all the UIScrollViewDelegate methods and I don't feel like this is the goal of this component.
PDTSimpleCalendar listens to the ScrollViewDelegate methods mostly to display the month overlay when scrolling.
To get notified outside of the controller I see 2 options:

Subclassing
Having a delegate proxy to forward all delegate calls

Got it @jmig I'll close this PR


Incorrect points and loadout for Aggressor Assault Fighters (SCUM IG)

Current:
IG-88B cost 6, loadout 13;
IG-88D cost 7, loadout 16.
Must be:
IG-88B cost 7, loadout 16;
IG-88D cost 6, loadout 13
Source:
Official pdf with pilot points from AMG (10 page):
https://static1.squarespace.com/static/5ce432b1f9d2be000134d8ae/t/6287b7c0f395202572c2281c/1653061568918/SWZ_Ship_Points_062022.pdf

Fixed in #557


Lines disappear in Drawing page after "Save" is pressed...

Related to this forum post:
http://www.xerte.org.uk/index.php?option=com_kunena&view=topic&catid=4&id=332&Itemid=207&lang=en&limitstart=0
Julian is going to take a look at some point...

I can still reproduce this, when using the Flash editor, but it doesn't occur in the HTML editor.
The actual flash swf files (the drawing editor themselves) are different, because the HTML5 wizard uses javascript to save the drawing.

Yeah I never got to the bottom of that one... very strange. Glad its gone though.


Add iterator support for jballerina

Purpose
Add iterator support for jballerina. This also includes following features:

Type desc expression
Type desc value
Foreach statement
Break/Continue statement

Samples
function testStringArrayIteration() returns string {
    string[] sdata = ["foo", "bar", "bax" , "baz"];
    output = "";
    foreach var v in sdata {
        output += v;
    }
    return output;
}

Check List

[x] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[x] Added necessary documentation

[x] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #15235 into master will increase coverage by 6.52%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master   #15235      +/-   ##
============================================
+ Coverage     16.49%   23.02%   +6.52%
- Complexity        0     4995    +4995
============================================
  Files            43     1342    +1299
  Lines          1285    67215   +65930
  Branches        212     9113    +8901
============================================
+ Hits            212    15477   +15265
- Misses         1060    50036   +48976
- Partials         13     1702    +1689

Impacted Files
Coverage Δ
Complexity Δ

...org/wso2/ballerinalang/compiler/bir/BIRGenEnv.java
0% <ø> (ø)
0 <0> (?)

...rg/wso2/ballerinalang/compiler/bir/BIREmitter.java
0% <0%> (ø)
0 <0> (?)

...erinalang/compiler/bir/model/BIRNonTerminator.java
0% <0%> (ø)
0 <0> (?)

...lang/compiler/bir/writer/BIRInstructionWriter.java
0% <0%> (ø)
0 <0> (?)

...g/wso2/ballerinalang/compiler/desugar/Desugar.java
0% <0%> (ø)
0 <0> (?)

...lerinalang/compiler/bir/model/InstructionKind.java
0% <0%> (ø)
0 <0> (?)

...va/org/wso2/ballerinalang/compiler/bir/BIRGen.java
0% <0%> (ø)
0 <0> (?)

...2/ballerinalang/compiler/bir/model/BIRVisitor.java
0% <0%> (ø)
0 <0> (?)

composer/packages/tracing/src/ToolBar.tsx

composer/packages/tracing/src/TraceList.tsx

... and 1307 more

Continue to review full report at Codecov.

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


Add structure attribute back to the CRD

Signed-off-by: Kevin Su<EMAIL_ADDRESS>TL;DR
https://github.com/flyteorg/flytepropeller/pull/442 remove structure from CRD at runtime, but we do need it for union type validation.
check validateInputs -> AreTypesCastable -> CastsFrom -> GetTagForType
Error:
  File "/Users/kevin/git/flytekit/flytekit/clients/raw.py", line 41, in handler
    return fn(*args, **kwargs)
  File "/Users/kevin/git/flytekit/flytekit/clients/raw.py", line 615, in create_execution
    return self._stub.CreateExecution(create_execution_request, metadata=self._metadata)
  File "/Users/kevin/opt/anaconda3/envs/flytekit-3.9/lib/python3.9/site-packages/grpc/_channel.py", line 946, in __call__
    return _end_unary_response_blocking(state, call, False, None)
  File "/Users/kevin/opt/anaconda3/envs/flytekit-3.9/lib/python3.9/site-packages/grpc/_channel.py", line 849, in _end_unary_response_blocking
    raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
	status = StatusCode.INTERNAL
	details = "Collected Errors: 2
	Error 0: Code: MismatchingTypes, Node Id: start-node, Description: Variable [b] (type [union_type:<variants:<simple:INTEGER > variants:<simple:STRING > > ]) doesn't match expected type [union_type:<variants:<simple:INTEGER structure:<tag:"int" > > > ].
	Error 1: Code: ParameterNotBound, Node Id: start-node, Description: Parameter not bound [b].
"
	debug_error_string = "{"created":"@1662108544.130630000","description":"Error received from peer ipv4:<IP_ADDRESS>:30081","file":"src/core/lib/surface/call.cc","file_line":1075,"grpc_message":"Collected Errors: 2\n\tError 0: Code: MismatchingTypes, Node Id: start-node, Description: Variable [b] (type [union_type:<variants:<simple:INTEGER > variants:<simple:STRING > > ]) doesn't match expected type [union_type:<variants:<simple:INTEGER structure:<tag:"int" > > > ].\n\tError 1: Code: ParameterNotBound, Node Id: start-node, Description: Parameter not bound [b].\n","grpc_status":13}"

Type

[x] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
The commands to repro,
$ pip install git+https://github.com/flyteorg/flytekit@union-bug
$ pyflyte --config ~/.flyte/config-remote.yaml run --remote example_union1.py wf --b 2`

from flytekit import task, workflow
from typing import Union, List
from enum import Enum

@task
def t1(a:  Union[int, str]) -> Union[int, str]:
    return "hello"

@task
def t2(a: Union[int, str]) -> Union[int, str]:
    return "hello"

@workflow
def wf(b:  Union[int, str]):
    t1(a=t2(a=b))

Tracking Issue
https://github.com/flyteorg/flyte/issues/2817
https://github.com/flyteorg/flytekit/pull/1144
Follow-up issue
NA

Can we instead rearrange these calls to validate the workflow inputs before the interface metadata is stripped

yeah, agree. that makes sense. updating the pr


Hiro Web Wallet overides ownerNonce in sponsored TX

export async function contractCall() {
    openContractCall({
        network: testnet,
        anchorMode: AnchorMode.Any,
        contractAddress: contract_address,
        contractName: contract_name,
        functionName: function_name,
        functionArgs: [],
        postConditionMode: PostConditionMode.Deny,
        postConditions: [],
        sponsored: true,
        ownerNonce: owner_nonce,
        appDetails: {
            name: "My App",
            icon: window.location.origin + "/my-app-logo.svg",
        },
        onFinish: async (data) => {
            const sponsoredTx = await sponsorTransaction({
              transaction: deserializeTransaction(data.txRaw),
              fee: sponsor_fee,
              sponsorPrivateKey: private_key,
            });

            broadcastTransaction(sponsoredTx, testnet);
        },
    });
}

owner_nonce = new BN(35)

When I confirm in the wallet popup I get this in return after broadcastTransaction(sponsoredTx, testnet)
{
  "actual": 34,
  "expected": 35,
  "is_origin": true,
  "principal": "ST17EV8YSY8MJ9...Q2KKJQ305S1"
}

Why is this? Why is the wallet overriding the nonce that i set in the TX? Yes I am doing this on purpose. I have a reason.

This is also true for nonce: owner_nonce,
Please look at these two references containing nonce: Number(values.nonce) || options.nonce
useSoftwareWalletTransactionBroadcast
and
useGenerateUnsignedStacksTransaction
and


Get All Perms

Hello,
Is it possible that I can get every permission in-game and do /effects and /give without being opped?
Don't you have to do something like '-Permissions.*'?

What version of PEX are you using?  2.0 or 1.23.4?

Hello,

Is it possible that I can get every permission in-game and do /effects and /give without being opped?
Don't you have to do something like '-Permissions.*'?

Yes.  In PEX 1.23.4, this is done with a negation above a "global wildcard":
groups:
  Guest:
    options:
      build: true
      prefix: '[Guest] '
      suffix: ''
    inheritance: []
    permissions:
    - -permissions.*
    - '*'
schema-version: 1
users:

For a full list of PEX-related options:, see this example.

You're welcome.  ;-)


fix(module:steps) support dynamic steps change

close #628
PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Other information

Coverage increased (+0.03%) to 41.792% when pulling 07e192c2e4b18dfeb3637d6caca6b6aea249a268 on vthinkxie:fix-steps into 8f7d38bd2cd91991617fea6f1ad3d6264a40ce5f on NG-ZORRO:master.


Reset admin password?

Hi,
Howe do you reset the admin password? I found a post from back in 2013, but it talks about  a non existent script :/
Cheers
Andy

ever gound a solution?
Thanks...

Honestly, I can't remember. It was so long ago. Sorry  I can't be of more help :(

connect directly to the redis instance that you've configured for oauthd in config.local.js and run command KEYS adm:* to confirm you have adm:name, adm:pass set, and optionally adm:salt or something like it. make a copy of these values. use the following node.js script or something like it to either confirm the stored hash is correct for the expected password, or, to generate a new adm:pass value to write back to redis:
const crypto = require('crypto');
const staticsalt = '<same-as-your-config.local.js-staticsalt>';
const generateHash = (data) => {
  const shasum = crypto.createHash('sha1');
  shasum.update(staticsalt + data);
  return shasum.digest('base64');
}
const admsalt = '<read-this-value-from-redis-if-it-exists>';
const h = generateHash('<your-password-here>' + admsalt);
console.log(h);

this function is copied/derived from env.data.generateHash which can be found in bin/data/db.js -- note that the per-user salt stored in adm:salt  is specific to my organization's private fork, and also that oauthd might change their hash generation at any time in the future.


Should react-native-ui-stepper move to Render Props?

Hey 👋
I wasn't quite sure where to put this but it's the only place I know where to reach out to Users.
I am thinking of rewriting the react-native-ui-stepper library so that it utilises the concepts of Render Props.
Please 👍 or 👎 to let me know if you're for or against this change.
What does this mean?

A newly written API that will deprecate previous versions.
(More importantly) You will have complete control of what components you render to display the stepper value. You will be responsible for providing styles.
There will be an out-of-the-box component that'll

How might the new API look?
import UIStepper from 'react-native-ui-stepper';

const App = () => (
  <UIStepper
    render={(value, onIncrement, onDecrement) => {
      <MyCustomStepper
        value={value}
        onIncrement={onIncrement}
        onDecrement={onDecrement}
       />
    }}
  />
)

// Your Custom Component
const MyCustomStepper = ({ value, onIncrement, onDecrement }) => (
  <Text>{value}</Text>
)

I'll leave this open as I would like to gather a general consensus before committing to a rewrite. It will automatically be closed off on 7th May 2018
Thanks.

Hi @hannigand ,
I know I'm a bit late but this would be a great update for my use case. Right now, out of the box I'm facing and issue when displayValue is true. The stepper value overflows the container and I'm looking for a way to provide my own. (You can reproduce the issue with a floating point number btw)
Cheers


AHQ Store Service

Embed the AHQ Store service instead of the app being the one and the only system that works

Coming in next update


Set defaults in single-binary mode to achieve zero-config

Currently following env-vars are still required when calling ./ocis server to get a working login-flow:
PHOENIX_OIDC_METADATA_URL=https://<IP_ADDRESS>:9130/.well-known/openid-configuration
PHOENIX_OIDC_AUTHORITY=https://<IP_ADDRESS>:9130
REVA_OIDC_ISSUER=https://<IP_ADDRESS>:9130
REVA_OIDC_INSECURE=1
REVA_USER_DRIVER=ldap
PHOENIX_WEB_CONFIG_SERVER=http://localhost:9140

A similar approach to ocis-konnectd:
https://github.com/owncloud/ocis-konnectd/blob/c2e39e16469f8b3fd99912e76558580ba4c0c962/pkg/service/v0/service.go#L123

Fixed by https://github.com/owncloud/ocis-phoenix/pull/41


Some objects with transform render but do not paint

I built a simple 3d environment using the Flow widget along with some matrix transformations -- these transformation are all created using built-in dart functions. Nothing is created by hand.

The wheel of colors should continue all the way around 360 degrees, but the cards (really containers) that are nearly perpendicular to the screen simply do not render at all. I thought this may be an issue with my matrices, but actually if use the flutter inspector to highlight the render objects, they do indeed exist and appear to be the correct.

From this, I conclude that the matrices are correct, and the widgets generate valid render objects that position themselves correctly in the "render tree" and on the screen (not sure of the nomenclature to use for this), however, something prevents them from painting.
The repro attached includes a set of functions to debug the transformation of each child's coordinates as each matrix is applied to prove that the coordinates are "sane" and should be drawn on the screen.
Steps to Reproduce
I'm running on iPhone X, but I believe this should be an issue with any platform. This is a minimal example I built to demonstrate this behavior.
Please feel free to tweak the cam*,fovYRadians, and the numCards value. I noticed with greater FoV values, this issue becomes worse.
import 'dart:collection';
import 'dart:math';

import 'package:flutter/material.dart';
import 'package:vector_math/vector_math_64.dart' hide Colors;

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final numCards = 200;
    final debugCards = List.generate(
        numCards,
        (idx) => Container(
              color: HSVColor
                  .fromAHSV(1.0, 360 * idx / numCards, 1.0, 1.0)
                  .toColor(),
            ));

    return MaterialApp(
      home: Center(
        child: Container(
          width: 300.0,
          height: 300.0,
          child: new Flow(
            delegate: CardStackFlow(),
            children: debugCards,
          ),
        ),
      ),
    );
  }
}

class CardStackFlow extends FlowDelegate {
  double camX;
  double camY;
  double camZ;

  CardStackFlow({
    this.camX = 15.0,
    this.camY = 7.0,
    this.camZ = 10.0,
  }) : super();

  @override
  void paintChildren(FlowPaintingContext context) {
    print("paintChildren");
    print("${context.size}");
    final int numSlots = context.childCount;

    // Setup the view matrix for a camera looking at the origin of the world
    final cameraPosition = Vector3(camX, camY, camZ);
    final lookAt = Vector3.zero(); // World origin
    final upDir = Vector3(0.0, 1.0, 0.0);
    final viewMatrix = makeViewMatrix(cameraPosition, lookAt, upDir);

    // Setup the projection matrix
    final fovYRadians =
        0.39867460996464815; // Hardcoded a value that exposes the bug
    final aspectRatio = 1.0;
    final zNearPlane = cameraPosition.distanceTo(lookAt) - 0.1;
    final zFarPlane = cameraPosition.distanceTo(lookAt) * 2;
    print(
        "Cam Params: fov=$fovYRadians, aspectRatio=$aspectRatio, nearPlane=$zNearPlane, farPlane=$zFarPlane");
    final projectionMatrix =
        makePerspectiveMatrix(fovYRadians, aspectRatio, zNearPlane, zFarPlane);

    // Build matrices to get us into an OpenGL-like coordinate space
    // bottom left corner of the screen is at (-1, -1), top right is at (1, 1)
    final toOpenGlCoords = Matrix4.compose(
        Vector3(-1.0, 1.0, 0.0),
        Quaternion.axisAngle(Vector3(1.0, 0.0, 0.0), pi),
        Vector3(2 / context.size.width, 2 / context.size.height, 1.0));
    final toFlutterCoords = Matrix4.tryInvert(toOpenGlCoords);
    print("toOpenGlCoords=\n$toOpenGlCoords");
    print("toFlutterCoords=\n$toFlutterCoords");
    assert(toFlutterCoords != null);
    assert(matrixEqualEpsilon(
        toFlutterCoords * toOpenGlCoords, Matrix4.identity(), pow(0.1, 15)));

    // Paint all of the children
    print("");
    for (int i = context.childCount - 1; i >= 0; --i) {
      print("Painting child $i");

      final pivotPoint = Matrix4.compose(
          Vector3(0.0, -2.0, 0.0), Quaternion.identity(), Vector3.all(1.0));

      final pivotTransform = Matrix4.compose(
          Vector3(0.0, 2.0, 0.0),
          Quaternion.axisAngle(
              Vector3(1.0, 0.0, 0.0), pi * 2 * (i / (numSlots - 1))),
          Vector3.all(1.0));

      final modelMatrix = pivotTransform * pivotPoint;

      final mvp = projectionMatrix * viewMatrix * modelMatrix;

      final flutterCompatTransform = toFlutterCoords * mvp * toOpenGlCoords;

      // Debug points
      var transformPipeline = <TransformDebug>[
        TransformDebug("toOpenGlCoords", toOpenGlCoords),
        TransformDebug("pivotPoint", pivotPoint),
        TransformDebug("pivotTransform", pivotTransform),
        TransformDebug("viewMatrix", viewMatrix),
        TransformDebug("projectionMatrix", projectionMatrix),
        TransformDebug("toFlutterCoords", toFlutterCoords)
      ];
      if (i == 9) {
        print("sizeOfWindow = ${context.size}");
        final size = context.getChildSize(i);
        debugPoint(Vector4(0.0, 0.0, 0.0, 1.0), transformPipeline);
        debugPoint(Vector4(size.width, 0.0, 0.0, 1.0), transformPipeline);
        debugPoint(Vector4(0.0, size.height, 0.0, 1.0), transformPipeline);
        debugPoint(
            Vector4(size.width, size.height, 0.0, 1.0), transformPipeline);
      }

      // Paint the child
      context.paintChild(i, transform: flutterCompatTransform);
      print("");
    }
  }

  void debugPoint(Vector4 point, List<TransformDebug> transformations) {
    print("Debugging point $point");
    transformations.forEach((xfrmDebug) {
      point = xfrmDebug.xfrm * point;
      point.scale(1 / point.w);
      print("After applying ${xfrmDebug.name}\n$point");
    });
  }

  @override
  bool shouldRepaint(FlowDelegate oldDelegate) {
    return this == oldDelegate;
  }
}

class TransformDebug {
  final String name;
  final Matrix4 xfrm;

  TransformDebug(
    this.name,
    this.xfrm,
  );
}

bool matrixEqualEpsilon(Matrix4 left, Matrix4 right, double epsilon) {
  for (int i = 0; i < left.storage.length; ++i) {
    if ((left.storage[i] - right.storage[i]).abs() > epsilon) {
      return false;
    }
  }
  return true;
}

Logs

I suspect logs are not really valuable here, but I've attached a shortened version anyway. Happy to provide full logs if needed.
...
[ +127 ms] ------ Debug phase ------
[        ] Starting debug of <redacted (D221AP, D221AP, uknownos, unkarch) a.k.a. 'Vert iPhone' connected through USB...
[ +630 ms] [  0%] Looking up developer disk image
[  +23 ms] [ 95%] Developer disk image mounted successfully
[ +735 ms] [100%] Connecting to remote debug server
[        ] -------------------------
[  +29 ms] (lldb) command source -s 0 '/tmp/E7650D69-6F0C-4D03-851D-560268A44D11/fruitstrap-lldb-prep-cmds-<redacted>'
[        ] Executing commands in '/tmp/E7650D69-6F0C-4D03-851D-560268A44D11/fruitstrap-lldb-prep-cmds-<redacted>'.
[        ] (lldb)     platform select remote-ios --sysroot '/Users/ncrocker/Library/Developer/Xcode/iOS DeviceSupport/11.3.1 (15E302)/Symbols'
[        ]   Platform: remote-ios
[        ]  Connected: no
[        ]   SDK Path: "/Users/ncrocker/Library/Developer/Xcode/iOS DeviceSupport/11.3.1 (15E302)/Symbols"
[        ] (lldb)     target create "/Users/ncrocker/dev/personal/broken_flow_render/build/ios/iphoneos/Runner.app"
[+3143 ms] Current executable set to '/Users/ncrocker/dev/personal/broken_flow_render/build/ios/iphoneos/Runner.app' (arm64).
[        ] (lldb)     script fruitstrap_device_app="/private/var/containers/Bundle/Application/5084B3EA-88B9-4733-A6A2-7F8FCDD14CC8/Runner.app"
[        ] (lldb)     script fruitstrap_connect_url="connect://<IP_ADDRESS>:50610"
[        ] (lldb)     target modules search-paths add /usr "/Users/ncrocker/Library/Developer/Xcode/iOS DeviceSupport/11.3.1 (15E302)/Symbols/usr" /System "/Users/ncrocker/Library/Developer/Xcode/iOS DeviceSupport/11.3.1 (15E302)/Symbols/System" "/private/var/containers/Bundle/Application/5084B3EA-88B9-4733-A6A2-7F8FCDD14CC8" "/Users/ncrocker/dev/personal/broken_flow_render/build/ios/iphoneos" "/var/containers/Bundle/Application/5084B3EA-88B9-4733-A6A2-7F8FCDD14CC8" "/Users/ncrocker/dev/personal/broken_flow_render/build/ios/iphoneos" /Developer "/Users/ncrocker/Library/Developer/Xcode/iOS DeviceSupport/11.3.1 (15E302)/Symbols/Developer"
[  +53 ms] (lldb)     command script import "/tmp/E7650D69-6F0C-4D03-851D-560268A44D11/fruitstrap_<redacted>.py"
[   +2 ms] (lldb)     command script add -f fruitstrap_<redacted>.connect_command connect
[        ] (lldb)     command script add -s asynchronous -f fruitstrap_<redacted>.run_command run
[        ] (lldb)     command script add -s asynchronous -f fruitstrap_<redacted>.autoexit_command autoexit
[        ] (lldb)     command script add -s asynchronous -f fruitstrap_<redacted>.safequit_command safequit
[        ] (lldb)     connect
[  +28 ms] (lldb)     run
[ +382 ms] success
[        ] (lldb)     safequit
[ +114 ms] Process 888 detached
[  +27 ms] Application launched on the device. Waiting for observatory port.
[+1700 ms] Observatory URL on device: http://<IP_ADDRESS>:63676/
[   +6 ms] /usr/local/bin/iproxy 8102 63676 <redacted>
[   +4 ms] Forwarded port ForwardedPort HOST:8102 to DEVICE:63676
[        ] Forwarded host port 8102 to device port 63676 for Observatory
[   +6 ms] Connecting to service protocol: http://<IP_ADDRESS>:8102/
[ +136 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:8102/
[   +3 ms] getVM: {}
[  +11 ms] getIsolate: {isolateId: isolates/353767474}
[   +2 ms] _flutter.listViews: {isolateId: isolates/353767474}
[  +58 ms] DevFS: Creating new filesystem on the device (null)
[        ] _createDevFS: {fsName: broken_flow_render}
[  +19 ms] DevFS: Created new filesystem on the device (file:///private/var/mobile/Containers/Data/Application/675A98AE-3304-4A70-8CA2-BB112FEC84B3/tmp/broken_flow_renderPDtHh7/broken_flow_render/)
[   +1 ms] Updating assets
[ +209 ms] flutter: paintChildren
[   +3 ms] flutter: Size(300.0, 300.0)
[        ] flutter: Cam Params: fov=0.39867460996464815, aspectRatio=1.0, nearPlane=19.239079605813714, farPlane=38.67815921162743
[   +8 ms] flutter: toOpenGlCoords=
[        ] [0] 0.006666666666666667,0.0,0.0,-1.0
[        ] [1] 0.0,-0.006666666666666667,-1.2246467991473532e-16,1.0
[        ] [2] 0.0,8.164311994315689e-19,-1.0,0.0
[        ] [3] 0.0,0.0,0.0,1.0
[        ] flutter: toFlutterCoords=
[        ] [0]<PHONE_NUMBER>9999997,0.0,0.0,149.99999999999997
[        ] [1] 0.0,-149.99999999999997,1.8369701987210297e-14,149.99999999999997
[        ] [2] 0.0,-1.2246467991473532e-16,-1.0,1.2246467991473532e-16
[        ] [3] 0.0,0.0,0.0,1.0
[        ] flutter:
[        ] flutter: Painting child 199
[   +6 ms] flutter:
[        ] flutter: Painting child 198
[        ] flutter:
[        ] flutter: Painting child 197
[        ] flutter:
[        ] flutter: Painting child 196
[        ] flutter:
[   +1 ms] flutter: Painting child 195
...

Analyzing broken_flow_render...

   info • Unused import: 'dart:collection' • lib/main.dart:1:8

1 issue found. (ran in 3.0s)

[✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.4 17E199, locale en-US)
    • Flutter version 0.5.1 at /Users/ncrocker/dev/flutter
    • Framework revision c7ea3ca377 (8 weeks ago), 2018-05-29 21:07:33 +0200
    • Engine revision 1ed25ca7b7
    • Dart version 2.0.0-dev.58.0.flutter-f981f09760

[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/ncrocker/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
    ✗ Android license status unknown.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✗] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).

[✓] IntelliJ IDEA Community Edition (version 2018.1.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 26.0.2
    • Dart plugin version 181.4892.1

[!] VS Code (version 1.25.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected devices (1 available)
    • Vert iPhone • <REDACTED> • ios • iOS 11.3.1

! Doctor found issues in 3 categories.

@VerTiGoEtrex  on master branch I get a slightly different result - is this correct? Might have been fixed by https://github.com/flutter/flutter/issues/19062, where we sometimes incorrectly culled layers with perspective transforms applied to them.

There was a known

@jonahwilliams, you're right, the master channel doesn't have this bug.
I briefly read over the description of the issue you linked. For my own benefit, can you confirm my understanding? Basically, if a transform matrix transforms a child bounding box to completely outside of its parent bounds, that rect is "culled" and therefore the view is not painted (or participates in hit testing? Not sure of the extent of "culling" in flutter engine).
Feel free to close the issue, and thanks!

The culling on the engine side is quite tame and mostly meant to save some work on layers that "obviously" won't get painted. For example, if you have a clipping layer and then some child of that is painting a picture entirely outside of the clip, you can just drop it.
Now if there is a transform between the clip and the child, you need to invert it to understand where the child will get painted. But there was a bug where certain perspective transforms make it appear that children are being painted far offscreen. I still haven't tracked down the root cause, whether we have a logical issue or there is a numerical bug in the Skia api we are using. Since perspective transforms are fairly uncommon, just assuming that the child won't be clipped for these cases doesn't really cost us anything.
Hit testing on the other hand is entirely on the framework side. Any part of a widget that paints outside it's bounds won't participate in hit testing. The bounds define the hit testable area, not the paint. There is some weirdness also with hit testing on transformed objects - see https://github.com/flutter/flutter/issues/18408.

@jonahwilliams Thanks. Is the hit testing by design? It seems hit testing should be determined by paint. I've run into this exact behavior you describe and was surprised by it. I think the Transform and Flow widgets but have this "issue" since they both repaint rather than relayout.

If you have any type of view interaction, Flow seems generally useless. Even with a regular Transform widget, it seems any transform other than translation do not transform hit tests. Is this by design as well?


There are no some categories in Pods

I install PromiseKit via CocoaPods.
There are no some categories.
I really need CLLocationManager promise

What are you including in your Podfile?

pod 'PromiseKit'

Also include pod 'PromiseKit/CoreLocation'
Including all categories was the default prior to 3.0.0 but appears to be no longer.

Thank you!


fix: suppress warnings about the use of expressions where assignments are expected

Description
This PR suppresses warnings about the use of expressions where normally you would expect to see assignments or function calls.
Reference : https://jshint.com/docs/options/#expr
Fixes #10814
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Manual
Checklist:

[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

/ok-to-test sha=4d44bf1

/ok-to-test sha=b52b5a1


Again the question on when the first Release Candidate will come out

As explained in #3079 which is questionably closed without being answered.
The roadmap tells that both preview7 and the first RC will come out in July 2019.
Does it mean that RC1 is based on preview7?
But, when will RC1 come out? It is scheduled in July but it is the last day of July today.
And what will preview8 be? The daily build tells that there is a preview9.
Does it mean that RC1 is put off to be based on preview9 which means September, in which GA is scheduled to come out? Or will there be both RC and preview channels being available during these months?
That's so confusing really.
Please don't close this issue as "preview7 was released", thank you.

This caught my eye, and I found that the 3.0 preview 7 blog post has similar questions in the comments, with answers: https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-7/

https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-7/#comments-2564

Should it be RC instead of preview?

We decided to stop using value-oriented terms like RC some time back. The problem is that we have to make the change to "rc" in our build relatively early before we've established that it is indeed an RC. There are three things at play: a date, a quality level and avoiding late changes ... pick 2. We prioritized the first and the last and then can make a judgement late in a given preview release what the quality level is. We often need to align with a conference or another product so having a fluid date isn't an option (unless something really bad is discovered).

https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-7/#comments-2565
You can consider Preview 7 the first RC.

From the blog post itself, this is the part that I would think is the RC implication people are wanting to see, however I'll admit I'm not sure what RC fully meant for .NET Core releases:

Go Live
NET Core 3.0 Preview 7 is supported by Microsoft and can be used in production. We strongly recommend that you test your app running on Preview 7 before deploying Preview 7 into production.

Hope that helps. I do think it's not clear in the docs directly in this repo.
/cc @karelz

So RC is cancelled and preview keeps being used before GA comes out, even though supported in production?
And yet another confusing thing is, why is the daily build preview9, 2 versions ahead of the released version?
My guess is that preview8 is archived without tested or documented?

My reading of the comments is that RC is no longer used to describe .NET Core releases, but preview 7 fits the old RC expectations. What are you looking for in an RC release that isn't provided in preview 7?

why is the daily build preview9, 2 versions ahead of the released version?

Preview 8 is currently stabilizing for release. I'm guessing you're looking at SDK daily builds--those repos have a separate branch for preview 9 to continue dev work while 8 stabilizes.

Davis is correct - we simply are not "branding" releases as RC any longer. When we feel the quality has attained a sufficient level to warrant more critical usage, we communicate the "go live" status and will iterate there until GA. Preview 8 is in the final stabilization stages now and is expected to be released in a few weeks. This is all coming together in the release/3.0.100-preview8 branch of the core-sdk repo.

Preview 8 is in the final stabilization stages now and is expected to be released in a few weeks

Seems like vacation is canceled for all of you 😅

@leecow @dagood is this issue still actionable or should we consider it answered so we can close it?

An answer from @AlseinX to this question could spark some more discussion:

What are you looking for in an RC release that isn't provided in preview 7?

But it's been a while, and the primary question is answered. Closing.