Swagger docs do not document requirement for 'class' in JSON request payload

Currently our swagger docs are misleading.
An Example. addEntity is documented at http://localhost:8080/swagger-ui.html#!/omrs45repository45resource/addEntityUsingPOST
This gives a request body that does not include the required 'class: EntityCreateRequest' at the top level, and indeed the required classes throughout the structure (with the current Jackson mappings)
This is a common pattern through OMRS, and one should be able to use the swagger docs as a guide for using the API.
Suspecting some more swagger tagging is needed
Further info:
The error returned using the sample swagger is
{
    "timestamp": "2018-09-19T07:39:39.124+0000",
    "status": 400,
    "error": "Bad Request",
    "message": "JSON parse error: Missing type id when trying to resolve subtype of [simple type, class org.odpi.openmetadata.repositoryservices.rest.properties.EntityCreateRequest]: missing type id property 'class'; nested exception is com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Missing type id when trying to resolve subtype of [simple type, class org.odpi.openmetadata.repositoryservices.rest.properties.EntityCreateRequest]: missing type id property 'class'\n at [Source: (PushbackInputStream); line: 52, column: 1]",
    "path": "/open-metadata/repository-services/users/me/instances/entity"
}

The documentation should also direct people away from calling this REST API - it is a private REST API for OMRS.
Nevertheless, this issue should address the swagger for all OMASs too because they are (or should be) using the same style of payload.

As an example the following (simple) payload works for addEntity. It was very unclear how to get to this from the documentation
{
    "class": "EntityCreateRequest",
    "entityTypeGUID": "0921c83f-b2db-4086-a52c-0d10e52ca078",
    "initialClassifications": [
    {
      "class": "Classification",
      "name": "Confidentiality"
    }
  ]
}

Closing this in lieu if #1124 which will address improvements to swagger docs


The boldness of the custom font with emoji on iOS changes when scrolling

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Run the code on iOS
Add a custom font (google_fonts or put the fonts in a folder), the problem is reproduced in either option
Create a CustomScrollView with SliverList.separated, preferably using the cupertino set (haven't tested in others).
Inside the element, place the text (I will attach the style below).

Text(
  visibleStatus.displayName(),
  strutStyle: const StrutStyle(forceStrutHeight: true),
  style: const TextStyle(fontWeight: FontWeight.bold, color: Color(0xFF131313)),
  textAlign: TextAlign.start
)

Expected results
The font is displayed correctly, with the same boldness as specified in the Text element.
Actual results
The font is displayed incorrectly, you can clearly see places where it is displayed poorly (too bold, letters lose their shape). Scrolling down the text normalizes the font, scrolling up the font loses its shape.
Code sample
Code sample
import 'package:flutter/cupertino.dart';
import 'package:google_fonts/google_fonts.dart';
import 'dart:math';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SizedBox(
        width: 600,
        child: CupertinoApp(
            theme: CupertinoThemeData(
                brightness: Brightness.light,
                textTheme: CupertinoTextThemeData(
                    textStyle: GoogleFonts.openSans()
                        .copyWith(color: CupertinoColors.black))),
            home: CupertinoTabScaffold(
                tabBar: CupertinoTabBar(
                  items: const <BottomNavigationBarItem>[
                    BottomNavigationBarItem(
                      icon: Icon(CupertinoIcons.home),
                    ),
                    BottomNavigationBarItem(
                      icon: Icon(CupertinoIcons.search),
                    ),
                    BottomNavigationBarItem(
                      icon: Icon(CupertinoIcons.add),
                    ),
                    BottomNavigationBarItem(
                      icon: Icon(CupertinoIcons.heart),
                    ),
                    BottomNavigationBarItem(
                      icon: Icon(CupertinoIcons.profile_circled),
                    ),
                  ],
                ),
                tabBuilder: (context, index) {
                  return MyWidget();
                })));
  }
}

const _chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890';
Random _rnd = Random();

String getRandomString(int length) => String.fromCharCodes(Iterable.generate(
    length, (_) => _chars.codeUnitAt(_rnd.nextInt(_chars.length))));

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: CustomScrollView(
        slivers: [
          SliverList.separated(
            itemCount: 50,
            separatorBuilder: (context, index) => const SizedBox(height: 20),
            itemBuilder: (context, index) {
              String emoji = index % 10 == 0 ? "with emoji⚡" : '';

              return Text("Text $emoji ${getRandomString(400)}");
            },
          )
        ],
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/1540715/92f85d47-ed13-4e0e-86fc-f89ffb54f8b6

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.10.6, on macOS 13.4.1 22F770820d darwin-arm64, locale ru-GE)
    • Flutter version 3.10.6 on channel stable at /Users/jwo1f/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (2 недели назад), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/jwo1f/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

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

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

[✓] Android Studio (version 2022.3)
    • Android Studio at /Users/jwo1f/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/223.8836.35.2231.10406996/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.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.79.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (4 available)
    • JWo1F (mobile)             • 00008030-001E25091110402E            • ios            • iOS 16.5.1 20F75
    • iPhone 14 Pro Max (mobile) • C3DA140B-67E6-40B9-95F0-2465470E262A • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 13.4.1 22F770820d darwin-arm64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 114.0.5735.248

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

! Doctor found issues in 1 category.

Here are screenshots of the bug:
With emoji on the screen:

Without emoji on screen:

This is indeed a duplicate of https://github.com/flutter/flutter/issues/126514.
Closing this since it has already been fixed on the master channel.


[File Explorer Add-ons] Support of tags

It would be awesome if File Explorer supports tags:

As a user, I want to assign different tags to a file or a folder. For easier handling, the ribbon bar shall provide some buttons so that I can assign some tags without a lot of effort.
As a user, I want to click on a file/folder and assign one or more tags to the file/folder.
As a user, I want to search for a tag or several tags on my computer to find files with the same tags from different folders.
As a user, I want to customize my tags.

Why is it necessary?
There are use cases in which a folder structure is not working. A good example is document management.
If the file explorer has such a feature, it will be a good document management system.

If you'd like to see this feature implemented, add a 👍 reaction to this post.

I use labels or tags sometimes too. Some file types support them, some don't. Unfortunately. For the ones that do support: pretty much all of your points are possible. Am I right when I interpret your request to make a new file/folder tagging system? Or build something on top of the existing, native structure?
I've seen a few file/folder organizing apps that deal with this being mentioned in other issues already. One example is Folder Marker (http://foldermarker.com/en).
Also related to #6157 and #150.

i would say this is is the #150 ask, no?

Yes, I was not aware of #150.


Updates to token_handler.blade.php to support Livewire 2.x

Currently there is no support for Livewire 2.x. This PR provides support for Livewire 2.x by incorporating the required headers into token_handler.blade.php.
This closes #1245

