Merged defaults fixes: defaults work with $ref/allOf and with string enum member renaming

This PR merges #1843 and #1851.
It allows default values to work generally with UseAllOfToExtendReferenceSchemas, and allows string enum defaults to respect all active enum member name transforms (e.g. camel casing, attribute-based enum member renaming) in all relevant (i.e. non-$ref) cases, namely when using either of UseInlineDefinitionsForEnums or UseAllOfToExtendReferenceSchemas.
Using UseInlineDefinitionsForEnums, v5 already allows
{
  "name": "matchType",
  "in": "query",
  "schema": {
    "enum": [
      "begin",
      "any",
      "beginFirst"
    ],
    "type": "string",
    "description": "Allowed match types",
    "default": "BeginFirst"
  }
}

e.g. when referencing an enum with values Begin, Any and BeginFirst in C#, with camel casing turned on: the string enum default is present as of v5, which is great, but is only fully correct if there is no enum member name remapping, e.g. in the above it has not been camel cased, unlike the enum members values which have.
The intention of #1843 is to change this to
{
  "name": "matchType",
  "in": "query",
  "schema": {
    "enum": [
      "begin",
      "any",
      "beginFirst"
    ],
    "type": "string",
    "description": "Allowed match types",
    "default": "beginFirst"
  }
}

where the camel case setting is now respected, and in general with UseInlineDefinitionsForEnums string enum default values now fully support all enum member name remapping.
#1851 additionally allows defaults to work when using UseAllOfToExtendReferenceSchemas. When merged with #1843, we can now alternatively choose to get:
{
 "name": "matchType",
 "in": "query",
 "schema": {
   "allOf": [
     {
       "$ref": "#/components/schemas/AutocompleteMatchType"
     }
   ],
   "description": "Allowed match types",
   "default": "beginFirst"
  }
}

i.e. a string enum default value in an allOf/$ref schema, which correctly respects all enum member name mapping.

While making this merge I realised that PropertyInfo is another source of default values, and required an additional one line change to also now support correct enum member re-mapping, plus tests for this added too: 5af62d2 & 10a6b5f .

I've just force pushed from 5af62d2 to a7ebfdb and back again because AppVeyor failed to pull from GitHub the first time, for whatever reason, and listed the build as failed! :-/ Pushing it back and forwards again has made it retry and succeed.

I've update this merge of both separate PRs again to confirm it all works.
Also NB that as before there are tests here (i.e. only in this merged PR, because they have to be) which confirm that both PRs work together nicely.
I am noticing (as I'm sure you will!) that SchemaRepository and DataContract are getting passed around together a lot - which is probably saying something! But not necessarily anything that needs to be addressed right now.


Performance issue: Opening a file takes a longer time for Bigger books

After the TSV7 changes, it is found that opening a TN file takes longer than usual. The time taken for a file to load depends on how big the book/file is. For Ex Mathew takes 6.9 sec whereas Mark takes 4.6 secs to load.

From Benjamin: Time for various actions in tccreate in Psalms. I have my usual: 2 copies of tcore (ult/ust), logos, browser with a few tabs (some google sheets for TN templates and Christopher's Psalms feedback, GL man, and Psalms Layer-by-layer project, zulip), spotify, telegram. Using about 62% of 16gb RAM.
Change a note from 4:1 to 4:front and then navigate to Note field: 34 secs, 1 browser wait or kill tab question, chose wait
Pasted Hebrew text into Quote field, clicked to Occurrence field: 15 secs, 1 browser wait or kill tab question, chose wait
Changed occurrence to 1, moved to note, field: 4 secs
Edited Note field, changed to SupportReference field: 16 secs, 1 browser wait or kill tab question, ignored.

After running git bisect between 1.7.1 which work fast and 1.8 the first version to start running slowly I found that 0d668e737e2713a6cb16e4061352f4a645f99658 is the first bad commit.

I traced the changes in the versions to these two PRs.
https://github.com/unfoldingWord/datatable-translatable/pull/117/files
https://github.com/unfoldingWord/datatable-translatable/pull/119/files
Probably the problem is with the property passed for the font family. I'll see how it can be improved.

Looks good in translationCore Create - v1.9.1 build 215-30d207e


[fix] prerendered endpoint callable from non-prerendered server load

Fixes #8341
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

not even going to try and understand why this works/how it was broken before, but i'm glad the fix is so simple

Good point; this needs a little explanation:
state.initiator wasn't set previously when responding to a __data.json call. If that __data.json call then leads to another internal call (as happened in the bug report), respond run again (through the internal fetch). It then searches for a manifest entry of that server endpoint, doesn't find one, and throws an error if state.initiator isn't set. state.initiator being set doesn't throw the error and instead proceeds to do a native fetch, which is then able to load the prerendered server endpoint.


Identify modal: make some settings "sticky" for users

See https://forum.inaturalist.org/t/put-visually-similar-as-the-default-in-the-suggestions-tab-of-the-identify-panel-for-unidentified-observations/52918/
It would be great to keep some of the Identify modal settings "sticky" for a user. For example, the Identify page needs to be refreshed every 24 hours, and many people have multiple bookmarks for different identifying tasks. Each time you refresh the Identify page, or go to a bookmarked page, the Lock zoom level setting in the Info tab, as well as the "Sort by" and "Source" settings in the Suggestions tab, are reset to default. I propose we make those three things sticky for a user, meaning that whenever they load Identify, those settings remain as they were the last time the user changed them, similar to how map tile preferences work. "Taxon" and "Place" in Suggestions should still remain observation-dependent.
I don't think we should apply this to the Compare modal in Observation Detail, though.

Working well, thanks!


Remove unused names

Removes unused names now reported as warnings as of PureScript 0.14.1.

It would be better if they were not removed, but _ prefix was added
Just a note that this would work too iirc


Infinite loop when setting a limit over 150 images

Hi,
I just ran in a bug,  it seems that the scrapper goes crazy when changing pages.
I added some logs and monitored the results and it seems the results array in the while loop is doing something like :

0 results
50 results
100 results
150 results
100 results
150 results
etc...
The limit is never reached and the while is never exited... Maybe a bug or a missing test (if the limit is over the count of avaibable results?)

let SEARCH_SCRAPPER = new Scraper({     puppeteer: {         headless: true,         args: ['--no-sandbox', '--disable-setuid-sandbox']     }  });
 let res = await SEARCH_SCRAPPER.scrape(patternSearch, 250);

I can't seem to reproduce it. Can you see what happens visually with the option headless: false? I check for the button "Looks like you've reached the end" to see if the end is reached. I suspect that it might be a caused by an internationalization difference.

Unfortunately, i'm using the scrapper in a node js REST API on a remote debian server.  So i can't have a visual verification... I'll try to reproduce the problem later!

Hi,
I get the same issue when I try to get 800 images, the script try too scroll down to get more results but google wont give more, so the script is stuck .

Hmm it might be a better idea to just check wether we were able to fetch more results. I think it is flaky because of localization.
So I created this PR: https://github.com/pevers/images-scraper/pull/48/files
Hopefully this fixes it for you.

Thanks, for me it's working well now  !

I can also confirm that trying to get larger number of images fails. Running the example from README with limit set to 1000, the results always contains a smaller number of items (300, 400, depending on the run).

I'm closing this one. If anyone is still having issues please let me know.


[CupertinoDatePicker] date picker displays out of range date edge case

Steps to Reproduce

Add a CupertinoDatePicker with minimumDate set for some date at midnight.
Run the app as usual: flutter run

Expected results:
The date column first available date is the minimumDate specified date.
Actual results:
The date column first available date is the day before minimumDate specified date. However, when selecting that date, all time pickers are disabled (hour, minute and meridiem).
Additional resources
Minimal code to reproduce the  bug and a sample available at
https://github.com/davidlj95/bug-cupertino-date-picker-date-column

Flutter Doctor
[✓] Flutter (Channel stable, 1.22.4, on Mac OS X 10.15.7 19H114 darwin-x64, locale en-GB)
    • Flutter version 1.22.4 at /Users/yc00143/app/flutter/git
    • Framework revision 1aafb3a8b9 (6 weeks ago), 2020-11-13 09:59:28 -0800
    • Engine revision 2c956a31c0
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/yc00143/Library/Android/Sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/yc00143/Library/Android/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-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B45b
    • CocoaPods version 1.10.0

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[!] IntelliJ IDEA Community Edition (version 2020.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.dev/intellij-setup/#installing-the-plugins

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

[✓] Connected device (1 available)
    • iPhone 12 (mobile) • 651FB4DA-53B3-4315-888D-504F1E0D081A • ios • com.apple.CoreSimulator.SimRuntime.iOS-14-2 (simulator)

! Doctor found issues in 2 categories.

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-IN)
    • Flutter version 1.22.5 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision<PHONE_NUMBER> (3 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • 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 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.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.51.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (2 available)
    • sdk gphone x86 arm (mobile)         • emulator-5554
      • android-x86 • Android 11 (API 30) (emulator)
    • iPhone SE (2nd generation) (mobile) • 6C85835D-FBFD-4AB3-8DE8-B4FAD35E5367
      • ios         • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)

• No issues found!

CC @darrenaustin


feat(conf): add label configuration option when Kong is exposed via ingress

What this PR does / why we need it:
Sometimes labels are used for filtering/configuring other resources. This PR adds support for adding custom labels to an ingress when Kong is exposed using an ingress controller.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] PR is based off the current tip of the main branch.
[x] Changes are documented under the "Unreleased" header in CHANGELOG.md
[ ] New or modified sections of values.yaml are documented in the README.md
[x] Commits follow the Kong commit message guidelines

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You 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 sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks! Do you mind adding this option to the README similarly how it's done for SVC.ingress.annotations?

I missed that one. Added! :)

