text:
Going Beyond Elmish with Incremental Computations and Active Expressions

In "Data Driven UIs Incrementally" (Strangeloop 2018 talk) Yaron Minsky goes through how they built a diff+patch approach on top of functional data structures using incremental to structure the process of updating the model in the Elmish architecture as an incremental computation.
But I still think this falls short of what could potentially be achieved by integrating all of these pieces into a compositional primitive to make it a lot easier to build and extend reactive user interfaces in F#. An abstraction similar to Active Expressions should be possible, although the underlying implementation would be built on an incremental computation model.
If Fabulous was extended to support this kind of architecture maybe it would make sense to decouple that from Xamarin.Forms? Xamarin.Forms would still be the canonical implementation, but if someone wanted to plug in say Avalonia instead it would be amenable to it.
Further Reference
Blog Posts

Self Adjusting DOM
Self Adjusting DOM and Diffable Data
Streamlining Incr_dom
Incremental Computation and the Web
Designing a Tree Diff Algorithm Using Dynamic Programming and A*

Papers

Self-Adjusting Computation (thesis)
Active Expressions - Basic Building Blocks for Reactive Programming

Repos

incremental - A Library for Incremental Computations
incr_dom: A library for writing dynamic web-apps
incr_select - Handling of large set of incremental outputs from a single input

Wow, that looks really interesting! Thanks!
I didn't know about Active Expressions. Time to study :)
Swapping Xamarin.Forms by another UI Framework (Avalon, Uno, native Android/iOS, etc.) is a recurring question.
I think nothing prevents to decouple Xamarin.Forms and Fabulous, especially if we implement a diff+patch on the model instead on the view. (still need to learn how Active Expressions will help here)
But the work to support another framework will still be substantial as I think the best way is to have a specific View DSL per framework.

@cloudRoutine I only skimmed the links but have you taken a look at http://reedcopsey.github.io/Gjallarhorn/ ? :)

Fabulous has been decoupled from Xamarin.Forms and is now able to provide its own optimized view diffing.
These links will come in handy soon. :)

Watching through Minsky's excellent talk, I notice the following:
First, from about 25min in, I see F# immutable maps should support a "symmetric diff" operation with signature such as
val symmetricDiff: Map<'K,'V> -> Map<'K,'V> -> ('V -> 'V -> bool) -> seq<'K * Choice<'V, 'V, ('V * 'V)>>

It is necessary to implement this on the core tree of the Map data structure to allow pointer-equality on the internal Map structure to be used as a way of detecting "no change" within incrementally derived maps.
Next, I wonder if there is scope to experiment with a quotation-based "incrementalization" of Fabulous programs.  My thinking is that we put ReflectedDefinition on all the MVU code, and then
mkIncrementalProgram <@ init @> <@ update @> <@ view @>

does a somewhat sophisticated derivation of an incrementalized version of the MVU program.  This would include an incrementalized model type under the hood (not made explicit to the programmer). For example, if the model contains
type Model = { Value : int }

and the update function (unsurprisingly) does incremental updates to Value for some messages, then the incrementalized program uses a model
type Model' = { Value: Incremental<int> }

in either a Gjallahorn or Self-adjusting computation version of incrementalized or reactive computation.  The update function would be rewritten to be Model' -> Model' and the view function would be rewritten to be an incrementalized view Model' -> dispatch -> Incremental<View'>.   The process of consuming the incremental view would then be ultra-fast, and would not involve re-evaluating the whole view.
The Model' type would not be explicit to the user and might not actually be generated as a class (it would exist logically in the implementation of mkIncrementalProgram but not otherwise).
This would be a bit of a research agenda but feels somewhat tractable - it is effectively rediscovering the Xaml/Gjallahorn-style binding structure from the static structure of the code where possible, and would resort to dynamic view re-execution where not possible. The advantage is that the user would not have to program explicitly using Incremental nor Rx-style combinators but can just program in the naive functional programming way.

Also a port of incremental to F# - https://github.com/isaksky/Incremental.NET

@davidglassborow Thank you for that link!

A quick update: we are working on an incremental/adaptive data library for F#, based on the core of the Aardvark adaptive data implementation, which is tried and tested
https://github.com/fsprojects/FSharp.Data.Adaptive
Early days yet, but I'd like to next experiment next with an adaptive-data version of Fabulous ViewElements.  I'll post here if/when I make progress.

I think FuncUI (vNext) ticks a lot of the boxes.

View diffing and patching
Lazy (but explicit) views
...

@JaggerJo The FuncUI implementation is really good - this file is impressive https://github.com/dsyme/Avalonia.FuncUI/blob/master/src/Avalonia.FuncUI/Core/VirtualDom.fs
That said, it's still using view-reevaluation - for example if there are 10K data points in a chart and one is removed then the view is re-evaluated and, in the absence of other hacks, this will involve a significant amount of work to spot the minimal diff.
FuncUI can, I think, be adapted to work with adaptive data relatively easily.  This would mean that the 'view' functions are not re-executed on update (except where necessary for incremental DOM maintenance).  The diffs in the view would flow out of the adaptive data, rather than having to diff an old and new view like you do here
There's a sample showing how to define a tree of adaptive view-like data and perform incremental maintenance on a mutable HTMLElement data strucutre here: https://github.com/dsyme/FSharp.Data.Adaptive/blob/dom-node/src/FSharp.Data.Adaptive.Tests/DomUpdater.fs.  The variation FuncUI would need would be a bit different - for example FuncUI could define a ViewReader for the AdaptiveView type, producing a ViewDelta (and then patch is called on that).

Hey all, I'm bascially done with FSharp.Data.Adaptive for the time being and  currently focus on a better HashMap implementation (see ImmutableHashCollections).
I'd be happy to help with sketching adaptive-support for Fabulous but I have 0 experience with it yet. Just let me know if you're interested and I'll try to come up with a sketch.
Maybe I/we should start with a very restricted set of elements without the auto-generated code...
Cheers

@krauthaufen Yes, I'm sort of skirting around biting this off too.
One reason why I did the DOMNode sample in F.D.A was to start to get a feel for what an AdaptiveViewElement type would look like in Fabulous.  Certainly the code generator would need to be modified as well, which in final form should be done after #530 lands though of course we could experiment earlier.
Currently attending NDC Sydney so a bit restricted in time - need to prep my talks :)

@krauthaufen @dsyme This looks fantastic. I will definitely play with it. 😄
I have only a basic understanding of it, and I have a few questions regarding what it would mean for Fabulous.
Will it be something used only internally while keeping the usual init/update/view loop
Or would the users need to use aval, amap, etc. constructs too?
Will it be also applicable to state (model)? (by auto-magically creating an incremental model like you mentioned in a comment above)
And finally, is it something that could fit directly in Fabulous itself, removing the need for implementing a view diff process in Fabulous.XamarinForms?

@TimLariviere I think the aim would be to give an advanced option for people who are dealing with rapid UI updates or large view computations, and wehre using techniques like dependsOn don't cut it.
Using adaptive data is fairly invasive in the programming of the view - but "transitional" in the sense that it's a fairly syntactic process to switch from view-recomputation to adaptive data. It is also somewhat invasive on the programming of the model.  However the result is minimal, tight updates
An example/sketch extracted from the unreleased Aardvark.Web is here:

The Immutable Model

The Update Function (immutable to immutable)

The adaptive model MKitchenSinkModel is auto-generated from the immutable model using a type-based code generation tool that could in theory be a type provider if type providers took types as arguments

The Adaptive View

The crucial thing is really that the Adaptive view is authored in an essentially functional way, MVU-style, using the functional mindset, and is presumably derived from a slower adaptive view. However it is actually only computed once, or only recomputed on-demand when necessary in response to changes.  For example, if the view has
adaptive {
    let! loggedIn = model.LoggedIn
    if loggedIn then ...
        ...
    else
        ...
}

then the conditional will only be re-executed if either model.LoggedIn actually changes or some adaptive value on which the currently active if/then/else branch changes.  So the view is properly incrementalized - the view function is called once and the thing it returns acts like adaptive functional data.
Because of the use of adaptive { .. } and comprehensions over adaptive collections the view is written slightly differently, but it is not a vast change.

To answer the questions:

Will it be something used only internally while keeping the usual init/update/view loop Or would the users need to use aval, amap, etc. constructs too?

See above, the view authoring changes. Some kind of auto-incrementalization based on quotation meta-programming over the view function may be possible

Will it be also applicable to state (model)? (by auto-magically creating an incremental model like you mentioned in a comment above)

See Adaptify above for how Aardvark does this.  You could also work with an adaptive model in which case you're really in adaptive end-to-end and the whole thing begins to feel more like mutable programming, ala Gjallahorn or WebSharper.UI (both great, but the use of an immutable model gives a midpoint on the spectrum)

And finally, is it something that could fit directly in Fabulous itself, removing the need for implementing a view diff process in Fabulous.XamarinForms?

I think the code generators for the ViewElement constructors will need to generate code to do adaptive diffing.  This is the part that is still a bit of a mystery too me but I think I understand how it would go.  Each View.Button would need an AView.Button counterpart and these would be used once you decided to switch to adaptive views.  ViewElement and AdaptiveViewElement would be different types.  The code generator would presumably generate both View.Button and AView.Button.

@dsyme cool overview.
The auto-incrementalization of view functions could be one of the long-term goals here, but the current way of directly writing adaptive view functions also has its benefits, since it allows users to control how updates will be performed.
I could dig into xamarin forms a little and come up with a prototypical implementation for some of the components. This way I learn a little about xamarin.forms and you guys get an idea of how this could look like.
Cool to see that there's some interest in our baby 😁
Cheers

Hey, I wrote a little sketch playing around with Xamarin testing ways to interact with FSharp.Data.Adaptive. (see XamarinAdaptiveSketch)
This does not include any ELM-style updates, but focuses on getting adaptive values into the DOM.
Please note that this is a super-hacky and ugly code currently but I managed to create a counter-app.
Some things I'd like to mention

The DOM-types are just a sketch heavily using SRTP, that isn't related to Fabulous atm.
the whole update-code is super-monolithic and not readable
child-order is treated incrorrectly (and currently uses a reflection-hack that should be removed)
do you guys have any idea how something like insertBefore insertAfter can be done for Xamarin-Elements?
The only way I can add elements is by using Insert and Add but maintaining indices is not that easy (although doable)

I've made a proof-of-concept investigation of using FSharp.Data.Adaptive for incremental view update. My aim has been to make a fork of Fabulous (e.g. "AdaptivelyFabulous") with as few changes to the Fabulous programming model I've been able to achieve.
There are numerous TODOs but the CounterApp is working.
The results show to me the following

It is possible.  This is an incrementalizing version of the Fabulous programming model that is recognizably MVU programming in a style that all Fabulous programmers would recognize and be able to transition to.

The programming model is impacted in small but not-insignificant ways.  I don't think it's feasible to make Fabulous use adaptive data by default, but it is feasible to maintain it as a fork for advanced high-performance view scenarios.

The changes in the ViewElement (ViewUpdater.fs etc) part of Fabulous implementation are fairly invasive, as the whole process of incremental update for all ViewElements is changed.  This means it is difficult at the moment to incorporate adaptivity directly into Fabulous as an additional option.