@unplugged216 awesome 👍
Authentication using token
How does Livewire authenticate these requests? By default Livewire uses the web middleware group but it also adds some extra middlewares to each request including the \Illuminate\Auth\Middleware\Authenticate::class one. But this middleware would per default use session based authentication and we do not have that 🤔
So am I missing something or would we need to somehow tell Livewire to authenticate using the session token provided as a bearer token?
Refresh of token
The session token is per default only valid for 60 seconds and it's recommended to refresh it every 2sec. Would we not need to implement a function that returns the session token if it's still valid or creates a new one if it has expired.
Otherwise any livewire request made 60 sec after the page has loaded would fail? 🤔

Great questions @bilfeldt !
Authentication
Livewire relies on whatever middleware you place inline. This can be configured in config/livewire.php for the middleware_group variable. You can modify it to include verify.shopify similar to this: 'middleware_group' => ['web','verify.shopify']. This is how I am currently doing it.
Refresh
Nothing changed here. As depicted in the code for the commit, this addition is inline with the other supported frameworks, vuejs and jQuery.
Commit
Hopefully that answered your questions.

Thanks so much for taking the time to explain @unplugged216 👍
Authentication
It makes total sense that Livewire is capable of authenticating the request if you add the verify.shopify middleware. I was not aware that the config middleware_group  can also accept single middlewares and not just a group (somewhat misleading naming there) but this is clearly what you should do according to the docs: https://laravel-livewire.com/docs/2.x/authorization#introduction
Refresh
The refreshing is implemented using the keepRetrievingToken method I can see.


Add override to BASE_URL

Hey I'm adding some code to allow to override the BASE_URL. This will help for some testing cases.

:+1:


experiment with 64-bit ubuntu OS for rpi4

See:

https://ubuntu.com/download/iot/raspberry-pi
https://wiki.ubuntu.com/EoanErmine/ReleaseNotes
https://www.reddit.com/r/raspberry_pi/comments/dj8whf/official_ubuntu_release_for_pi_4/

There is a pretty bad bug with USB devices not working with this release, so will hold-off until this is fixed.

The USB issue appears to be fixed in 19.10.1 as per this issue
Moreover,
https://wiki.ubuntu.com/ARM/RaspberryPi

Further releases can be found at http://cdimage.ubuntu.com/ubuntu/releases/. Please note that even though these images are labelled "+raspi3" they are compatible with the Raspberry Pi 2 and 3 (and 4 in the case of 19.10).

If wanting 64bit on RPi4 there's also https://github.com/rancher/os

There's also using 64bit on HypriotOS or Raspbian with using
/boot/config.txt
# Enable arm64
arm_64bit=1

and then Reboot
uname -a
Linux pik3s01 4.19.75-v8+ #1270 SMP PREEMPT Tue Sep 24 18:59:17 BST 2019 aarch64 GNU/Linux

Successfully installed ubuntu 19.10 for arm64 on pi4-c:
➜ k get node -o=wide
NAME    STATUS   ROLES    AGE   VERSION         INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION      CONTAINER-RUNTIME
pi4-c   Ready    <none>   68s   v1.16.3-k3s.2   <IP_ADDRESS>      <none>        Ubuntu 19.10                     5.3.0-1014-raspi2   containerd://1.3.0-k3s.4
pi4-b   Ready    worker   51d   v1.16.3-k3s.2   <IP_ADDRESS>     <none>        Raspbian GNU/Linux 10 (buster)   4.19.75-v7l+        containerd://1.3.0-k3s.4
k8s-4   Ready    worker   68d   v1.16.3-k3s.2   <IP_ADDRESS>     <none>        Ubuntu 19.10                     5.3.0-24-generic    containerd://1.3.0-k3s.4
pi4-a   Ready    worker   50d   v1.16.3-k3s.2   <IP_ADDRESS>     <none>        Raspbian GNU/Linux 10 (buster)   4.19.75-v7l+        containerd://1.3.0-k3s.4
k3s-2   Ready    worker   68d   v1.16.3-k3s.2   <IP_ADDRESS>     <none>        Ubuntu 19.10                     5.3.0-24-generic    containerd://1.3.0-k3s.4
k3s-1   Ready    worker   68d   v1.16.3-k3s.2   <IP_ADDRESS>     <none>        Ubuntu 19.10                     5.3.0-24-generic    containerd://1.3.0-k3s.4
k3s-0   Ready    master   68d   v1.16.3-k3s.2   <IP_ADDRESS>     <none>        Ubuntu 19.10                     5.3.0-24-generic    containerd://1.3.0-k3s.4

The following steps were required:

in /etc/netplan/50-cloud-init.yaml:

network:
    ethernets:
        eth0:
            dhcp4: false
            optional: true
    version: 2
    vlans:
        vlan.20:
            id: 20
            link: eth0
            dhcp4: true
            addresses: [<IP_ADDRESS>/24]

in /boot/firmware/nobtcmd.txt add cgroup_memory=1 cgroup_enable=memory:

net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc cgroup_memory=1 cgroup_enable=memory

in /etc/fstab, add the following for the USB drive:

UUID=7d7baa42-5cd4-4514-a91b-c37040a39fa9 /mnt/usb ext4 defaults 1 2

After observing for about a week, if all looks good will convert pi4-a and pi4-b to arm64.

Writing some docs for this, will close with that commit!

@onedr0p some documentation for provisioning headless arm64 pi4 nodes: https://github.com/billimek/homelab-infrastructure/blob/master/k3s/arm64_pi4_nodes.md