Merge at will @pmalek ? :)


Sample wanted for JakeWharton/picnic

About the library

Description:   A Kotlin DSL and Java/Kotlin builder API for constructing HTML-like tables which can be rendered to text.
GitHub: JakeWharton/picnic

What the sample could do
Print a HTML-like table to the console :)
Wants to contribute the sample?

Say so in a comment here
Follow instructions in CONTRIBUTING.md
Submit your pull request!

I want  to try to  do this one.


Unable to see  full content of notes of prescriptions

Describe the bug
When you write a PRN prescription notes for more than 3 lines, the edit prescription page will show a read more button in the note field, but when you try to click on the read more button, the medicine details collapse
To Reproduce
Steps to reproduce the behavior:

Go to the patient tab and click on any active consultation page
click on the medicine section in the nav bar
click on edit prescription and add a prn prescription with three lines note
once save, on the edit prescription page, click on the read more button
See an error

Expected behavior
read more button on the edit prescription page should work properly
Screenshots

Let's not wrap the Notes field in a <ReadMore /> component and keep it simple like other fields. The prescription card itself is collapsible if a short version is required, and it'd be simpler to just show all details in full in the expanded view of a prescription.

@nihal467 I would like to take this issue

@nihal467
I just created a pull request solving this issue:  https://github.com/ohcnetwork/care_fe/pull/8647


Re-organize OSS secrets docs

Closes #1027.

[x] Tests pass (no build errors)
[x] Rebased/mergeable

New secrets outline for OSS:


http_sd_configs if label containing hyphen, prometheus can't refresh config

What did you do?
Hi, prometheus group
I use http_sd_configs to management some targets, but access some metrics need pass contain "-" http param, if the HTTP API return labels contain __param_xxx-xxx, then prometheus unable to refresh target groups.
HTTP API return 100 targets, if any one containing "-", then, whole job don't work.
The HTTP API return data format:
[{
    "targets": [
      "www.text.com:443"
    ],
    "labels": {
      "__metrics_path__": "/ph/v1/proxy",
      "__param_bearer": "daskjdlasjdlasjdlasjdlasjdlaDDDDDDDDDDDDDDDDDDDDDDSDjlkjdlskfjlsdfjldsjfkldsf.fdslfjldsfjlkdsjfjdsklfjdsjfldsfjkdsjflkdsjfkldsklfdslfjdskjflkdsfkldsfkldslkf.12312lshfsfygufjhglkj1p2uiolkhgjkdfhgdfhgjkdfgjkdfhghdfjkfjgk",

# if param contain "-", err="\"__param_ignore-tls\" is not a valid label name"

      "__param_host": "<IP_ADDRESS>",
      "__param_ignore-tls": "yes",
      "__param_module": "tcp",
      "__param_path": "/metrics",
      "__param_port": "443",
      "__param_schema": "https",
      "__scheme__": "https",
      "__scrape_interval__": "30s",
      "__scrape_timeout__": "10s",
      "app": "mob",
      "instance": "<IP_ADDRESS>"
    }
  },
  {
    "targets": [
      "www.text.com:443"
    ],
    "labels": {
      "__metrics_path__": "/metrics",
      "__param_module": "http",
      "__param_target": "<IP_ADDRESS>",
      "__scheme__": "http",
      "__scrape_interval__": "30s",
      "__scrape_timeout__": "10s",
      "adas": "sdf12",
      "dad": "dgfgdfg",
      "gfdg": "gdfg",
      "instance": "<IP_ADDRESS>"
    }
  },
  {
    "targets": [
      "localhost:9200"
    ],
    "labels": {
      "__metrics_path__": "/metrics",
      "__param_module": "tcp",
      "__param_target": "<IP_ADDRESS>",
      "__scheme__": "http",
      "__scrape_interval__": "30s",
      "__scrape_timeout__": "10s",
      "adas": "sdf12",
      "dad": "dgfgdfg",
      "gfdg": "gdfg",
      "instance": "<IP_ADDRESS>"
    }
  },
  {
    "targets": [
      "localhost:9200"
    ],
    "labels": {
      "__metrics_path__": "/metrics",
      # "_" is passed
      "__param_igonor_tls": "yes",
      "__param_module": "tcp",
      "__param_target": "<IP_ADDRESS>",
      "__scheme__": "http",
      "__scrape_interval__": "30s",
      "__scrape_timeout__": "10s",
      "adas": "sdf12",
      "dad": "dgfgdfg",
      "gfdg": "gdfg",
      "instance": "<IP_ADDRESS>"
    }
  }
]

What did you expect to see?
Can resovle this issue.
What did you see instead? Under which circumstances?
To access some metrics pass the parameter need is "-" param, like following config. this config source from https://github.com/rokett/Citrix-NetScaler-Exporter
scrape_configs:
  - job_name: 'netscaler'
    metrics_path: /netscaler
    static_configs:
      - targets:
        - 'https://netscaler.domain.tld'
        - 'https://netscaler-2.domain.tld'
    params:
      ignore-cert: ["yes"] # Generally this option should not be used.  Only use it if you truly trust the endpoint and know it is secure.  You may need a different job block for where you want to ignore certs.
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: <IP_ADDRESS>:9280  # The exporter's real hostname:port.

But "-" param is can worked at static job, can't work http_sd_configs
System information
Debian11,12; Redhat 7
Prometheus version
Any prometheus 2.x, I have tried prometheus 2.28.0, 2.44.0, 2.54.1; 2.54.1 is latest stable version. all of them have this issue.

Prometheus configuration file
global:
  scrape_interval: 100s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  scrape_timeout: 5s
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
  - job_name: 'prometheus1'
    http_sd_configs:
    - url: 'http://<IP_ADDRESS>:8899/app/dc123'
      refresh_interval: 30s

Alertmanager version
No response
Alertmanager configuration file
No response
Logs
ts=2024-09-29T19:56:55.225Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T19:57:25.219Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T19:57:55.223Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T19:58:25.225Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T19:58:55.219Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T19:59:25.233Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T19:59:55.236Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:00:25.219Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:00:55.228Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:01:25.229Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:01:55.225Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:02:25.221Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:02:55.231Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:03:25.229Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"
ts=2024-09-29T20:03:55.222Z caller=refresh.go:90 level=error component="discovery manager scrape" discovery=http config=prometheus1 msg="Unable to refresh target groups" err="\"__param_ignore-tls\" is not a valid label name"

Thank you. I tried and solved.
Best regards

寄件者: Julien @.>
寄件日期: 2024年10月22日 17:25
收件者: prometheus/prometheus @.>
副本: Cylon @.>; Author @.>
主旨: Re: [prometheus/prometheus] http_sd_configs if label containing hyphen, prometheus can't refresh config (Issue #15174)
Thank you.
You can use Prometheus 2.55 (which will be released in a few hours/days) with the --enable-feature=utf8-names flag, and it will work, or test Prometheus 3 which does not need the flag.
—
Reply to this email directly, view it on GitHubhttps://github.com/prometheus/prometheus/issues/15174#issuecomment-2428755409, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHDSYB7OVWAORP5VGXILKUTZ4YKXPAVCNFSM6AAAAABQBVRTA2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRYG42TKNBQHE.
You are receiving this because you authored the thread.Message ID: @.***>


Non-deterministic output when generating SVG

medal_eagle is sometimes in the residence cluster subgraph, sometimes outside, if you refresh. pydot version 2
just requires flask,
from flask import Flask
from flask import request
from flask import Response, send_from_directory
import flask
import pydot

app = Flask(__name__)

graph = pydot.graph_from_dot_file('residentevil.dot')
@app.route("/")
def home():
    html='''<!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    -----
    </body>
    </html>'''

    graph = pydot.graph_from_dot_file('residentevil.dot')
    html = html.replace('-----',
        graph[0].create_svg().decode("utf-8"))
    return html

if __name__ == "__main__":
    app.run(host='<IP_ADDRESS>', port=5000)

dot file:

digraph {
    compound=true;

    subgraph cluster_crypt {
        label="crypt";
        key_sword [style=filled fillcolor=cyan shape=box] ;
        masks_4->stone;
        masks_4 [shape=box];
        stone [shape=box];
    }
    key_fake [style=filled fillcolor=white shape=box];
    key_fake -> key_armor;
    arrow [shape=box]
    arrow -> key_sword [lhead=cluster_crypt];
    key_armor -> music_notes [lhead=cluster_door_armor2];
    mask1_garden -> masks_4;
    mask2_weapon -> masks_4;
    mask3_snake -> masks_4;
    mask4_paintings -> masks_4;
    subgraph cluster_door_sword {
        label="door_sword";
        fillcolor=cyan;
        style=filled;
        dirt_bag [style=filled fillcolor=white shape=box];
        whistle [style=filled fillcolor=white shape=box];
        key_armor [style=filled fillcolor=yellow shape=box];
        whistle -> key_fake;
        dirt_bag -> mask1_garden;
        subgraph cluster_door_armor2 {
            label="door_armor_in";
            fillcolor=yellow;
            style=filled;
            music_notes [style=filled fillcolor=white shape=box];
            // music_notes -> emblem [lhead=cluster_door_armor2];

            mask1_garden [style=filled fillcolor=white shape=box];
            mask2_weapon [style=filled fillcolor=white shape=box];
            mask4_paintings [style=filled fillcolor=white shape=box];
            // mask4_paintings
            subgraph cluster_door_shield {
                label="door_shield";
                fillcolor=magenta;
                style=filled;
                mask3_snake [style=filled fillcolor=white shape=box];
            }
        }
        subgraph cluster_door_helmet2 {
            fillcolor="#00ff00";
            jewel_yellow [style=filled fillcolor=white shape=box];
            jewel_red [style=filled fillcolor=white shape=box];
        }

    }
    key_shield [style=filled fillcolor=magenta shape=box];
    key_shield -> mask3_snake [lhead=cluster_door_shield];
    emblem -> key_shield;

    subgraph cluster_door_armor {
        label="door_armor_out";
        fillcolor=yellow;
        style=filled;
        emblem [style=filled fillcolor=white shape=box];
        music_notes -> emblem; // [lhead=cluster_door_armor2];

    }
    key_sword -> dirt_bag [lhead=cluster_door_sword];

    crank1 [style=filled fillcolor=white shape=box];
    stone -> crank1;
    crank1 -> key_001 [lhead=cluster_residence];
    subgraph cluster_door_helmet1 {
        fillcolor="#00ff00";
        medal_eagle[style=filled fillcolor=white shape=box];
        battery[style=filled fillcolor=white shape=box];
    }
    subgraph cluster_door_helmet3 {
        fillcolor="#00ff00";
        box_jewel [style=filled fillcolor=white shape=box];
    }
    subgraph cluster_residence {
        label="residence";
        key_001 [style=filled fillcolor=white shape=box];
        key_ctrl [style=filled fillcolor=white shape=box];
        key_glry [style=filled fillcolor=white shape=box];
        bug_spray [style=filled fillcolor=white shape=box];
        key_003 [style=filled fillcolor=white shape=box];
        red_book [style=filled fillcolor=white shape=box];
        key_helmet [style=filled fillcolor="#00ff00" shape=box];

        key_001 -> key_ctrl;
        key_ctrl -> key_glry;
        key_glry -> bug_spray;
        bug_spray -> key_003;
        key_003 -> key_helmet;
        red_book -> key_helmet;
        key_helmet -> medal_eagle [lhead=cluster_door_helmet1];
        key_helmet -> jewel_yellow [lhead=cluster_door_helmet2];
        key_helmet -> box_jewel [lhead=cluster_door_helmet3];
    }

}

Hi @jokoon, what's your Operating System? Could you check your graphviz version (dot --version)?
There were inconsistency issues before 10.0.1, so an update may fix your problem.

On windows, I upgraded from graphviz 3 to 10, it fixed it.
Thanks.
On Fri, Apr 12, 2024 at 10:00 PM Łukasz @.***> wrote:

Hi @jokoon https://github.com/jokoon, what's your Operating System?
Could you check your graphviz version (dot --version)?
There were inconsistency issues before 10.0.1, so an update may fix your
problem.
—
Reply to this email directly, view it on GitHub
https://github.com/pydot/pydot/issues/330#issuecomment-2052445409, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAECK3KCPG3FSKGYDWP3Y5TY5A4ORAVCNFSM6AAAAABGCUPF4CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJSGQ2DKNBQHE
.
You are receiving this because you were mentioned.Message ID:
@.***>


Still having trouble with F7Messagebar

Does it work? When I write on it the value doesn't change, I see it through vue devtools.
I copied the code of the previous fix and it still doesn't work. Please take a look or tell me what to do.

Closing due to inactivity and/or no responses from issue author


Fix: PIT Search Recipe NewPointInTime Call

In this commit, keepAlive was removed from NewPointInTime (and instead supported by NewPointInTimeWithKeepAlive), but the PIT Search recipe was not updated to reflect that change

Thanks.


Bug with completion - inserting what should be metadata

Hello,
When using the auto-completion (with ccls, in my case), extra info along with the selected word is being inserted, as shown in the gif.
Using NVIM v0.5.0-418-g87d892afa, if it matters at all. Thanks for the help!

Yeah I've encounter this issue before, but sadly it's out of the scope that I can solve cause the message simply came from the language server. Use ccls without completion-nvim and directly use omni-complete will still have this issue. Maybe posting an issue on neovim or nvim-lsp might help. Also, I recommend using clangd as c/c++ language server cause it doesn't have this kind of issue and it's pretty fast.

Ah okay, thanks anyway! I'll try out clangd.

Hey just want to notify that this PR should solve this issue!

Fantastic, thanks! Appreciate the update


processing html pipeline with non-existent content produces a 200 #81

see #81

adds a new pipe function: set-status
keeps previously defined response.status
if no content.html then no one created html -> 404
if there is a payload.error -> 500
if there is content.html and no error and no status yet -> 200

Did you tried these changes in production ? The VCL has some error handling, not sure if this plays together. See https://github.com/adobe/helix-cli/blob/master/layouts/fastly/helix.vcl#L551-L565

Did you tried these changes in production ? The VCL has some error handling, not sure if these play together. See https://github.com/adobe/helix-cli/blob/master/layouts/fastly/helix.vcl#L551-L565

the problem is, that even with no content, the HTL template produces some output (but not content). and the default status is a 200, set by createActionResponse.  so requesting anything will produce output.

@tripodsan I can see your point, but it would be beneficial to describe how the error function works in README.md. The logic that all processing functions get skipped until the pipeline encounters an error handler can be beneficial, but only when people know about it.

The logic that all processing functions get skipped until the pipeline encounters an error handler can be beneficial, but only when people know about it

ok, I'll update the readme next week.. thanks.


Use Workload Identityfor KubeIP

Start using Workload Identity instead of Google Service Account key stored as K8s secret

Hey @alexei-led Any progress on this?
I tried using workload identity and got this
time="2020-12-07T14:23:12Z" level=info msg="&{kubeip static-ingress ingress-pool true [] 5ns false}" time="2020-12-07T14:23:12Z" level=info msg="[]" time="2020-12-07T14:23:12Z" level=info msg="kubeIP is starting" Build Date="2020-10-21T14:08:36+0000" Cluster name=kluster Project name=project-gc Version=v0 time="2020-12-07T14:23:12Z" level=info msg="Starting kubeip controller" pkg=kubeip-node time="2020-12-07T14:23:12Z" level=info msg="Starting forceAssignment" function=forceAssignment pkg=kubeip time="2020-12-07T14:23:12Z" level=info msg="Collecting Node List..." function=processAllNodes pkg=kubeip time="2020-12-07T14:23:12Z" level=info msg="kubeip controller synced and ready" pkg=kubeip-node time="2020-12-07T14:23:14Z" level=error msg="Get \"https://www.googleapis.com/compute/v1/projects/project-gc/regions/us-central1/addresses?alt=json&filter=%28status%3DIN_USE%29+AND+%28labels.kubeip%3Dstatic-ingress%29\": Get \"http://<IP_ADDRESS>/computeMetadata/v1/instance/service-accounts/default/token\": net/http: timeout awaiting response headers" time="2020-12-07T14:23:14Z" level=info msg="Found unassigned node gke-kluster-ingress-pool-71deba9d-c27d in pool ingress-pool" function=processAllNodes pkg=kubeip time="2020-12-07T14:23:14Z" level=info msg="Working on gke-kluster-ingress-pool-71deba9d-c27d in zone us-central1-a" function=Kubeip pkg=kubeip time="2020-12-07T14:23:16Z" level=error msg="Get \"https://www.googleapis.com/compute/v1/projects/project-gc/regions/us-central1/addresses?alt=json&filter=%28status%3DIN_USE%29+AND+%28labels.kubeip%3Dstatic-ingress%29\": metadata: GCE metadata \"instance/service-accounts/default/token\" not defined" time="2020-12-07T14:23:16Z" level=info msg="Found unassigned node gke-kluster-ingress-pool-71deba9d-l13z in pool ingress-pool" function=processAllNodes pkg=kubeip time="2020-12-07T14:23:16Z" level=error msg="Failed to list IP addresses in region us-central1: \"Get \\\"https://www.googleapis.com/compute/v1/projects/project-gc/regions/us-central1/addresses?alt=json&filter=%28status%3DRESERVED%29+AND+%28labels.kubeip%3Dstatic-ingress%29+AND++%28-labels.kubeip-node-pool%3A%2A%29\\\": metadata: GCE metadata \\\"instance/service-accounts/default/token\\\" not defined\"" function=findFreeAddress pkg=kubeip time="2020-12-07T14:23:16Z" level=info msg="Get \"https://www.googleapis.com/compute/v1/projects/project-gc/regions/us-central1/addresses?alt=json&filter=%!s(MISSING)tatus%!D(MISSING)RESERVED%!+(MISSING)AND+%!l(MISSING)abels.kubeip%!D(MISSING)static-ingress%!+(MISSING)AND++%!-(MISSING)labels.kubeip-node-pool%!A(MISSING)%!A(MISSING)%!\"(MISSING): metadata: GCE metadata \"instance/service-accounts/default/token\" not defined"

@jawabuu will check this, thank you for reporting

Thanks @alexei-led I'm ready to test whenever you have a build

Hey @alexei-led I managed to get this working with workload identity. Feel free to close the issue.
A bit of documentation should suffice for future users.

@jawabuu glad to hear you worked it out