I would expect the performance of fully completed AdaptivelyFabulous to be much, much better on data-rich views (e.g. very large collections/lists) but have yet to prove if this is the case.

The programming model is affected in two major ways.

The view must be written as an adaptive expression, example here.  This basically means that the following changes are made from a normal Fabulous view:

invariant, unchanging attributes are prefixed with c
invariant lists of children prefixed with cs
varying attributes are written using AVal.map from an underlying source

The functional model must be incrementalized, which means taking two models and producing changes via a Changeable model. This is currently done either by hand or by using a meta-programming solution such as the Adaptify tool or some future F# type provider.
Ideally this wouldn't have to happen at all and somehow the update function could just produce a list of deltas to the model which are then propagated through the incremental computation.  I'll talk to @krauthaufen more about this, it's a deep issue that goes to the heart of the interaction between domain modelling (representing model state) and event sourcing (representing deltas to model state and processing them to produce updated models).

The extension API is modified.  I'll simplify this to be a bit more like the original and reduce the overall diff.

Awesome work !!!! 🥳🎉
Ideally we could incrementalize pure view-functions using a compiler, but "chasing" updates through the update-function also seems promising. We thought about that in the past but never really did it...
However the Adaptify approach isn't too different from that actually. It computes changes on persistent structures that are expected to share most of their values. Nonetheless "knowing" which elements changed would of course be beneficial.

Maybe we could come up with something similar to Fable.Elmish.Adaptive where users can mix and match adaptive and static components.
This would certainly simplify transitioning from pure-world to adaptive-world...
However the high-level code would need to switch from a re-executing view function to an adaptive one, but the "standard" behaviour can always be simulated by using model.current |> AVal.map pureView...

Maybe we could come up with something similar to Fable.Elmish.Adaptive where users can mix and match adaptive and static components.

Yes, this would be ideal.  Right now the duplication/divergence in the update logic and codegen is too large and subtle for my liking to inflict on @TimLariviere and the others managing Fabulous - too many things would need to be done twice.  I need to keep working on it.

I've placed the adaptive version of Fabulous at https://github.com/dsyme/fabulous-adaptive. There is a small sample of its use in the README https://github.com/dsyme/fabulous-adaptive#fabulous-adaptive-version

Closing stalled issue

authors: JaggerJo TimLariviere cloudRoutine davidglassborow dsyme krauthaufen lukethenuke

repo: fsprojects/Fabulous


text:
fix(RB-593): chart colors must be consistent

SUMMARY

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Close in favor of https://github.com/komodohealth/superset-kh/pull/5/files

source: gharchive/pull-request

repo: ftom/superset

license_type: permissive

license_source: github-api


text:
chore(main): release eslint-config-fuf 0.9.4

:robot: I have created a release beep boop
0.9.4 (2024-05-06)
Bug Fixes

eslint-config-fuf: update dependency @babel/eslint-parser to v7.24.5 (ff6cc7a)
eslint-config-fuf: update typescript-eslint monorepo to v7.8.0 (2b25316)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/fuf-stack/ts-project-setup/releases/tag/eslint-config-fuf-v0.9.4 :sunflower:

repo: fuf-stack/ts-project-setup

license: MIT


text:
DAF-Net: ドメイン適応性を備えた赤外線および可視画像融合のためのデュアルブランチ特徴分解融合ネットワーク

タイトル: DAF-Net: ドメイン適応性を備えた赤外線および可視画像融合のためのデュアルブランチ特徴分解融合ネットワーク
リンク: https://arxiv.org/abs/2409.11642
概要:
赤外線画像と可視画像の融合は、両方のモダリティから補完的な情報を組み合わせることで、より包括的なシーン理解を提供することを目的としています。しかし、2つのモダリティ間の大きな違いにより、融合プロセス中に重要な特徴を保持することは依然として課題です。この問題に対処するため、ドメイン適応機能を備えたデュアルブランチ特徴分解融合ネットワーク（DAF-Net）を提案します。これは、ベースエンコーダーにマルチカーネル最大平均不一致（MK-MMD）を導入し、赤外線および可視画像融合に適したハイブリッドカーネル関数を設計します。Restormerネットワーク上に構築されたベースエンコーダーは、グローバルな構造情報をキャプチャしますが、Invertible Neural Networks（INN）に基づく詳細エンコーダーは、詳細なテクスチャ情報の抽出に焦点を当てています。MK-MMDを組み込むことにより、DAF-Netは可視画像と赤外線画像の潜在的な特徴空間を効果的に整合させ、融合画像の品質を向上させます。実験結果により、提案手法は、複数のデータセットにわたって既存の手法よりも優れており、視覚的品質と融合パフォーマンスの両方を大幅に向上させることが実証されています。関連するPythonコードは、https：//github.com/xujian000/DAF-Netで入手できます。

@yukihiko-fuyuki が以下のラベルを提案し、適用しました：

image-enhancement
domain-generalization
image-fusion

以下の新しいラベルが作成され、適用されました：

image-fusion

論文要約
論文要約: DAF-Net (赤外線＆可視画像融合のためのドメイン適応型ネットワーク)

目的: 赤外線画像と可視画像を融合し、それぞれの情報を補完することでより詳細なシーン理解を可能にする。
課題: 赤外線画像と可視画像の差異が大きく、重要な特徴を保持したまま融合することが難しい。
提案手法: ドメイン適応機能を持つデュアルブランチ特徴分解融合ネットワーク (DAF-Net)

MK-MMDの導入: ベースエンコーダーにマルチカーネル最大平均不一致 (MK-MMD) を導入し、赤外線と可視画像に最適化されたハイブリッドカーネル関数を設計。
デュアルブランチ構造:

ベースエンコーダー(Restormerネットワーク): 画像全体の構造情報を取得。
詳細エンコーダー(Invertible Neural Networks): きめ細かい質感情報を抽出。

効果:

MK-MMDにより、可視画像と赤外線画像の特徴空間を効果的に一致させ、融合画像の品質を向上。
既存手法と比較して、視覚的な品質と融合性能の両方が大幅に向上。

コード公開: https://github.com/xujian000/DAF-Net

source: gharchive/issue

repo: fulfulggg/Information-gathering


text:
INQUIRE：自然世界のテキスト画像検索ベンチマーク

タイトル: INQUIRE：自然世界のテキスト画像検索ベンチマーク
リンク: https://arxiv.org/abs/2411.02537
概要:
専門家レベルのクエリを用いてマルチモーダル視覚言語モデルの能力を測る、テキスト画像検索ベンチマークINQUIREを開発しました。INQUIREには、500万枚の自然界の画像からなる新しいデータセットiNaturalist 2024 (iNat24)と、250の専門家レベルの検索クエリが含まれています。これらのクエリは、iNat24内で包括的にラベル付けされた関連画像全てと対応付けられており、合計33,000件の一致があります。クエリは、種の識別、コンテキスト、行動、外観など、画像の微妙な理解と専門知識を必要とするタスクを重視しており、(1) データセット全体をランキングするINQUIRE-Fullrank、(2) 上位100件の検索結果を絞り込むINQUIRE-Rerankという2つの主要な検索タスクを評価します。様々な最新のマルチモーダルモデルを用いた詳細な評価により、INQUIREが大きな課題となることが示され、最良のモデルでもmAP@50は50%に達していません。さらに、より強力なマルチモーダルモデルを用いた再ランキングは検索性能を向上させるものの、依然として改善の余地が大きいことが分かりました。INQUIREは、科学的に動機付けられた生態学的課題に焦点を当てることで、AIの能力と現実世界の科学的探求のニーズとのギャップを埋め、生態学および生物多様性研究の促進を支援する検索システムの開発を促進することを目指しています。データセットとコードはhttps://inquire-benchmark.github.ioで公開しています。

@yukihiko-fuyuki が以下のラベルを提案し、適用しました：

benchmark
dataset
vision-language-model

論文要約
INQUIRE：自然世界のテキスト画像検索ベンチマーク 論文要約
専門家レベルの知識が必要な、自然世界の画像検索を評価するための新しいベンチマーク「INQUIRE」が開発されました。

新しい大規模データセット iNaturalist 2024 (iNat24) を使用: 500万枚の自然界の画像が含まれています。
専門家レベルの検索クエリ:  種の識別、行動、外観など、高度な知識を必要とする250のクエリを用意。
網羅的なラベル付け: 各クエリに対して、iNat24 内の関連画像全てにラベル付け済み（合計33,000件の一致）。
二つの評価タスク:

INQUIRE-Fullrank: データセット全体（500万枚）から画像をランキング。
INQUIRE-Rerank: あらかじめ絞り込まれた上位100件の検索結果を再ランキング。

既存モデルの性能評価: 最新のマルチモーダルモデルでも精度はまだ低く、改善の余地が大きい。再ランキングは性能向上に貢献するものの、課題は残る。
科学的探求への貢献: 生態学や生物多様性研究に役立つ、高性能な画像検索システムの開発を促進する狙い。
データとコードは公開済み:  https://inquire-benchmark.github.io

簡単に言うと、専門家レベルの複雑な画像検索を評価するための新しいテストが作られ、現状のAIはまだ十分な性能ではないことが示されました。このテストとデータセットは、より高性能な自然画像検索システムの開発を促すことが期待されます。


text:
GazeGen：視線入力によるビジュアルコンテンツ生成

タイトル: GazeGen：視線入力によるビジュアルコンテンツ生成
リンク: https://arxiv.org/abs/2411.04335
概要:
視線で指示した場所に画像や動画などの視覚コンテンツを生成するユーザーインタラクションシステム「GazeGen」を開発しました。GazeGenは、視線で関心領域を指定することで、直感的なコンテンツ操作を可能にします。高度な物体検出技術と生成AIを用いて、視線による画像中のオブジェクトの追加・削除、位置変更、表面材質の変更、静止画から動画への変換を実現します。GazeGenの中核を担うのは、わずか281Kパラメータの超軽量モデル「DFT Gaze（Distilled and Fine-Tuned Gaze）」です。このモデルは、小型エッジデバイス上で、個々のユーザーの目に合わせた高精度なリアルタイム視線予測を行います。GazeGenは、DFT Gazeによって初めて実現した、視覚コンテンツ生成とリアルタイム視線推定を組み合わせたシステムです。DFT Gazeへの入力はユーザーの眼画像、コンテンツ生成への入力はユーザーの視界とDFT Gazeによる視線予測点です。効率的な視線予測のため、新規の知識蒸留と個人適用の技術により、大型モデル（10倍の規模）から小型モデルを導き出しました。Masked Autoencoderと知識蒸留を統合することで、コンパクトながら強力な視線推定モデルを開発し、さらにアダプターを用いた微調整により、最小限のユーザー入力で高精度な個人向け視線予測を可能にしました。DFT Gazeは低遅延で正確な視線追跡を保証し、幅広い視線駆動タスクをサポートします。AEAおよびOpenEDS2020ベンチマークでDFT Gazeの性能を検証し、エッジデバイス（Raspberry Pi 4）上での低角度視線誤差と低遅延を実証しました。さらに、GazeGenの様々な応用例を示し、その汎用性と有効性を実証します。

@yukihiko-fuyuki が以下のラベルを提案し、適用しました：