Looks good, thanks! I am hoping someone out there can make it a bit easier to provision the SD card like flash does. Tearing down and re-provisioning is not so quick with Ubuntu on RPi it seems :(

It looks like we're able to use flash!
Check it out.
tl;dr:
Pass in a user-data.yml to the flash command.
flash \
    --userdata setup/ubuntu/user-data.yml \
    --hostname my-awesome-hostname \
    ~/Downloads/ubuntu-19.10.1-preinstalled-server-arm64+raspi3.img

I was also able to get a ansible playbook for the other tedious things like installing Docker, setting cgroups and getting the RPi userland packages compiled which gives us access to the /opt/vc/bin/vcgencmd command.
devin@pik3s10:~$ uname -a
Linux pik3s10 5.3.0-1014-raspi2 #16-Ubuntu SMP Tue Nov 26 11:18:23 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux

devin@pik3s10:~$ sudo /opt/vc/bin/vcgencmd measure_temp
temp=57.0'C

This flash approach looks awesome - thank you for sharing it!


feat: byoc support

How it works:

Shells out to rpk, which must be installed locally, and forwards log messages to Terraform as needed.
New attributes azure_subscription_id and gcp_project_id on both cluster resources and the provider block. (Values are taken, in order of precedence, from the cluster resource, the provider block, or environment variables that match those used by the Azure/GCP Terraform providers themselves)
Renames the relevant value of cluster_type from cloud to byoc

Other pieces included:

Make sure not to orphan resources that fail during creation (this can happen more often with clusters since they take so long, it's easy to accidentally kill a process or get a timeout) by storing a skeleton state, usually just the ID, before they're fully created.
Requests cluster deletions immediately, without waiting for a ready state. The Cloud API doesn't require this and it slows things down if you change your mind when creating a cluster / deleting a partially-created-and-tainted cluster / doesn't work if it's a failed BYOC cluster.
Cleans up the retry code. Handles graceful termination when the context is cancelled (like when Ctrl-C / SIGINT is sent).

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: ligfx:x: gene-redpandaYou have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: ligfx:x: gene-redpandaYou have signed the CLA already but the status is still pending? Let us recheck it.

The Serverless test is failing on preprod because it's trying to spin up a cluster in a region that doesn't exist. The Cloud API should have its error message updated; right now it returns the unhelpful rpc error: code = NotFound desc =. Will update the testing region.

@ligfx thank you for the contribution. @gene-redpanda Could you help review and help get this over the line? Also @micheleRP we should chat with @ligfx about this change as I think it is very relevant to include in our docs, as it provides a BYOC flow and has some pre-requisites before applying via Terraform.


Fails on Scandinavian å character

In getHash(), the regexp is missing the 'å' character used in Scandinavian languages. This results in the å character is missing from the links in the TOC.
The existing:
hash = hash.replace(/[^a-z0-9\u4e00-\u9fa5äüö\-]/g, '');
Could instead be:
hash = hash.replace(/[^a-z0-9\u4e00-\u9fa5åäüö\-]/g, '');

I will fix it as soon as possible, thank you!


Help wanted: Test Colab notebook for training TFLite models

It's been a while since I've worked on this repository, but I'm diving back into it to make some improvements! Today I added a Google Colab notebook that allows you use Google's servers to train, convert, test, and export a TensorFlow Lite model. It makes training a custom TFLite detection model easy! It uses the TensorFlow Object Detection API, which provides high configurability and is best for training with large datasets.
I'm looking for help with testing the Colab notebook to confirm it works for all users. Have you been looking to train an SSD-MobileNet or EfficientDet model and and deploy it with TFLite? If so, can you try stepping through this notebook to see if it works for you and post in this thread on how it turned out? Let me know if you run in to any errors or have questions.
Here's a link to the Colab notebook: Train_TFLite2_Object_Detction_Model.ipynb

If you need a dataset to use, I uploaded my "bird, squirrel, raccoon" dataset of 900 images to Dropbox. I included a command to download this dataset into the Colab as one of the options in Step 3.
I'm planning to make a video that shows how to go through the notebook step-by-step, but it will be a few weeks until it's ready. For now, hopefully the instructions inside the Colab doc do a good enough job explaining.
Feedback I'm looking for:

Were you able to successfully train a ssd-mobilenet-v2 model, test it, and see detection results on the test images? (i.e. were you able to make it through Steps 1 - 7 without errors?)
If you ran into errors, what were they?
Was anything in the notebook confusing or unclear? Were there any points where you weren't sure what to do next?
Do you have any suggestions for improving the notebook?

Known issues:

The centernet-mobilenet model still doesn't work with TensorFlow Lite, I'm still trying to get that one figured out.
Accuracy drops significantly when quantizing the ssd-mobilenet-v2 model
efficentdet, centernet-mobilenet, and ssd-mobilenet-fpnlite models can't be quantized
In other words, quantization still isn't really working. But the unquantized TFLite models seem to work well!

Hi Edje
I have this error that says bird is not in the list. I downloaded your sample bird list

@elvenkim1 it looks like you deleted your previous comment which showed the error. Can you show me the error you're getting again?
Thanks!

I am able to run now and completed all steps without errors.
I tried with my own dataset and bumped into this error. Please advise.

also, there is missing on label on the image itself.

the video is not showing the label as well. I tested this on Raspberry Pi
python TFLite_detection_webcam.py --imgdir=fine_tuned_model_lite  --> should be python TFLite_detection_webcam.py --modeldir=fine_tuned_model_lite

Hi EJ
yes, it is working now 👍! You are right to say the model is not accurate..as I only trained for 500 steps.
It should be: thresh --> threshold
TFLite_detection_webcam.py --modeldir=fine_tuned_model_lite --threshold=0.01
Now may I know if you know how to add the accuracy, precision etc graph? I understand we need to have another terminal running alongside with the training process but this is not possible with Colab.

Awesome! Glad it's working. The TensorBoard window in Section 5 will show the model's training and validation loss as it trains. Unfortunately, it's tough to show a graph of precision/accuracy over time. I will add a section to calculate the model's mAP on the test images.

Awesome, thanks!
On Thu, 8 Sept 2022, 20:44 Evan, @.***> wrote:

Awesome! Glad it's working. The TensorBoard window in Section 5 will show
the model's training and validation loss as it trains. Unfortunately, it's
tough to show a graph of precision/accuracy over time. I will add a section
to calculate the model's mAP on the test images.
—
Reply to this email directly, view it on GitHub
https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi/issues/135#issuecomment-1240667953,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVGW7VKUPKNESNNDMDIUGALV5HNTPANCNFSM6AAAAAAQDTLAOM
.
You are receiving this because you were mentioned.Message ID:
<EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi/issues/135/1240667953
@github.com>

I went through the board and am now in the training stage up to which it worked beautifully. I have used your bird, squirrel, racoon dataset, as I happen to be interested in detecting the squirrels and birds in my garden :-D
A minor thing I have noticed:
"At this point, whether you used Option 1 or Option 2, you should be able to click the folder icon..." Should also include "Option 3"
I think it would be helpful to post some information on your reference dataset: it would be interesting to compare the obtained score with yours and maybe have some example video to try it out with in the end to have a confirmation that it worked. Maybe you could also provide the tflite file. (I don't know if its helpful for anybody, but as I am interested in exactly these objects at least I am very interested :-) )
In sum, this is an awesome project you have there, thank you very much

At step # "Next, we'll split the images into train, validation, and test sets. Here's what each set is used for:"
The python script that is executed uses the wrong directory, making the total image count 0. The script looks in /content/images/all, but the path of the images are /content/images/all/images (based on following the steps in the Colab notebook).

On Step #23 (? where are the step numbers anyway?)
"NotFoundError: /content/labelmap.pbtxt; No such file or directory"
This is because the file is named "labelmap.txt", not ".pbtxt"

After fixing the above, a new error is reported on Step # 23
ParseError: 1:1 : Message type "object_detection.protos.StringIntLabelMap" has no field named "class1".

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)

[/usr/local/lib/python3.7/dist-packages/object_detection/utils/label_map_util.py](https://localhost:8080/#) in load_labelmap(path)
    171       text_format.Merge(label_map_string, label_map)
    172     except text_format.ParseError:
--> 173       label_map.ParseFromString(label_map_string)
    174   _validate_label_map(label_map)
    175   return label_map

TypeError: a bytes-like object is required, not 'str'

At Step # 9 received this error:
Successfully converted xml to csv.
Successfully converted xml to csv.
Traceback (most recent call last):
  File "create_tfrecord.py", line 120, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/platform/app.py", line 36, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 308, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "create_tfrecord.py", line 98, in main
    tf_example = create_tf_example(group, path)
  File "create_tfrecord.py", line 46, in create_tf_example
    encoded_jpg = fid.read()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/lib/io/file_io.py", line 114, in read
    self._preread_check()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/lib/io/file_io.py", line 77, in _preread_check
    compat.path_to_str(self.__name), 1024 * 512)
tensorflow.python.framework.errors_impl.NotFoundError: /content/images/train/image-01.jpeg; No such file or directory
Traceback (most recent call last):
  File "create_tfrecord.py", line 120, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/platform/app.py", line 36, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 308, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "create_tfrecord.py", line 98, in main
    tf_example = create_tf_example(group, path)
  File "create_tfrecord.py", line 46, in create_tf_example
    encoded_jpg = fid.read()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/lib/io/file_io.py", line 114, in read
    self._preread_check()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/lib/io/file_io.py", line 77, in _preread_check
    compat.path_to_str(self.__name), 1024 * 512)
tensorflow.python.framework.errors_impl.NotFoundError: /content/images/validation/image-01.jpg; No such file or directory

There is no image-01.jpg in the uploaded images.zip folder. There is a image-001.jpg though, but that is located in /train

At Step # 9 received this error:
There is no image-01.jpg in the uploaded images.zip folder. There is a image-001.jpg though, but that is located in /train

Sorry, this issue is because the filenames inside the .xml from LabelImg are different than the actual filenames of the .jpg files.

On Step # 44 (run training), receive this error:
Traceback (most recent call last):
  File "/content/models/research/object_detection/model_main_tf2.py", line 31, in <module>
    from object_detection import model_lib_v2
  File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 31, in <module>
    from object_detection import model_lib
  File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib.py", line 35, in <module>
    from object_detection.builders import optimizer_builder
  File "/usr/local/lib/python3.7/dist-packages/object_detection/builders/optimizer_builder.py", line 25, in <module>
    from official.modeling.optimization import ema_optimizer
  File "/usr/local/lib/python3.7/dist-packages/official/modeling/optimization/__init__.py", line 23, in <module>
    from official.modeling.optimization.optimizer_factory import OptimizerFactory
  File "/usr/local/lib/python3.7/dist-packages/official/modeling/optimization/optimizer_factory.py", line 36, in <module>
    'adamw_experimental': tf.keras.optimizers.experimental.AdamW,
AttributeError: module 'tensorflow.keras.optimizers' has no attribute 'experimental'

On Step # 43 (loading tensorboard), a 403 Error is displayed:

I received the same error as @RobotGrrl

@RobotGrrl I got past this error by editing /usr/local/lib/python3.7/dist-packages/official/modeling/optimization/optimizer_factory.py and removing line 36,
'adamw_experimental': tf.keras.optimizers.experimental.AdamW,

Thanks for the help and feedback everyone!


Get Buildkite CI green

This is essentially means the REST API tests in Buildkite. It's OK to mark tests as xfailing, but it should be green to enable progress.

Done in #40, #41, #43, #44, #45, #46, #47, #48, #49, #50, #54, #55, #56, #57, #60, #61 and finally #65. Some failures are still mysterious - they are tracked in #62 and #63.


Add serial solvers to ACEFit

At least

[x] qr    (5a12f0b526501d28410f90b4e985eda8fdd2e6ed)
[x] rrqr    (5a12f0b526501d28410f90b4e985eda8fdd2e6ed)
[x] lsqr    (b3aac9eab8b0d0116f0b18d25e41f412e7c0177c)
[ ] sklearn-brr
[ ] sklearn-ard

Thanks - Also need to document the interface once we are happy with it

Progress towards sklearn-brr and sklearn-ard: 209e5ad6b6337d82d1d947882652c8284fb4842c


DNS resolution of memcached service fails

Following error is happening in flux installation inside minikube instance:
component=memcached err="error updating memcache servers: lookup 172-17-0-3.flux-memcached.flux.svc.cluster.local. on <IP_ADDRESS>:53: no such host"
This is a rather fresh installation and only few files have been applied. We update a single file and it tries to update that and it fails,

It looks like it either can't reach the DNS server, or doesn't get a result back. The hostname there is a bit odd -- should it include the hyphenated IP address like that? I would expect just flux-memcached.flux.svc.cluster.local.

I can reach the memcache container from the fluxd container by hitting the hostname passed to fluxd:
ps aux gives (truncated by me):
fluxd --ssh-keygen-dir=/var/fluxd/keygen --k8s-secret-name=flux-git-deploy --memcached-hostname=flux-memcached ...

Telnet session from the fluxd container gives (again truncated by me):
/home/flux # telnet flux-memcached 11211
stats
STAT pid 1
STAT uptime 63144
STAT time<PHONE_NUMBER>
...

So I would say the memcache server list is properly provisioned with the valid hostname and some "ghost" hostnames are trying to get in and are rejected because they can't resolve...

Yes, that sounds like a good diagnosis. Filling in some details, after looking in the Kubernetes docs re service discovery:
The way it's set up in the example deployment (and chart, and Weave Cloud config, ...) is that memcached has a headless service. According to https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#services (also see https://github.com/kubernetes/dns/blob/master/docs/specification.md), in DNS there will be:

An A record for memcached.namespace.svc.cluster.local with the IP of each ready pod;
An A record for .memcached.namespace.svc.cluster.local for each pod, where  is a generated name;
A SRV record which has the auto-generated hostname, and the port, for each pod in the service

With the arguments given in the example deployment of fluxd, it'll query for the SRV records, then the memcache client code (linked above) will query the IP of each host mentioned. So where it's failing is in that second bit -- it can't resolve some or all of the hosts it got from the SRV records.
But the question remains: how did those unresolveable endpoints get there in the first place? That I don't know :-(

BTW it is entirely fine to give the memcached service a clusterIP (i.e., don't set it to None), and not supply the memcached-service argument -- this will make it just resolve the service address, rather than go through SRV records etc.


conflict method name in Fluent

Try below snippet to generate class file.
@Buildable(editableEnabled = false, validationEnabled = true, generateBuilderPackage = true, builderPackage = "foo.bar")
public class Playground {

    List<String> word;
    List<Integer> words;

    public List<String> getWord() {
        return word;
    }

    public void setWord(List<String> word) {
        this.word = word;
    }

    public List<Integer> getWords() {
        return words;
    }

    public void setWords(List<Integer> words) {
        this.words = words;
    }
}

result:
error: method getWord(int) is already is already defined in interface PlaygroundFluent
error: method getFirstWord() is already is already defined in interface PlaygroundFluent

It seems a bug.

@kentchenjh: This is an a known issue, that I haven't managed to find time to solve. I'll do my best the next couple of weeks.


Add error handling to OTPilot

This PR builds on top of https://github.com/google/tock-on-titan/pull/183.
----------------------
`make prtest` summary:
----------------------
git rev-parse HEAD
5199c0083d9eb1df1820a40a308279dee415f74d
git status
On branch otpilot-error-handling
Your branch is up to date with 'origin/otpilot-error-handling'.

nothing to commit, working tree clean

I rebased this PR on top of #183 now. PTAL.


Add ability to specify types for lazily compiled function

According to http://numba.pydata.org/numba-doc/0.46.0/user/jit.html, Numba will eagerly compile a function if you specify the types explicitly, which it says is "useful if you want fine-grained control over types chosen by the compiler (for example, to use single-precision floats)".
It would be nice if the user could specify the type for a rarely used function that we don't want to be eagerly compiled. In my case, it's to specify that when the function is called it should use the indicated types, yet compiling it slows down import times for everyone, which is painful because most people don't use this function.
Can users have a way to specify types without triggering eager compilation?
(CC: @brendancol)

Have you tried using the cache parameter of @jit to improve import times? It worked remarkably well in my case.

This just bit me when using the library https://github.com/lmcinnes/umap which specifies type signature for some jit-ed functions. It adds ~11+ seconds to my startup when importing the library, and it hits several functions I do not use. This is unfortunate because there is a user waiting during the startup, and the computing node is set up on demand so caching is not easy (not to mention caching compilation of functions you don't care about is a waste).

The compile time issue in umap is caused by a dependency, pynndescent, that heavily uses pre-specified signatures. It would be great if one could set a config option to disable eager compilation, without disabling jit completely.

I'm also here because importing umap (https://github.com/lmcinnes/umap/issues/631) / pynndescent (https://github.com/lmcinnes/pynndescent/issues/111) causes a ~10 second delay which makes it impossible to use these modules in a command line application, for example.
This does not appear to be the fault of umap/pynndescent, they have added aggressive caching but the load time with warm cache is still ~4 seconds. Looking at the numba documentation it seems there is nothing else they can do while still using typed functions.
My suggestion would be to add a NUMBA_DISABLE_EAGER_JIT environment variable which defers compilation, cache lookup, etc of all functions until their first call.
More generally I think there should be a way to have minimal penalty for having numba decorated functions if they are never called. This is especially important for third party modules which might have a lot of numba functions even though a given application might only call very few of them.

Maybe it is related with this discussion I opened ages ago, that nobody answered: https://numba.discourse.group/t/gufunc-with-cache-true-and-parallel-mode-is-still-slow/1034

Interesting, are you suggesting that using parallel might somehow disable caching? I did a profile of the pynndescent issue and the main delay seems to be in numba's compiler_machinery.py.

I am not sure if I remember well, but I think that if you removed the cache parameter it was even slower. So it was caching "something", but still wasn't as fast as without parallel.

This can be annoying even with cache=True if you have a large suite of functions. Currently, the workaround I'm using is "hiding" the implementation in a separate python file and doing local imports in the "porcelain" interface that imports the njitted function, so that the compilation happens only on use. However, having to do this having to do this is not very ergonomic.


Relay: Add sentry logging for failed graphql-requests

closes #1479

@RobinCsl finally got the CI happy
🚀


How run Patiobar on startup

Hi Kyle - awesome work on Patiobar! I was going to create my own Node web server interface to pianobar and then discovered your excellent work!
I have a question.  I'm seeking to start up Patiobar on boot so I can play music on my RPi3 headlessly in the living room. Can't seem to figure out how to make it start on boot. Trying to add to /etc/rc.local.
Here's my startup script (/home/pi/Patiobar/startup.sh):
#!/bin/bash
screen -S pianobar -d -m pianobar

# experimented with this too
# sudo -iu pi /usr/bin/screen -S pianobar -d -m bash -c 'pianobar; exec bash'

node index.js

It works great if I boot and then run startup.sh from the terminal.  There may be some issues with using screen on startup.
I could possibly host a simple netcat server to receive a command via UDP to start it up, but it would be great if it would start on boot.  I could then have dedicated microSD card as a Patiobar music system.

After a number of additional iterations, I was able to get it working.  I created a file called /home/pi/Patiobar/startup.sh with the following contents:
#!/bin/bash

# Sleep for a few seconds to enable network to stabilize
sleep 15

screen -S pianobar -d -m bash -c 'pianobar'

cd /home/pi/Patiobar
node index.js

... and added a line near the bottom of /etc/rc.local (just above exit 0) like this:
sudo -iu pi /home/pi/Patiobar/startup.sh &

# this next line was already there
exit 0

Thanks!

Hello Kyle...
I have your Patiobar running on top of pianobar, and I am really really happy with this setup.
Installed on a new Ras Pi 3 that I dedicated to the "Remote Pandora" task and I had a number of items that were not already installed that caused problems,  The main culprit was npm needed to be installed.  Once I got past that, I used npm to install the items that it calls in the index.js.
Thank you for a wonderful program!  Also thanks to thisdavej for his startup instructions, have that working wonderfully, too.
Happy Camper in Colorado Springs!
Cheers!


⚠ Bofrost.es has degraded performance

In 9a9bf19, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1475 ms

Resolved: Bofrost.es performance has improved in 92d9726 after 6 minutes.


Delete both valid and invalid basket lines marked for deletion

Currently, if a valid basket line is marked for deletion, any other
invalid basket lines on the formset prevent it from being deleted.

Fixes #2791.

@sasha0 how does this look to you? We've been running this fix in production for a few days.

Hm, looks good in general, but needs mentioning in the docs about this behaviour.

Thanks - we will mention the fix in the release notes.


add_publication improvements

Docs: As discovered by @jaybee84, example for add_publication is not accurate (missing email parameter).
Error handling: catch non-conformant dois w/regex and report error
Imports: roadoi is not recognized as a dependency until time to run this function...

Add in pubmed or another fall back in case metadata cannot be retrieved from unpaywall, as happened with 10.1007/s00401-021-02276-5


mDNSResponder doesn't support unicast DNS-SD on Linux

I'm trying to get unicast DNS-SD set up (thanks for the examples on the wiki, Gareth) and have run into an ugly tight loop in nmos-cpp-node. If I run the command
nmos-cpp-node '{"logging_level":-2,  "domain": "undefined.local"}'

I get hammered with error messages like

2019-01-02 20:55:04.162: warning:<PHONE_NUMBER>49088: Did not discover a suitable Registration API via DNS-SD
2019-01-02 20:55:04.162: info:<PHONE_NUMBER>49088: Attempting discovery of a Registration API
2019-01-02 20:55:04.162: error:<PHONE_NUMBER>90720: DNSServiceBrowse reported error: -65540
2019-01-02 20:55:04.162: warning:<PHONE_NUMBER>49088: Did not discover a suitable Registration API via DNS-SD
2019-01-02 20:55:04.162: info:<PHONE_NUMBER>49088: Attempting discovery of a Registration API
2019-01-02 20:55:04.162: error:<PHONE_NUMBER>15616: DNSServiceBrowse reported error: -65540

Built on Linux using gcc 6.2 and glibc < 2.18 and running mDNSresponder 878.70.2.

Thanks, I'll investigate.

Hello,
I applied the patch for mDNSResponder but couldn't make nmos-cpp-node use DNS-SD.

2019-05-21 21:55:05.501: info:<PHONE_NUMBER>32000: Starting nmos-cpp node
2019-05-21 21:55:05.502: info:<PHONE_NUMBER>32000: Process ID: 8559
2019-05-21 21:55:05.502: info:<PHONE_NUMBER>32000: Initial settings: {"connection_port":1080,"domain":"elslabmedia.cbcrc.ca","don't worry":"about trailing commas","host_address":"<IP_ADDRESS>","host_addresses":["<IP_ADDRESS>","<IP_ADDRESS>","<IP_ADDRESS>"],"http_port":1080,"label":"Virtual node 001","logging_level":-40,"logging_port":1080,"node_port":1080,"registration_port":1080,"seed_id":"74acc06d-a13e-4b7c-b124-89e2addc3a55","settings_port":1080}
2019-05-21 21:55:05.502: info:<PHONE_NUMBER>32000: Configuring nmos-cpp node with its primary Node API at: <IP_ADDRESS>:1080
2019-05-21 21:55:05.539: info:<PHONE_NUMBER>32000: Preparing for connections
2019-05-21 21:55:05.540: info:<PHONE_NUMBER>32000: Ready for connections
2019-05-21 21:55:05.540: info:<PHONE_NUMBER>24384: Registered advertisement for: nmos-cpp_node_192-168-39-88:1080._nmos-node._tcp.elslabmedia.cbcrc.ca
2019-05-21 21:55:05.544: more info:<PHONE_NUMBER>18240: Trying Registration API discovery for about 1.000 seconds
2019-05-21 21:55:05.544: info:<PHONE_NUMBER>18240: Attempting discovery of a Registration API
2019-05-21 21:55:05.544: info:<PHONE_NUMBER>20896: Updated model with node: 4255f4f3-657a-587e-b13b-79819f7f4790
2019-05-21 21:55:05.544: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:05.544: more info:<PHONE_NUMBER>46272: DNSServiceBrowse for regtype: _nmos-registration._tcp domain: elslabmedia.cbcrc.ca on interface: 0
2019-05-21 21:55:05.544: more info:<PHONE_NUMBER>38976: DNSServiceBrowse for regtype: _nmos-register._tcp domain: elslabmedia.cbcrc.ca on interface: 0
2019-05-21 21:55:05.554: info:<PHONE_NUMBER>20896: Updated model with device: b82bd055-4a9d-56cf-94e2-29312fe05bb4
2019-05-21 21:55:05.554: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:05.565: info:<PHONE_NUMBER>20896: Updated model with source: 5db77a12-e8f0-5048-88e4-8c8a0ad7bdba
2019-05-21 21:55:05.565: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:05.575: info:<PHONE_NUMBER>20896: Updated model with flow: 58bcefde-895b-51c7-adfc-de5acc6f7cd3
2019-05-21 21:55:05.575: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:05.585: info:<PHONE_NUMBER>20896: Updated model with sender: caee2369-4fb3-58c5-a3e6-df67248e510e
2019-05-21 21:55:05.586: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:05.596: info:<PHONE_NUMBER>20896: Updated model with sender: caee2369-4fb3-58c5-a3e6-df67248e510e
2019-05-21 21:55:05.596: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:05.606: info:<PHONE_NUMBER>20896: Updated model with receiver: 61faeb89-18b7-55cf-b0a9-acae14cadbd8
2019-05-21 21:55:05.607: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:05.617: info:<PHONE_NUMBER>20896: Updated model with receiver: 61faeb89-18b7-55cf-b0a9-acae14cadbd8
2019-05-21 21:55:05.617: too much info:<PHONE_NUMBER>20896: Notifying node behaviour thread
2019-05-21 21:55:06.544: more info:<PHONE_NUMBER>46272: After DNSServiceBrowse, DNSServiceProcessResult timed out or was cancelled
2019-05-21 21:55:06.545: more info:<PHONE_NUMBER>38976: After DNSServiceBrowse, DNSServiceProcessResult timed out or was cancelled
2019-05-21 21:55:06.545: warning:<PHONE_NUMBER>18240: Did not discover a suitable Registration API via DNS-SD
2019-05-21 21:55:06.545: info:<PHONE_NUMBER>18240: Adopting peer-to-peer operation

We try to keep as close as possible to the AMWA documentation with very similar dnsmasq config. The DNS server is tested with dig and another NMOS client.
But this is a bit strange:

DNSServiceBrowse for regtype: _nmos-registration._tcp

mDNSResponder shows an error:

May 21 17:57:11 nmos-desktop mDNSResponder[8556]: Bad service type in ._nmos-registration._tcp.elslabmedia.cbcrc.ca. Application protocol name must be underscore plus 1-15 characters. See http://www.dns-sd.org/ServiceTypes.html

Looking closer at the mDNSResponder code base, it turns out:
name->c=""
type->c="_nmos-registration._tcp"  (triggers the error msg)
domain="elslabmedia.cbcrc.ca"

I applied the patch for mDNSResponder but couldn't make nmos-cpp-node use DNS-SD.

I think I actually forgot to publish the patch to make unicast DNS-SD work on Linux... I'll look back for it!

But this is a bit strange:

DNSServiceBrowse for regtype: _nmos-registration._tcp

mDNSResponder shows an error:

That could suggest mDNSResponder hasn't been patched. However, the important thing is that if you're using IS-04 v1.3, that error doesn't matter because the _nmos-register._tcp service type solves the problem by being shorter.


More fixes and enhancements

Some more fixes and enhancements:

Split number parsing to be able to parse the arc command parameters.
Consume the arc command and set the correct end point.
Handle to correctly set the start point of short hand bezier commands.
Handle a tag closed by "/>"

Great additions. And thank you for making the world's most-nested IF-THEN yet another level deeper.

I write that on my gravestone ;-)

BTW, I couldn't find anything in the SVG spec for the notion, that negative coordinates imply relative coordinates. How did that come about?

You're right: re-reading the spec at https://www.w3.org/TR/SVGTiny12/paths.html#PathDataLinetoCommands I don't see that specified. Maybe it was an incorrect assumption on my part. Or, I found SVG files that used a negative after a capital H or V and assumed. I don't remember now.

In the "Bugs and things" section of the README, is it safe to remove "I kind of wanted to add the "a"rc path command..." and "the program prints the image upside down on the plotter"?
Have you tested the Atari800MacX emulator's plotter emulation since fixing the plotter output?

Actually, I haven't implemented arc yet, other than consuming it and setting the end point as next point, but I'm planning to.
The upside down problem was tested on an actual 1020 ;-), so that remark can be deleted.
Concerning relative and negative coordinates, I already removed that, but left the comments.
There are a few features, I'm thinking about, like:

Line clipping, e.g. with Cohen–Sutherland algorithm. With clipping, lines crossing the view window would be drawn.
Automatic scaling via the width/height resp. viewBox parameters in the svg tag.
Coloring the plotting output according to the color infos in the draw commands. Pens could be selected to be the nearest one to sepcified color, e.g. dark orange becomes red and so on.
Since text is possible in graphics mode on a 1020, we could add this, too.

What do you think?

What do I think? Go for it!

Ok, just wanted to be sure.
I created some issues to track features.


Describe a pipeline more fully

Answer the question, "What is a pipeline" - on the current definition.
Give examples of the components, describe how the components chain together to form a workflow, and explain how pipelines support portability.

/assign
/area docs
/area pipelines
/priority p0


feat: prismAgent multi-tenancy capability ATL-4091. Signed-off-by: Yurii Shynbuiev<EMAIL_ADDRESS>

Overview
Merge the long-term multi-tenancy branch to the main branch
Fixes ATL-4091
Checklist
My PR contains...

[ ] No code changes (changes to documentation, CI, metadata, etc.)
[ ] Bug fixes (non-breaking change which fixes an issue)
[ ] Improvements (misc. changes to existing features)
[x] Features (non-breaking change which adds functionality)

My changes...

[x] are breaking changes
[ ] are not breaking changes
[ ] If yes to above: I have updated the documentation accordingly