@jawabuu would you mind sharing how you got this to work? I'm struggling with this myself, and I'm getting the exact same results as you've posted here. Thanks in advance for any help!

Hey @TeunKooijman are you comfortable using terraform?
If so here's how I to do it
https://github.com/nufailtd/terraform-budget-gcp/blob/main/modules/kubeip
Specifically
module "kubeip" {
  source = "github.com/nufailtd/terraform-budget-gcp//modules/kubeip"
  project_id             = project_id
  zone                   = gke_location
  host                   = gke_host
  cluster_ca_certificate = gke_cluster_ca_certificate
  token                  = gke_token
}

The root cause for me was that the kubernetes service account linked to the google service account was not mounted to the kubeip pod.

Thanks for getting back to me @jawabuu. As a matter of fact I too am using Terraform (in part). A couple of things already stood out from looking at your implementation:

I was using google_project_iam_binding where you were using google_project_iam_member, might have just been me getting lost in translation somewhere.
You are using automountServiceAccountToken: true, which if I understood correctly is the default on the latest version, but I've added it regardless.
You are using Traefik where I am using Nginx as an ingress controller, but it should work reasonably similar.

See https://github.com/silvester-io/gcp-bootstrap/blob/master/terraform/kubeip/kubeip.tf for the current infrastructure.
The ingress node, as well as the nginx ingress controller on it runs fine, until I apply the kubeip-as-a-helm-chart. That's when the ingress node's status becomes Unknown on the GCP cluster dashboard, and the nginx workload starts reporting Kubelet stopped posting node status.
Did you ever run into anything like this?

Hey @TeunKooijman I am going through your code.
What is the name of your kubernetes service account? Are you annotating your kubernetes service account?

Hi @jawabuu, thanks a lot for going through all this trouble to help me out. The service account (both the k8s and gcp one) should be called kubeip-serviceaccount. As for the annotation, see line 6 on: https://github.com/silvester-io/gcp-bootstrap/blob/master/charts/kubeip/templates/service-account.yaml

No problem @TeunKooijman
Configmap seems correct
I guess what's left is to actually test that a pod with that service account mounted can perform the required API operations
Please try this
module "test-workload-identity" {
  source = "github.com/nufailtd/terraform-budget-gcp//modules/test-workload-identity"

  host                   = gke_auth.host
  cluster_ca_certificate = gke_cluster_ca_certificate
  token                  = gke_token
  ksa                    = k8s_service_account_name
  ksa_namespace          = k8s_service_account_namespace
  run_post_install       = true
}

Then exec into the pod, and
gcloud auth list

The source URL gives me a 404 (even when removing the duplicate /), but if you're talking about step 7 of the workload identity (exec'ing into the pod and testing gcloud auth list) that works for:
apiVersion: v1
kind: Pod
metadata:
  name: workload-identity-test
  namespace: K8S_NAMESPACE
spec:
  containers:
  - image: google/cloud-sdk:slim
    name: workload-identity-test
    command: ["sleep","infinity"]
  serviceAccountName: KSA_NAME

I must admit that I last checked this a couple of days ago, so I'll give it another try.

workload-identity-test.yaml:
apiVersion: v1
kind: Pod
metadata:
  name: workload-identity-test
  namespace: kube-system
spec:
  containers:
  - image: google/cloud-sdk:slim
    name: workload-identity-test
    command: ["sleep","infinity"]
  serviceAccountName: kubeip-serviceaccount

kubectl apply -f workload-identity-test.yaml
kubectl exec --stdin --tty -n kube-system workload-identity-test -- /bin/bash
gcloud auth list
result is:
root@workload-identity-test:/# gcloud auth list
                        Credentialed Accounts
ACTIVE  ACCOUNT
*<EMAIL_ADDRESS>
To set the active account, run:
    $ gcloud config set account `ACCOUNT`

root@workload-identity-test:/#

Does that seem right?

That's perfect.
Could you try retrieving a token?

The results of root@workload-identity-test:/# gcloud container clusters get-credentials silvester-cluster --region europe-west1-b are:
WARNING: Accessing a Kubernetes Engine cluster requires the kubernetes commandline
client [kubectl]. To install, run
  $ gcloud components install kubectl

Fetching cluster endpoint and auth data.
kubeconfig entry generated for silvester-cluster.

Is this what you meant with retrieving a token?

Once you exec inside the test workload identity
pod, try retrieving an access token. Let me see if I can find an example.

Try a combination of these
url=''
token=$(curl -vv -H "Metadata-Flavor: Google"  http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience=$url)
curl -vv -H "Authorization: Bearer $token" $url
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" url

url is the google api url that you will call to for example list Instances, IPs e.t.c

Do you perhaps have an example for a URL?

I think I may have already figured it out. This is the content of the retrieved token (without header and signature):
{
  "aud": "http://metadata.google.internal/computeMetadata/v1/instance/disks",
  "azp": "117123956372577273588",
  "email"<EMAIL_ADDRESS>  "email_verified": true,
  "exp":<PHONE_NUMBER>,
  "iat":<PHONE_NUMBER>,
  "iss": "https://accounts.google.com",
  "sub": "117123956372577273588"
}

You could also share the debug logs for your KubeIP deployment

In my logs, I had an error with a url shuch as this
https://www.googleapis.com/compute/v1/projects/project-gc/regions/us-central1/addresses?alt=json
You will need to substitute for your project.

I think I may have already figured it out. This is the content of the retrieved token (without header and signature):
{
  "aud": "http://metadata.google.internal/computeMetadata/v1/instance/disks",
  "azp": "117123956372577273588",
  "email"<EMAIL_ADDRESS>  "email_verified": true,
  "exp":<PHONE_NUMBER>,
  "iat":<PHONE_NUMBER>,
  "iss": "https://accounts.google.com",
  "sub": "117123956372577273588"
}

I see

kubeip pod logs look like this:
time="2021-02-22T20:31:59Z" level=info msg="&{kubeip silvester-cluster silvester-nodepool-ingress true [] 5ns false}"
time="2021-02-22T20:31:59Z" level=info msg="[]"
time="2021-02-22T20:31:59Z" level=info msg="kubeIP is starting" Build Date="2020-10-21T14:08:36+0000" Cluster name=silvester-cluster Project name=silvester-304916 Version=v0
time="2021-02-22T20:31:59Z" level=info msg="Starting forceAssignment" function=forceAssignment pkg=kubeip
time="2021-02-22T20:31:59Z" level=info msg="Starting kubeip controller" pkg=kubeip-node
time="2021-02-22T20:31:59Z" level=info msg="Collecting Node List..." function=processAllNodes pkg=kubeip
time="2021-02-22T20:31:59Z" level=info msg="kubeip controller synced and ready" pkg=kubeip-node
time="2021-02-22T20:32:01Z" level=error msg="Get \"https://www.googleapis.com/compute/v1/projects/silvester-304916/regions/europe-west1/addresses?alt=json&filter=%28status%3DIN_USE%29+AND+%28labels.kubeip%3Dsilvester-cluster%29\": Get \"http://<IP_ADDRESS>/computeMetadata/v1/instance/service-accounts/default/token\": net/http: timeout awaiting response headers"
time="2021-02-22T20:32:01Z" level=info msg="Found unassigned node gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 in pool silvester-nodepool-ingress" function=processAllNodes pkg=kubeip
time="2021-02-22T20:32:01Z" level=info msg="Working on gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 in zone europe-west1-b" function=Kubeip pkg=kubeip
time="2021-02-22T20:32:01Z" level=info msg="Found node without tag gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20" function=assignMissingTags pkg=kubeip
time="2021-02-22T20:32:02Z" level=info msg="Found reserved address <IP_ADDRESS>" function=replaceIP pkg=kubeip
time="2021-02-22T20:32:14Z" level=info msg="Replaced IP for gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 zone europe-west1-b new ip <IP_ADDRESS>" function=replaceIP pkg=kubeip
time="2021-02-22T20:32:14Z" level=info msg="Tagging node gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 as <IP_ADDRESS>" function=tagNode pkg=kubeip
time="2021-02-22T20:36:59Z" level=info msg="On Ticker" function=forceAssignment pkg=kubeip

The following part then just repeats every 4 or 5 minutes-ish:
time="2021-02-22T20:41:59Z" level=info msg="On Ticker" function=forceAssignment pkg=kubeip
time="2021-02-22T20:41:59Z" level=info msg="Collecting Node List..." function=processAllNodes pkg=kubeip
time="2021-02-22T20:41:59Z" level=info msg="Found unassigned node gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 in pool silvester-nodepool-ingress" function=processAllNodes pkg=kubeip
time="2021-02-22T20:41:59Z" level=info msg="Working on gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 in zone europe-west1-b" function=Kubeip pkg=kubeip
time="2021-02-22T20:42:00Z" level=info msg="Found reserved address <IP_ADDRESS>" function=replaceIP pkg=kubeip
time="2021-02-22T20:42:02Z" level=info msg="Replaced IP for gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 zone europe-west1-b new ip <IP_ADDRESS>" function=replaceIP pkg=kubeip
time="2021-02-22T20:42:02Z" level=info msg="Tagging node gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 as <IP_ADDRESS>" function=tagNode pkg=kubeip
time="2021-02-22T20:42:02Z" level=info msg="Tagging node gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 as <IP_ADDRESS>" function=tagNode pkg=kubeip

And is the IP assigned to the node successfully?

According to https://console.cloud.google.com/networking/addresses/list?project=silvester-304916 it is not