eye-tracking
image-generation
model-compression

論文要約
GazeGenは、視線入力で画像や動画を操作・生成できる新しいシステムです。

視線で指示するだけでコンテンツ生成・編集が可能:  画像へのオブジェクトの追加・削除・移動、質感の変更、静止画から動画への変換などを、視線を使って直感的に行えます。

超軽量な視線予測モデル「DFT Gaze」がシステムの中核:  わずか281KパラメータのDFT Gazeは、小型デバイスでもリアルタイムで高精度な視線予測を実現し、GazeGenを初めて可能にしました。

DFT Gazeは個人に合わせた高精度な予測を実現:  知識蒸留とアダプターを用いた微調整により、大規模モデルの性能を維持しつつ小型化を実現し、ユーザー固有の視線特性にも対応します。

低遅延・高精度な視線追跡:  エッジデバイス(Raspberry Pi 4)上での動作検証で、低い視線予測誤差と遅延を実現。

幅広い応用可能性: 論文ではGazeGenの様々な活用例を示し、その汎用性と有効性を示しています。


text:
ViTmiX：混合視覚化手法によるVision Transformerの説明性向上

タイトル: ViTmiX：混合視覚化手法によるVision Transformerの説明性向上
リンク: https://arxiv.org/abs/2412.14231
概要:
Vision Transformer（ViT）は、自己注意機構によって画像内の長距離依存性を捉えることで、様々な視覚認識タスクにおいて目覚ましい成果を上げています。しかし、ViTモデルの複雑さゆえに、その意思決定プロセスを解明するには、確かな説明可能性の手法が必要です。説明可能なAI（XAI）は、モデルの予測に関する洞察を提供することで、モデルの透明性と信頼性を向上させる上で重要な役割を果たします。現在、ViTの説明可能性へのアプローチとして、層ごとの関連伝播（LRP）や勾配ベースの手法といった可視化技術が用いられていますが、有望である一方、限界も見られます。本研究では、これらの限界を克服し、ViTモデルの解釈可能性を高めるため、複数の説明可能性の手法を組み合わせたハイブリッドアプローチを探求します。実験の結果、このハイブリッドアプローチは、個々の手法に比べてViTモデルの解釈可能性を大幅に向上させることが明らかになりました。また、既存の手法に幾何平均を用いた組み合わせなどの改良を加え、オブジェクトセグメンテーションタスクにおいて顕著な成果を示しました。説明可能性の向上を定量化するために、鳩の巣原理を応用した新たな事後説明可能性指標を導入しました。これらの知見は、ViTモデルの説明可能性の手法を改良および最適化することの重要性を強調し、信頼性の高いXAIベースのセグメンテーションへの道を拓くものです。

@yukihiko-fuyuki が以下のラベルを提案し、適用しました：

interpretability
image-segmentation
vision-transformer

以下の新しいラベルが作成され、適用されました：

vision-transformer

論文要約

Vision Transformer (ViT) は高性能だが、複雑で理解しにくい。  画像認識で優れたViTだが、なぜそう判断したのかを説明するのが難しい。

ViTの説明性を向上させるため、複数の既存手法を組み合わせた新しい手法 (ViTmiX) を提案。  従来の「層ごとの関連伝播 (LRP)」や「勾配ベースの手法」といった手法だけでは不十分だった点を克服。

ViTmiXは、幾何平均を用いた手法の組み合わせなどで、既存手法よりも優れた説明性を示した。 特にオブジェクトの領域分割タスクで効果的。

説明性の向上度合いを測る新しい指標も開発。 「鳩の巣原理」に基づいた指標で、定量的に評価できるようになった。

ViTmiXは、ViTの信頼性を高め、説明可能なAI (XAI) の発展に貢献する。  ViTの判断根拠が理解しやすくなることで、AIシステムへの信頼性向上に繋がる。


text:
peerctl network search fixes

add pdbctl network search autocomplete
some minor style updates to v1 theme for peerctl network search
adds response parameter to load:after event on twentyc.rest.List

requires https://github.com/fullctl/pdbctl/pull/9 to be merged

Codecov Report

Merging #95 (37eef9a) into prep-release (9d457a4) will decrease coverage by 0.05%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##           prep-release      #95      +/-   ##
================================================
- Coverage         45.95%   45.90%   -0.05%
================================================
  Files               122      122
  Lines              4248     4252       +4
================================================
  Hits               1952     1952
- Misses             2296     2300       +4

Impacted Files
Coverage Δ

src/fullctl/django/autocomplete/pdb.py
0.00% <0.00%> (ø)

src/fullctl/django/urls.py
75.00% <ø> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

authors: codecov-commenter vegu

repo: fullctl/fullctl


text:
V3: orderByChild + startAt or endAt

@Salakar Sorry to bother you again. It seems like orderByChild is not working, at least when used with startAt or endAt. I have a list of message objects that I want to query based on their timestamp.
This code returns zero results
firestack
  .database()
  .ref('messages/-KXlqrDgbJg_-FJCoDfE/')
  .orderByChild('createdAt')
  .startAt(1480609558242)
  .once('value')
  .then((snapshot) => {
    console.log('my snap', snapshot);
  })

while this code returns all results
firestack
  .database()
  .ref('messages/-KXlqrDgbJg_-FJCoDfE/')
  .orderByChild('createdAt')
  .endAt(1480609558242)
  .once('value')
  .then((snapshot) => {
    console.log('my snap', snapshot);
  })

Based on my sample data below…both results are wrong. The first example should return the first last two objects, the second example should return the first two objects.
I tried both the v3 branch of this repo as well as master branch of your fork. Based on the sample data the query above should return the first object. But nothing is returned

{
  "-KXlqrDgbJg_-FJCoDfE" : {
    "-KXv8Uvyix9Ns5FeF1O1" : {
      "_id" : "-KXv8Uvyix9Ns5FeF1O1",
      "createdAt" : 1480608580717,
      "text" : "Test123",
      "user" : {
        "_id" : "If2AZYNhruXa4ELtYoviNe7JS2S2"
      },
      "wasSeen" : false
    },
    "-KXvCCjPLePNohIkjSw3" : {
      "_id" : "-KXvCCjPLePNohIkjSw3",
      "createdAt" : 1480609553540,
      "text" : "Test456",
      "user" : {
        "_id" : "If2AZYNhruXa4ELtYoviNe7JS2S2"
      },
      "wasSeen" : false
    },
    "-KXvCDsZq__24IkB6zGs" : {
      "_id" : "-KXvCDsZq__24IkB6zGs",
      "createdAt" : 1480609558242,
      "text" : "Test789",
      "user" : {
        "_id" : "If2AZYNhruXa4ELtYoviNe7JS2S2"
      },
      "wasSeen" : false
    },
    "-KXvQisiS1bsm3oYCdll" : {
      "_id" : "-KXvQisiS1bsm3oYCdll",
      "createdAt" : 1480613359327,
      "text" : "Test101112",
      "user" : {
        "_id" : "If2AZYNhruXa4ELtYoviNe7JS2S2"
      },
      "wasSeen" : false
    }
  }
}

Hmm weird one @florianbepunkt - database in the current pushed up state of my branch has not been touched bar a PR from @BlooJeans which was on master that I manually pulled in.
Will look at this today and get back to you, the example helps, cheers!

@Salakar Maybe this is of interest #82 – it was not working properly on master until recently

@florianbepunkt looks like @chrisbianca fixed this issue 3 days ago on my branch - have you tried pulling the latest?
This commit:
https://github.com/Salakar/react-native-firestack/commit/ec9f48855f6580b2838b60db201e26f4fcb32a87

@Salakar I did. To make sure I just installed it again via npm install --save https://github.com/Salakar/react-native-firestack.git
The commit only changes things on android side… I see this problem with iOS.

I only updated the Android side as that's where I'd noticed the issue.
Just taken a look and a similar sort of change does need to happen on the iOS side - I'll see if I can take a look in a little while...

@florianbepunkt oh ok my bad, thought you were having an android issue sorry.
@chrisbianca that would be awesome thanks!

I'm not sure if this is related… using a fresh install from Salakar's fork I see the same issue on android.
Using my sample data

firestack
  .database()
  .ref('messages/-KXlqrDgbJg_-FJCoDfE/')
  .orderByChild('createdAt')
  .startAt(1480609558242)
  .once('value')
  .then((snapshot) => {
    console.log('my snap', snapshot);
  })

returns zero values…

Ok, I don't have any data setup to test this with at the moment.
When I get some time later on, I'll take a look and see if I can figure out what's going on.

@chrisbianca okay. I throw together a simple test project and upload it if that helps

@florianbepunkt that would be great!

@chrisbianca @Salakar Okay, here we go… https://github.com/florianbepunkt/fireStackQuery
you can clone the repo, run npm install and run it. I've tested it on ios and it reproduces the issue.

@florianbepunkt @Salakar
So I've figured out why it's broken in Java... It's passing the startAt and endAt as a String rather than a number.  The fix is an awful lot of repetitive code but I can't think of a better way to work around it!  Just pushed the fix to the v3 branch and sorted for boolean types too.
Will try and look at iOS now...

@chrisbianca great! just checked android version with your commit

I've just committed the equivalent fix for iOS.  I rewrote a large part of the iOS database module to bring it more in line with Android and stop regenerating firebase references unnecessarily.  Let me know if you have any other issues...

