[material/menu_anchor.dart] Submenu anchor misaligned with child panel

Steps to reproduce

Run sample
Open menus

Expected results
SubmenuButton and MenuItemButton should have the same vertical offset.
Actual results
First MenuItemButton is above Submenu button text. It appears to be an offset of 8px. This may be because the menu is supposed to have 8px vertical padding applied to each menu panel.
I would normally do a PR, but I wasn't sure if this would need to be handled using Material 3 tokens.
Code sample
Code sample

import 'package:flutter/material.dart';

void main() => runApp(const Bug());

class Bug extends StatelessWidget {
  const Bug({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        colorSchemeSeed: Colors.blue,
        brightness: Brightness.dark,
      ),
      home: const BugApp(),
    );
  }
}

class BugApp extends StatefulWidget {
  const BugApp({
    super.key,
  });

  @override
  State<BugApp> createState() => _BugAppState();
}

class _BugAppState extends State<BugApp> {
  FocusNode focusNode = FocusNode();
  @override
  Widget build(BuildContext context) {
    return Material(
      child: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            MenuBar(children: <Widget>[
              SubmenuButton(menuChildren: <Widget>[
                SubmenuButton(menuChildren: <Widget>[
                  MenuItemButton(
                    style: ButtonStyle(
                      backgroundColor: MaterialStateProperty.all(
                          Colors.white.withOpacity(0.1)),
                    ),
                    child: const Text('Item 1.1.1'),
                    onPressed: () {},
                  ),
                  MenuItemButton(
                    child: const Text('Item 1.1.2'),
                    onPressed: () {},
                  ),
                  MenuItemButton(
                    child: const Text('Item 1.1.3'),
                    onPressed: () {},
                  ),
                ], child: const Text('Submenu 1.1')),
              ], child: const Text('Submenu 1')),
            ])
          ],
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Expected (from Angular Material):

Current:

With 8px vertical offset applied:

Logs
Logs
None applicable

Flutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.23.0-14.0.pre.50, on macOS 14.0 23A344 darwin-arm64, locale en-US)
    • Flutter version 3.23.0-14.0.pre.50 on channel master at /Users/davidhicks/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9a673175ab (4 days ago), 2024-06-27 09:42:21 +0200
    • Engine revision a9194f0f01
    • Dart version 3.5.0 (build 3.5.0-304.0.dev)
    • DevTools version 2.36.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/davidhicks/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/davidhicks/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.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 17.0.10+0-17.0.10b1087.21-11609105)