Documentation

[ ] My changes do not require a change to the project documentation
[x] My changes require a change to the project documentation
[x] If yes to above: I have updated the documentation accordingly

Tests

[ ] My changes can not or do not need to be tested
[x] My changes can and should be tested by unit and/or integration tests
[x] If yes to above: I have added tests to cover my changes
[ ] If yes to above: I have taken care to cover edge cases in my tests

@yshyn-iohk , something is wrong with the sign-off, it's not added correctly. You should add it with -s option when you committing.

@antonbaliasnikov, this PR contains a lot of commits without the sign-off suffix.
It will be squashed, and the sign-off will be added together with co-authors .


chat.py example not working

Description of the bug:
When I execute the example of the "chat.py" code, only the first execution of the command "response = chat.send_message(...)" works.
Every further execution of the "send_message" function in the multi-turn chat fails.
Debug output attached.
debug.txt

Hi @wwparzival
It seems a Content object is being passed instead of the expected input type in the send_message method. I recommend following this doc.
If you still face issues, please provide your code snippet to replicate the same.

Hi @gmKeshari,
I used the same code as in the example of the "chat.py".
model = genai.GenerativeModel("gemini-1.5-flash") chat = model.start_chat(     history=[         {"role": "user", "parts": "Hello"},         {"role": "model", "parts": "Great to meet you. What would you like to know?"},     ] ) response = chat.send_message("I have 2 dogs in my house.") print(response.text) response = chat.send_message("How many paws are in my house?") print(response.text)
When I execute this code, I get the error output as already posted in the previous message.