@chrisbianca I just freshly cloned my example project linked above and run npm install… tne ios part won't boot. android works fine.
this is the output of react-native log-ios
Dec  3 11:43:04 MacBook-Pro fireStackQuery[450] <Error>: [] nw_host_stats_add_src recv too small, received 24, expected 28
Dec  3 11:43:04 MacBook-Pro fireStackQuery[450] <Notice>: Initializing <RCTBatchedBridge: 0x6000001993d0> (parent: <RCTBridge: 0x6000000ae820>, executor: RCTJSCExecutor)
Dec  3 11:43:04 MacBook-Pro fireStackQuery[450] <Error>: [] nw_host_stats_add_src recv too small, received 24, expected 28
Dec  3 11:43:04 MacBook-Pro fireStackQuery[450] <Warning>: Setting up Firestace instance
Dec  3 11:43:04 MacBook-Pro fireStackQuery[450] <Error>: [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add [FIRApp configure] to your application initialization. Read more: https://goo.gl/ctyzm8.
Dec  3 11:43:04 MacBook-Pro fireStackQuery[450] <Error>: *** Terminating app due to uncaught exception 'FIRAppNotConfigured', reason: 'Failed to get default FIRDatabase instance. Must call FIRApp.configure() before using FIRDatabase.'
        *** First throw call stack:
        (
                0   CoreFoundation                      0x000000010631434b __exceptionPreprocess + 171
                1   libobjc.A.dylib                     0x000000010585e21e objc_exception_throw + 48
                2   CoreFoundation                      0x000000010637d265 +[NSException raise:format:] + 197
                3   fireStackQuery                      0x0000000103c4654f +[FIRDatabase database] + 79
                4   fireStackQuery                      0x0000000103e7af65 -[FirestackDatabase init] + 117
                5   fireStackQuery                      0x0000000103d9a798 -[RCTModuleData setUpInstanceAndBridge] + 2056
                6   fireStackQuery                      0x0000000103d9c286 __25-[RCTModuleData instance]_block_invoke + 38
                7   fireStackQuery                      0x0000000103dbba24 RCTExecuteOnMainThread + 84
                8   fireStackQuery                      0x0000000103d9bf9d -[RCTModuleData instance] + 749
                9   fireStackQuery                      0x0000000103d8c1fc __52-[RCTBatchedBridge prepareModulesWithDispatchGroup:]_block_invoke + 124
                10  libdispatch.dylib                   0x000000010a09d810 _dispatch_call_block_and_release + 12
                11  libdispatch.dylib                   0x000000010a0bf12e _dispatch_client_callout + 8
                12  libdispatch.dylib                   0x000000010a0a62bc _dispatch_main_queue_callback_4CF + 429
                13  CoreFoundation                      0x00000001062d84f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
                14  CoreFoundation                      0x000000010629df8d __CFRunLoopRun + 2205
                15  CoreFoundation                      0x000000010629d494 CFRunLoopRunSpecific + 420
                16  GraphicsServices                    0x000000010ab90a6f GSEventRunModal + 161
                17  UIKit                               0x00000001086f2964 UIApplicationMain + 159
                18  fireStackQuery                      0x0000000103b4b87f main + 111
                19  libdyld.dylib                       0x000000010a10868d start + 1
        )
Dec  3 11:43:04 MacBook-Pro SpringBoard[98560] <Error>: [KeyboardArbiter] HW kbd: Failed to set (null) as keyboard focus
Dec  3 11:43:04 MacBook-Pro com.apple.CoreSimulator.SimDevice.DB5AF926-27C5-4344-8273-3A5318DEE307.launchd_sim[98543] (UIKitApplication:org.reactjs.native.example.fireStackQuery[0xf773][450]) <Notice>: Service exited due to Abort trap: 6
Dec  3 11:43:04 MacBook-Pro assertiond[98564] <Warning>: notify_suspend_pid() failed with error 7
Dec  3 11:44:23 MacBook-Pro CoreSimulatorBridge[98569] <Warning>: Pasteboard change listener callback port <NSMachPort: 0x7f8983102810> registered

@florianbepunkt Ah yes, for the time being, add the following in your AppDelegate.m:
At the top:
#import <Firebase.h>

In didFinishLaunchingWithOptions:
[FIRApp configure];

I'll look at why Firebase isn't being initialised before the database later today / tomorrow

@chrisbianca Thank you. This did the trick

@florianbepunkt Just pushed a change so you shouldn't need to configure your app in the iOS code anymore

@chrisbianca First of all thank you. I feel a bit lost here… in my demo example I linked above, this works. When I put it in my app I'm working on, startAt and endAt have no effect. I made sure I updated firestack… it's up to date. and it's the same data set.
any idea how this can happen?

@chrisbianca okay, got it working now. I had to delete the ios build folder. either I messed up my xcode project settings or when you run the app it's not built from scratch… anyway it works now 👍
I found a small error by accident … I'm working on a kind of messenger. so when I open a conversation I attach a listener for messages, when I leave the conversation I detach the listener by calling
firestack
      .database()
      .ref('messages')
      .child(connversationID)
      .off();

by accident I called the code above without attaching a listener first...which throws the error below. has the method for detaching a listener changed? anyways for me it's no issue, just wanted to let you know.
Exception '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]' was thrown while invoking off on target FirestackDatabase with params (
    "/messages/-KXlqrDgbJg_-FJCoDfE",
    "",
    "",
    33
)

@florianbepunkt I haven't changed anything around the off() functionality so this may be a pre-existing issue.
I believe @Salakar is going to look at the JS side of the database and try and simplify the listeners so may cover this then.

Okay. I did not notice this error before the update.… i did some more testing. I also get this error when I properly atatched a listener first… so basically whenever I remove a listener.

Try:
let conversationRef = firestack.database().ref('messages').child(connversationID);
conversationRef.on('child_added', (data) => console.log(data));
conversationRef.off('child_added');

Everytime you modify the reference (adding modifiers or changing the path), it effectively creates a new unique reference.  Two references that have the same 'builder' are not the same internally.

@BlooJeans Thanks for the clarification. Makes sense.

@florianbepunkt @chrisbianca - @Ehesp and I are having the same issue at the moment:
firestack
    .database()
    .ref('matches')
    .orderByChild('startsAt')
    .startAt(1480982400)
    .endAt(1481068799)
    .on('value', snap => console.log(snap.val()));

Returns no results on firestack. The exact same query however on the web sdk returns correctly and gives matches all for that time range.
We're using the head of my fork so it has your changes @chrisbianca - am i missing something?
Also I think a better way to handle the value types would be get the types on the JS side i.e. it gets sent over as startsAt:number:1234567890 then we don't need to do any guess work on either ios / android - thoughts?

@Salakar I can confirm (sorry @chrisbianca didn't notice since I had no need to combine startAt and endAt yet)
although I get results, when I combine startAt and endAt
both queries below return the same results. updated my test project https://github.com/florianbepunkt/fireStackQuery
firestack
      .database()
      .ref('messages/-KXlqrDgbJg_-FJCoDfE/')
      .orderByChild('createdAt')
      .endAt(1480609558242)
      .once('value')
      .then((snapshot) => {
        console.log('queryTest orderByChild endAt test > snapshot', snapshot);
      })

    firestack
      .database()
      .ref('messages/-KXlqrDgbJg_-FJCoDfE/')
      .orderByChild('createdAt')
      .startAt(1480609558242)
      .endAt(1480617793311)
      .once('value')
      .then((snapshot) => {
        console.log('queryTest orderByChild startAt and endAt test > snapshot', snapshot);
      })

@florianbepunkt thanks, we've been discussing off this thread and I'm just working on a fix

@chrisbianca alright. just fyi: I tested above only on ios. if I can help in any way let me know.

@florianbepunkt I've just pushed a fix which I've tested on iOS.  Would be great if you're able to confirm that it's working for you now too

@chrisbianca works on ios. testes orderByChild with startAt, endAt and both combined.

Excellent!  @Salakar when you're happy, I think this can be closed again

Also works on my end. Nice one 👍

Closing issue as it's now resolved completely 👍

There is something bizarre happening here, this same error is happening only in the iPhone 5, both in the simulator and on a real device as well, I am on Salakar's branch, has anyone ever tested on an iPhone 5 before and got this error?

I am still not getting the expected results.
firestack.database
      .ref('events')
      .orderByChild('timestamp')
      .endAt(1490331248253)
      .once('value')
      .then((snapshot) => {
        console.log('queryTest orderByChild endAt test > snapshot', snapshot);
      })

This returns all results rather than stopping at the timestamp provided.

@AndrewHenderson the above mentioned fixes happened on the v3 version of firestack, your code above looks like you're currently using the old firestack version.
e.g. database became database() on the new version to match the web sdk.
v3 was my fork: https://github.com/Salakar/react-native-firestack

authors: AndrewHenderson BlooJeans Ehesp Salakar chrisbianca esdrasportillo florianbepunkt

repo: fullstackreact/react-native-firestack

license: mit

license_source: bigquery


text:
Upgrades Ruby to 3.0.3, 2.7.5, and 2.6.9 releases

New Ruby versions were just released:

https://www.ruby-lang.org/en/news/2021/11/24/ruby-3-0-3-released/
https://www.ruby-lang.org/en/news/2021/11/24/ruby-2-7-5-released/
https://www.ruby-lang.org/en/news/2021/11/24/ruby-2-6-9-released/

Merged now, thank you!


text:
The image does not open at runtime in Docker.

When we run the application in Docker.  Files from the webroot folder are not retrieved correctly and are not displayed at runtime.

I think that the images in webroot folder are stored with Git Large File Storage https://git-lfs.com/ and will not be downloaded when doing a checkout with git.
When checking out the git repo using actions/checkout@v4 we can according to the documentation tell it to include lfs files or not:
`
with:
Whether to download Git-LFS files
Default: false
lfs: true`

i've added lfs: true in maven.yml check https://github.com/fungover/storm/pull/223

authors: Kouroshkt ajohnsson95 kappsegla

repo: fungover/storm


text:
404 Command not found

after installing  cleanup. when i run cleanup, i got /usr/local/bin/cleanup: line 1: 404:: command not found error. i had to download repo update this line sudo mv cleanup /usr/local/bin/cleanup to sudo mv cleanup.sh /usr/local/bin/cleanup in installer.sh and run the installer.sh. then it worked. hope this help if someone face similar error. Thanks!

curl -o cleanup https://raw.githubusercontent.com/fwartner/homebrew-mac-cleanup/master/mac-cleanup
chmod +x cleanup
sudo mv cleanup /usr/local/bin/cleanup

Fixed! Thank you!

authors: fwartner kzkpro mrtrkmn

repo: fwartner/homebrew-mac-cleanup


text:
Improve error handling in beforeScreenshot

When an error is thrown in beforeScreenshot (can easily happen while creating some more-less complex test case with multiple DOM interactions or if break something in the code), it's not easy to spot it.
Current behavior
In debug mode (viteshot debug) error is visible for a couple of seconds on the page, and after it quickly hides. In the browser console only several framework or DOM errors are visible (at least in the case of React): https://pastebin.com/JhQGnWJR
In non-debug mode (viteshot) only internal DOM error is visible in the output: https://pastebin.com/914mSHvi. Error itself is visible on the screenshot only.
Expected behavior
Only thrown error is visible better in both cases, so it's easy to understand and debug it. In debug mode it should be visible in the console and maybe (debatable, not sure about this one) block rendering of other snapshots. In console mode, it just should show thrown error.
As I see viteshot takes the screenshot of the error to put it in the image, but still would be nicer to show it in the console. And in the debug mode it just hides too fast to understand the root cause.
Minimal code to reproduce:
export const MyScreenshot = () =>
Hello, World!

MyScreenshot.beforeScreenshot = () => {
  throw new Error('test error')
}

viteshot config:
const playwrightShooter = require('viteshot/shooters/playwright')
const playwright = require('playwright')

module.exports = {
  framework: {
    type: 'react',
  },
  shooter: playwrightShooter(playwright.chromium),
  filePathPattern: '**/*.screenshot.@(js|jsx|tsx|vue|svelte)',
}

Hi @dimadk24, thanks for this useful feedback.
I'm planning to rebuild Viteshot on top of Preview.js which should hopefully make this a bit better. No plans to fix it in the short term though (but PRs welcome!).

repo: fwouts/viteshot


text:
Why do you cut some unicode symbols

First of all thank you for your work, you did so far!
I have a question for this specific line https://github.com/fxsjy/jieba/blob/cb0de2973b2fafaa67a0245a14206d8be70db515/jieba/posseg/init.py#L17. Why do you use this specific range of unicode literals? For my specific case(russian text) your app not splitting words which is not good at all.
For example:
>>> re_han_internal = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._]+)")
>>> re_han_internal.split("""Простой и безопасный способ делиться терминалом: обзор инструмента warp""")
['Простой и безопасный способ делиться терминалом: обзор инструмента ', 'warp', '']