And according to kubectl get nodes -w -o wide  I don't think either:

NAME                                                  STATUS     ROLES    AGE     VERSION             INTERNAL-IP     EXTERNAL-IP      OS-IMAGE                             KERNEL-VERSION   CONTAINER-RUNTIME
gke-silvester-cluste-silvester-nodepo-d99cae24-gdhm   Ready      <none>   3h41m   v1.18.12-gke.1210   <IP_ADDRESS>   <IP_ADDRESS>    Container-Optimized OS from Google   5.4.49+          docker://19.3.9
gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20   NotReady   <none>   161m    v1.18.12-gke.1210   <IP_ADDRESS>   <IP_ADDRESS>   Container-Optimized OS from Google   5.4.49+          docker://19.3.9

How many nodepools do you have?

Two, silvester-nodepool-apps and silvester-nodepool-ingress.

Is there a particular reason the 2nd node is NotReady?

It switched from Ready to Unknown (on GCP dashboard) and NotReady via kubectl describe as soon as I apply the kubeip deployment.

Which nodepool does it belong to?

It belongs to silvester-nodepool-ingres, the one that kubeip tries to assign the external IP on. kubeip does this from the silvester-nodepool-apps node pool node.

Through kubectl describe node gke-silvester-cluste-silvester-nodepo-f3c75d49-wj20 it even shows the kubip_assigned=35-210-199-226 label on the node.

Can you terraform modules allow me to reproduce the issue?

I'm afraid we're treading into unfamiliar territory for me. This is the first time I've done anything with Terraform. I assume you're looking for a way to lift-and-shift this to a GCP project that you control? I could look into how that's done with a Terraform module, but that would have to be tomorrow, as it's sadly getting too late for me for tonight. The other option would be to fork https://github.com/silvester-io/gcp-bootstrap and change the references to the GCP project that are (sadly) currently a bit spread around:
/terraform/kubernetes/variables.tf
/terraform/kubeip/variables.tf
/terraform/cluster/variables.tf
/charts/kubeip/values.yaml
/.github/workflows/main.yml

And subsequently add a GCP_SA_KEY and run the GitHub action.

I'll check it out and see if I can help.

That would be amazing, thanks a lot @jawabuu. Just a little heads up that I'm currently manually installing the kubeip  post github action manually (see the commented out helm install of kubeip in the bottom of the GitHub Action).

Hey @TeunKooijman I was unable to create a cluster using your terraform file.
I however was able to use the terraform gke module and run KubeIP successfully. Do you mind adapting your code to use the the terraform gke module?

That wouldn't be a problem at all. Do you perhaps have an example somewhere of what you did or how you used the gke terraform module?

I will push my changes to a fork shortly.

Hey @TeunKooijman Try the example at https://github.com/jawabuu/gcp-bootstrap

Hi @jawabuu, took me a bit of time, but I've set it up with the gke module. However, the exact same thing is happening. The kubeip pod just repeats the following again every 5 minutes in the pod:
time="2021-02-25T16:59:21Z" level=info msg="On Ticker" function=forceAssignment pkg=kubeip
time="2021-02-25T16:59:21Z" level=info msg="Collecting Node List..." function=processAllNodes pkg=kubeip
time="2021-02-25T16:59:22Z" level=info msg="Found unassigned node gke-silvester-cluster-ingress-pool-9728e76b-w1qq in pool ingress-pool" function=processAllNodes pkg=kubeip
time="2021-02-25T16:59:22Z" level=info msg="Working on gke-silvester-cluster-ingress-pool-9728e76b-w1qq in zone europe-west1-b" function=Kubeip pkg=kubeip
time="2021-02-25T16:59:22Z" level=info msg="Found reserved address <IP_ADDRESS>" function=replaceIP pkg=kubeip
time="2021-02-25T16:59:25Z" level=info msg="Replaced IP for gke-silvester-cluster-ingress-pool-9728e76b-w1qq zone europe-west1-b new ip <IP_ADDRESS>" function=replaceIP pkg=kubeip
time="2021-02-25T16:59:25Z" level=info msg="Tagging node gke-silvester-cluster-ingress-pool-9728e76b-w1qq as <IP_ADDRESS>" function=tagNode pkg=kubeip
time="2021-02-25T16:59:25Z" level=info msg="Tagging node gke-silvester-cluster-ingress-pool-9728e76b-w1qq as <IP_ADDRESS>" function=tagNode pkg=kubeip

The ingress-pool is status is "Unknown" (on the GCP portal), and NotReady (in kubectl).
External IP is not "in use" by anything.
The ingress pool does have the kubip_assigned=35-210-199-226 label.
I've also moved the nginx-ingress-controller from Helm to Terraform, but even before I installed that, and it was just kubeip running, the status already became unknown.

However, now that I've moved away from Helm entirely, you should be able to use the Terraform code in my repository now, as it's currently just a matter of terraform init & apply.
Any ideas left?

Hey @TeunKooijman Sorry to hear that.
Can you try out my code from your local workstation?
https://github.com/jawabuu/gcp-bootstrap

Destroy any existing terraform deployments
cd into terraform/cluster
Run gcloud auth login
Run . ./auth.sh [your_project_name]
terraform init
terraform plan
terraform apply

time="2021-02-25T16:59:25Z" level=info msg="Tagging node gke-silvester-cluster-ingress-pool-9728e76b-w1qq as <IP_ADDRESS>" function=tagNode pkg=kubeip

I also don't think this is right
Tagging as <IP_ADDRESS>

I could do that, but I must confess that I do not fully understand what the auth.sh script does, and that I feel a little bit weary running a script that does something that I don't understand. Could you perhaps give me a slight explanation of what it does and why that's needed?

It sets these variables for use by Terraform.
export GOOGLE_IMPERSONATE_SERVICE_ACCOUNT=$SERVICE_ACCOUNT
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)

You can skip it.

Hi @jawabuu, I couldn't get your terraform files to work, sadly, so I've done some more digging on my own. It turns out that when I SSH into the ingress-pool node and query the metadata endpoint for the current access-config:
curl -i -H "Metadata-Flavor: Google" http://<IP_ADDRESS>/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip

A clear error message suddenly comes back, saying:
ERROR: (gcloud.compute.instances.add-access-config) Could not fetch resource:
 - External IP address: 35.210.***.*** has a different network tier STANDARD from the network tier in instance access config PREMIUM.

I define the IP address as STANDARD tier on line 7 of: https://github.com/silvester-io/gcp-bootstrap/blob/master/terraform/kubeip/kubeip.tf but the compute instance node's network (or the terraform-google-modules/network/google?) is probably defined as PREMIUM by default.
My hope is that once I figure out how the change that the STANDARD as well, things will start working more smoothly.

Yep, it looks like that was it. Adding the following to Terraform allowed kubeip to do what it had to do:
resource "google_compute_project_default_network_tier" "default" {
  network_tier = "STANDARD"
}

@alexei-led not sure if this is anything you want to do something with (as kubeip currently does not log any errors when this happens), but perhaps just mentioning on the readme.md that if the ingress node becomes Unknown/NotReady, it might be because the network_tier and ip_address tier differ.

Hey @TeunKooijman
Glad you got to solve it.


Fiu VM & Deserializer Fixes

Fixes #16
Fixes #14

Fixes VARARG being short in table list
Fixes MULTRET SETLIST Short List
Fixes wrong referenced prototype in NEWCLOSURE

New changes:

Fixes JUMPXEQKB.
Fixes for loops with metatables using __call.
Fixes numbered for loops with nan limit values.
Fixes NEWCLOSURE.
Fixes upvalues.
Fixes Luau deserializations.
Fixes SUBRK & DIVRK.
Only supports Luau 0.612+ bytecodes.

Looking good

LGTM!


DEV: LOG: Update in Store fails with Data Only

DEV: LOG: Update in Store fails with Data Only
EPIC: Log Implementation
This is the result of another fix.  The solution is known and @TessForGithub2  will enter it today.
ETA is 7/9/2019

The fix was not the result of another fix, as it turned out. The code needed to check for the existence of a JSON field before "getting" it. A simple 1-line fix that I did not release last night due to some confusion over an Add for Depth and an Update for Time that made it appear to be blocked by DoT. Released by Chris last night.

Update: Turns out, the code was not due to another fix but an issue I had resolved in Branch 395A but did not release due to all the activity surrounding Query. I was supposed to check for a JSON field's existence before attempting to get it. Resolved, tested, released.


TypeError: expected np.ndarray (got numpy.ndarray)

The code from the Notebook (notebooks/image_predictor_example.ipynb) works fine in Google Collab:

But, when I'm trying to run in the server (NVIDIA A100-SXM4-40GB; CUDA Version: 12.5), there's a image processing issue.

I did check the version and passing implicitly with numpy.array(), especially numpy versions are the same. I'm not sure why the issue persist!

Hi @AyushSomani001, I think this is likely because you have a numpy installation that is not compatible with your local PyTorch installation.
Could you try the following and see if it works?
import numpy as np
import torch

torch.from_numpy(np.zeros((3, 1024, 1024), dtype=np.float32))

It should be resolved by reinstalling numpy and pytorch with versions that match each other

It should be resolved by reinstalling numpy and pytorch with versions that match each other

How do I find out which numpy version matches with a specific pytorch version? I am currently using pytorch 2.5.1

@AyushSomani001 I was able to get it working by downgrading numpy=1.26.4
I am still curious what is the best way to find the matching version, I was only able to find it through this stackoverflow post