Hi @wwparzival,
The same code is working fine for me. Can you follow this gist file
Try upgrading the SDK or temporarily switching to another model.
Let see if you are still facing the same issue.

Hi @gmKeshari,
Sorry for the late response.
The combination of "Python 3.10.12" and "pip 24.1.2" works for me too (like in the Colab-sheet).
"GenAI" and "wheels" versions stayed the same.
My original setup with "Python 3.10.13" and "pip 24.3.1" didn't work ...
Thanks for your help.


补充黑名单

https://x.com/sexmovie326273/status/1770762408979521714?s=20
https://x.com/ShakelaSto86769/status/1770748489791586545?s=20
https://x.com/montY_Laro/status/1770772531269509572?s=20
https://x.com/Kongjie126/status/1770807892641194466?s=20
https://x.com/duoduo7234/status/1770810629101584518?s=20
https://x.com/HMBB_1919/status/1770778256448393321?s=20
https://x.com/qianqiansiyu123/status/1770794613051142267?s=20
https://x.com/hjluanlun?s=20
https://x.com/51crdm?s=20
https://x.com/91yspd?s=20
https://x.com/xiaoyangwa01?s=20
https://x.com/SBThapa74942780?s=20
https://x.com/Navrat_121?s=20
https://x.com/ChinaChengwu?s=20
https://x.com/stepmother55?s=21&t=TomtGWZqRmCqao6-XVRUXQ
https://x.com/shanghai4321?s=21&t=TomtGWZqRmCqao6-XVRUXQhttps://x.com/momvsdad_?s=21&t=TomtGWZqRmCqao6-XVRUXQ