Increasing unicode range helps:
>>> re_han_internal = re.compile("([\u0041-\u9FD5a-zA-Z0-9+#&\._]+)")
>>> re_han_internal.split("""Простой и безопасный способ делиться терминалом: обзор инструмента warp""")
['', 'Простой', ' ', 'и', ' ', 'безопасный', ' ', 'способ', ' ', 'делиться', ' ', 'терминалом', ': ', 'обзор', ' ', 'инструмента', ' ', 'warp', '']

it's based on the dict which is ONLY for chinese by default, u wanna use the program, u should add a special russian dict.

authors: luminousmen zuhd

repo: fxsjy/jieba


text:
bump gLang version to 1.19

All supported Kubernets distributions (1.23 1.24) built with goLang 1.19, therefore we have to bump our project to 1.19 too.
Signed-off-by: Alexey Roytman roytman@il.ibm.com

Please add a description. Why is this PR required? What issue does it solve?

Please add a description. Why is this PR required? What issue does it solve?

done

/cherry-pick branch=releases/1.2.1

repo: fybrik/fybrik


text:
make libvirt a protected service

See #236

Codecov Report

Merging #258 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #258   +/-   ##
=======================================
  Coverage   16.29%   16.29%
=======================================
  Files          15       15
  Lines        1062     1062
=======================================
  Hits          173      173
  Misses        878      878
  Partials       11       11

Continue to review full report at Codecov.

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


text:
Use only GA4GH methods instead of /containers and /workflows

Feature Request
Have front end use only methods from https://dockstore.org:8443/static/swagger-ui/index.html#/GA4GH
Currently, we use:
https://dockstore.org:8443/static/swagger-ui/index.html#/containers
https://dockstore.org:8443/static/swagger-ui/index.html#/workflows
Desired behaviour
Have all the same functionalities as the ones currently on https://dockstore.org/
Environment (Browser or OS and Dockstore version)
DockstoreUI - 1.1.6
DockstoreApi - 1.1.5

Add to #1731

authors: denis-yuen k-cao


text:
Feature/2118/checker workflow indexing

Improves the situation for #2118

Cascading ES delete of checkers during unpublish and stubbing of the parent
Elasticsearch runs in refresh=wait_for mode https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docs-refresh.html
Search tests are improved to better express failures
Light logging added to toolsIndexGet

Coverage increased (+2.5%) to 76.347% when pulling 0130fc95f6cb2f5df0f1377f99ed993141e6511f on feature/2118/checker_workflow_indexing into eb0421332e240ddc7e25e9087e877b31d72aaa04 on develop.


text:
Keep PyCharm/IntelliJ module files out of the repo.

The PyCharm/IntelliJ IDEA IDE creates *.iml files to describe projects in the same way it uses the .idea directory, which is already listed in the .gitignore.

+1.

authors: hjellinek jeromekelleher


text:
How do we define the technical capabilities of a given TES API

TES provides an abstraction layer on-top of the smallest unit of work in the workflow execution stack and interfaces directly with some sort of compute infrastructure. At the moment, user's of the TES API need to know and understand the technical constraints of the underlying compute environment in order to know what sort of capabilities a given TES api has. This is a problem in so far as it leaks the implementation details and requires the user to know information prior to using the API.
IF we push the boundaries of WES and TES the natural conclusion is federating work submitted to WES across different TES backends that fit the mould of the requested task resources/capabilities. This implies A LOT of machine -> machine interaction where it is a WES api determining where to send work. In order to accomplish this we really need a way to describe the complete list of technical capabilities of a TES backend. #186 is a good example of a specific technical ability that would need to be described in some way. Other examples would be GPU support (and what line GPUS), the range of CPU's or supported data types etc etc.
You could imagine that a workflow run through WES could take each individual task (in CWL/WDL perlance) and use heuristics to map it onto a particular TES backend. I know that some work has been done by @uniqueg and his team on building a Gateway TES that does a similar role, but I wonder what would be required to make any TES api able to participate in this gateway approach

Thanks @patmagee! I/we agree that this is a very important discussion to be had. The ability to provide arbitrary backend params in v1.1, coupled with the ability to provide some resource requirements and the broadcasting of some capabilities (supported storage protocols) via the service info endpoint might serve as a blueprint/starting point for that.
To address the constraints you mentioned,
in a next step, we could try to agree on a controlled vocabulary for capabilities and resource requirements, ideally starting with those that can be mapped well across a wide range of backends. Then extend the service info accordingly to broadcast these capabilities. A nice side effect of that is that one could find appropriate TES instances dynamically via the Service Registry API.
Apart from the gateway TES, we have previously also worked on a task distribution logic that takes into the account the location of the data to try to send the compute to the data. It also considers costs and expected completion time. To make that work, we have deployed a GET /tasks/info endpoint as a sidecar next to our TES instances. Essentially, sending the resource requirements to that endpoint will tell the client the expected costs and queueing time. It's a very naive model, but it did address, in a first attempt,
the use cases of minimizing data transfer and balancing loads over multiple TES services.
For more details, have a look here: https://github.com/elixir-cloud-aai/TEStribute

See here for related cross-standards issue (and proposal): https://github.com/ga4gh/TASC/issues/45

authors: patmagee uniqueg


text:
DPAD/HAT mapping issues

There are entries in the DB with DPAD/HAT mappings that are not valid (h0.0, h0.9, etc.).  I think this may be due to glitchy behavior of the SDL gamecontroller mapping tool (which can be tricky to use to get a valid mapping for every function do to the way way it works) and some misunderstanding of what to expect in the output by people running it and submitting config strings.  Any DPAD/HAT mapping that is not one of the following is suspect:

h0.1
h0.2
h0.4
h0.8

I would list h1.1, h1.2, etc., but we don't have any devices that have more than one DPAD/HAT in the DB currently.  When I have some time, I mean to look at the mapping tool that is included with SDL v2.0.7 to see if it can be improved a bit, but in the meantime, I think the mappings in gamecontrollerdb.txt should have invalid values filtered out, or even corrected if possible.  I have a bunch of controllers, but none of the ones with invalid mappings.

Fixed

h0.0 mappings removed.
h0.0 test added.
h0.3, h0.6, h0.12, h0.9 mappings removed (may cause issues in NYKO AIRFLO, will wait and see if users complain about it).
h0.3, h0.6, h0.12, h0.9 test added.

@eddieray It's been a long discussion, thanks for sticking with it :)

authors: eddieray p-groarke

license: Zlib


text:
🛑 Gatsby Hotel is down

In 6ce4691, Gatsby Hotel (https://hotel-gatsby-react.netlify.app/) was down:

HTTP code: 500
Response time: 3062 ms

Resolved: Gatsby Hotel is back up in 55f284e.

repo: gabrandalisse/upptime


text:
🛑 Plex is down

In 0709b9c, Plex (https://plex.gabebryk.com/web/index.html) was down:

HTTP code: 523
Response time: 27197 ms

Resolved: Plex is back up in 07cf823 after 5 minutes.

repo: gabrielbryk/vigilant-octo-carnival


text:
Navigation bar not showing

Checklist

[X] I have read the documentation at the Wiki.

Description
Hi, I have been trying out the navigation bar and I've copied and pasted the code from git. I even downloaded the raw file but the nav bar is still not showing.

As you can see here, the background color of the nav bar is shown but not the links.

It looks cause by streamlit 1.39.0
this issue has already reported in #28

Issue still exists with streamlit 1.41.1

authors: ArthurTech123 beckmarc meticajp

repo: gabrieltempass/streamlit-navigation-bar


text:
Upgrade React to stable (15.0.1)

Current issue:
$ npm i --save react@15

npm ERR! peerinvalid The package react@15.0.1 does not satisfy its siblings'
peerDependencies requirements!
npm ERR! peerinvalid Peer react-dnd@2.1.4 wants react@^0.14.0 || ^15.0.0-0

Thanks -- can you also update the peer dependency, instead of just the dev dependencies? That's the one that's causing you trouble.
FYI, you should consider using npm@3 instead of 2 -- peer dependency errors have been replaced by warnings, so they don't block your build.

oops yeah sorry the peer dependency was my initial goal! fixed.
Thanks for the tip for NPM 3, didn't know!!

Thanks! :)

Um, no, 0-0 was intentional and according to http://semver.npmjs.com/ should match both 15 RC and 15 stable.

Fair enough, but then why do I get The package react@15.0.1 does not satisfy its siblings' peerDependencies requirements! followed by Peer react-dnd@2.1.4 wants react@^0.14.0 || ^15.0.0-0?
But then I just realized that I was executing NPM v2.14.12, and when upgrading to NPM 3 the issue disappeared... weird.

I explain the problem a little more here: https://github.com/reactjs/react-redux/pull/342#issuecomment-207647767
Basically npm@2.x has very unhelpful behavior of listing all packages that peer depend on something even when just one peer dependency actually fails. As soon as you fix the actually problematic dependency, the error will go away. But yeah, you can upgrade to npm@3.x as well.
For the record, I reverted this PR because it has an unfortunate side effect of forcing people to use >=15.0.1 whereas there is no reason why they shouldn’t be able to stay on 15RC if they want to.

Sorry for the mistake, @gaearon! I remember wondering whether 0-0 would actually match non-RCs -- I took this issue as confirmation that it didn't, but I should have double-checked.

I get confused by this all the time so I suggest using semver.npmjs.com to double check.

authors: antoinerousseau billyjanitsch gaearon

repo: gaearon/react-dnd


text:
Uncaught TypeError: dispatch(...).then is not a function

found it is not related with redux-thunk, please delete it. Sorry

@wenqiW What was it, I am having the same issue

@wenqiW, @ericwooley  i am having the same issue... where am i wrong?

@sun2rise Did you return promise in action creator?

This is the object that i return from my action:
return new Promise(function (resolve, reject) {
    resolve({
      type: types.STORE_MEDIA_DATA_AUDIO_TRACKS,
      payload: fixedData
    });
  });

and this is the error i got:
VM5118:1180 Uncaught Error: Actions must be plain objects. Use custom middleware for async actions.

@sun2rise Thunk isn't promise middleware. Your action creators can look like this
const actionCreator = () => dispatch => {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve();
    }, 10);
  }).then(() => {
    dispatch({ type: 'ACTION_TYPE' });
  });
};

store.dispatch(actionCreator()).then(() => {
  console.log('The end of poem');
});

For the record, my problem wasn't redux-thunk, it ended up being a different middle ware that was interfering with this.

So redux-thunk is only for timing stuff? i have to chain actions, should i use redux-promise? I have to wait for a very short operation to complete and then call the next action

@sun2rise If your having a similar problem to me, try disabling other middle wares and see if it works
IIRC the one that was the issue for me was the redux-localstorage middleware

thanks @ericwooley but i only (try to) use redux-thunk for now.. all i do is
applyMiddleware(thunk)

in my createStore function

I'm having this issue.  I tried removing all other middleware but that didn't fix it. It looks like the dispatch method is just returning the action object, not a promise.

The action is being returned from here: https://github.com/reactjs/redux/blob/master/src/createStore.js#L181

authors: TrySound ericwooley markbrocato sun2rise wenqiW

repo: gaearon/redux-thunk


text:
Higher order store ideas

Higher order stores are a new powerful extension mechanism for Redux. It's more powerful than middleware so you should only use it if you need something the middleware can't do:

transform the state
ignore some actions
introduce asynchrony
fire some actions “out of the blue”

There is some work in progress on higher-order store docs. This doc should introduce you to the idea.
I created this issue to discuss potential applications of higher order stores.
These are what I have in mind:

Time travel (#113) in Redux DevTools (already implemented)
Persisting state in development across reloads (already implemented)
Offloading some work to a webworker, maybe? #263
Record and replay serialized user sessions
Remote sync (Flux over the wire #211 for debugging user sessions?)

Anything else?

cc @elierotenberg in case he'd like to experiment with using HOS to implement Redux over the Wire

I'm playing around with something similar using scuttlebutt (https://www.npmjs.com/package/scuttlebutt) because of its ecosystem like integrations with localstorage and leveldb. I'm calling it "redux-gossip". I was using a custom thunk for this, which gave me some problems. A higher order store is definitely the way to go. Thanks for this!

I'm closing this as too generic.
Let's discuss “Redux over the Wire” and related ideas in #313.

authors: gaearon nbostrom

repo: gaearon/redux


text:
Merge not working

Hi,
I've a problem with the merging when using non unique roles (multiples rules assigned to one server).  I've created some demo code here
"ResolutionPrecedence": [     "AllNodes\\$($Node.Name)",     "Role\\<%= $CurrentNode.PSObject.Properties.where{$_.Name -in $Node.Packages}.Value %>"   ],
When using the "dynamic" Datum.json section "firewallrules" then contains two times "items",
{
  "FirewallRules": [
    {
      "Items": [
        {
          "Action": 2,
          "Description": "Test123",
          "Direction": 1,
          "DisplayName": "Test123",
          "RemotePort": "Any",
          "Name": "Test123",
          "LocalAddress": "Any",
          "LocalPort": "123",
          "Service": "Any",
          "Protocol": "TCP",
          "Profile": 0,
          "Program": "Any",
          "RemoteAddress": "Any",
          "Enabled": 1
        }
      ]
    },
    {
      "Items": [
        {
          "Action": 2,
          "Description": "Test456",
          "Direction": 1,
          "DisplayName": "Test456",
          "RemotePort": "Any",
          "Name": "Test456",
          "LocalAddress": "Any",
          "LocalPort": "456",
          "Service": "Any",
          "Protocol": "TCP",
          "Profile": 0,
          "Program": "Any",
          "RemoteAddress": "Any",
          "Enabled": 1
        }
      ]
    }
  ],
  "Configurations": [
    "FirewallRules",
    "FirewallRules"
  ],
  "NodeName": "SRV01",
  "Packages": [
    "Test123",
    "Test456"
  ],
  "Name": "SRV01"
}

when using Datum1.json (that has just hardcoded the two dynamic linked JSON's it just contains one "items" under "firewallrules".
{
  "Configurations": [
    "FirewallRules"
  ],
  "Packages": [
    "Test123",
    "Test456"
  ],
  "FirewallRules": {
    "Items": [
      {
        "Service": "Any",
        "Name": "Test123",
        "RemoteAddress": "Any",
        "LocalPort": "123",
        "RemotePort": "Any",
        "LocalAddress": "Any",
        "Enabled": 1,
        "Description": "Test123",
        "Action": 2,
        "Profile": 0,
        "Protocol": "TCP",
        "Program": "Any",
        "DisplayName": "Test123",
        "Direction": 1
      },
      {
        "Action": 2,
        "Description": "Test456",
        "Direction": 1,
        "DisplayName": "Test456",
        "RemotePort": "Any",
        "Name": "Test456",
        "LocalAddress": "Any",
        "LocalPort": "456",
        "Service": "Any",
        "Protocol": "TCP",
        "Profile": 0,
        "Program": "Any",
        "RemoteAddress": "Any",
        "Enabled": 1
      }
    ]
  },
  "Name": "SRV01",
  "NodeName": "SRV01"
}

So for me it looks like datum has a problem when ResolutionPrecedence returns an array.
... "ResolutionPrecedence": [     "AllNodes\\$($Node.Name)",     "Role\\<%= $CurrentNode.PSObject.Properties.where{$_.Name -in $Node.Packages}.Value %>"   ], ...
"Role\\<%= $CurrentNode.PSObject.Properties.where{$_.Name -in $Node.Packages}.Value %>"
Is then return an array, and instead of handling every one individually it try's to handle to full array in once, which then ends that the result will also be an array.

Hiya, just saw this issue amongst the pile of notifications coming from GitHub. :)
The very short and opinionated answer is that you should not have collections of "Roles".
It goes against the better approach of having a single definition that describe the mold for several machines, and only having specific overrides at location/environment/node level (each node has 1 and only 1 role, that can have some values overridden in more specific layers).
Now if you still want to go down your route, I don't think this will work in resolution precedence, and I wouldn't call it a bug either (a missing feature, at best, but I agree that the code should more gracefully handle this and warn).
You may have to write a DatumHandler that does the calculation and does what you want by doing several lookup for each of your 'role'.
I hope you found the DscWorkshop that has a good example of how you could use Datum.
If I don't at least ack an issue after a week, best is probably to come and ping me on slack/discord in DSC channel.

Ok, I'll check that. If that's missing feature then maybe you should remove the comment from your infra sample
ResolutionPrecedence:
  - 'AllNodes\$($Node.Environment)\$($Node.Name)'
  - 'Environments\$($Node.Environment)'
  - 'SiteData\$($Node.Location)'
  - 'SiteData\$($Node.Location)\Roles' #variable expansion
  - 'Roles\$($Node.Role)' #if Node has unique role, otherwise use <%= $CurrentNode.PSObject.Properties.where{$_.Name -in $Node.Role}.Value %>
  - 'Roles\All'
#  - 'AllNodes\<%= $CurrentNode.PSObject.Properties.where{$_.Name -eq $Node.Name}.Value%>\Roles' #script block execution
#  - 'AllNodes\All\Roles'

That comment sounds like datum would support multiple "Roles" per server.

@gaelcolas, should we flag the DscInfraSample repo as archived and redirect to the DscWorkshop instead?

It is the cleaner way to have just one role per node, but the reality looks a bit different. Especially in test and dev environments one may want to assign more roles to one node to save resources.
We have a number of customers that asked for this, and things get way more simple with the support of multiple roles.
This is how it works with the Datum version in my fork:
Datum.yml
ResolutionPrecedence:
  - AllNodes\$($Node.Environment)\$($Node.ActualName)
  - Environments\$($Node.Environment)
  - '[x={ $Node.Role | ForEach-Object { "Roles\$_" } } =]'
  - Baselines\$($Node.Baseline)

One of the nodes:
ActualName: '[x={ $Node.Name }=]'
NodeName: '[x="$($Node.ActualName)"=]'
Environment: Dev
Role:
  - FileServer
  - WebServer
  - TestServer

Note: This requires the datum handler Datum.InvokeCommand.

I hope to be able to file a PR to move the new stuff into the main repo during the next weeks.

authors: gaelcolas raandree schnyders

repo: gaelcolas/datum


text:
does not contain package github.com/gagliardetto/solana-go/text/format

Hi, i'm running into this issue:
$ go mod tidy
go: finding module for package github.com/gagliardetto/solana-go/text/format
github.com/johnbailon/soltest imports
        github.com/gagliardetto/metaplex-go/clients/token-metadata imports
        github.com/gagliardetto/solana-go/text/format: module github.com/gagliardetto/solana-go@latest found (v1.0.0), but does not contain package github.com/gagliardetto/solana-go/text/format
$ go run main.go
../../../../pkg/mod/github.com/gagliardetto/metaplex-go@v0.1.3/clients/token-metadata/ConvertMasterEditionV1ToV2.go:9:2: no required module provides package github.com/gagliardetto/solana-go/text/format; to add it:
        go get github.com/gagliardetto/solana-go/text/format
$ go get github.com/gagliardetto/solana-go/text/format
go get: module github.com/gagliardetto/solana-go@upgrade found (v1.0.0), but does not contain package github.com/gagliardetto/solana-go/text/format

Hi
Do a go get github.com/gagliardetto/solana-go@v0.5.1 and that will solve the issue.
The v1.0.0 is actually an older version that was mistakenly released under v1.0.0.

authors: gagliardetto johnbailon

repo: gagliardetto/solana-go


text:
fix(solc): flatten import aliases

Motivation

addresses foundry#1440
Solution

This PR includes:

More robust regex for import statement parsing in case of solang failure
Partial support for import aliases: any explicit import alias will be replaced with its original name

Known Issues:

Since alias replacement rewrites the contents of the file, any previous data unit location might be incorrect. This is a temporary solution and is based on the assumption that any usage of an alias happens after all of the import statements.

PR Checklist

[x] Added Tests
[x] Added Documentation
[ ] Updated the changelog

@mattsse @gakonst this PR is ready for review. updated the description as well ✔

repo: gakonst/ethers-rs


text:
fix: fix re-subscription on websocket reconnect

Add an in-flight request for each re-subscription request to ensure that the response from the server with the new internal subscription id is handled.
Motivation
This change fixes issue 2418, which is an issue where websocket subscriptions can stop working after a websocket reconnect.
Solution
The underlying issue is that the re-subscription code did not have an in-flight request for the resubscription requests. They were issued properly, but the response from the server containing the new server-side subscription ID was then dropped as a result. This change adds the appropriate in-flight requests so the new server-side ID is handled properly and updated.
PR Checklist

[ x] Added Tests
[ ] Added Documentation
[ ] Breaking changes

Thanks for the review @prestwich , and thanks for all the work on reconnects!
I had a quick look at the failing CI tests, and they all seem likely related to a solc version change ( ethers-solc compile::tests::test_detect_version ), and unrelated to my change. Should I worry about making those pass or just ignore them? And is there anything else I should be doing to get this merged?

Should I worry about making those pass or just ignore them? And is there anything else I should be doing to get this merged?

just ignore those 👍  I'll be doing a pass later today to merge things and hopefully get those addressed as well

authors: gbrew prestwich


text:
Mobile view issue

Hello!
It is a great project, the problem is that when you open the game from your mobile, the view of the planet does not adapt to the screen of the phone and you can not zoom, so playing from the phone becomes strange.
Thank you!

@Alberolle7 Thanks for the suggestion.

repo: galaxyofdrones/galaxyofdrones


text:
Support arabic translation

As requested this morning by @pvanheus

Merci @bebatut!

authors: bebatut bgruening

repo: galaxyproject/training-material


text:
Part 1: ML tools in Main matches Test now

Copied 3 .yml files from test.galaxyproject.org and generated the .lock files.

@galaxybot deploy this

@galaxybot deploy this

repo: galaxyproject/usegalaxy-tools


text:
Use vueuse useOffsetPagination() function

Switch to https://vueuse.org/core/useOffsetPagination/

Won't work for us due to bigint used heavily.

repo: galexrt/fivenet


text:
How can I, from build pipeline, disable compression, in player "Publishing Settings" , Compression Format

My build is created (WebGL) as an artifact but when I try to run it I get an error message
unityFramework is not defined at HTMLScriptElement.r.onload
I want to try and disable compression because that worked from my manual / local build. Can it be done?

Unity Builder will use whatever is in your <projectPath>/ProjectSettings/ProjectSettings.asset
To disable compression, just make sure you have webGLCompressionFormat: 2 in there.

Thanks, now it worked @davidmfinol

Is it possible to override the ProjectSettings using the "customParameters" in the yaml file?

authors: davidmfinol montao pisanuw

repo: game-ci/unity-builder


text:
Fixes/nographics off by default

Changes

...

Related Issues

...

Related PRs

...

Successful Workflow Run Link
PRs don't have access to secrets so you will need to provide a link to a successful run of the workflows from your own
repo.

...

Checklist

[x] Read the contribution guide and accept the
code of conduct
[ ] Docs (If new inputs or outputs have been added or changes to behavior that should be documented. Please make a PR
in the documentation repo)
[ ] Readme (updated or not needed)
[ ] Tests (added, updated or not needed)

Sorry... I hate githubs merge thing. It sucks. Didn't mean to create this.

No problem at all :)

authors: sollaholla webbertakken


text:
Use capture group to find Unity version to support new 6000 versions

Changes

Support new Unity versioning scheme (https://forum.unity.com/threads/unity-6-new-naming-convention.1558592/)

Checklist

[x] Read the contribution guide and accept the
code of conduct
[x] Docs (If new inputs or outputs have been added or changes to behavior that should be documented. Please make a PR
in the documentation repo)
[x] Readme (updated or not needed)
[x] Tests (added, updated or not needed)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 36.97%. Comparing base (fc0a52b) to head (b8c45ef).

:exclamation: Current head b8c45ef differs from pull request most recent head b2b7551. Consider uploading reports for the commit b2b7551 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

@@            Coverage Diff             @@
##             main     #639      +/-   ##
==========================================
- Coverage   36.99%   36.97%   -0.03%
==========================================
  Files          77       77
  Lines        3122     3121       -1
  Branches      609      645      +36
==========================================
- Hits         1155     1154       -1
+ Misses       1967     1824     -143
- Partials        0      143     +143

Files
Coverage Δ

src/model/unity-versioning.ts
100.00% <100.00%> (ø)

... and 37 files with indirect coverage changes

authors: AndrewKahr codecov-commenter


text:
Optimize TS API

its pretty messy as of now and a lot of functions are inconsistent, will take a little while

i think its alright as of now, ill reopen if needed


text:
🛑 Roblox Devforum is down

In e88aa16, Roblox Devforum (https://devforum.roblox.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Roblox Devforum is back up in 2a2f3a2 after 11 minutes.


text:
Auto Register not working

Im trying to bot spam a server but your auto register does not work
the way to register to this server is as follows
/register password confirmpassword
i dont know if your auto register does this but i tick the box and still does nothing

I have the same issue :( If I fix it somehow, I will tell you

The default name format is the Bot-%d. Change it to Bot%d without a dash.


text:
Improove --help of the cli

I like viztracer, but the help promp could be greatly improoved.
When running the latest version of viztracer the coommand line output looks like:
#viztracer -h
usage: viztracer [-h] [--rcfile [RCFILE]]

optional arguments:
  -h, --help         show this help message and exit
  --rcfile [RCFILE]

In my opinion the same help page should be printed when -h or --help are present, as it is printed when running viztracer without an argument.
The --rcfile option is also described in the extended help page in there so I don't see a reason for this behavior.

You are right, this is a bug I introduced when I added the pre-parser for rcfile. Your fix seems to be working, but in case of this kind of problem happening in the future, could you add some regression test? You can refer to tests/test_cmdline.py, in test_no_file I checked help in the output string. Obviously that was not enough. You can add a test_help method in that class which confirms that viztracer, viztracer -h and viztracer --help all produce useful information. The test cause should not be hard to follow. However, you can always ask me if you have more questions. Fixing a bug is good, but making sure it won't happen again is even better.
However, I'd understand if you don't think that's something you'd want to do. Then I can accept your PR and do the test part myself. Feel free to let me know!
Thank you for your contribution.

Hi, I added the testcase in the PR. Let me know if they should be improved.

authors: PeterStolz gaogaotiantian

repo: gaogaotiantian/viztracer


text:
named args with -m

for below code, I can run with python main.py -m 10, when I use viztracer main.py -m 10, it will raise ImportError: No module named 10, so maybe we can dive deep how python deal with the -m arg by position?
import argparse

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-m', '--month', help='Month')
    args = parser.parse_args()

    print(f'Month is {args.month}')

if __name__ == '__main__':
    main()

Because Python itself does not use argparse for argument parsing. We will not rewrite all the parsing code in C. argparse is not sensitive to the order of the arguments, so it's not trivial to consider all the options after the script as the arguments to the script itself. Besides, it might be helpful for users to do viztracer script.py --open, where appending --open after the script would be simpler.
The best way to resolve ambiguity is to be explicit, and in this specific case, I think -- is to way to do that, not heuristics (it's difficult to even define the behavior properly and it's even more difficult to implement it).

Totally agree and it do make sense to use long version --month in such kind of scenario. Thanks for the prompt response!


text:
[SMALL PR] - useSession Hook

Added custom useSession hook to be used in components, still need to figure out where I can use this hook to create AuthContext for all components in-app. This is the first step...

Looks good! excited to start using it!!!

authors: coltonehrman michaelbayday


text:
Fixes StoryBook errors

Closes #1374
Problem
The getPreviousSubmissions query was not provided in the mocks and that is the reason it displayed a query error. You can see the error here
Solution
I mocked the getPreviousSubmissions query and added to the mocks array which was able to fix the problem. This helped me solve the problem and lists several different reasons why this error might come up
Issues
After Solving the problem, I was expecting the SelectIteration component to render as well but it didn't.
Expected:

Received:

Also while looking at the different states of ReviewCard I noticed some of them didn't match the state that it was named. An example was ReviewCard with Long Comment but when I checked the storybook, the comment was not rendered. I checked the mock queries and responses and they seem to match up so I wasn't sure what the problem could be. Here is an example:

I would appreciate some feedback! I will label it a WIP in the meantime.

good seeing you again @Cijin !


text:
Update shoot manifests with new route53 users

/kind enhancement
What this PR does / why we need it:
We added new dedicated route53 secrets/users to the garden-ci project.
Update the shoot manifests accordingly to avoid overwriting it accidentally.

/ok-to-test

/kind enhancement

/approve

repo: gardener/ci-infra


text:
Fix Build

What this PR does / why we need it:
This PR uses the latest commit from the gardener master branch to fix the build. Once gardener v1.24.0 is released the dependency must be updated.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

/invite @xrstf

repo: gardener/garden-login


text:
Small enhancements for the test framework

How to categorize this PR?

/area testing
/kind enhancement
/merge squash
What this PR does / why we need it:
This PR lifts the assumption of the test framework that each Seed has set .spec.secretRef (since this field is optional).
Additionally, it allows to optionally disable the test of accessing the shoot via its ingress. This can be helpful in case the test executor has no network access to this ingress.
Release note:

NONE

Yes, the default is still to preserve the old behaviour. If someone wants to execute tests that require the shoot client then they have to make sure that the network connectivity is ensured, of course.

repo: gardener/gardener


text:
Improve problematic webhook detector

How to categorize this PR?

/area robustness
/kind enhancement
What this PR does / why we need it:
This PR improves matches of the problematic webhook detector when GVRs should be considered for all namespaces and all labels.
Example:
A webhook should be considered problematic if it acts on any Lease object. Earlier, the webhook was detected only if it didn't have any namespace or label selector in place. It was not reported problematic anymore, as soon as a dummy selector was added.
This configuration was reported as problematic
  namespaceSelector: {}
  objectSelector: {}
  rules:
  - apiGroups:
    - coordination.k8s.io
    apiVersions:
    - v1
    operations:
    - CREATE
    - UPDATE
    resources:
    - leases

This configuration was not reported
  namespaceSelector: {}
  objectSelector:
    matchExpressions:
    - key: foo
      operator: In
      values:
      - bar
  rules:
  - apiGroups:
    - coordination.k8s.io
    apiVersions:
    - v1
    operations:
    - CREATE
    - UPDATE
    resources:
    - leases

Release note:

The problematic webhook detector has been adapted to match webhooks acting on `endpoint` and `lease` objects in all namespaces. Under some circumstances, such webhooks were not reported as problematic before.

/assign

/lgtm

@oliver-goetz do you have any further concerns since we discussed this PR yesterday?

No, it was rather confusion about the description than the realisation 😅
/approve

authors: ary1992 oliver-goetz timuthy


text:
[operator] Enable NetworkPolicy protection in garden cluster

How to categorize this PR?

/area networking security
/kind enhancement
What this PR does / why we need it:
This PR enables full NetworkPolicy protection for the relevant namespaces in the garden cluster via gardener-operator. It leverages the new controller and concept introduced with https://github.com/gardener/gardener/issues/7352.
Essentially, the gardenlet's NetworkPolicy controller is made reusable and now also part of gardener-operator. Also, the gardener-resource-manager deployed by gardener-operator now includes the garden namespace.
The gardener-operator only adds the NetworkPolicy to its controller-runtime manager as soon as the first Garden resource is created. This is because the Garden resource contains relevant networking information about the runtime cluster.
The gardenlet terminates when it recognizes that its seed cluster has been registered as a garden cluster during runtime. This is to stop its instance of the NetworkPolicy controller to avoid duplicative behaviour with gardener-operator (which is now responsible for running this controller). If gardenlet already recognizes this at start-up, it does not even add the NetworkPolicy controller.
Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener/issues/7016
Special notes for your reviewer:
/cc @timuthy @ScheererJ
Release note:

The `gardener-operator` now enables full `NetworkPolicy` protection for the garden cluster. In case your garden cluster is a seed at the same time, make sure to keep the values of the `FullNetworkPoliciesInRuntimeCluster` feature gate in sync for both `gardener-operator` and `gardenlet`.

/assign

/test pull-gardener-e2e-kind-ha-multi-zone-upgrade

/test pull-gardener-e2e-kind

authors: rfranzke timuthy


text:
Change dns server in resolv.conf to point to local revolver

How to categorize this PR?

/kind bug
/area os
/os garden-linux
What this PR does / why we need it:
Our CC EE colleagues recommend the following options in /etc/resolv.conf:
options rotate timeout:1

Unfortunately there is no obvious way to configure systemd-resolved to do that, however the systemd-resovled has this functionality built in. This PR changes the symbolic link from /etc/resolv.conf to point to the /run/systemd/resolve/stub-resolv.conf file.
Which issue(s) this PR fixes:
Fixes #326
Special notes for your reviewer:
Release note:

Configure openstack image according to the recommendations of our CC EE colleagues.

Hmm, bekommst du die Änderung nicht direkt im Image hin? Wer überschreibt den Link den?

@waldiTM: good point. The original unit is however in server/file.include/etc/systemd/system/systemd-resolved.service.d/resolv.conf and should be changed there. As systemd-resolved is caching we wonder why we don't generally link to /run/systemd/resolve/stub-resolv.conf

 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.

I tried to include a hardcoded symbolic link to /run/systemd/resolv/resolv.conf - build fail. Then I tried to create the symblic link in exec.config:
# use resolv.conf maitained by systemd-resolved
rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

This fails with
rm: cannot remove '/etc/resolv.conf': Device or resource busy
ln: failed to create symbolic link '/etc/resolv.conf': File exists

So, not ideal but this PR is probably the way to go for now.

authors: CLAassistant marwinski waldiTM

repo: gardenlinux/gardenlinux


text:
Support Autofac plugin for Specflow V3

#Request
@gasparnagy
My project heavily dependent on Specflow.Autofac plugin. Are you planning to update this plugin for latest Specflow V3 ?

released to NuGet from this repo as v1.2

authors: ParagRaut gasparnagy


text:
Core: exitASAP loops don't exit properly

While running a previously existing test on Gatling 3.7.3, I encountered the following error.
2022-01-06 22:24:16  [gatling-24-2] ERROR io.gatling.core.action.InnerTryMax - exitTryMax called but stack List() head isn't a TryMaxBlock, please report.
The code snippet associated with this was:
.asLongAsDuring(session => session.attributes.getOrElse("check_amount", "null") != "10", 30.seconds) {
      exec(http("doSomething")
        .post("https://REMOVED")
        .headers(lists_headers)
        .body(StringBody("""REMOVED"""))
        .check(jmesPath("status").is("Completed"))
        .check(jmesPath("payload.amount").transformOption(extract => extract.orElse(Some("null"))).saveAs("check_amount")))
        .pause(5.seconds)
    }

Basically, I'm using this to periodically poll until the expected value is returned, or the time limit is reached. The test did complete, but my automation picks up the "ERROR" text and marks it as a failure. If you have a suggestion for a workaround to avoid this ERROR until this is addressed, it would be greatly appreciated.

Please provide a reproducer we can run on our side, there's nothing we can do otherwise.
In particular, your error message mentions tryMax and there's isn't one in your piece of code.

My apologies @slandelle, I did some additional digging and think it's related to the combination of the asLongAsDuring wrapped by an exitBlockOnFail. Here is a concrete example that reproduces the error.
package tcs

import scala.concurrent.duration._
import io.gatling.core.Predef._
import io.gatling.http.Predef._

class TryMaxError extends Simulation {
  val httpConf = http
    .baseUrl("https://prf-tusa01.app.blackbaud.net/jvtst")

  val scn = scenario("TryMaxError")
    .exitBlockOnFail {
        asLongAsDuring(session => session.attributes.getOrElse("check_value", "null") != "2022.1.5.2", 30.seconds) {
            exec(http("version")
                .get("https://prf-tusa01.app.blackbaud.net/jvtst/version")
                .check(bodyString.saveAs("check_value")))
            .pause(1.seconds)
        }
        .exec{ session =>
            println("Check Value: " + session("check_value").as[String])
            session
        }
    }

  setUp(
    scn.inject(atOnceUsers(1)).protocols(httpConf)
  )
}

Simulation tcs.TryMaxError started...
AFTER
Check Value: 2022.1.5.2
09:44:55.776 [ERROR] i.g.c.a.InnerTryMax - exitTryMax called but stack List() head isn't a TryMaxBlock, please report.

Thanks a lot, I can reproduce now! Investigating!

Regression introduced in #4179

authors: Blackbaud-ChrisBlythe slandelle

repo: gatling/gatling


text:
DCC GET seems not work

Hi,
I can't understand if I misunderstood how the dcc_get works.
Many channels use commands like this to start download a file: /msg ChannelBOT xdcc send #1250 so I send this message on the JOIN event, I see the message sent on the channel but the download doesn't start. Where am i wrong?

Try to start the bot with -vd arguments and see what's hapenning. Can't really help more without code snippets

I don't run with the command irc3 config.ini but like a python script. Here is my code:
# -*- coding: utf-8 -*-
from irc3.compat import asyncio
from irc3d import IrcServer
import irc3

@irc3.plugin
class Plugin(object):

    def __init__(self, context):
        self.log = context.log
        self.context = context

    @irc3.event(irc3.rfc.CONNECTED)
    def connected(self, **kw):
        self.context.join('#channel')

    @irc3.event(irc3.rfc.JOIN)
    def join(self, mask=None, **kw):
        self.context.privmsg("#channel", "Hi!')
        self.context.privmsg("#channel", "!list')
        self.context.privmsg("#channel", '/msg bot_name xdcc send #1250')
        can_download = True

    @irc3.event(irc3.rfc.CTCP)
    async def on_ctcp(self, mask=None, **kwargs):
        # parse ctcp message
        if can_download == True:
            name = "file.pdf"
            host = "irc.server.net"
            port = 6667
            size = 330560 # this is in byte, is it correct?
            self.context.log.info('%s is offering %s', mask.nick, name)
            # get the file
            conn = await self.context.create_task(self.context.dcc_get(
                mask, host, port, './'+name, int(size)))
            await conn.closed
            # parse ctcp message
            self.context.log.info('file received from %s', mask.nick)

def main():
    global can_download
    cfg = dict(
        host='irc.oltreirc.net',
        autojoins=['#channel'],
        port=6667,
        nick='geppetto82',
        includes=['irc3.plugins.core',"irc3.plugins.uptime","irc3.plugins.ctcp", 'irc3.plugins.dcc', __name__]
    )
    can_download = False

    receiver = irc3.IrcBot.from_config(cfg)
    receiver.run(forever=True)

if __name__ == '__main__':
    main()

I use can_download because the first ctcp messages comes when the bot connects to the server.
Where am I wrong?

You still can use verbose/debug=true in your bot config
This is not how dcc works. You cant define host/port by yourself. You need to use those sent by the bot. Check https://github.com/gawel/irc3/blob/master/examples/dcc_send_and_get.py#L27

I edit my bot in this way but I can't still receive no data. I removed the sender and server related code because I think I don't need it. Now, my code is like this:
-- coding: utf-8 --
from irc3.compat import asyncio
from irc3d import IrcServer
import irc3
@irc3.plugin
class Plugin(object):
def __init__(self, context):
    self.log = context.log
    self.context = context

@irc3.event(irc3.rfc.CONNECTED)
def connected(self, **kw):
    self.context.join('#channel')

@irc3.event(irc3.rfc.JOIN)
async def join(self, mask, channel, **kw):
    self.context.privmsg(channel, '/msg bot_channel xdcc send #934')

@irc3.event(irc3.rfc.CTCP)
async def on_ctcp(self, mask=None, **kwargs):
    # parse ctcp message
    name, host, port, size = kwargs['ctcp'].split()[2:]
    self.context.log.info('%s is offering %s', mask.nick, name)
    # get the file
    conn = await self.context.create_task(self.context.dcc_get(
        mask, host, port, './' + name, int(size)))
    await conn.closed
    self.context.log.info('file received from %s', mask.nick)

    # end loop by setting future's result
    self.context.config.file_received.set_result(True)

def main():
loop = asyncio.get_event_loop()
cfg = dict(
    host='irc.server.net',
    port=6667,
    nick='mynick',
    includes=['irc3.plugins.core', "irc3.plugins.ctcp", 'irc3.plugins.dcc', __name__],
    loop=loop,
    verbose=True,
    debug=True
)

file_received = asyncio.Future()

# assume receiver is created *after* sender
receiver = irc3.IrcBot.from_config(cfg,file_received=file_received)

# this bot will receive the file
receiver.run(forever=False)
loop.run_until_complete(file_received)

if name == 'main':
main()
but I got this exception
ERROR asyncio    Task exception was never retrieved
future: <Task finished coro=<Plugin.on_ctcp() done, defined at dcc_send_and_get.py:25> exception=ValueError('not enough values to unpack (expected 4, got 0)')>
Traceback (most recent call last):
  File "dcc_send_and_get.py", line 29, in on_ctcp
    name, host, port, size = kwargs['ctcp'].split()[2:]
ValueError: not enough values to unpack (expected 4, got 0)

I see the message sent on the join channel, but I don't receive any file. What am I wrong?

First you should match only DCC on ctcp: if 'DCC' in kwargs['ctcp']
And you should send the dcc send message to the bot, not to the channel, I guess

@gawel, you're great man, it works. Thank you for your support!


text:
:farmer: JointFeaturesDetachTest/0.JointDetach test failing consistently in gz-physics-main-homebrew

Environment

OS Version: MacOS (Ventura and Monterey)
Source build: Main

Description

Expected behavior: Tests should pass
Actual behavior: JointFeaturesDetachTest/0.JointDetach

Steps to reproduce

Run a build
See test fail

Output
Reference builds:

https://build.osrfoundation.org/job/gz_physics-ci-main-homebrew-amd64/38/

Failing test regression: JointFeaturesDetachTest/0.JointDetach
/Users/jenkins/jenkins-agent/workspace/gz_physics-ci-main-homebrew-amd64/gz-physics/test/common_test/joint_features.cc:969
The difference between 0.0 and upperLinkLinearVelocity.X() is 0.00035244933516466117, which exceeds 1e-6, where
0.0 evaluates to 0,
upperLinkLinearVelocity.X() evaluates to -0.00035244933516466117, and
1e-6 evaluates to 9.9999999999999995e-07.

Might be related to https://github.com/gazebosim/gz-physics/issues/620

this test was disabled in https://github.com/gazebosim/gz-physics/pull/621, which is being merged forward in https://github.com/gazebosim/gz-physics/pull/624

As the last comment said. This was fixed

repo: gazebosim/gz-physics


text:
expand_gz_topic_names parameter does not work

Environment

OS Version: Ubuntu 22.04
Source or binary build? binary build by apt, version iron

Description

Expected behavior: when expand_gz_topic_names is true, the namespace on Gazebo should be changed.
Actual behavior: the namespace does not change and this parameter cannot be found via ros2 param list.

Steps to reproduce

Follow the Example 6.
Run this command:

ros2 run ros_gz_bridge parameter_bridge chatter@std_msgs/msg/String@ignition.msgs.StringMsg \
  --ros-args -p expand_gz_topic_names:=true -r __ns:=/demo

In other terminal, run this command:

ign topic --list
# Output: /chatter

The topic is still /chatter, not /demo/chatter as expected.

Run other command to check whether the parameter is existing:

ros2 param list | grep expand_gz_topic_names
# Output: nothing found

This code snippet shows that expand_gz_topic_names only works when config_file is given.

Output

expand_gz_topic_names was added recently in https://github.com/gazebosim/ros_gz/pull/512 and ported to iron in https://github.com/gazebosim/ros_gz/pull/516. It has not been released yet (see https://github.com/gazebosim/ros_gz/blob/iron/ros_gz_bridge/CHANGELOG.rst). @ahcorde can you make a 0.254.1 release?

I made releases for Humble and Iron

https://github.com/ros/rosdistro/pull/40515
https://github.com/ros/rosdistro/pull/40516

authors: ahcorde azeey elkuno213


text:
GetCommitmentsAlongPath to take multiple keys as a parameter

As explained in #182 the interface to GetCommitmentsAlongPath should be modified to accept several keys, in order to deduplicate commitments and extension statuses at this level.

Fixed in d368c16

repo: gballet/go-verkle

license: Unlicense


text:
🛑 gbe0.com is down

In 24764d5, gbe0.com (https://www.gbe0.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: gbe0.com is back up in 07f8b6a.