Migrate to new architecture

Closes #29

I've pushed a CI replacement on top of this PR as we don't use Travis anymore. On my machine, npm run all fails with

Error: No test files found: "test/distro"

I will add these

In the old properties panel, there is a short description for the decision ID field:

I think if we want to just migrate, this should be added in the Camunda Platform properties provider. For vanilla DMN, there should be no hint.

There seems to be a problem with the text annotation:
https://user-images.githubusercontent.com/28307541/152768478-988d78c1-4c1a-4e1e-8b0e-a0a851eac5e7.mov

No icon is displayed when selecting an association. Are we aware of that?

No icon is displayed when selecting an association. Are we aware of that?

@philippfromme it turns out, that is also the case for bpmn properties panel 🤭

@barmac
I pushed changes for the issues mentioned (except the association icon - see comment). I rebased the branch to keep the commit history clean so you might have to checkout the branch again.

Found another issue. Associations shouldn't have a Name entry.

I pushed changes which add the Association icon and removed the Name field.
I also created issues for these 2 things for bpmn-properties-panel, which I will take on now since they are very simple: https://github.com/bpmn-io/bpmn-js-properties-panel/issues/575, https://github.com/bpmn-io/bpmn-js-properties-panel/issues/576

Oops, the bot merged this even though I requested changes @nikku

Aaahhhh. :runner:


Laravel Autoload Not Working

Nexmo Notification Channel Version: v2.0.0
Laravel Version: v5.8.11
PHP Version: v7.3.1 & v7.3.4
Database Driver & Version: v.5.7.12 & v5.7.24

Description:

Upgraded from Laravel 5.7 to 5.8 switched to the first party Nexmo channel package as per upgrade instructions.
Dispatching a notification with the Nexmo channel results in Driver [nexmo] not supported.
Adding Illuminate\Notifications\NexmoChannelServiceProvider::class to app.php providers array the channel works again.

Steps To Reproduce:

Run composer require laravel/slack-notification-channel in the project.
Dispatch a notification to the user
Results in Driver [nexmo] not supported.

This package uses auto-discovery to load the provider. What's the output when you do a composer require laravel/slack-notification-channel?

Discovered Package: laravel/nexmo-notification-channel

Seems to work?

Still results in Driver [nexmo] not supported. without adding the provider manually to the app.php

Can you copy/paste your app.php file?

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Application Name
    |--------------------------------------------------------------------------
    |
    | This value is the name of your application. This value is used when the
    | framework needs to place the application's name in a notification or
    | any other location as required by the application or its packages.
    */

    'name' => env('APP_NAME', 'APP'),

    /*
    |--------------------------------------------------------------------------
    | Application Version
    |--------------------------------------------------------------------------
    |
    | This value is the version of your application. This value is used when
    | the framework needs to place the application's version in a notification
    | or any other location as required by the application or its packages.
    */

    'version' => '<IP_ADDRESS>',

    /*
    |--------------------------------------------------------------------------
    | Application Environment
    |--------------------------------------------------------------------------
    |
    | This value determines the "environment" your application is currently
    | running in. This may determine how you prefer to configure various
    | services your application utilizes. Set this in your ".env" file.
    |
    */

    'env' => env('APP_ENV', 'production'),

    /*
    |--------------------------------------------------------------------------
    | Application Debug Mode
    |--------------------------------------------------------------------------
    |
    | When your application is in debug mode, detailed error messages with
    | stack traces will be shown on every error that occurs within your
    | application. If disabled, a simple generic error page is shown.
    |
    */

    'debug' => env('APP_DEBUG', false),

    /*
    |--------------------------------------------------------------------------
    | Application URL
    |--------------------------------------------------------------------------
    |
    | This URL is used by the console to properly generate URLs when using
    | the Artisan command line tool. You should set this to the root of
    | your application so that it is used when running Artisan tasks.
    |
    */

    'url' => env('APP_URL', 'http://localhost'),

    /*
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => env('APP_TIMEZONE', 'UTC'),

    /*
    |--------------------------------------------------------------------------
    | Application Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the default locale that will be used
    | by the translation service provider. You are free to set this value
    | to any of the locales which will be supported by the application.
    |
    */

    'locale' => env('APP_LOCALE', 'en'),

    /*
    |--------------------------------------------------------------------------
    | Application Fallback Locale
    |--------------------------------------------------------------------------
    |
    | The fallback locale determines the locale to use when the current one
    | is not available. You may change the value to correspond to any of
    | the language folders that are provided through your application.
    |
    */

    'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),

    /*
    |--------------------------------------------------------------------------
    | PHP Locale Code
    |--------------------------------------------------------------------------
    |
    | The PHP locale determines the default locale that will be used
    | by the Carbon library when setting Carbon's localization.
    |
    */
    'locale_php' => env('APP_LOCALE_PHP', 'en_US'),

    /*
    |--------------------------------------------------------------------------
    | Encryption Key
    |--------------------------------------------------------------------------
    |
    | This key is used by the Illuminate encrypter service and should be set
    | to a random, 32 character string, otherwise these encrypted strings
    | will not be safe. Please do this before deploying an application!
    |
    */

    'key' => env('APP_KEY'),

    'cipher' => 'AES-256-CBC',

    /*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    | The service providers listed here will be automatically loaded on the
    | request to your application. Feel free to add your own services to
    | this array to grant expanded functionality to your applications.
    |
    */

    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Notifications\NexmoChannelServiceProvider::class,
        Illuminate\Notifications\NotificationServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,

        /*
         * Package Service Providers...
         */
        Optimus\ApiConsumer\Provider\LaravelServiceProvider::class,

        /*
         * Application Service Providers...
         */
        App\Providers\AccessServiceProvider::class,
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        //App\Providers\BroadcastServiceProvider::class,
        App\Providers\ComposerServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\HorizonServiceProvider::class,
        App\Providers\MacroServiceProvider::class,
        App\Providers\RouteServiceProvider::class
    ],

    /*
    |--------------------------------------------------------------------------
    | Class Aliases
    |--------------------------------------------------------------------------
    |
    | This array of class aliases will be registered when this application
    | is started. However, feel free to register as many as you wish as
    | the aliases are "lazy" loaded so they don't hinder performance.
    |
    */

    'aliases' => [

        'App' => Illuminate\Support\Facades\App::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,
        'Auth' => Illuminate\Support\Facades\Auth::class,
        'Blade' => Illuminate\Support\Facades\Blade::class,
        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
        'Bus' => Illuminate\Support\Facades\Bus::class,
        'Cache' => Illuminate\Support\Facades\Cache::class,
        'Config' => Illuminate\Support\Facades\Config::class,
        'Cookie' => Illuminate\Support\Facades\Cookie::class,
        'Crypt' => Illuminate\Support\Facades\Crypt::class,
        'DB' => Illuminate\Support\Facades\DB::class,
        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
        'Event' => Illuminate\Support\Facades\Event::class,
        'File' => Illuminate\Support\Facades\File::class,
        'Gate' => Illuminate\Support\Facades\Gate::class,
        'Hash' => Illuminate\Support\Facades\Hash::class,
        'Lang' => Illuminate\Support\Facades\Lang::class,
        'Log' => Illuminate\Support\Facades\Log::class,
        'Mail' => Illuminate\Support\Facades\Mail::class,
        'Notification' => Illuminate\Support\Facades\Notification::class,
        'Password' => Illuminate\Support\Facades\Password::class,
        'Queue' => Illuminate\Support\Facades\Queue::class,
        'Redirect' => Illuminate\Support\Facades\Redirect::class,
        'Redis' => Illuminate\Support\Facades\Redis::class,
        'Request' => Illuminate\Support\Facades\Request::class,
        'Response' => Illuminate\Support\Facades\Response::class,
        'Route' => Illuminate\Support\Facades\Route::class,
        'Schema' => Illuminate\Support\Facades\Schema::class,
        'Session' => Illuminate\Support\Facades\Session::class,
        'Storage' => Illuminate\Support\Facades\Storage::class,
        'URL' => Illuminate\Support\Facades\URL::class,
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facades\View::class,

        /*
         * Third Party Aliases
         */
        'ApiConsumer' => \Optimus\ApiConsumer\Facade\ApiConsumer::class,

        /*
         * First Party Aliases
         */
        'OAuthHelper' => App\Helpers\API\Auth\OAuthHelper::class,
    ],

];

Your App\Providers\BroadcastServiceProvider::class is commented out. This needs to be enabled.

Ok, I uncommented that class, still the same error.
BroadcastServiceProvider is the same as on https://github.com/laravel/laravel/blob/master/app/Providers/BroadcastServiceProvider.php

There's a similar issue for the slack driver here: https://github.com/laravel/slack-notification-channel/issues/14
I tested that one out and it works for me so I believe there's something specific to your app why it's not working. If you can create a test app which recreates this problem I'll look into it. Feel free to reply once you did.


GUI and Inspector moving to es module-style

The generated files (using webpack) are UMD conform.
Declaration files are generated to both modules and legacy.
Gulp process updated
Gulp run is working, sourcemaps included.
playground is now first loading babylon files and then the loader, so that AMD will not be triggered.

PR ready for review. Would be great if until this is merged no changes are made to the inspector or the GUI library

Fixing viewer validation tests

a lot of files are created like cmd when using the branch:

We had this cmd issue once, It was an npm/node error. No cmd files should ever be created in the main directories.
I'll check what the problem is and let you know. Just for reference - What version of node and npm are you using?

Yep, I now remember the problem and its solution (we had that with the viewer).  You will sadly have to delete those files manually...

The dev-loader is taking the minified version + source maps, which works when using the vscode task runner (including absolute-positioned sourcemap referencing, so that you can debug directly from vscode).
I agree that it is not perfect to modify the dist folder for that. The best solution would be to move to webpack-dev-server instead (which doesn't actually write any file when running) for debugging, BUT this will require a bigger overhaul than this IMO. Because the main repository will also need to be built using webpack. Another solution would be to store the compiled files in a temporary directory when running gulp run. What do you think?

You could use the .temp folder that we are using for typedoc it is ignored and all so that we do not touch dist. I am perfectly fine with that :-) At least we would not have to tell everybody to undo dist on all the PR. thanks a ton

I can confirm:

The npm install has been fixed,
Gulp run does not touch anymore the dist folder
Debug works fine
dist is well generated during full build

Looks all good to me !!!


Use master as main branch, including v5

[x] keep v3 in v3-dev
[x] keep v4 in v4-dev
rename master to main to follow-up Bootstrap (outdated?)
change build/ship.sh to pull main instead of v4-dev
what else?

[ ] Rename v5-dev to main to follow-up Bootstrap

https://github.com/github/renaming
https://docs.github.com/en/github/administering-a-repository/managing-branches-in-your-repository/renaming-a-branch
ℹ Tried it on a private repo and the Pull Requests are well updated but ⚠ on references in files like GitHub CI configurations

[ ] What's in master? Should we keep it?

[ ]  Rename v5-dev to main to follow-up Bootstrap

https://github.com/github/renaming
https://docs.github.com/en/github/administering-a-repository/managing-branches-in-your-repository/renaming-a-branch
ℹ Tried it on a private repo and the Pull Requests are well updated but ⚠ on references in files like GitHub CI configurations

[ ]  What's in master? Should we keep it?

I guess master was the default branch in the v3 era ? I didn't see it being used after 3.4.1 release 🤔

v3-dev and master are at the same level. So we can remove master branch.

Yup, Bootstrap uses main (previously master) for the current version. Boosted chose to go with v4-dev instead, then v5-dev; so master stopped being updated when v4 started.
I don't know why 🤷

FYI moving from master to main on Bootstrap required to manually update PR targets, but non GitHub has a dedicated feature that's supposed to work out if the box.


GitLab Support

We (@developer-guy) want to use this project in GitLab, so we thought we can implement go-gitlab client in this project.

Pipeline API: https://docs.gitlab.com/ee/api/pipelines.html
Runners API: https://docs.gitlab.com/ee/api/runners.html

If it make sense we want to get to it!

Ping @marcofranssen 🤞 Is this project specially created for GitHub? Does it make sense to add a new gitlab subcommand to generate provenance?

If I can find some time I can refactor the binary into a new repo where we could add that feature and keep this repo solely for the github action wrapping part.
That would allow us to add the Gitlab features to the binary.

Thanks! We (@developer-guy) can give a hand on this. Also can't wait to generate provenance on GitLab. Maybe you can create a fresh repository on this org and we can start implementation, filing issues, moving core stuff from this project, etc.
I also want to share this idea and project with GitLab Sec Team to get some feedback about the provenance we want to create or how it should be.

@Dentrax feel free to continue on this repo, I will create a new one for the GH action part and then afterwards rename this repository to maintain all the history on our binary evolution.

We (w/@dentrax) came across a tweet^1 by @santiagotorres, thanks to him for bringing this to our attention.


Add matrix gem

📝 A short description of the changes

🔗 Link to the relevant story (or stories)

:shipit: Deployment implications

✅ Checklist

[ ] Features that cannot go live are behind a feature flag/env var or specify deploy date and open PR as draft
[ ] I have checked that commit messages make sense and explain the reasoning for each change
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have squashed any unnecessary or part-finished commits

🖼 Screenshots (if appropriate - no PII/Prod data):

What does the gem do?


use a shorter clab prefix for container/if names where possible

container names are not start with containerlab prefix. I think its a bit long, the clab makes it way shorter -> faster to type, less space on the screen

let's do the same for directories


Is it possible to inject a custom Dashboard URL?

Question
Is it possible to inject a custom Dashboard URL?
Screenshots

Additional context
The URL pattern of TeamCode's TIN application is xxx-4000.xxx.teamcode.com instead of xxx.xxx.teamcode.com:4000, so the user cannot be redirected to Grafana by using location.hostname:4000 in JS.

Working on it


Rework cover image display

Description:
I don't really like how the new book cover image display works. Probably resize + replace click functionality with a lightbox?
Implementation:

[ ] Make current cover image look better. (Fixed size, remove hover ability)
[ ] On click, provide a simple lightbox for the full-size image

This should probably happen with #43 if the bookmark button is being added in the cover area

Here's one possibility:

Here's one possibility:


Broken link to SF volume application

"The Service Fabric application that provides the volumes for your containers can be downloaded from the following link." points to https://aka.ms/sfvolume, but that currently redirects to microsoft.com rather than the location to download the application

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f2a56233-8bf2-46c3-524a-883b7181a682
Version Independent ID: 6b6ad44b-0780-400c-98a9-912f0446a7d8
Content: Service Fabric Azure Files Volume Driver (Preview)
Content Source: articles/service-fabric/service-fabric-containers-volume-logging-drivers.md
Service: service-fabric
GitHub Login: @mani-ramaswamy
Microsoft Alias: subramar

Sudanva - can you please fix this?
On May 9, 2018, at 2:54 PM, Noel <notifications<EMAIL_ADDRESS>wrote:
"The Service Fabric application that provides the volumes for your containers can be downloaded from the following link." points to https://aka.ms/sfvolumehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2Fsfvolume&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430320385&sdata=swt5u1Nb8qbwSM%2Bxjpw8bx2uJHfOz2A2vpqP9fPmlgA%3D&reserved=0, but that currently redirects to microsoft.comhttp://microsoft.com rather than the location to download the application

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.comhttp://docs.microsoft.com ➟ GitHub issue linking.

ID: f2a56233-8bf2-46c3-524a-883b7181a682
Version Independent ID: 6b6ad44b-0780-400c-98a9-912f0446a7d8
Content: Service Fabric Azure Files Volume Driver (Preview)https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fservice-fabric%2Fservice-fabric-containers-volume-logging-drivers&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430330392&sdata=i2GioKwe%2FEWuxVJgmyTHVQCioUosn6VEmgyC7Jee0pA%3D&reserved=0
Content Source: articles/service-fabric/service-fabric-containers-volume-logging-drivers.mdhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fazure-docs%2Fblob%2Fmaster%2Farticles%2Fservice-fabric%2Fservice-fabric-containers-volume-logging-drivers.md&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430340396&sdata=Os8Uc9c%2BPOwnaQbnEHGX27FQMgjG%2BN0a3CL5NhGxhHc%3D&reserved=0
Service: service-fabric
GitHub Login: @mani-ramaswamyhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmani-ramaswamy&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430350404&sdata=iXNscozNjK4IKN4sedPNFbHpxPoBHGzcs2gwF08Pl2g%3D&reserved=0
Microsoft Alias: subramar

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F8373&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430350404&sdata=uUHWHgvF2GwdnkYj%2BuPzGm8D8ehfCcHkMjLmvnur8GM%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKy6rtmqim5Fz2843nagorcri6CRnIKvks5tw2V5gaJpZM4T5DgW&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430360412&sdata=G%2FNhZou9oPefjOcj57hzUK8gvVQSFBf%2BI8DzMRDw2TA%3D&reserved=0.

Yes. On it
Get Outlook for Androidhttps://aka.ms/ghei36