done, thanks


eks-aws - this thing is not working!

I have been trying all day to get the apply to work, it gives error like 'this clsuter_name is not defined' or that not defined
then it does not destroy the resources properly also!

dule.cluster.module.iam_assumable_role_loki.aws_iam_role_policy_attachment.custom[0]: Creation complete after 2s [id=loki-my-cluster-2022092206261193210000000f]
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_eip.default[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route.default[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route_table_association.private[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph
│ builder; please report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route_table.private[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route_table_association.public[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph
│ builder; please report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.eks_cluster.aws_kms_key.cluster[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_subnet.private[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_network_acl.private[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_subnet.public[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_subnet.private[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route.public[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_subnet.public[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_nat_gateway.default[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_network_acl.public[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_eip.default[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.vpc.aws_vpc.default[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_nat_gateway.default[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route_table.private[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route.default[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please report
│ it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.vpc.aws_internet_gateway.default[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.vpc.aws_default_security_group.default[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder;
│ please report it!
  1 resource "aws_lb" "this" {
  2   count = var.create_lb ? 1 : 0
  3
  4   name        = var.name
  5   name_prefix = var.name_prefix
  6
  7   load_balancer_type = var.load_balancer_type
  8   internal           = var.internal
  9   security_groups    = var.security_groups
 10   subnets            = var.subnets
 11
 12   idle_timeout                     = var.idle_timeout
 13   enable_cross_zone_load_balancing = var.enable_cross_zone_load_balancing
 14   enable_deletion_protection       = var.enable_deletion_protection
 15   enable_http2                     = var.enable_http2
 16   ip_address_type                  = var.ip_address_type
 17   drop_invalid_header_fields       = var.drop_invalid_header_fields
 18
 19   # See notes in README (ref: https://github.com/terraform-providers/terraform-provider-aws/issues/7987)
 20   dynamic "access_logs" {
 21     for_each = length(keys(var.access_logs)) == 0 ? [] : [var.access_logs]
 22
 23     content {
 24       enabled = lookup(access_logs.value, "enabled", lookup(access_logs.value, "bucket", null) != null)
 25       bucket  = lookup(access_logs.value, "bucket", null)
 26       prefix  = lookup(access_logs.value, "prefix", null)
 27     }
 28   }
 29
 30   dynamic "subnet_mapping" {
 31     for_each = var.subnet_mapping
 32
/ava
124     for index, group in var.target_groups : [
125       for k, targets in group : {
126         for target_key, target in targets : join(".", [index, target_key]) => merge({ tg_index = index }, target)
127       }
128       if k == "targets"
129     ]
130   ])...)
131 }
132
133 resource "aws_lb_target_group_attachment" "this" {
134   for_each = var.create_lb && local.target_group_attachments != null ? local.target_group_attachments : {}
135
136   target_group_arn  = aws_lb_target_group.main[each.value.tg_index].arn
137   target_id         = each.value.target_id
138   port              = lookup(each.value, "port", null)
139   availability_zone = lookup(each.value, "availability_zone", null)
140 }
141
142 resource "aws_lb_listener_rule" "https_listener_rule" {
143   count = var.create_lb ? length(var.https_listener_rules) : 0
144
145   listener_arn = aws_lb_listener.frontend_https[lookup(var.https_listener_rules[count.index], "https_listener_index", count.index)].arn
146   priority     = lookup(var.https_listener_rules[count.index], "priority", null)
147
148   # authenticate-cognito actions
149   dynamic "action" {
150     for_each = [
151       for action_rule in var.https_listener_rules[count.index].actions :
152       action_rule
153       if action_rule.type == "authenticate-cognito"
154     ]
155
/ava
420           query       = lookup(redirect.value, "query", null)
421           status_code = redirect.value["status_code"]
422         }
423       }
424
425       dynamic "fixed_response" {
426         for_each = length(keys(lookup(default_action.value, "fixed_response", {}))) == 0 ? [] : [lookup(default_action.value, "fixed_response", {})]
427
428         content {
429           content_type = fixed_response.value["content_type"]
430           message_body = lookup(fixed_response.value, "message_body", null)
431           status_code  = lookup(fixed_response.value, "status_code", null)
432         }
433       }
434
435       # Authentication actions only available with HTTPS listeners
436       dynamic "authenticate_cognito" {
437         for_each = length(keys(lookup(default_action.value, "authenticate_cognito", {}))) == 0 ? [] : [lookup(default_action.value, "authenticate_cognito", {})]
438
439         content {
440           # Max 10 extra params
441           authentication_request_extra_params = lookup(authenticate_cognito.value, "authentication_request_extra_params", null)
442           on_unauthenticated_request          = lookup(authenticate_cognito.value, "on_authenticated_request", null)
443           scope                               = lookup(authenticate_cognito.value, "scope", null)
444           session_cookie_name                 = lookup(authenticate_cognito.value, "session_cookie_name", null)
445           session_timeout                     = lookup(authenticate_cognito.value, "session_timeout", null)
446           user_pool_arn                       = authenticate_cognito.value["user_pool_arn"]
447           user_pool_client_id                 = authenticate_cognito.value["user_pool_client_id"]
448           user_pool_domain                    = authenticate_cognito.value["user_pool_domain"]
449         }
450       }
451
search hit BOTTOM, continuing at TOP
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route_table_association.public[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph
│ builder; please report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route_table_association.private[1] has no configuration attached to it. This suggests a bug in Terraform's apply graph
│ builder; please report it!
╵
╷
│ Error: Resource node has no configuration attached
│
│ The graph node for module.subnets.aws_route_table.public[0] has no configuration attached to it. This suggests a bug in Terraform's apply graph builder; please
│ report it!
╵
╷
│ Error: error creating network Load Balancer: InvalidConfigurationRequest: A load balancer cannot be attached to multiple subnets in the same Availability Zone
│ 	status code: 400, request id: 366a9b3a-f239-49e5-ab3d-0e3e8a8bb7f4
│
│   with module.cluster.module.nlb.aws_lb.this[0],
│   on .terraform/modules/cluster.nlb/main.tf line 1, in resource "aws_lb" "this":
│    1: resource "aws_lb" "this" {
│
╵
Releasing state lock. This may take a few moments...
make: *** [apply] Error 1

92206261171340000000d]
module.cluster.module.iam_assumable_role_loki.aws_iam_role_policy_attachment.custom[0]: Refreshing state... [id=loki-my-cluster-2022092206261193210000000f]
╷
│ Error: Unsupported attribute
│
│   on .terraform/modules/cluster/modules/eks/aws/main.tf line 62, in locals:
│   62:   ingress_worker_group = merge(var.worker_groups.0, { target_group_arns = concat(module.nlb.target_group_arns, module.nlb_private.target_group_arns) })
│     ├────────────────
│     │ module.nlb is object with 3 attributes
│
│ This object does not have an attribute named "target_group_arns".
╵
Releasing state lock. This may take a few moments...

@jbarascut can u take a look?

Can you provide code example that lead to this problem ?

I'll close this issue because of inactivity.

instead of closing this try to create a simple documentation to help people use this
this thing does not wrk

The documentation is currently in progress. We'll try providing some working examples, ASAP.
I can point you to the current test examples on the v1 branch, but note this branch will become the main one and currently the examples are not updated to the latest module versions, so they probably won't work.
Here you can find some examples: https://github.com/camptocamp/devops-stack/tree/v1/tests/ (the KinD and EKS branch would be the ones that are more mature).


Problem parsing if statements containing shortcut options

When using if statements to determine whether dialogue options should be presented, the normal options method works as expected, displaying all options that meet their conditions, but the same implemented with shortcut options displays only the first shortcut option to meet it's condition.
e.g.
<<if $foundClues == true>>
[[Place discovered clues on the board|MurderBoard.AddClues]]
<<endif>>
<<if $foundSuspects == true>>
[[Place known suspects on the board|MurderBoard.AddSuspects]]
<<endif>>
<<if $foundClues == true and $foundSuspects == true>>
[[I should try to tie some of these clues to a suspect|MurderBoard.AddCluesToSuspects]]
<<endif>>
[[Leave the board|MurderBoard.Exit]]

This displays all options which have met their conditions.
<<if $foundClues == true>>
->Place discovered clues on the board
    [[MurderBoard.AddClues]]
<<endif>>
<<if $foundSuspects == true>>
->Place known suspects on the board
    [[MurderBoard.AddSuspects]]
<<endif>>
<<if $foundClues == true and $foundSuspects == true>>
->I should try to tie some of these clues to a suspect
    [[MurderBoard.AddCluesToSuspects]]
<<endif>>
->Leave the board
    [[MurderBoard.Exit]]

This displays only the first option which meets it's condition.

If you want to conditionally show shortcut options, use this syntax:
->Place discovered clues on the board <<if $foundClues == true>>
    [[MurderBoard.AddClues]]
->Place known suspects on the board <<if $foundSuspects == true>>
    [[MurderBoard.AddSuspects]]
->I should try to tie some of these clues to a suspect <<if $foundClues == true and $foundSuspects == true>>
    [[MurderBoard.AddCluesToSuspects]]
->Leave the board
    [[MurderBoard.Exit]]

(This is actually in the documentation, but the docs really do need some love.)
To fully explain why you're getting this behaviour: each of those three shortcut options is being parsed as an independent group that contains a single option, because the parser doesn't see any further -> options after the first one. In your second example, the program goes through each of the if statements, encountering shortcut option groups, and presenting them.
This is different to the [[ options, which work on the model of presenting all of the options that have been encountered when the program reaches the end of the current node, along the same style as Twine. So, in your first example, the program goes through each of the if statements, collecting options, finally adding the 'Leave the board' option. It then hits the end of the node, and presents all of the options it found.