[✓] VS Code (version 1.90.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.90.0

[✓] Connected device (3 available)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 14.0 23A344 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 14.0 23A344 darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome 126.0.6478.127
    ! Error: Browsing on the local area network for David’s iPhone. Ensure the device is unlocked and attached with a cable or associated
      with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for Holly’s iPad. Ensure the device is unlocked and attached with a cable or associated
      with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!```

</details>

Thank you for the report!

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.22.2 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (3 weeks ago), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode15.4.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.3)
    • 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
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] VS Code (version 1.90.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.90.0

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 126.0.6478.127

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.23.0-14.0.pre.76, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.23.0-14.0.pre.76 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 1c9c375e4e (16 hours ago), 2024-06-30 07:43:26 -0400
    • Engine revision 0d93da7e2f
    • Dart version 3.5.0 (build 3.5.0-318.0.dev)
    • DevTools version 2.37.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode15.4.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.3)
    • 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
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] VS Code (version 1.90.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.90.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 126.0.6478.127

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Created a PR to fix the issue


Add /afk command

Away from keyboard.

Even better, be able to add an AFK message :)
Example:
/afk 'I'll be back in 5!'

@Zaidos where should that message show up?

Tooltip/hover over on an AFK user's name.

I'm taking DIBS on this .. please :)

@PureKrome  all finished?

The tooltip is a great idea and the afk message can still be displayed live, much like when someone enters or leaves the room.
Without perimeter: sgMarshall just went afk.
With perimeter: sgMarshall just went afk, “Will be back after walking the dog.”
Might I suggest also some visual cue? Either altering the logo in some manner -- perhaps indenting it slightly, or adding an ellipsis after the name (to indicate there’s more information), or simply adding AFK (like owner is added),   or some such?

Last night i started on this. I've got an icon i've added to the end of a name. I've got a message they can add. I've got to do the tooltip still and make sure all the rooms with this person in, are updated.
I've been basing my code off the gravatar.
I'm around 50% done right now :) not too long away...hopefully tonight i'll get another go on it. I just have to make sure i get my EF migrations right - i've not done that before.

@traemarshall if you do inline text you'll have to truncate it anyways and people don't always have 24" monitors around.

Ok :) looking good right now. This is an example of what I've got.

That's a tooltip i've got when a mouse hovers over the icon. I've re-used the LIGHTBULB icon only because i don't know what Icon we all want. I went to noun project and thought of using a few icons, like

EMail icon
Price Tag icon
Crayon icon
Pencil icon

but they are all SVG's .. so i'm not sure what to do, how to resize. what size, blah blah blah. So any suggestions?
Secondly, I want to talk about what I've added so far.
New Command
 /note {some text}
Note? Wtf? this is an AFK? Right? Yep :) (keep reading and stick with me...) I've added a NOTE feature which

Adds an Icon after the (Owner) of a name (or a name, if no owner).
Sends a message to the room where the user exists within.

So now we can add ANY note we want.
Next ...
New Command
 /afk {optional text}
This just calls Note with the text "AFK {optional text}" Not sure if I should automatically put the optional text in parenthesis Or a dash. eg.

AFK - pew pew pew pew
AFK (pew pew pew pew)

If a user types /note with no text, it removes the icon.
Now - the only thing i'm not too sure about is if I should AUTO clear the note, if the note starts with AFK .. when i user types a command or just chats to the room.
Thoughts?

I think we never show the afk text or note text, they only appear in the tooltip. That way there's no need to worry about wrapping or truncating the message.

yeah .. i was never going to display the Note text .. only via a ToolTip (as shown in the sample image, above).

Auto clear makes sense for afk notes
Rgr. i'll add that in.

LastActivity on User no need to invent a new one
Ah - I didn't check .. just came to my head, when I was writing up that comment. Np at all :)

We need 2 different icons, one for afk and one for notes (need to spend time looking at icons).
Np at all. that's a once second change to use a different image.
I'll also add the ability to show 2 different images, one for AFK and one for NOTE. I'll also add the following, if no one has any objections :-

class ChatUser  ... public string IsAfk { get { return Note != null & Note.StartsWith("AFK "); } } // notice the SPACE after the text....
Then i can easily use that property to check if a ChatPerson is afk, etc...

That property was probably supposed to be a bool. Make sure adding that doesn't affect EF's model change detection.

Oh yeah. i ment a bool. sorry. brain still asleep :)

Ok. i've now implimented the toggling of the Note images via Css.
I've also slightly refactored the to the following (which I don't really like...)
setUserTyping: function (user, roomName, isTyping) {
    var room = getRoomElements(roomName),
        $user = room.getUser(user.Name);

    // Hide the Afk note, if we're typing, including the current user.
    if (isTyping) {
        toggleNote(user, $user);
    }

    // Do not show typing indicator for current user
    if (user.Name === ui.getUserName()) {
        return;
    }

    if (isTyping) {
        $user.addClass('typing');
    }
    else {
        $user.removeClass('typing');
    }
},

Notice how I've had to remove the Afk note -before- the user name is checked? this is because i put the NOTE/AFk image on yourself .. so u know there's a note/afk there.
The above works.. i just feel that it might be slightly bruteforce cause EVERY time a person types, we basically check to remove. The reason this happens is because I don't record if a person WAS afk and now IS NOT. It's just a current snapshot -> are we or not, right now?
Lastly, I'm not sure were to tackle my last issue -> when a user joins a room, they do NOT have their note set in the UI.
So i'm guessing this might have something to do with jQuery templates? From looking through the code, I think I've spotted something about this  .. like ..

and
....
templates = {
    user: $('#new-user-template'),
    ....

but i'm not sure how to use em, where to use, etc. Any suggestions how I should handle people entering a room? Btw.. with that template html above .. i have no idea how to pass in any Note info .. cause my css just toggles the title attribute on that span AND adds/remove a class to that existing span. eg. note, note afk, note message.

For the first issue, you can just check the class to see if afk is set right? Not sure what you mean by we don't have that state.

For your other issue, you need to pass the note information as part of the UserViewModel and render it as part of the template (look at the other properties, and look at chat.addUser).

For the first issue, you can just check the class to see if afk is set right? Not sure what you mean by we don't have that state.

Yeah - my latest commit does have an IsAfk toggle (which is not persisted to the DB). What I ment about 'state' was with regards to how to smart-toggle off the icon. IMO, I was thinking that if the code says: if we WERE Afk but now we're back .. then remove the image. Unfortunately, we have no idea about the 'WERE' bit .. only the 'NOW' bit. So therefore, i'm just doing a brute force 'if !Afk, remove class' .. even though we might not have been afk.

For your other issue, you need to pass the note information as part of the UserViewModel
Kewl.. this I did in my first commit a while back....

and render it as part of the template (look at the other properties, and look at chat.addUser)
This was the bit I was not so sure about. But the suggestion to check out chat.AddUser I think might be the key :) (I've not done any jQuery templating, so I'll need to figure that out quickly).

Besides that, we're nearly good to go :)
I'll show a screen shot of the browser once i've finished this last AddUser thingy.
The only error is a visual one - which I'll show when I post the screenie, soonish.

Woot - looking good now.

/Note {optional text} - adds a note icon AND tooltip text. (tested with HTML text and it's getting encoded).
/Note  - this clears a note
/Afk {optional text} - adds a note with the prepending text being "Afk "
anytime a person types something, if they are Afk .. then the note is removed.

I still need two images as pngs.
Finally. here's the only busted piece of code => Some UI :( See how the template-image is on a new line.. i just need some help in fixing that css.
.note
{
    display: block;
    width: 16px;
    height: 16px;
}

.note.afk
{
    background: url(Content/images/toast-on.png) no-repeat;
}

.note.message
{
    background: url(Content/images/toast-off.png) no-repeat;
}

Besides that - ready to PR.

Currently in staging, the 'AFK' is displayed in the afk note. Is this intended?

Yep - that's the PREPENDED Text which i put in front of any AFK note.
so if you type /afk Hi there! then the tooltip will say 'Afk Hi There'
I wasn't sure if i should auto add a minus between the prepended text and the optional text (if some exist)
eg. Afk - Hi There!
or just drop the prepended text all together .. with the stopwatch icon now being the hint that the person is afk.
I think originally i was using only ONE icon ... which was why i wanted to differentiate between an AFK note and a PERM note .. but now that we have 2 .. it (the pre-pended text) might be obsolete.
I'll do whatever you peeps want :) I have no allegiance to the pre-pended text.

Personally, I think the AFK is good if pre-pended with dash, and if uppercased.  It's an acronym and I think it looks silly proper-cased.

I was also wondering if maybe a Date/Timestamp should be prepended before each note/afk?

1/1/2012 : 5:13pm { Note }
1/1/2012 : 5:13pm AFK
1/1/2012 : 5:13pm AFK - plane trip to Barbados .. BB in 8 hours.
[1/1/2012 : 5:13pm] { Note }
[1/1/2012 : 5:13pm] AFK - plane trip to Barbados .. BB in 8 hours.

use the $.timeago(datetime) function, for something like:
AFK - Headed to Barbados... 8 hours of fun! - about 5 hours ago

This is done.


Add ZipcCode Controller

In this PR, we add an endpoint /api/zipcode/get that can be used to get information
about the location of a particular zipcode.  This branch is a copy of the Johnny-ZipCode branch and is further expanded on by adding the Controller script and its tests.
Closes #14

looks good to me, can merge pull request


I've got a simple Visual Layer demo

Not sure if this is useful to you guys, but I have a repo called hello-composition-rs where I've ported the Using the Visual Layer with Windows Forms example from C# to Rust. The code is really small, so I figured it might be handy to give people a quick example of WinRT in Rust.

Looks good! That's essentially the same as the Minesweeper sample that I've been using to validate the bindings.
https://github.com/robmikh/minesweeper-rs

Looks good! That's essentially the same as the Minesweeper sample that I've been using to validate the bindings.
https://github.com/robmikh/minesweeper-rs


Some convenience improvements to asyncio support

This turned out to be useful to enable the work on adding asyncio to cloudagnostic

The changes generally look fine to me.
However, I note that you replaced unittest with asynctest in test_gsf.py and wondered whether it could be applied to the other tests as well.
It appeared ok in test_grain.py but not in test_numpy_videograin.py. I changed the __await__  method in numpy/videograin as you had done in grain.py but then get a AttributeError: 'ComponentDataList' object has no attribute 'Y' error for the test_video_grain_async_create test.
It's not immediately clear whether asynctest has the suppress_warnings option like the fixture async_test has.
Should numpy/videograin.py be updated like grain.py was and could async_test be completely replaced and removed from fixtures?

Yes, my general feeling is that we will eventually replace @async_test everywhere, but it's going to require a bit more tweaking than just being a drop-in replacement in some places, unfortunately.
The __await__ thing is particularly silly. For historical reasons the definition for __await__ is as a method that returns a generator coroutine, not as an async coroutine, so it's technically wrong to define __await__ with async def. Even though it actually works in almost all circumstances.

@philipnbbc how's that?


Draggable Slider: Added expressions for more properties and some actions

Expressions:

Length of track
Thickness of track
Height of thumb

Actions:

Change opacity of halo when pressed
Change opacity of halo when hovered

There are still missing articles in sentences of this extension, but it's fine for this update.

Thanks!
What is our policy for using article words (the, a, an)? Sometimes I feel like we want things as short as possible (function title), but perhaps we want to add articles everywhere else? (short description, event sentence, etc)

What is our policy for using article words (the, a, an)? Sometimes I feel like we want things as short as possible (function title), but perhaps we want to add articles everywhere else? (short description, event sentence, etc)

Sentences and description should feel as natural as possible so articles are important if English grammar requires them.
For full names, I'm not sure, I see both in built-in events, but I guess it's better to add them.
There are probably cases where articles are optional in english, but I can't really tell. What you feel is good English should be fine.


az sql server create does not support tags param

My Azure setup requires tags to be provided when resources are created
 az sql server create lacks support for providing tags...
https://docs.microsoft.com/en-us/cli/azure/sql/server?view=azure-cli-latest#az_sql_server_create

route to service team

--tags should [of course] be implemented as an optional param.

@yonzhan , is there an update on this request?

@azureSQLGitHub, sql commands are owned by service team

duplicate of https://github.com/Azure/azure-cli/issues/17052


Fix broken link (docs were moved)

Minor fix

@qrilka, thanks for the fix! This repo requires DCO sign off in order to merge, could  you please sign the commits?
https://github.com/dexidp/website/pull/84/checks?check_run_id=1786467591

@qrilka, thanks for the fix! This repo requires DCO sign off in order to merge, could  you please sign the commits?
https://github.com/dexidp/website/pull/84/checks?check_run_id=1786467591


The file with Emoji in the file name cannot be moved correctly to the Mac through OpenMTP.

As mentioned in Title, when using OpenMTP to move a file with an Emoji in the file name to a Mac, the Emoji in the file will be incorrectly converted to "��".
As shown in the figure below, the document with "��" in the file name is moved through OpenMTP. The document containing Emoji in the text (the Emoji in the picture is "🐟") is transferred from Android devices to USB disks through OTG and then to Mac.

And there are some more complicated situations. As shown in the figure below, the correct Emoji should be "✌🏻", and the Emoji in the file name obtained through OpenMTP movement has become "✌��".

All texts have been converted into English through the built-in translation of macOS. I would like to sincerely apologize if there is an incomprehensible part.
And I can't fully understand the information described in Prerequisites through translation, and I would like to express my sincere apologies again.

😢 this is a complicated situation. OpenMTP kernel needs some rework to get this working


Restructure project files idiomatically, fix errors and clippy warnings, updated deps

Hello! Sorry for the big PR, obviously feel free to reject if this if it doesn't align where you want to take the project.
I was surprised to find that this is just about the only embedded-rust GUI project outside of slint (which I find a little too heavy for my liking). I began writing my own small (and bad) library before I found this via search, and want to try and adopt and contribute back. This PR accomplishes the following without any breaking API changes:

Structure examples idiomatically (can now be run like cargo run --example basic-example
a. This also is beneficial in that RA detects these files
b. I fixed the motion-scheduler example (too many generic params) after making this change
Removed some dead/temporary code
Updated all dependencies and updated to 2024 edition
Resolved all warnings, except for 1: SmartstateProvider::next warns that it may be confused with the Iterator next. I didn't change anything in this PR, but I might recommend it be renamed to something like step or tick.

Note that I do not use IntelliJ, so the .idea project files might be invalid.
Thanks!

Yep :D The significant lack of other frameworks was the exact reason I started this, but I never brought it to a proper release sadly. Thanks for the PR!
I really like what you did with it. Only thing that I'd like to keep for now is the 2021 edition, until 2024 is officially stabilized. Once 2024 is officially out, switching it over is definitely a good idea. Other than that I like the restructure. I'm not quite sure why I had the other structure before, but this is honestly significantly more convenient.
With this and the integration of what is at the moment the optimizations branch (which contains speed improvements, but also Sliders and Toggles, as well as various fixes), I believe this is almost ready for a 0.1.0 release (especially considering that it's currently still alpha)!

I already integrated your changes into the optimizations-restructure branch, so merging it on top of the MR once it's done should be pretty easy :)

ack, committed other stuff on the wrong branch, sorry about that, ill try and fix


chore(*): update changelog.md

What type of PR is this?
/kind documentation

What this PR does / why we need it:
Update changelog.md
Which issue(s) this PR is related to (optional, link to 3rd issue(s)):
Fixes #
Reference to #

Special notes for your reviewer:
/cc @FogDong @judgeeeeee

Does this PR introduce a user-facing change?:

Update changelog.md

Please add the release note.

Please add the release note.

done

/hold

Maybe we could merge this PR first and use the release note tools later, WDYT /cc @judgeeeeee

/cc @simon-cj

/cc @simon-cj

I am closing it since it is outdated.


Clean up and package for https://pypi.org/project/suql/

Main changes:

Deleted all unnecessary restaurants-related code. Remaining restaurants code provided as reference for building agents are explicitly labelled with comprehensive doc-strings
Modified username/pswd so that only the entry point arguments need to be changed
All servers are packaged for easy set-up and import
README changes to two options: (1) install from source; (2) install from pip

I cannot find conv_agent.md file (https://github.com/stanford-oval/suql/blob/wip/cleanup-package/docs/conv_agent.md). It shows 404

Just added - thanks

@duskybomb What is the format checker called again?

Its black formatter and using isort as well.


Cannot create volumType: local volumes - Required value: Local volume requires node affinity

I'm trying to create local volumes instead of hostPath so that I can use Velero with my volumes but I'm running into an issue when the PVs are created.
Storage Class:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    defaultVolumeType: local
  name: local-path
provisioner: rancher.io/local-path
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path
    volume.kubernetes.io/selected-node: XXX.YYY.ZZZ
    volume.kubernetes.io/storage-provisioner: rancher.io/local-path
  finalizers:
  - kubernetes.io/pvc-protection
  name: config-tmp
  namespace: test
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 500Mi
  storageClassName: local-path
  volumeMode: Filesystem
status:
  phase: Pending

Logs:
time="2024-11-19T12:22:57Z" level=info msg="create the helper pod helper-pod-delete-pvc-e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21 into local-path-storage"
I1119 12:22:57.863152       1 event.go:389] "Event occurred" object="test/config-tmp" fieldPath="" kind="PersistentVolumeClaim" apiVersion="v1" type="Warning" reason="ProvisioningFailed" message="Error creating provisioned PV object for claim test/config-tmp: PersistentVolume \"pvc-e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity. Deleting the volume."
time="2024-11-19T12:23:00Z" level=info msg="Volume pvc-e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21 has been deleted on /stor/k8s/ssd/local-path/pvc-e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21_test_config-tmp"
time="2024-11-19T12:23:00Z" level=info msg="Start of helper-pod-delete-pvc-e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21 logs"
time="2024-11-19T12:23:00Z" level=info msg="End of helper-pod-delete-pvc-e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21 logs"
I1119 12:23:00.961276       1 controller.go:954] "Retrying syncing claim because failures < threshold" key="e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21" failures=5 threshold=15
E1119 12:23:00.961352       1 controller.go:974] error syncing claim "e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21": PersistentVolume "pvc-e4f678d8-e5f2-4039-ac9b-2f6bfc7e3e21" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity
time="2024-11-19T12:23:50Z" level=info msg="Creating volume pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc at XXX.YYY.ZZZ:/stor/k8s/ssd/local-path/pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc_test_config-tmp"
time="2024-11-19T12:23:50Z" level=info msg="create the helper pod helper-pod-create-pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc into local-path-storage"
I1119 12:23:50.466098       1 event.go:389] "Event occurred" object="test/config-tmp" fieldPath="" kind="PersistentVolumeClaim" apiVersion="v1" type="Normal" reason="Provisioning" message="External provisioner is provisioning volume for claim \"test/config-tmp\""
time="2024-11-19T12:23:53Z" level=info msg="Volume pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc has been created on XXX.YYY.ZZZ:/stor/k8s/ssd/local-path/pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc_test_config-tmp"
time="2024-11-19T12:23:53Z" level=info msg="Start of helper-pod-create-pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc logs"
time="2024-11-19T12:23:53Z" level=info msg="End of helper-pod-create-pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc logs"
I1119 12:23:53.530549       1 volume_store.go:226] "Failed to save persistentvolume" PVC="test/config-tmp" StorageClass="local-path" persistentvolume="pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc" err="PersistentVolume \"pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity"
I1119 12:24:03.536243       1 volume_store.go:226] "Failed to save persistentvolume" PVC="test/config-tmp" StorageClass="local-path" persistentvolume="pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc" err="PersistentVolume \"pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity"
I1119 12:24:13.540896       1 volume_store.go:226] "Failed to save persistentvolume" PVC="test/config-tmp" StorageClass="local-path" persistentvolume="pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc" err="PersistentVolume \"pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity"
I1119 12:24:23.545404       1 volume_store.go:226] "Failed to save persistentvolume" PVC="test/config-tmp" StorageClass="local-path" persistentvolume="pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc" err="PersistentVolume \"pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity"
I1119 12:24:33.550386       1 volume_store.go:226] "Failed to save persistentvolume" PVC="test/config-tmp" StorageClass="local-path" persistentvolume="pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc" err="PersistentVolume \"pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity"
E1119 12:24:33.550478       1 volume_store.go:242] "Error creating provisioned PV object for claim. Deleting the volume." err="PersistentVolume \"pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity" PVC="test/config-tmp" StorageClass="local-path" claim="test/config-tmp"
time="2024-11-19T12:24:33Z" level=info msg="Deleting volume pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc at /stor/k8s/ssd/local-path/pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc_test_config-tmp"
time="2024-11-19T12:24:33Z" level=info msg="create the helper pod helper-pod-delete-pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc into local-path-storage"
I1119 12:24:33.550971       1 event.go:389] "Event occurred" object="test/config-tmp" fieldPath="" kind="PersistentVolumeClaim" apiVersion="v1" type="Warning" reason="ProvisioningFailed" message="Error creating provisioned PV object for claim test/config-tmp: PersistentVolume \"pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc\" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity. Deleting the volume."
time="2024-11-19T12:24:36Z" level=info msg="Volume pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc has been deleted on /stor/k8s/ssd/local-path/pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc_test_config-tmp"
time="2024-11-19T12:24:36Z" level=info msg="Start of helper-pod-delete-pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc logs"
time="2024-11-19T12:24:36Z" level=info msg="End of helper-pod-delete-pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc logs"
I1119 12:24:36.615172       1 controller.go:954] "Retrying syncing claim because failures < threshold" key="32be5256-35b3-43a1-95f9-0276aec5a7dc" failures=0 threshold=15
E1119 12:24:36.615201       1 controller.go:974] error syncing claim "32be5256-35b3-43a1-95f9-0276aec5a7dc": PersistentVolume "pvc-32be5256-35b3-43a1-95f9-0276aec5a7dc" is invalid: spec.nodeAffinity: Required value: Local volume requires node affinity

This sounds like the PV isn't being created with the selected node set in affinity.  Is there something else I'm missing or is this a bug?
I had this issue in 0.0.28 and it persists in 0.0.30.  I tried upgrading when I noticed #454 but that doesn't seem to have fixed the issue.
Thanks!

I hadn't looked at my config for a while.  I have this:
{
  "storageClassConfigs": {
    "local-path": {
      "sharedFileSystemPath": "/stor/k8s/ssd/local-path"
    },
    "local-path-disk": {
      "sharedFileSystemPath": "/stor/k8s/disk/local-path"
    }
  }
}

It seems that when a shared filesystem is being used, the affinity is not set in the volume spec, which leads to my error.  I suppose implicitly this means only hostPath is supported for shared filesystem paths.
I don't actually use shared filesystems (and I need to correct my config) but I'm wondering if there's a reason shared local volumes aren't supported or if this is just leftover from hostPath assumptions, where no affinity was required in the spec.

There was a bug in 0.29 with affinity, so you should try with 0.30 if you haven't already.


Changes from my version

Please don't mind the messy code, I have tried to clean it a little,  just never expected the source to be released when i was writing it.

Just Wait, Gotta look into the error on Appveyor.

Never mind, Seems you have not set it up to build correctly.

Your code is good, do not worry! I just adjusted some names and added frames duplication on RSDK3 too.
One idea that I had looking your changes is that every RSDK object should implement System.ICloneable, so it is possible to clone/duplicate in a transparent way without checking the object's type (eg. frame is RSDK5.Frame).
Your discovery about frames duration is great! I was able to complete the rendering system for those frames with speed = 1 or 2. Have you an idea of what ID is? I imagine something about game's scripts. In what animation's file the ID is different than 0?

I didn't discover the duration nor did I for ID(B0M did), I Just wanted to add as much useful and requested features.
Tho, I did do the programming while i did none of the discovery since later on you written a better version then mine.
The main reason I started writing my version was because at the time yours could only export to RSDK3 not 5 and people wanted to export it to Mania, Which i did, But later on you made it export to 5, I also have written stuff for Textures, and ofc you also written a better one afterwards. Sorry if i made alot of mistakes, I usually program in Winforms with fields. :)
I must be no where near writing good C# code, at least I'm learning. Thanks for merging. :)

You made no mistakes but improvements. Collaboration is the key!
PS. WPF > WinForms.


update(go, vendor): bump go version, use master as commit hash for gotgt

Signed-off-by: Utkarsh Mani Tripathi<EMAIL_ADDRESS>

closing via #242


In Game Menu progress

I am going to start tracking my progress here:
Animations

[x] Blinking Cursor
[ ] Transitions

90% Main

[ ] Hide unavailable options
[ ] Gray out disabled options

25% Junction

[ ] Are you sure screens? Undo ability. Can be done by cloning the CharacterData on Reinit. Then on exiting check for hp reduction and ask are you sure. I think this is the only time this happens.
[x] Main Screen
[x] Junction Menu
[x] Junction GF
[x] Junctioned GF List
[x] GF Pool. 4 pages
[ ] After GF junctions changed jump to Auto
[x] Current character box
[ ] Junction Magic
[ ] Magic Pool
[ ] Window that tells you what's left or right of this screen
[x] Stats
[ ] Stats Make selectable
[ ] Elemental Slots
[ ] Elemental defense %
[ ] Status Slots
[ ] Status defense %
[x] Off Menu
[x] Mag
[x] Are you sure you want to?
[x] All
[x] Are you sure you want to?
[x] Auto Menu
[ ] Atk
[ ] Mag
[ ] Def
[x] Ability Screen
[x] Command slots populating
[x] Ability slots populating
[x] Command description read correctly
[x] Ability description read correctly
[x] Command pool populating
[x] Ability pool populating
[x] Command Swapping
[x] Ability Swapping
[ ] Pools - Prevent Cursor going to greyed out lines.
[x] Pools - Hide Empty Pages
[x] Pools - Hide Arrows when one page
[x] Make Pool abstract class - to dedupe the code in all item/ability pools

50% Save
Parts are coded because they are the same as load screen.

[ ] Enable the screen.
[ ] Make update methods
[ ] Are you sure? dialog box
[ ] Complete checkitems in https://github.com/MaKiPL/OpenVIII/issues/61

I may redo the save/load parts a bit as I had remade the main ingame menu screen into a class. I had originally copied and pasted the code from the save/load screen. But It was a mess. And it didn't scale well. And I was making a new set of the same variables for each screen. O.o So yeah the save/load and Splash screen and debug menus will probably be recoded with the new class.
Rework old menus to use new class.

[ ] Load
[ ] Save
[ ] Splash
[ ] Debug

I'm glad i made the issue with the list of things I need to add to menus. I find it easier to track what's next. Unless something comes up I hopefully will get some more of junction menu done tomorrow. Ability junction is functional. I think Off will be the easiest.  Auto will require me to get Magic junction working first. I am also unsure what the auto formula is. I might need to make my own.

Remove Magic and All is working.

One thing I noticed is i need to refresh every menu that uses these values. But there is no one method that does all of the things. Or I need to reinit each screen when I come back to it. So going from junction menu to main menu i need to call reinit. Then I only need to worry about the screen I'm on.

I added GF Junction and removal.
The sort order in the pool is a bit different. I put all available GFs first, then GFs Junctioned to your character, and lastly the GFs Junctioned to other characters.
The GF slots  just fills each row with the name instead of each GF having their own cell.
from discord "On the GF selection pool it is supposed to show an error message if you select a GF on another character. I haven't added that yet it just doesn't do anything.
I could even make it so you can just take another character's GF.
In real game you have to unjunction first before you can rejunction."

Junction magic has a lot things that need to be done. I'll probably need to change the state of the stats as i highlight spells but have a backup of the original stats cloned to return the state on cancel. Changing the stats and reinit'ing will probably be the easiest way. Though how to determine if it's a preview or not. I'm thinkin the stat window will hold the backup and compare the backup to the current stats. I'll then just need a confirm change method. That will set the backup to null and make the change permanent.

I got the screen displaying the change when you highlight a spell. I have it so when you press okay it makes it permanent and if you press cancel it is undone.

The Magic junction is functional. I fixed bugs today. I'm probably going to move on to auto junction functions. I don't know what order to make things though. I can tell ya what is best in slot for a stat but which stats are more important when auto sorting.

 I cleared out the done checkboxes from the list. Character swapping will be the last thing I do for a while on the junction menu. I think Item menu is next though.

Rn Just going through the commands to make sure the windows that need to show for each is there.  And putting a debug message in place of the actual action. And then I gotta make sure the items and magic do the correct target window. Also gotta handle multi targets

Rn Just going through the commands to make sure the windows that need to show for each is there.  And putting a debug message in place of the actual action. And then I gotta make sure the items and magic do the correct target window. Also gotta handle multi targets

Might need to break up target window to be one for command and one for magic etc. Then will need to make command cursor not draw over the top of stuff.

Might need to break up target window to be one for command and one for magic etc. Then will need to make command cursor not draw over the top of stuff.

https://github.com/Sebanisu/OpenVIII/projects/1 i started this project to finish battle menu. Will also do this with other menus. Projects seem better for handling large scale things than an issue with a bunch of checkboxes.


multiple github repositories got only one output

with this config:
releases:
  github:
    - owner: rancher
      repo: rancher
    - owner: rancher
      repo:  longhorn
    - owner: kubernetes
      repo:  kubernetes
    - owner: getsentry
      repo:  sentry
    - owner: php
      repo:  php-src
    - owner:  jetstack
      repo:  cert-manager
    - owner:  docker
      repo:  docker-ce

I get this output:
2019/04/29 13:28:48 main.go:134: Started watching releases using 4 providers
2019/04/29 13:28:48 releases.go:34: Fetching releases for docker/docker-ce using GitHub
2019/04/29 13:28:48 releases.go:34: Fetching releases for getsentry/sentry using GitHub
2019/04/29 13:28:48 releases.go:34: Fetching releases for php/php-src using GitHub
2019/04/29 13:28:48 releases.go:34: Fetching releases for jetstack/cert-manager using GitHub
2019/04/29 13:28:48 releases.go:34: Fetching releases for kubernetes/kubernetes using GitHub
2019/04/29 13:28:48 releases.go:34: Fetching releases for rancher/rancher using GitHub
2019/04/29 13:28:48 releases.go:34: Fetching releases for rancher/longhorn using GitHub
2019/04/29 13:28:49 main.go:66: [ GitHub ] New release : docker/docker-ce : 18.09.5
2019/04/29 13:28:49 main.go:66: [ GitHub ] New release : docker/docker-ce : 18.09.4
2019/04/29 13:28:49 main.go:66: [ GitHub ] New release : docker/docker-ce : 18.09.3
2019/04/29 13:28:49 main.go:66: [ GitHub ] New release : docker/docker-ce : 18.09.2
2019/04/29 13:28:49 main.go:66: [ GitHub ] New release : docker/docker-ce : 18.09.1
2019/04/29 13:28:49 main.go:66: [ GitHub ] New release : docker/docker-ce : 18.09.0

Resulting in a single post:

I'll try to have a look at these, but my guess would be different version number formats?  If that's not the case, you can specify a filter regex like here: https://github.com/rycus86/home-stack-monitoring/blob/master/config/release-watcher.yml
Again, I haven't checked yet if this is the case. Let me know if not, and I'll have a deeper look.
Thanks!

thanks for the fast reply. I thougth the filter work the other way around. With setting the filters it works fine ;-)

Awesome, thanks for confirming!


DragManager.java

No description? Why would viewholder be null ever?

Hi,
I am using DragSortAdapter in my app. I noticed that on some phones where the app is running recyclerView.findViewHolderForItemId(itemId) return null.

If you want to reproduce the test case I am talking about.
You need to create a Fragment containing a ViewPager, and provide at least two RecyclerView item to the viewPager and make sure that the ID of each items present in each RecyclerView are unique.
You should get a NullPointerException.

Having this issue also, this fixed it for me as well... why won't you merge this?


Linter error not found with flutter analyze command

I have added linter rules. All the warnings are showing properly in the analysis section (i.e in Dart Analysis tab, if we consider Android Studio) as depicted below.

But in the terminal, when I use flutter analyze command, it's showing only few linter warnings and some others are not considered/detected. Say for example in my case public_member_api_docs lint rule is not shown as an error. My requirement is to show this lint rule as info or warnings similar to lines_longer_than_80_chars as below.

I have attached a sample project to replicate this scenario.
linter_test.zip
Kindly help to resolve this.

Hi @dharanidharandharmasivam
Can you please provide your flutter doctor -v your flutter analyze -v
Thank you

Hi @TahaTesser ,
Kindly find the details for flutter doctor -v below

Thanks,
Dharani.

Code Sample
library linter_test;

import 'package:flutter/material.dart';

/// A Calculator.
class Calculator {
  /// Returns [value] plus 1.
  int addOne(int value) => value + 1;
}
/// Testing the linters, some of the lint errors are showing with flutter analyze command, but some lint errors are not showing.
class Testing extends StatefulWidget {

  Testing({
    this.height
  });

  final double height;

  @override
  State<StatefulWidget> createState() => _TestingState();

}

class _TestingState extends State<Testing> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }

}

flutter doctor -v
[✓] Flutter (Channel stable, v1.17.5, on Mac OS X 10.15.6 19G73, locale en-GB)
    • Flutter version 1.17.5 at /Users/taha/Code/flutter_stable
    • Framework revision 8af6b2f038 (5 weeks ago), 2020-06-30 12:53:55 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/taha/Code/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/taha/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 48.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.13.1

[✓] Connected device (1 available)
    • SM M305F • 32003c30dc19668f • android-arm64 • Android 10 (API 29)

• No issues found!

flutter doctor -v
[✓] Flutter (Channel dev, 1.21.0-1.0.pre, on Mac OS X 10.15.6 19G73, locale en-GB)
    • Flutter version 1.21.0-1.0.pre at /Users/taha/Code/flutter_dev
    • Framework revision f25bd9c55c (3 weeks ago), 2020-07-14 20:26:01 -0400
    • Engine revision 99c2b3a245
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 20bf2fcf56)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/taha/Code/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/taha/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 48.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.13.1

[✓] Connected device (4 available)
    • SM M305F (mobile) • 32003c30dc19668f • android-arm64  • Android 10 (API 29)
    • macOS (desktop)   • macos            • darwin-x64     • Mac OS X 10.15.6 19G73
    • Web Server (web)  • web-server       • web-javascript • Flutter Tools
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 84.0.4147.105

• No issues found!

flutter doctor -v
✓] Flutter (Channel master, 1.21.0-6.0.pre.142, on Mac OS X 10.15.6 19G73, locale en-GB)
    • Flutter version 1.21.0-6.0.pre.142 at /Users/taha/Code/flutter_master
    • Framework revision d261f1ef58 (4 hours ago), 2020-08-03 00:59:36 -0400
    • Engine revision 083282e33b
    • Dart version 2.10.0 (build 2.10.0-2.0.dev 365525432a)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/taha/Code/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/taha/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 48.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.13.1

[✓] Connected device (4 available)
    • SM M305F (mobile) • 32003c30dc19668f • android-arm64  • Android 10 (API 29)
    • macOS (desktop)   • macos            • darwin-x64     • Mac OS X 10.15.6 19G73
    • Web Server (web)  • web-server       • web-javascript • Flutter Tools
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 84.0.4147.105

• No issues found!

@jonahwilliams I am familiar with this part of the code, Current status is error.code == 'public_member_api_docs' will be counted and summarized in one sentence(dartDocMessage).
packages/flutter_tools/lib/src/commands/analyze_base.dart
If this needs to be changed after review, you can assign to me.

OK!

@jonahwilliams So what is the conclusion? public_member_api_docsalso verbose output?

Yeah, I think we should treat that lint similar to the others

This issue seems to have been fixed on the latest stable channel as I cannot reproduce it there.
flutter analyze:
➜  linter_test flutter analyze
Analyzing linter_test...

   info • 'avoid_as' is a deprecated lint rule and should not be used • analysis_options.yaml:35:7 • deprecated_lint_hint
   info • Avoid lines longer than 80 characters • lib/linter_test.dart:10:81 • lines_longer_than_80_chars
   info • Document all public members • lib/linter_test.dart:13:3 • public_member_api_docs
   info • Document all public members • lib/linter_test.dart:17:16 • public_member_api_docs
warning • The 'author' field is no longer used and can be removed • pubspec.yaml:4:1 • deprecated_field

5 issues found. (ran in 2.7s)

Dart analysis (Android Studio):

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.3.9, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.3.9 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (31 hours ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • 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.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • 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

[✓] VS Code (version 1.73.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 12 (API 31)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 107.0.5304.110

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[!] Flutter (Channel master, 3.6.0-7.0.pre.52, on macOS 13.0 22A380 darwin-x64, locale en-VN)
    • Flutter version 3.6.0-7.0.pre.52 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff59250dbe (4 hours ago), 2022-11-24 18:08:30 -0500
    • Engine revision 7665ae5184
    • Dart version 2.19.0 (build 2.19.0-429.0.dev)
    • DevTools version 2.19.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • 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.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.0.5
    • Dart plugin version 222.4167.21

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • 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

[✓] VS Code (version 1.73.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • Pixel 3a (mobile) • 964AY0WL20 • android-arm64  • Android 12 (API 32)
    • macOS (desktop)   • macos      • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)      • chrome     • web-javascript • Google Chrome 107.0.5304.110

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

I'll be closing this issue since it has already been fixed on the stable channel. If you still experience this issue on the stable channel, kindly leave a comment below and I will reopen this. Thank you!


Question about scmrepo's usage

Hi guys. Long story short, now we have this GTO tool that allows you to build an Artifact Registry on top of your repo (see example here). I would like to get your advice on how to use scmrepo in it.
Basically, artifacts are listed in artifacts.yaml. To make sense of the repo,

GTO needs to traverse all commits (starting from heads and going back) and read the content of this artifacts.yaml in each commit.
GTO needs to get a list of git tags will all information (who created that tag, when, etc).

To solve both, I use GitPython now. Everything works pretty well when I have a repo cloned locally, but doesn't work with remote repos. OFC I can clone a repo to a temporary folder and do the same things, but it looks like scmrepo should solve the same kind of tasks for DVC.
So, I would be grateful if you could help me out with this:

Am I right and I can use scmrepo for my task? Does it look like the intended usage?
What is the right way/right methods/functions to call? Maybe you have some simple examples to start with, that would be awesome.

scmrepo is just a wrapper around a few different git backends (dulwich, pygit2 and GitPython) that works at roughly the same level as GitPython. It doesn't really provide any higher level abstraction compared to GitPython, it just provides an API that works consistently regardless of the backend being used.
With git remotes, you can't traverse remote commits without having a local clone (unless you are using something like github's http API, which is completely separate from native git). So your approach (cloning the repo locally) is still what you would need to do with scmrepo, and scmrepo doesn't currently provide any out of the box solution for doing this.
In DVC, we do the same thing as you, and clone repos locally in the dvc.external_repo module (https://github.com/iterative/dvc/blob/main/dvc/external_repo.py). dvc.external_repo provides the abstraction around managing the temporary local git clones (and removing them when we are finished), but the only difference between our implementation and yours would be that we use scmrepo's Git.clone() instead of using the equivalent direct GitPython call.
The main reason scmrepo exists is that GitPython comes with a lot of performance caveats (especially on windows), and in general we try to avoid using GitPython (and prefer dulwich or pygit2 implementations of git calls) whenever possible.

It would be make sense to move the external_repo abstraction for managing these types of temporary git clones from DVC into scmrepo, and we have discussed this as a potential feature before, but right now there's no real plan/timetable on when that might get done

Thanks for the detailed explanation, @pmrowla!
I just checked out dvc.external_repo and it doesn't seem to be very complicated, that's nice.
Can I kindly ask to prioritize this within DVC team to be implemented on the next week or two? If yes, that would be great. If not, I'll try to make a PR in scmrepo, use it from GTO and draft PR to use from DVC. Then I'll ask for your help with review.
Would totally do that myself, but I'm afraid I have too many other things with Model Registry right now and time is pressing.
CC @dberenbaum

Hi @aguschin! @pmrowla and I will meet on Monday, so we can discuss then. I'm not sure the level of effort, but my initial reaction is that it's a very tight timeline. Are there any other alternatives? Could GTO depend on DVC temporarily? Maybe you could use dvc.external_repo for now and we can make a plan to extract it before GTO release?

@aguschin We discussed this today, and @pmrowla doesn't think the effort is large, but we can't get to it immediately. We can add it to the dvc backlog and get to it as soon as we have capacity. Does that work for you?

Could GTO depend on DVC temporarily?
That probably means that we need to instantiate DVC repo and create .dvc folder, right?

Yes, let's add it to backlog then! Thanks @dberenbaum @pmrowla! 🙏

Hi guys, just checking in on the status. Would be great if you have some plans to address this in upcoming weeks!

Hi @dberenbaum @pmrowla. Any updates on this?
Would be awesome if this could be completed in 1-2 weeks, cause then @dmpetrov have a conference on 20th of April where this functionality would be very useful. And I'll need some time to add it to GTO after you're done with this.

Any update here? @pmrowla
I am trying to help @aguschin with this issue on GTO, and git clone cannot be avoided.

@francesco086 No updates so far from our side.

Reading this issue again, I don't think this is even actionable as is, the needs are not clear at all. Maybe @aguschin has some actionable proposals for the functionality that he needs implemented in scmrepo? The easiest way to go about it would be to implement what you want in gto first and then work on propagating the changes into scmrepo by creating a PR.

It would make sense for us to move the external_repo abstraction for managing these types of temporary git clones from DVC into scmrepo, and we have discussed this as a potential feature before, but right now there's no real plan/timetable on when that might get done.

I think this was the immediate request. Is this something that could be contributed, or would it have to wait for a DVC dev to implement?

I'm confused as to why this is needed, my understanding was that GTO already was generating temporary clones for read-only purposes.
@francesco086 For an example of how to use scmrepo's Git.clone you can take a look at what DVC does here: https://github.com/iterative/dvc/blob/main/dvc/external_repo.py

I think this was the immediate request. Is this something that could be contributed, or would it have to wait for a DVC dev to implement?

It could be contributed, but like @efiop said, it would be best to just start with an implementation in GTO, and then work on generalizing it for scmrepo after that.

I think this was the immediate request

Yes, it was exactly it, at least as the first step.

It could be contributed, but like @efiop said, it would be best to just start with an implementation in GTO, and then work on generalizing it for scmrepo after that.

Ok, no problem :) Just though it would require less efforts overall to do it the other way.

Ok, no problem :) Just though it would require less efforts overall to do it the other way.

If you want to start with an scmrepo PR based on the DVC functionality that's fine, but it's unlikely that DVC's external repo code does everything that GTO needs anyways, so I'm not sure it would actually save you any effort on the GTO side.

I think things are getting back-ported now? This one can be closed anyways.


High SENSOR_VP leakage in deep sleep (IDFGH-2399)

Environment

Development Kit:   none
Module or chip used:  ESP32-WROOM-32D
IDF version: v3.3.1
Build System:  Make
Compiler version: 1.22.0-80-g6c4433a5
Operating System:   Windows
Power Supply:     External 3.3V

Problem Description
Using the attached schematic (VBAT is 4.0V, BAT_ADC is connected to SENSOR_VP, BAT_ADC_EN driven low), leakage current over SENSOR_VP pin is over 60uA in deep sleep mode.
Expected Behavior
Leakage negligible.
Actual Behavior
~60nA leakage with VBAT = 4.0V. Furthermore, leakage increases rapidly if VBAT is even just slightly increased (20-30uA for every 0.1V in VBAT)
Steps to repropduce

If R11 is desoldered, leakage stops (whole circuit consumption goes down to 13uA). If R12 is removed, total circuit consumption stays high (>70uA). Therefor reason for high consumption must be leakage over ESP32 pin (sensor_vp).
Code excerpt
void app_main(void)
{
#if 1 // enabling or disabling makes no difference to leakage
    adc1_config_width(ADC_WIDTH_BIT_12);
    adc1_config_channel_atten(ADC1_CHANNEL_0, ADC_ATTEN_DB_0);
    esp_adc_cal_characteristics_t *adc_chars = calloc(1, sizeof(esp_adc_cal_characteristics_t));
    esp_adc_cal_value_t val_type = esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_0, ADC_WIDTH_BIT_12, 1100, adc_chars);
#endif

#if 1 // enabling or disabling makes no difference to leakage
    rtc_gpio_init(GPIO_NUM_36);
#endif

    esp_deep_sleep_start();
}

Additional notes
Calling rtc_gpio_init() on SENSOR_VP makes no difference. It can be a bug in ESP-IDF (pin not isolated), or maybe this is a hardware issue? SENSOR_VP has no pullup or pulldown in hardware, and it also has no output circuitry, so I expect the hardware leakage to be near zero (ADC input should be high-impedance). ESP32 datasheet has no information about expected ADC/analog pin leakage, only for digital inputs which is 50nA maximum.

Why not use a high side switch?  Vbat > Vcc could leak through protection diode.

Why not use a high side switch?
All things indicated this should work and it requires less components (and also less kinds of components as there is otherwise no P-channel MOSFET in the design). I will have to do that if there is no solution in software.

Vbat > Vcc could leak through protection diode.
My first thought as well. But if this were the case, then digital pins would also leak in deep sleep and the rtc_gpio_init() function would have no use. The rtc_gpio_init() IDF function is capable of isolating pins such that they do not leak (they are then either kept powered on during deep sleep or there are no diodes -  no info about such diodes in either the datasheet or the TRM). This is why I thought this might be a software issue. Or, if rtc_gpio_init() in incapable of isolating SENSOR_VP due to hardware, then it should return ESP_ERR_INVALID_ARG like it does for other non-supported pins.


WIP: improvement/Add max api calls to organisation and sales dashboard

This is so we can track people who are going over their api call limit.
Todo:

Update organisation.max_api_calls when a subscription is created or updated.
Where to store the API call limits mapped to plans?

@dabeeeenster these can be done in another PR:

Update organisation.max_api_calls when a subscription is created or updated.
Where to store the API call limits mapped to plans?

Let's get this one merged.
Can you merge main back in first though as I imagine you'll have a db migration conflict.


What does graph package do?

This might be a totally off-topic question, I found this graph package lurking around down the src folder while flipping through the source code, wondering what's it meant for?
Is this something along the line of behavior trees mentioned here?

The @xstate/graph package is meant for exposing utilities for performing graph algorithms (such as shortest paths, simple paths, etc.) on statecharts. Documentation coming 🔜

Now that sounds intriguing, very looking forward to it :D

See the docs here: https://xstate.js.org/docs/packages/xstate-graph/

Huge props for @davidkpiano for providing getShortestPaths and getSimplePaths via the lib, is it too much to expect automated testing of statechart coming soon? 😅

is it too much to expect automated testing of statechart coming soon?

Nope 😉 Article coming 🔜📰

🙌🙌

🤗 Really excited for this!

is it too much to expect automated testing of statechart coming soon?

Nope 😉 Article coming 🔜📰

Any updates on this @davidkpiano ?
I would like to pitch using xstate to drive our SPA to my team. We're planning a rewrite sometime soon and this feature would definitely help make my case.

@dsedmak I'm working on some better tooling for automating tests with XState, but here is the initial article draft I have for the topic: https://gist.github.com/davidkpiano/cf628911427b275a9a659d510a785d15

Thank you for this @davidkpiano .
I have been thinking and it seems to me that both approaches to generating (and executing) test paths have their flaws.
If we follow the paths returned by getShortestPaths we will explore all nodes in the graph (states) but not all edges (transitions/guards). Not executing certain pieces of code during testing seems like a bad idea.
If on the other hand we follow the paths returned by getSimplePaths we will explore certain edges multiple times which is unnecessary and just makes the test longer. With complex machines the effect might be substantial. Even if we follow the shortest paths it's still possible to execute certain transitions multiple times.
Actually, the examples at https://xstate.js.org/docs/packages/xstate-graph/ are also examples of both problems.
I think it would be simpler and more efficient to traverse the graph using breadth-first search and not expand visited states. Something like this perhaps (not tested, just pseudocode):
const machine = Machine(/* machine config */);
const service = interpret(machine);
let eventList = getPossibleEventsForState(service.initialState);
const queue = eventList.map(event=>[service.initialState, event]);
const visitedStates = new Set([service.initialState]);
while(queue.length){
  const [previousState, event] = queue.shift();
  service.start(previousState);
  service.send(event);
  if (!visitedStates.has(service.state)){
    queue.push(getPossibleEventsForState(service.state).map(event=>[service.state, event]))
  }
}

This way each transition is attempted exactly once and every state is visited at least once (if it can be reached). If you only wish to generate a list of state, event pairs than the interpreter can be avoided. What do you think?

Actually, the examples at xstate.js.org/docs/packages/xstate-graph are also examples of both problems.

Keep in mind, the "problematic" examples are still better solutions (in terms of test coverage) than existing techniques today 😉

I think it would be simpler and more efficient to traverse the graph using breadth-first search and not expand visited states

I think that's a valid technique for many use-cases, and ideally, some sort of testing package would allow the developer to choose any traversal method (shortest path would work for most).
Additionally, it is possible to recognize when potential transitions were not taken (due to a guard preventing the transition) and warn the developer. This is simply not possible (at least not with a lot of effort) with traditional testing techniques today.
I believe that even if it seems redundant, thoroughly checking testing paths that might repeat previously-tested paths is important for determining the root cause of a test failure. For example, imagine generated tests that include the paths:
A -> B
A -> B -> C
A -> B -> D

It might seem redundant to test B if that state is already being covered in the other tests, but if the tests for C and D fail, it's useful to determine if the test for B failed as well, which would be the root cause of the other tests failing.

Actually, the examples at xstate.js.org/docs/packages/xstate-graph are also examples of both problems.

Keep in mind, the "problematic" examples are still better solutions (in terms of test coverage) than existing techniques today 😉

I completely agree.  Model-based testing gives us good test coverage AND saves time writing and maintaining tests :astonished:. That's why I'm here.

Additionally, it is possible to recognize when potential transitions were not taken (due to a guard preventing the transition) and warn the developer. This is simply not possible (at least not with a lot of effort) with traditional testing techniques today.

This is true, but is not really what I was talking about. Following the shortest paths can skip certain transitions event in the absence of guards. If we used a method where that doesn't happen there would be no need to warn the developer. Also a guarded transition might be skipped many times before it's finally taken so any warnings would have to come at the end of the test.

I believe that even if it seems redundant, thoroughly checking testing paths that might repeat previously-tested paths is important for determining the root cause of a test failure. For example, imagine generated tests that include the paths:
A -> B
A -> B -> C
A -> B -> D

It might seem redundant to test B if that state is already being covered in the other tests, but if the tests for C and D fail, it's useful to determine if the test for B failed as well, which would be the root cause of the other tests failing.

As for my duplicated work argument I still believe it has merit. The way you describe it if an error happened on the first event/transition every single test would still run and then fail. If every transition was only taken once we could short-circuit the tests following the broken transition. The tests could be generated roughly like this: https://repl.it/repls/WornSurefootedListener (here I am assuming that transitions from states 2 to 5 and 4 to 5 produce different contexts so we continue executing tests).

Following the shortest paths can skip certain transitions event in the absence of guards. If we used a method where that doesn't happen there would be no need to warn the developer.

Such a method would require that:

a machine can reach a state S...
an event E can be generated...

...such that S and E satisfy the conditional (and/or negation of the conditional) that guards any given transition.
As it turns out, this is not easily solvable, and is essentially the Boolean Satisfiability Problem (which is NP-complete).
That's why, unless we use some SAT-solver, the best thing to do is simply inform the developer (at the end of the tests) that certain transitions were not taken.

We seem to be talking past each other. You are right of course that we cannot easily find the right S and E to satisfy the guard condition. I was talking about unguarded transitions. Example where all transitions are unguarded:

Traversing the shortest paths to all possible states would mean transition E is never taken and some duplicated work.
Traversing the simple paths to all possible states would mean substantial duplicated work.
Traversing in breadth-first order while not expanding visited states would take all transitions exactly once and visit every state making for a shorter test while fully exercising the machine.

Interestingly even if there were guards on some transitions as long as the conditions only depend on context properties that were never modified based on values coming from outside the machine (event.xx) the test would eventually both pass and fail the guard. A good example of this is the fetch machine that loads by default on the visualizer. Since ctx.attempts is increased by a constant just letting the machine execute would eventually cause the machine to take the transient transition to failure.
I'll drop this for now but maybe once we actually start implementing this I can contribute back upstream.


Timecode related software

Added 2 new items.
At El-Tee-See, I wrote free, because it's not open source, but available for free, as a web service.

thank you!


Is this a standalone server or need to have real retail server running ?

Can it run by themself or need to use with retail server ?

API is a separate component intended for use with a retail server.


Documentation

Hi,
a short documentation/example would be nice.
Thanks!

@ServerJunge Fair enough. I'll do it.

Great! Any Update?

Great! Any Update?

Docs available in v1.0.3.


winsock:listen

I don't know how this bug might have been introduced (I remember that Corman Lisp was working with Slime at some point), but there seems to be a problem that is easy to fix with a couple of changes (see below).
With this fix it becomes possible to (load "slime-2.0/swank-loader.lisp") and (swank:create-server) or (swank:create-server :style :spawn)
The swank server runs... until we try to connect ("M-x slime-connect" will result in errors). Slime 2.0 is still available at http://common-lisp.net/project/slime/slime-2.0.tgz
In Sys/winsock.lisp, change the make-package form (line 11) to
(defpackage "WINSOCK" (:use "COMMON-LISP" "C-TYPES") (:shadow "LISTEN"))
In Sys/sockets.lisp, specify the package winsock in the call to listen (line 474):
(winsock:listen (socket-descriptor s) SOMAXCONN))))

Thank you! On my  Windows 10 machine without this fix it is impossible to start SWANK at all. Closing this issue.


Re-pre-approved reportbacks, don't required status.

Fixes #4797
@weerd is also a goddamn champion.
When a status was required on reportbacks, it was causing drupal's default validation hook to run, which re-checks all the data to see that an option was selected
This was causing two things:

the 'an illegal choice was made' error
the get the latest reportbacks query to run and causing rbs to be approved without a member of the campaigns team reviewing the reportback

TO TEST

View a campaign with many reportbacks in the inbox and review/approve those
Submit a reportback while the Save method on the inbox is still running

The reportback that was submitted should NOT have been reviewed.
This was previously fixed by disabling the approved radio button. This PR adds that back in and doesn't cause incorrect reportbacks to be approved.

@angaither just a note on how to test, should we follow these steps more specifically?

load rb inbox that has 25+ fids in the inbox
have a user load up a campaign
have that user submit a rb
wait until rb is submitted
review rbs that are in the inbox and click save

@mikefantini those are the correct steps @mikefantini

@angaither since you have the PR ready, update the language to represent the change from most recent to oldest
https://github.com/DoSomething/phoenix/blob/1f1a7b12dd57385d13f28ea72d36e4df0ebf3262/lib/modules/dosomething/dosomething_reportback/dosomething_reportback.admin.inc#L158

Removing the required status field, and not having things preselected will allow people to submit the form and save a reportback will no status.

In the above case, I believe the RBs stay in the inbox as pending...

nope -_-
once they are in the inbox, and that field isn't required it looks like it's been reviewed, but it has no status

Bummer. Two steps forward, one step back :\

We could maybe add some logic where while it doesn't validate them, it also takes those out from being processed and just leaves them untouched?

yeah, we could talk about adding some custom validation perhaps

Sounds good.

to summarize the current status, because of drupal's default querying for information again upon form submit, this is the current reality given our options:

approve not pre-selected, status required -> illegal choice error messages will occur when inbox is less than 25 and a user submits a reportback while an editor is reviewing the inbox and goes to submit the form
approve not pre-selected, status not required -> if an editor accidentally doesn't select a status for a reportback, the reportback will go into reviewed with no status
approve pre-selected, status not required -> in the case where there are less than 25 reportbacks in the inbox and a user submits a reportback while an editor is reviewing, those new reportbacks will skip the inbox and be marked as approved. we can bring this trade-off to the campaigns team and see if they are willing to double check the reviewed tab after they have submitted the form to verify that nothing sneaked through while they were reviewing.

and yes let's discuss other options tomorrow after standup

Did we decide what's going on with this one?

ok so just to recap, chatted w/ some campaigns folks about this and we're going to stick with what we've got:

approve not pre-selected
status required

we'll continue to monitor with them and readdress if this is slowing them down too much moving forward

Cool cool. Thanks for the recap :)


refactor(@vtmn/react): VtmnTooltip position typings are not accessible from other TypeScript projects

Current Behaviour :
The VtmnTooltip contanins a VtmnTooltipPosition which is an enum, it's not ideal because we need to declare this enum in our project to be able to use it and send it to the VtmnTooltip component as a valid props.
Expected Behaviour :
I suggest to replace the VtmnTooltipPosition attribute as a exported type, not an. enum, to be able to send recognized string value directly by the component, and not being forced to declare the enum in our architecture.
This behaviour is indeed the way that other vtmn react component works, their attributes are all in type (you can check VtmnIcon, Button, etc.)

@AntoineDeloy, as we've seen together on Slack, I've now assigned you, feel free if you have question regarding your contribution/onboarding on vitamin-web :tada:

Hey @AntoineDeloy !
the type VtmnTooltipProps is exposed from the library so you should be able to use the tooltip wich is available in the VtmnTooltipProps interface like:
import { VtmnTooltipProps } from '@vtmn-web/react';

type tooltip = Pick<VtmnTooltipProps , 'tooltip'>

CF: typescript utility type

Hello ! Sorry for the delay, I had a lot a of work on Green Design team, I'm coming back to this issue and I don't see why it would be a breaking as it is really blocking right now for users because they need to declare the enum in their architecture, so changing  it won't fail the compilation as if they still send string value the component will still understand the VtmnPosition props

Hey Hey @AntoineDeloy ! you are suppppeer right !


Shouldn't each loanId be unique?

Describe the bug
I have compared several marginTrade transactions and all of them has the same value for loanIdparameter, zero.
To Reproduce
Steps to reproduce the behavior:

Inspect the contract transactions of iUSD contract: https://blockscout.com/rsk/mainnet/address/0x849C47F9c259E9D62F289bF1B2729039698D8387/transactions
Select any transaction msg.value different to zero; any marginTrade transaction
Look the value of each loanId input
All values are bytes32 zero (0x0000000000000000000000000000000000000000000000000000000000000000)

Expected behavior
Each loanIdvalue should be unique.
Note: if it is confirmed to be a misunderstanding, please ignore this bug report

Hey @jjmr007,
Calling margin trade with loanId as 0 means that new loan will be opened and smart-contract will assign unique one which will be used later for top-ups, closing position and etc.
So everything is correct here  ;)

Hey @jjmr007,
Calling margin trade with loanId as 0 means that new loan will be opened and smart-contract will assign unique one which will be used later for top-ups, closing position and etc.
So everything is correct here  ;)


Vegalite charts

I have been looking into vega lite charts: https://vega.github.io/vega-lite/examples/
And the corresponding Python library: https://altair-viz.github.io/
I was wondering if somebody was looking into this too. Vega charts are configured in json. This means that with the right setup in Superset we open up endless possibilities for creating new charts or change existing ones.
Some ideas for creating the slice could come from here: http://vega.github.io/voyager/

I've implemented this for Redash. Wouldn't mind working on it for Superset if that's inline with the Roadmap.

Is there any plans for integrating Vega or Vega-lite at any time soon? This will be a very useful addition.


POSIX: use up to 20 command line arguments

This fixes the case where more than 10 args were needed for instance
when starting mavlink with all its options.
Tested in SITL. This is still ugly but going to be properly fixed in #5162.

Looks workable.


fsevents optional dependency

i have 1.6.1 of this module installed. it lists fsevents as an optional dependency in package.json but fsevents is also listed in dependencies. This causes a problem when I shrinkwrap my project after executing npm install --no-optional. fsevents is still in my shrinkwrap file and CI complains npm ERR! notsup Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}).
However you have removed fsevents in dependencies in package.json when i look at master in this repo. I can manually remove this from my shrinkwrap in the meantime, but I think you need to publish this change as it will surely be causing other people the same problem?

It has always been an optional dependency, never been in the main dependencies list.
npm does not play well with the combo of optional dependencies and shrinkwrap (https://github.com/npm/npm/issues/2679), you have to take care to ensure it is excluded from your shrinkwrap files.

hmmm, yes i am aware of that issue, but before i get to do any shrinkwrapping, package.json for chokidar explicitly says:
    "anymatch": "^1.3.0",
    "async-each": "^1.0.0",
    "fsevents": "^1.0.0",
    "glob-parent": "^2.0.0",
    "inherits": "^2.0.1",
    "is-binary-path": "^1.0.0",
    "is-glob": "^2.0.0",
    "path-is-absolute": "^1.0.0",
    "readdirp": "^2.0.0"
  },
...
  "devDependencies": {
    "chai": "^3.2.0",
    "coveralls": "^2.11.2",
    "graceful-fs": "4.1.4",
    "istanbul": "^0.3.20",
    "mocha": "^2.0.0",
    "rimraf": "^2.4.3",
    "sinon": "^1.10.3",
    "sinon-chai": "^2.6.0"
  },
...
  "optionalDependencies": {
    "fsevents": "^1.0.0"
  },

package.json is published with the module, but this is not representative of whats in master of your project? fsevents should not have an entry in dependencies and optionalDependencies should it?

Not the case in the tarball: https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz
It does show up that way in npm info chokidar, but as far as I can tell it always has. I just checked with npm@3 and npm@2, as well as looking at the info output for older versions of chokidar.
I think this observation just goes in as an aspect of the existing issue on the npm side. Not aware of anything we can do over here to help.

ok, thanks for your time anyway :)


WebGLRenderer get_cam_to_render() gets called on every render

There's something wrong here. Examine + fix!

I guess I got something wrong here, at least I cannot confirm / reproduce.


Login depreciation error

After login I consistently receive the below Buffer error in the console
Version: 0.1.3
OS: Win 10
Errors: below
Severity: Medium

This is now fixed in the latest version. It might still show on up Linux sometimes though. I have looked into it and couldn't figure out why the fix didn't always work on Linux. I'm gonna leave it as-is as it's just a warning and the warning itself is coming from dependencies we use and not the app, so fixing those warning is out of our control. If you're on Linux and don't like seeing it, just disable Debug mode (which is meant for advanced user anyway) in the Help menu.


TDTM Filtering not working correctly when using Filter Field of Boolean type

Issue identified by Brian Petersen (Queen's School of Business)  on July 13, 2017
PUB Thread: https://powerofus.force.com/_ui/core/chatter/groups/GroupProfilePage?g=0F980000000D6uj&fId=0D58000003VpuaU
Issue: TDTM Filtering not working correctly when using Filter Field of Boolean typeValue
Steps to reproduce:

Create a custom Apex Class that updates a Contact field value if some condition is met.

Example: IF Military Service == True then add "Please Contact VA Services" in the Military Background field

Create a new Trigger Handler that references the following:

Class = class created in Step 1
Object = Contact
Trigger Action = Before Insert; Before Update
Filter Field = ex: hed__Deceased__c
Filter Value = ex: 'True' OR 'true'

Test the Class and Trigger Handler by Creating a new Contact

Create a new Contact and set the value of hed_Military_Service__c to TRUE
Save the record
The hed_Military_Background__c field now has the value of "Please contact VA Services"

Note: The Trigger Handler indicates that unless the Filter Field (i.e. hed_Deceased__C) and Filter Value (i.e True or true) are met then the Class referenced will not be called.
The class should not be called unless the Trigger Handler condition is TRUE.

**lurch: add

Tracking W-019578

@weizsforg Would you mind adding some details about what you found to be the actual problem? Thank you!

I did a investigation in one of the HEDA trial org and I found the following:

CheckBox (HEDA field): doesn't work
Picklist (HEDA field):doesn't work
Text (HEDA field):doesn't work
CheckBox (HEDA field without namespace: For example user put Military_Background__c but not hed__Military_Background__c): works
CheckBox (user's custom field):doesn't work
Picklist (user's custom field):doesn't work
Text (user's custom field):doesn't work
Text (standard, like LastName): works
Checkbox (standard, like Email Opt Out): works

In summary:

Filter on standard field always works
Filter on HEDA field only works when you omit the namespace
Filter on custom field outside HEDA will not work
The issue is not just for Boolean field type but all filed type


enhance: build bpfdata in standalone build and add s390x support

related to https://github.com/sustainable-computing-io/kepler/issues/543

I think the major problem is about buildx support s390x in github action?

@SamYuan1990 there is a rpm PR #540. The rpm will be built by ondemand or scheduled GHA (not there yet)

I think the major problem for this PR is about buildx support s390x in github action?

this PR only provide a way to build locally
how to do this in github action is a follow up thing ..


Filament v3 support

This pull request adds support for Filament v3.

Thanks for the PR! I'm on vacation this week but will check this out when I get back

@alexjustesen can you check this PR? Please

@alexjustesen How's it going? Anything we can do to help?


Revoke dies with AttributeError: 'str' object has no attribute 'public_bytes'

Issue a new cert:
Requesting certificate issuance...
Certificate downloaded.
Expires: 2020-05-18
SHA256: 3feb10d0b9d23296d75874270c6807c987b03405ff42ba0839e0c1fcdf2852e9
Wrote key to /var/pki_dev/development_CA_2/db/buildx.lrau.net.pem
Wrote certificate to /var/pki_dev/development_CA_2/db/buildx.lrau.net.crt
Wrote certificate with intermediate to /var/pki_dev/development_CA_2/db/buildx.lrau.net.chain.crt
Wrote intermediate certificate to /var/pki_dev/development_CA_2/db/buildx.lrau.net.intermediate.crt
Then try to revoke it:
manuale revoke   buildx.lrau.net.crt
Candango Automatoes 0.9.0. Manuale replacement.
Are you sure you want to revoke this certificate? It includes the following domains:
buildx.lrau.net
This can't be undone. Confirm? [y/N] y
Oops! An unhandled error occurred. Please file a bug.
'str' object has no attribute 'public_bytes'
Traceback (most recent call last):
File "/usr/local/py_venv/pki_dev_p37/lib/python3.7/site-packages/automatoes/cli.py", line 324, in manuale_main
args.func(args)
File "/usr/local/py_venv/pki_dev_p37/lib/python3.7/site-packages/automatoes/cli.py", line 157, in _revoke
certificate=args.certificate
File "/usr/local/py_venv/pki_dev_p37/lib/python3.7/site-packages/automatoes/revoke.py", line 60, in revoke
acme.revoke_certificate(export_certificate_for_acme(certificate))
File "/usr/local/py_venv/pki_dev_p37/lib/python3.7/site-packages/automatoes/acme.py", line 462, in revoke_certificate
'certificate':  export_certificate_for_acme(cert),
File "/usr/local/py_venv/pki_dev_p37/lib/python3.7/site-packages/automatoes/crypto.py", line 228, in export_certificate_for_acme
return jose_b64(cert.public_bytes(Encoding.DER))
AttributeError: 'str' object has no attribute 'public_bytes'
(pki_dev_p37) # python --version
Python 3.7.6
(pki_dev_p37) # pip list
Package       Version    Location

asn1crypto    0.24.0
automatoes    0.9.0
bcrypt        3.1.6
cartola       0.1
certifi       2018.11.29
cffi          1.12.1
chardet       3.0.4
cryptography  2.8
idna          2.8
iso8601       0.1.12
paramiko      2.6.0
pip           20.0.2
prettytable   0.7.2
py-postgresql 1.2.1
pyasn1        0.4.5
pycparser     2.19
PyNaCl        1.3.0
requests      2.22.0
serverPKI     0.9.5      /usr/local/py_venv/pki_dev_p37/src/serverPKI
setuptools    40.6.3
six           1.12.0
urllib3       1.24.1
wheel         0.32.3

This patch fixes it:
index 7ec7519..f568889 100644
--- a/automatoes/acme.py
+++ b/automatoes/acme.py
@@ -457,9 +457,9 @@ class AcmeV2(Acme):
return response
raise AcmeError(response)

def revoke_certificate(self, cert):

def revoke_certificate(self, cert_b64):
response = self.post(self.url_from_directory('revokeCert'), {

       'certificate':  export_certificate_for_acme(cert),

       'certificate':  cert_b64,
   }, kid=self.account.uri)
   if response.status_code == 200:
       return response

This patch fixes it:
index 7ec7519..f568889 100644
--- a/automatoes/acme.py
+++ b/automatoes/acme.py
@@ -457,9 +457,9 @@ class AcmeV2(Acme):
             return response
         raise AcmeError(response)

-    def revoke_certificate(self, cert):
+    def revoke_certificate(self, cert_b64):
         response = self.post(self.url_from_directory('revokeCert'), {
-            'certificate':  export_certificate_for_acme(cert),
+            'certificate':  cert_b64,
         }, kid=self.account.uri)
         if response.status_code == 200:
             return response

This fix will break tests. The export_certificate_for_acme conversion was moved into the AcmeV2 revoke method because so we can receive a bare certificate object and keep any acme internal operation and/or input handling inside the method. That would be better for a future SDK.
That was my mistake or I reverted revoke.py when I was publishing the first version.
I'll publish 0.9.1 tonight with the fix.

Published to pypi.