From: Subramanian Ramaswamy
Sent: Wednesday, May 9, 2018 4:28:23 PM
To: MicrosoftDocs/azure-docs; Sudhanva Huruli
Cc: MicrosoftDocs/azure-docs; Mention
Subject: Re: [MicrosoftDocs/azure-docs] Broken link to SF volume application (#8373)
Sudanva - can you please fix this?
On May 9, 2018, at 2:54 PM, Noel <notifications<EMAIL_ADDRESS>wrote:
"The Service Fabric application that provides the volumes for your containers can be downloaded from the following link." points to https://aka.ms/sfvolumehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2Fsfvolume&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430320385&sdata=swt5u1Nb8qbwSM%2Bxjpw8bx2uJHfOz2A2vpqP9fPmlgA%3D&reserved=0, but that currently redirects to microsoft.comhttp://microsoft.com rather than the location to download the application

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.comhttp://docs.microsoft.com ➟ GitHub issue linking.

ID: f2a56233-8bf2-46c3-524a-883b7181a682
Version Independent ID: 6b6ad44b-0780-400c-98a9-912f0446a7d8
Content: Service Fabric Azure Files Volume Driver (Preview)https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fservice-fabric%2Fservice-fabric-containers-volume-logging-drivers&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430330392&sdata=i2GioKwe%2FEWuxVJgmyTHVQCioUosn6VEmgyC7Jee0pA%3D&reserved=0
Content Source: articles/service-fabric/service-fabric-containers-volume-logging-drivers.mdhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fazure-docs%2Fblob%2Fmaster%2Farticles%2Fservice-fabric%2Fservice-fabric-containers-volume-logging-drivers.md&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430340396&sdata=Os8Uc9c%2BPOwnaQbnEHGX27FQMgjG%2BN0a3CL5NhGxhHc%3D&reserved=0
Service: service-fabric
GitHub Login: @mani-ramaswamyhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmani-ramaswamy&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430350404&sdata=iXNscozNjK4IKN4sedPNFbHpxPoBHGzcs2gwF08Pl2g%3D&reserved=0
Microsoft Alias: subramar

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F8373&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430350404&sdata=uUHWHgvF2GwdnkYj%2BuPzGm8D8ehfCcHkMjLmvnur8GM%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKy6rtmqim5Fz2843nagorcri6CRnIKvks5tw2V5gaJpZM4T5DgW&data=02|01|subramar%40microsoft.com|8f6c3f00ac4f4cc0af1c08d5b5f76017|72f988bf86f141af91ab2d7cd011db47|1|0|636614996430360412&sdata=G%2FNhZou9oPefjOcj57hzUK8gvVQSFBf%2BI8DzMRDw2TA%3D&reserved=0.

@noelbundick Thank you for the feedback. As you can see, the document author is already in the process of fixing this.
Regards,
Mike


good performance is not obtained

Ihi. I am very grateful for the help here.
I am currently training a model using your source code. However, good performance is not obtained. This is the result after learning 2 epochs, but I don't know if I'm doing well. I look forward to your comments.

Ihi. I am very grateful for the help here.
I am currently training a model using your source code. However, good performance is not obtained. This is the result after learning 2 epochs, but I don't know if I'm doing well. I look forward to your comments.

Hello! Im having low accuracy as well but Im using mobilenet backbone, have you tried that one? (loss does not go under 20 :( )
regards,
Alberto.


Custom @remove-icon-click function doesn't override native remove handler

Reproduction
https://formkit.link/7c490f564ab10f93d75482d4651ccc31
Describe the bug
Hi.
I want to show a confirmation modal before the deletion of an item from the repeater field. I supposed that I could accomplish it by setting a custom handler for the 'removeIconClick' event, but, while the custom handle function gets called, the native event handler also gets called.
Environment
• OS: [e.g. iOS] Win 11
• Browser [e.g. chrome, safari] Chrome 123.0.6312.122
• Version [e.g. 22] Playground 1.6.x

@Lazerproof Hey there! Here's a solution I came up with: https://formkit.link/b979ebf86564e5c47ec870bcc2e10a25. Maybe someone else on the team can jump in with a more elegant solution.

You could also use a plugin to add this globally https://formkit.link/70def50b29441b16d0c6810d782eb1b1.

@Lazerproof I'm going to close this for now. Feel free to reopen/comment back if you have any issues/questions.

@fenilli @sashamilenkovic Thanks for examples. I went with the plugin approach, but there is an issue that handleRemove function get called twice on remove icon click with different arguments.
Take a look at console on this example https://formkit.link/f7254ad18d3e7b8a9e9d0e507bee397c

That would be correct indeed, as we changed the removeControl but not the icon itself that also has a click handler, there might be two ways to deal with it, one would be to also change the icon itself removing the onClick event from it, the other a bit simpler would be to just pass the handler directly to the plugin: https://formkit.link/723d2c437382a7732515c78a66d4dfdf

@fenilli Great, thanks!


Flip load_incluster_config to true by default and externalize

Why
Relevant ticket
The load_incluster_config param was flipped to False while I tested locally, and I failed to flip it back to True. This will break downstream k8s runners.
This PR

Flips back to True by default, and allows the config to be set by downstream clients to avoid this situation in the future.

Checklist

[ ] Documentation has been updated as needed.

Note: HCA will need to add this to its k8s_beam_runner config as well when it pulls in this version.


how to rotate the image 90 degrees and display it in my Qt window

Please only ask one question per issue!
Describe what it is that you want to accomplish
How to rotate the image 90 degrees and display it in my Qt window，for all I know,Libcamera.Transform can only flip the preview horizontally or vertically.

I'm afraid 90 degree rotation is not currently supported.

Numpy has a reasonably efficient array rotate method that might be useful.
eg
`import cv2
import numpy as np
from picamera2 import Picamera2
from PIL import Image
import time
cam = Picamera2()
config= cam.create_still_configuration({"size":(640,480)})
cam.configure(config)
cam.start()
time.sleep(1)
array = cam.capture_array("main")
img=Image.fromarray(array)
img.show()
rot_array=np.rot90(array)
rot_img =Image.fromarray(rot_array)
rot_img.show()
`
Not sure why the 'code tags' haven't operated but there are no indents in the code!

Thank you!But for some reason, my camera needs to be placed horizontally, so I need to not only rotate the displayed image by 90 degrees, but also the pictures and videos I capture. In fact, it should be the operation of the camera sensor layer, just like the transposition of the sensor pixel matrix (I don't know much about my feeling). If I use OpenCV to manipulate the image, it will obviously delay my preview (and I don't know how to do it). I don't want to see this.

A related question, not a suggestion for the OP.
For Picamera2.global_camera_info()[0]['Rotation']
The Docs say

"Rotation" - how the camera is rotated for normal operation, as reported by libcamera

Libcamera docs say:

https://libcamera.org/api-html/namespacelibcamera_1_1properties.html#a3b25103242b577663c87eb8d492fe94e

How to tell libcamera how the camera is physically orientated, for example 'portrait' and 'selfie'?

@yingliuzhizhuzed
If you use FfmpegOutput you can rotate the output 90° clockwise with "-metadata:s:v:0 rotate=90". To rotate counterclockwise use rotate=-90


Looking for someone to maintain the project

Hi,
I'm very sorry in advance for not merging your PRs nor responding to issues.
I cannot find time to maintain the project,
I'm looking for someone to tranfer the project or someone to fork the project and I will link his project in the README of his project
and mark this one as deprecated.
Thanks

@MrBin99 I'm happy to help with maintaining this project, or even fully take over the whole project.

@MrBin99 I'm happy to help with maintaining this package, and willing to receive a transfer of this project.

@thijskramer Cool thanks !
I've been thinking that perhaps I will just give you access to push and accept PRs in my place.
Changing repo will mostly break peoples that use the lib like myself 👀
Is it OK for you to do it like that ?

Yes absolutely! That is even better :-)

@MrBin99 I'd like to change the default branch from master to main someday. Could I get a bit more permissions? Or can I notify you somehow when I'd like to to that?

Hi @thijskramer,
Sorry I didn't seen your messages.
Are you ok that I'll handoff the project to you ? It will be simpler to you for the future.
I will mark the repo on Pypi as "deprecated", and add a link to your repo.
It's ok for you ?

@MrBin99 Another enthusiast has popped up the last few months: @Niicck ! He'd like to be a maintainer as well. Could you give him the appropriate permissions?


Please make a new release in PyPI.

Over the last six years, many new SVD files have been added that are not included in the currently available release.

Given the size to which things have grown, I am leaning toward doing a new pypi release of a major version but which would not include the SVD definitions themselves in the pypi artifact.  Though this is less convenient, I think it is more appropriate in general.

Firstly, thank you to all the contributors of this excellent package!
We would like to have a new version (specifically with register cluster support) available on PyPI too.
I agree that excluding the SVD definitions from the PyPI package probably makes sense (we do not make use of those anyway).

Version 0.0.6 of https://github.com/markrages/svd_gdb now downloads the SVD files on demand, so this is no longer relevant.


Implementing Select2 to dynamic formsets: load ID number

I'm trying to implement Select2 to dynamic formsets (https://www.youtube.com/watch?v=s3T-w2jhDHE) and using setTimeout (https://github.com/select2/select2/issues/4175) I managed to make the first added formset work but now I want to iterate over each ID. I tried this with no result:
        setTimeout (function() {
            $("#id_samplepoolindexcand_set-",c,"-pool_id").select2();
            });
        }

where c is a variable with a number (1, 2, 3...)

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.


No way to access the literal type at a specific object key?

I'm trying to access the literal type of the value at a specific key of a given object, in order to use with generics to describe the complex relationship between a function's input and return type.
If you freeze an object, you can use the $Values utility to get a union of literal types based on an object's values:
const foo = Object.freeze({
  a: 'bar',
  b: 123,
  c: true,
})

type MyType = $Values<typeof foo> // 'bar' | 123 | true

('bar': MyType)  // ok
(123: MyType)    // ok
('nope': MyType) // flow error

That works fine. But what if I want to get only one literal type, at a specific key, foo.a (i.e. 'bar' in this case)? I've tried several ways but they all lose accuracy, becoming the primitive string type:
type Attempt1 = typeof foo.a // string

type Attempt2 = $PropertyType<typeof foo, 'a'> // string

type Attempt3 = $ElementType<typeof foo, 'a'> // string

type Attempt4 = $Values<
  $Diff<
    typeof foo,
    $Diff<typeof foo, { a: string }>
  >
> // string

Is there any way to do it?

You can annotate the type of foo or make the type of foo.a explicit: a: ('bar': 'bar').

@fishythefish thanks but I need a way to do it dynamically for an object that is not known in advance, accessed only via via a generic reference.

Yeah this would appear to be a bug.  Most likely when they allowed the unions via Object.freeze they did not extenf the interface to handling other type calls like $PropertyType, etc.
In this case, Flow should absolutely know it will be 'bar' and never anything else because it is no longer possible for foo.a to be any other value than 'bar'.
These are the bugs that really hold Flow back and make Typescript more appealing for sure.