Output Inconsistency in XLA Compilation with Order Swapping of tf.multiply on GPU

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
2.15.0
Custom code
Yes
OS platform and distribution
Ubuntu 22.04.3 LTS
Mobile device
No response
Python version
3.10.0
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
cuda : 12.2 / cudnn 8.9.04
GPU model and memory
Tesla V100S-PCIE-32GB
Current behavior?
We have identified a significant inconsistency in TensorFlow's XLA compilation when the order of operands in tf.multiply is swapped.
This behavior is only seen on gpu.
Additional Testing Conducted
To further investigate the issue, we conducted the following tests:

Altering tf.transpose and tf.multiply: Removing either tf.transpose or the first instance of tf.multiply prevents the inconsistency, suggesting their involvement in the issue.

Replacing tf.squeeze: Substituting tf.squeeze with tf.math.reduce_min also triggers the error. This finding implies that the root cause of the inconsistency may not lie within the tf.squeeze API.

We hope this detailed report will assist in identifying and resolving the root cause of this inconsistency in TensorFlow's XLA compilation process.
Standalone code to reproduce the issue
from typing import Dict
import tensorflow as tf
import pickle
import os
import numpy as np

class Model1(tf.keras.Model):
    @tf.function(jit_compile=True)
    def __call__(self, inp1, inp2):
        trans = tf.transpose(inp1, perm=[1, 0])
        gather = tf.gather(trans, tf.clip_by_value(inp2, 0, 63), axis=0)
        squeeze = tf.squeeze(gather, axis=1) # replace with tf.math.reduce_min also trigger the error
        mul1 = tf.multiply(squeeze, squeeze)
        mul2 = tf.multiply(trans, mul1)
        return mul2,

class Model2(tf.keras.Model):
    @tf.function(jit_compile=True)
    def __call__(self, inp1, inp2):
        # Forward pass logic using TensorFlow operations
        # inp1: [64, 64] : complex128
        # inp2: [1, 1, 64] : int32
        trans = tf.transpose(inp1, perm=[1, 0])
        gather = tf.gather(trans, tf.clip_by_value(inp2, 0, 63), axis=0)
        squeeze = tf.squeeze(gather, axis=1) # replace with tf.math.reduce_min also trigger the error
        mul1 = tf.multiply(squeeze, squeeze)
        mul2 = tf.multiply(mul1, trans)
        return mul2,

inputs = [
tf.random.uniform([64, 64], dtype=tf.float64),
tf.random.uniform(shape=[1, 1, 64], minval=-100, maxval=100, dtype=tf.int32),
]
model1 = Model1()
model2 = Model2()
device = "gpu"
with tf.device(device):
    tf.config.run_functions_eagerly(True)
    out1 = model1(*inputs)
    out2 = model2(*inputs)
    print(f'=========eager_output(version:{tf.__version__})================')
    try :
        for i in range(min(len(out1),len(out2))):
            np.testing.assert_allclose(out1[i].numpy(), out2[i].numpy(), rtol=0.001, atol=0.001, err_msg=f'at checking {i}th')
        print("XLA_eager does not trigger assertion")
    except AssertionError as e:
        print("XLA_eager triggers assertion")
        print(e)
    tf.config.run_functions_eagerly(False)
    out1 = model1(*inputs)
    out2 = model2(*inputs)
    print(f'=========compiled_output(version:{tf.__version__})================')
    try :
        for i in range(min(len(out1),len(out2))):
            np.testing.assert_allclose(out1[i].numpy(), out2[i].numpy(), rtol=0.001, atol=0.001, err_msg=f'at checking {i}th')
        print("XLA_complie does not trigger assertion")
    except AssertionError as e:
        print("XLA_complie triggers assertion")
        print(e)

Relevant log output
=========eager_output(version:2.15.0)================
XLA_eager does not trigger assertion
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1701613506.470278 2323572 device_compiler.h:186] Compiled cluster using XLA!  This line is logged at most once for the lifetime of the process.
=========compiled_output(version:2.15.0)================
XLA_complie triggers assertion

Not equal to tolerance rtol=0.001, atol=0.001
at checking 0th
Mismatched elements: 3916 / 4096 (95.6%)
Max absolute difference: 0.99773916
Max relative difference: 8.1213542e+09
 x: array([[[9.954084e-04, 1.219345e-02, 2.660004e-02, ..., 1.034067e-01,
         2.044861e-01, 2.751211e-01],
        [8.196792e-01, 1.095101e-04, 3.054382e-01, ..., 3.612774e-02,...
 y: array([[[0.002754, 0.195666, 0.044557, ..., 0.013043, 0.305706,
         0.210448],
        [0.386147, 0.014669, 0.420922, ..., 0.0958  , 0.017486,...

The code you have mentioned has random number generation, the outputs cannot be guaranteed for each run.
I have tried by setting seed and enabling op determinism and it still produces random results.
tf.random.set_seed(42)
tf.config.experimental.enable_op_determinism()

Hi @tilakrayal,
I don't believe that the problem you mentioned is influencing this issue. This is because we generated random inputs before feeding them to the models and ensured that the same inputs were given to both models. Additionally, the fact that eager mode does not trigger this behavior seems to support this perspective.

Change in order of operation will take the different code path and the results are expected.
This is not considered as a bug.


How can I use flair like an nlp-engine?

Hi,
I'm working with presidio using spacy model, and I would try to test how works flair with my data.
I'm following the steps defined in other issue to improve my detection rates.
For the spacy model, I use:
configuration_spacy_es = {
"nlp_engine_name": "spacy",
"models": [{"lang_code": "es", "model_name": "es_core_news_lg"}]#,  #es_core_news_lg  es_dep_news_trf]
}
provider = NlpEngineProvider(nlp_configuration=configuration_spacy_es)
nlp_engine_with_spanish = provider.create_engine()
analyzer_spacy = AnalyzerEngine(
nlp_engine=nlp_engine_with_spanish,
supported_languages=["es"]
)
And then I use the "analyzer_spacy" to add new recognizers and analyze data.
I tried to do something similar with the flair model, without success.
How can I create a new nlp_engine for flair model and create an "analyzer_flair" engine to use it in presidio?
Thanks for your help.

Hi @Idomingog, Presidio only supports spaCy and Stanza as NLP engines. However, you can use Flair as an additional recognizer within presidio. In this scenario, presidio would call the Flair recognizer the same way it would call any other recognizer, and extract results coming from flair.
See some details here:

https://microsoft.github.io/presidio/analyzer/customizing_nlp_models/#leverage-frameworks-other-than-spacy-or-stanza-for-ml-based-pii-detection
https://microsoft.github.io/presidio/analyzer/adding_recognizers/#creating-a-remote-recognizer
Example 3rd party recognizer. Similar code could be used for translating the analyzer input into flair and back.

Thanks for your advices. I have included a new flair recognizer to my project.

Thanks! If you'd like to add this as a sample to the main repo, this would be a great contribution and I would be happy to help with reviewing or anything else.

Hi,
I'm very happy to share the class, but it's not "finished". It works for my needs, but there are a couple of things to improve.

The code doesn't accept languages, it's set up for spanish.
I didn't find how to manage the flair entity tags [MISC, ORG, PER, LOC], I don't know how to find it, I found the original ones like E-LOC, I-LOC, S-LOC, etc.... I tried to define it like a list, but with neither of two options I could use it in the analyzer.analyze(text, language, entities, score_threshold) call. The selection of the entities doesn't work.
I'm not sure if it's the best option to load the model.
For sure there are other issues that I didn't notice.

Best regards.
class EsFlairRecognizer(EntityRecognizer):
def __init__(
    self,
    supported_language: str = "es",
    supported_entities: List[str] = [],
    ner_strength: float = 0.85,
    name: str = "esflairRecognizer",
    version: str = "0.1",
    model: SequenceTagger = None,
):
    self.supported_language = supported_language
    self.supported_entities = supported_entities
    self.ner_strength = ner_strength
    self.version = version
    self.name = name
    self.model = SequenceTagger.load("flair/ner-spanish-large")

    super().__init__(
        supported_entities=self.get_supported_entities(),
        supported_language=supported_language,
        name="Flair Analytics"
    )

def get_supported_entities(self) -> List[str]:
    """
    Supported Entities by flair/ner-spanish-large model.

    :return: List of the supported entities.
    """
    return self.model.tag_dictionary.get_items() #['E-LOC', 'I-LOC', 'S-LOC', ....]

def load(self) -> None:
    """No loading is required."""
    pass

def analyze(
    self, text: str, entities: List[str] = [], nlp_artifacts: NlpArtifacts = None
) -> List[RecognizerResult]:
    """
    Analyze text using Text Analytics.

    :param text: The text for analysis.
    :param entities: Not working properly for this recognizer.
    :param nlp_artifacts: Not used by this recognizer.
    :return: The list of Presidio RecognizerResult constructed from the recognized
        Flair detections.
    """

    sentences = Sentence(text)

    self.model.predict(sentences)

    return [
        self._convert_to_recognizer_result(categorized_entity)
        for categorized_entity in sentences.get_spans('ner')
    ]

def _convert_to_recognizer_result(
    self, categorized_entity
) -> RecognizerResult:

    entity_type = categorized_entity.tag

    explanation = EsFlairRecognizer._build_explanation(
        original_score=round(categorized_entity.score, 2),
        entity_type=entity_type
    )

    flair_results = RecognizerResult(
        entity_type=entity_type,
        start=categorized_entity.start_pos,
        end=categorized_entity.end_pos,
        score=round(categorized_entity.score, 2),
        analysis_explanation=explanation
    )

    return flair_results

@staticmethod
def _build_explanation(
    original_score: float, entity_type: str
) -> AnalysisExplanation:
    """
    Create explanation for why this result was detected.

    :param original_score: Score given by this recognizer
    :param explanation: Explanation string
    :return:
    """
    explanation = AnalysisExplanation(
        recognizer=EsFlairRecognizer.__class__.__name__,
        original_score=original_score,
        textual_explanation=f"Identified as {entity_type} by Flair Recognizer",
    )

    return explanation

This is great! I do have some suggestions to generalize this code. If you'd create a PR on the Presidio repo, I'd be happy to provide specific comments and improvements. Would that work?

Hi, I just put an example with the code in the samples folder and open a PR.
Thanks for your help.

Thanks!! I quickly took a look and it is great. We'll do a more formal review in the next few days


[WIP] Seamless iframe new person

This is an attempt to replicate some of the functionality that WUFOO provides for creating new "persons", namely, that of being able to seamlessly integrate the signup form on a third party website.
TODO:

simpler signup page: don't need the full layout
change the UI and language to be more user friendly.

:+1: looks good to me, though I don't know much about the use case.
Got me thinking, given we're also adding some js functionality to events scheduling, would it make sense to have some high level acceptance tests for them? Rspec/capybara with poltergeist, to be run less often or perhaps on the CI only

Agreed: some level of front end testing makes alot of sense to me.

I think running Capybara specs with poltergeist on CI should be no problem - don't expect those to run longer than max 1-2min which would be perfectly fine on CI.

thanks for the scoop on the dig form, makes sense. About the js tests, cool, adding an issue for it


Add finalizer to clean up topic

https://book.kubebuilder.io/reference/using-finalizers.html

:yoshi:


Recommended changes

I wonder why you haven't looked a the thousands of published YARA rules before you've decided on the fields in your standard.
I recommend the following changes to align your specs with the best practices in the real world:
source > reference

^ source could imply that the rule was copied from somewhere else, although most often it's derived from a sample or blog article.
first_imported > date

what does first imported even mean? It implies that you "import" a YARA rule somewhere and limits the field to that use case.
last_modified > modified

The prefix last_ is unnecessary.
Recommended further fields currently missing:
minimum_yara

^ indicating the minimal YARA version required to run the rule. This is very important since new modifiers, module features and keywords get added every few months. (e.g. icontains, xor)
e.g.
minimum_yara = "4.2"

Furthermore, have you considered using the YARA tags instead of certain fields?
For tags of all kinds, one could add a field tags and format it as a comma separated list.
e.g.

rule EXPL_LOG_ProxyNotShell_OWASSRF_PowerShell_Proxy_Log_Dec22_1_RID3C7E {
   meta:
      description = "Detects traces of exploitation activity in relation to ProxyNotShell MS Exchange vulnerabilities CVE-2022-41040 and CVE-2022-41082"
      author = "Florian Roth"
      reference = "https://www.crowdstrike.com/blog/owassrf-exploit-analysis-and-recommendations/"
      date = "2022-12-22 21:14:11"
      score = 70
      customer = "demo"
      license = "CC-BY-NC https://creativecommons.org/licenses/by-nc/4.0/"

      tags = "CVE_2022_41040, CVE_2022_41082, DEMO, EXPLOIT, HKTL, LOG, SCRIPT, T1028, T1059_001, T1086, T1090"
      minimum_yara = "1.7"

   strings:
      $s1 = "/owa/mastermailbox%40outlook.com/powershell" ascii wide
      $sa1 = " 200 " ascii wide
      $sa2 = " POST " ascii wide
      $fp1 = "ClientInfo" ascii wide fullword
      $fp2 = "Microsoft WinRM Client" ascii wide fullword
      $fp3 = "Exchange BackEnd Probes" ascii wide fullword
   condition:
      all of ( $s* ) and not 1 of ( $fp* )
}

Following your approach, e.g. with the fields mitre_att and sharing, we would get an ever growing specification with many more fields. A field that lists all tags would be more ... practical IMHO.

Hi @Neo23x0 :) Thanks for your feedback!
We will implement your recommendations.
We already have support for the reference, the source is meant to be a provider or a vendor.
see all fields here we implement/validate here:
https://github.com/CybercentreCanada/CCCS-Yara/blob/master/CCCS_YARA.yml
Cheers

Great, thanks


[SECOND_OPTION]DON'T MERGE! Spark v3 integration test for spark

Just to show second option for running Integration tests for spark v3

Closing in favor of https://github.com/OpenLineage/OpenLineage/pull/248/files


crypto/cipher: AES encrypted cipher text in CFB mode is incorrect

go1.11

AES encrypted cipher text in CFB mode is incorrect
The ciphertext results are incorrect and cannot be decrypted using other tools.

package main

import (
	"bytes"
	"crypto/aes"
	"crypto/cipher"
	"encoding/hex"
	"fmt"
)

func main() {
	var key = "1234567887654321"
	var vector = "8765432112345678"
	var info = "AES in CFB mode"

	Enc_str := EncryptAES_CFB(info, key, vector)
	fmt.Println(Enc_str)
	Dec_str := DecryptAES_CFB(Enc_str, key, vector)
	fmt.Println(Dec_str)
}

func EncryptAES_CFB(src, key, vector string) string {
	data := []byte(src)
	iv := []byte(vector)
	keyByte := []byte(key)
	block, err := aes.NewCipher(keyByte)
	if err != nil {
		panic(err)
	}
	data = PKCS5Padding(data, block.BlockSize())
	ciphertext := make([]byte, len(data))
	mode := cipher.NewCFBEncrypter(block, iv)
	mode.XORKeyStream(ciphertext, data)
	return fmt.Sprintf("%X", ciphertext)
}

func DecryptAES_CFB(src, key, vector string) string {
	keyByte := []byte(key)
	iv := []byte(vector)
	data, err := hex.DecodeString(src)
	if err != nil {
		panic(err)
	}
	block, err := aes.NewCipher(keyByte)
	if err != nil {
		panic(err)
	}
	plaintext := make([]byte, len(data))
	mode := cipher.NewCFBDecrypter(block, iv)
	mode.XORKeyStream(plaintext, data)
	plaintext = PKCS5UnPadding(plaintext)
	return string(plaintext)
}

func PKCS5Padding(ciphertext []byte, blockSize int) []byte {
	padding := blockSize - len(ciphertext)%blockSize
	padtext := bytes.Repeat([]byte{byte(padding)}, padding)
	return append(ciphertext, padtext...)
}
func PKCS5UnPadding(origData []byte) []byte {
	length := len(origData)
	unpadding := int(origData[length-1])
	return origData[:(length - unpadding)]
}

/cc @FiloSottile

Can you provide some details on the other tools you compared against? An example showing a failure would be great.

CFB is a stream cipher, the error is almost certainly in your padding function, which is not supported for AES block sizes.
padding := blockSize - len(ciphertext)%blockSize
PKCS5 padding does not support arbitrary block sizes. It only supports size 8.
I have compared the CFB output to a clean re-implementation using a block diagram along with ecb mode: half of the code can be found here: https://play.golang.org/p/hn422wOs6NI The output of the stream is identical to what one would get with stdlib CFB.

@FiloSottile
I am trying this website
http://www.ssleye.com/

Because the result of running in CFB and OFB mode is the same, I think it is a bug.
package main

import (
	"bytes"
	"crypto/aes"
	"crypto/cipher"
	"encoding/hex"
	"fmt"
)

func main() {
	var key = "1234567887654321"
	var vector = "8765432112345678"
	var info = "AES in CFB mode"

	Enc_str := EncryptAES_OFB(info, key, vector)
	fmt.Println(Enc_str)
	Dec_str := DecryptAES_OFB(Enc_str, key, vector)
	fmt.Println(Dec_str)
}
func EncryptAES_OFB(src, key, vector string) string {
	data := []byte(src)
	iv := []byte(vector)
	keyByte := []byte(key)
	block, err := aes.NewCipher(keyByte)
	if err != nil {
		panic(err)
	}
	data = PKCS5Padding(data, block.BlockSize())
	ciphertext := make([]byte, len(data))
	mode := cipher.NewOFB(block, iv)
	mode.XORKeyStream(ciphertext, data)
	return fmt.Sprintf("%X", ciphertext)
}
func DecryptAES_OFB(src, key, vector string) string {
	keyByte := []byte(key)
	iv := []byte(vector)
	data, err := hex.DecodeString(src)
	if err != nil {
		panic(err)
	}
	block, err := aes.NewCipher(keyByte)
	if err != nil {
		panic(err)
	}
	plaintext := make([]byte, len(data))
	mode := cipher.NewOFB(block, iv)
	mode.XORKeyStream(plaintext, data)
	plaintext = PKCS5UnPadding(plaintext)
	return string(plaintext)
}
func PKCS5Padding(ciphertext []byte, blockSize int) []byte {
	padding := blockSize - len(ciphertext)%blockSize
	padtext := bytes.Repeat([]byte{byte(padding)}, padding)
	return append(ciphertext, padtext...)
}
func PKCS5UnPadding(origData []byte) []byte {
	length := len(origData)
	unpadding := int(origData[length-1])
	return origData[:(length - unpadding)]
}

That's because it's the first based on the first block, and the operations on that block result in identical output from both modes. Try it with a bigger plaintext.

@as
The same reason is really as you said, but the results still can not be decoded on other tools.
http://www.ssleye.com/aes_cipher.html

OpenSSL agrees with Go: https://play.golang.org/p/q0R-wgj2BcQ
I think you are encountering encoding or implementation issues in your web tools. They do not pass FIPS test vectors and their input format is ambiguous (is it hex? Base64?).
Because openSSL outputs the same ciphertext as Go, I think that this is not a Go issue.

@as
Maybe you are right, thank you very much for your answers.


feat: Stop setting playbackRate to 0 to control buffering state when streaming.rebufferingGoal = 0

Close https://github.com/shaka-project/shaka-player/issues/7602

@shaka-bot test


Subaru: move preglobal out of dashcam

these cars have been running on forks for awhile without issues, perhaps we should split them up into separate PRs?
Checklist

[x] added entry to CarInfo in selfdrive/car/*/values.py and ran selfdrive/car/docs.py to generate new docs
[x] test route added to routes.py: done
[x] route with openpilot:
[ ] route with stock system:
[x] car harness used: Subaru A

We need to verify the safety on one of them.


Full view title isn't shown when a contextual title is defined

Issue Type: Bug
Found while testing: https://github.com/microsoft/vscode/issues/98996
Create a view with a contextual title
Move the view from activity bar to horizontal panel
Note that the contextual title is shown but full title is not
Click on view
Notice now that full view name is shown
Click on another view in horizontal panel
Notice that full name of newly added view remains shown even though this was not the case when the view was first added to the panel
See animated gif:

VS Code version: Code - Insiders 1.46.0-insider (1bfa086adb9271ff56be11821da686e4cfffb672, 2020-06-02T06:55:33.079Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz (8 x 2112)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.93GB (1.56GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (24)

Extension
Author (truncated)
Version

vscode-eslint
dba
2.1.5

EditorConfig
Edi
0.15.1

vscode-github-releases-updater
joa
0.18.0

vscode-peacock
joh
3.7.2

chat
kar
0.33.0

vscode-docker
ms-
1.2.1

csharp
ms-
1.22.0

python
ms-
2020.5.80290

remote-containers
ms-
0.119.0

remote-ssh
ms-
0.51.0

remote-ssh-edit
ms-
0.51.0

remote-wsl
ms-
0.44.2

vscode-remote-extensionpack
ms-
0.20.0

azure-account
ms-
0.8.11

js-debug-companion
ms-
1.0.1

vscode-github-issue-notebooks
ms-
0.0.25

cloudenv-extensions
ms-
1.0.1369

vsliveshare
ms-
1.0.2236

vsliveshare-audio
ms-
0.1.85

vsliveshare-pack
ms-
0.3.4

vsonline
ms-
1.0.2268

debugger-for-chrome
msj
4.12.8

test-search-rg
rob
0.0.3

code-spell-checker
str
1.9.0

This was the result a of a tradeoff required by the design. Fixing this would result in breaking the titles elsewhere currently. We can try to improve this later.

Is there nothing we can do just now? I don't like introducing inconsistencies into the product.

@misolori - here is the UX consistency issue I mentioned the other day.


Improvements for Quick start guide

Suggested improvements for https://mi.docs.wso2.com/en/latest/get-started/quick-start-guide/#what-youll-build are as follows.
ISSUE 1: Under step 1, it shows the diagram. But instructions are not given on how to open this diagram in the vscode.

It seems the diagram is opening up by default only if we open HealthcareIntegrationProject folder directly in VS code. But if the user open the entire mi-qsg-home folder in vS code no way(at least i coudn't find) to open the MI overview panel.
This is mentioned under step 2. But by the time the user reads the step2 , there is a high chance that user opened up the entire mi-qsg-home  folder in vscode and then no way to get the diagram. so need to either mention following in the first step or mention any alternative way of opening up the diagram.

ISSUE 2: It says HealthcareIntegrationProject: This folder contains the integration artifacts for the healthcare service. This service consists of the following REST API:  But actually the file is inside /src/main/wso2mi/artifacts/apis So it took a while to find the file. Better to mention about the file path.

ISSUE 3: Backend jar file name is missing.
Suggestion:
Backend: This contains an executable `.jar` file named `DoctorInfo.jar' that contains mock back-end service implementations for the Pine Valley Hospital and Grand Oak Hospital

ISSUE 4: In the following diagram both buttons are higlighted. Instead, highlight only the build button and possibly show the image with two options, as given in issue 5.  The export button should be highlighted in step C.
The same issue is there in page https://mi.docs.wso2.com/en/latest/get-started/development-kickstart/#option-2-use-a-local-micro-integrator-instance too

ISSUE 5:  When building two options are popping up. It is not mentioned in the docs.

ISSUE 6.  Repetitive start ICP steps.
In the Step 3 - Observe deployed artifacts (Optional), under number 2, it says Install and start the Integration Control Plane (ICP) by following the steps below:. But we are not starting ICP here. Starting ICP is happenninng on number 3. So above sentense should be reworded.

IMO, It is better to have a bare minimum of steps in the quickstart to run a simple application using the WSO2 MI like a "Hello World". Then we can move to more complex scenarios like building an integration scenario. In MI docs there is a section called Develop your first integration where we can go into more detail about different options and those monitoring-related things. In the current document the same scenario is repeated in both Quick start and Develop your first integration.
Suggestions for Quick Start Guide
Simplify the Initial Scenario: Instead of starting with a complex scenario under the "What you’ll build" section, we suggest starting with a "Build your first Hello World application" approach. This will help new users quickly become familiar with the MI VSCode extension and give a feeling that things can be easily run in MI before moving on to more advanced topics.
Step 1: Set Up the Workspace
Instead of asking the users to download the samples and open them in Visual Studio Code, simply select the "Hello World Service" provided under the Explore Samples section in the VS Code extension. Choose a folder where you want to create the "HelloWorld" service.

Expand the APIs/HelloWorld folder and click on the API listed there. You will see the REST API diagram.

Briefly explain what it does (Once the service is invoked, it responds with "Hello World". You have a PayloadFactory with the value {"Hello":"World"} and Respond is used to send the message set in the PayloadFactory to the client).
Step 2: Run the Integration Artifacts
Instead of offering two options (using Visual Studio Code and using a local Micro Integrator instance), only provide the first option - running it using Visual Studio Code.
The alternative option of building and exporting as a CAPP can be detailed in the Develop your first integration section of the MI documentation.
Step 3: Observe Deployed Artifacts (Optional)
In my opinion, this step may not be necessary in the quickstart guide. It can be omitted to keep the guide simple and focused on getting a simple Hello World to run.
Step 4: Test the Integration Service
Use a simple curl command to invoke the Hello World service and verify its functionality.

+1 for all the suggestions.
@isudana thoughts?

+1 for all.
Shall we use gifs/images to show the development phases of the helloWorld service along with the description?
Plus, we could have users jump into the source view and personalize it by adding their name.
May be include references to access extra help. (faq,discord..)

+1 for the suggestions.
Is it better to improve the MI onboarding user experience as discussed in https://github.com/wso2-enterprise/integration-product-management/issues/169 and then update the doc accordingly?

@rosensilva We thought of first polishing the existing version since it could be done quickly.
Secondly, to revisit the onboarding process and sync the guides accordingly.

@Bhashinee what is the effort estimate for this doc update? I hope it is not taking much time.

@Bhashinee what is the effort estimate for this doc update? I hope it is not taking much time.

Yes, unlike the other changes that would require technical changes, these are just documentation updates. We can implement the suggested changes within a day.

PR: https://github.com/wso2/docs-mi/pull/977


Allow non-unique VLAN names within a VLAN group

Issue type
[x] Feature request
[ ] Bug report
[ ] Documentation

Environment

Python version:  <IP_ADDRESS>
NetBox version: 2.2.8

Description
It would be nice to have multiple vlans in a particular vlan group with the same name. Currently you can have the same name on multiple vlans as long as they are either not assigned to a vlan group or different groups. This would be good for the same customer and application who have multiple vlans on different IP segments.
Taking two vlans named the same, assigning to the same vlan group gives the following message about unique ids
Duplicate key value violates unique constraint "ipam_vlan_group_id_name__uniq"
Detail: Key (group_id, name) = (5, vlan-name) already exists
Can this relationship be tied to the vlan itself since there is already a constraint on one per vlan number per group?

I have come across this before myself. Really it comes down to use case. As @jeremystretch has pointed out, it is easy to see it both ways but the current constraint does make NetBox opinionated as to the intended use case. That being said, I worked around it in other ways (not related to the use case explained above). The only danger I see is if two vlans are created without assigning a prefix, it would be hard to differentiate them in the UI.

True it would be difficult if there were named the same and the same vlan id. The only difference would be the group name as a difference which works.
In my example there are two different vlan ids with the same name. Each exists without any group without conflict. Only when adding to same group. They are still forced unique by the vlan id per group.
Not every vlan would have a prefix as some could be layer 2 only between sites or devices etc

Hey guys,
I ran into this issue as well when porting an existing VLAN administration from mediawiki (yeah, I know) to netbox. A large number of VLANs have a reservation status and a generic name. So lots of duplicates. I could potentially include the VLAN ID in the name but it feels a bit clunky.
I'm running netbox v2.4.8.
@jeremystretch Could you please consider re-opening this case?


Bird names or ebird ids for the one-hot labels

Is it possible to get the bird names or the ebird id for the one hot labels?
I tried to play with the event mapper but I couldn't get the names.

thank you!


Update stable version in repo from 1.3.7 to 1.3.8

Think about update stable version to 1.3.8
Version: stable=1.3.7 (61 days old) => latest=1.3.8 (18 days old)
Installs: stable=204 (56.98%), latest=33 (9.22%), total=358
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 1.3.8 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 1.3.8 but the current stable version is already 1.3.8.
So this issue should be closed.
@mcm1957 for evidence


Add Java 8 Redis Cluster Client

Still have changes to make, mainly a readme, but I had some questions before I continue.

Are we allowed to add clients which only support java 8+?
I kept the functionality identical to the original RedisClient, but is there a global objective that all DB implementations should follow?
Is there a code formatter I can use?  I don't have any checkstyle issues with the build, but the style is a bit different.
The original RedisClient didn't make use of the 'table' field.  For Redis Cluster it would make sense for that to be a hash tag to bind all corresponding keys and indexes to the same node.  Would it be worth adding it to this current RedisClusterClient, or maybe an additional DB client?

Here's a link to the Redis Cluster client Jedipus

java 8 only clients should ensure they only build when a jdk8 profile is active. besides that caveat they're fine.

@busbey

I created a separate 'redis-cluster' module and left the original 'redis' module untouched other than the 'redis' to 'jedis' config naming.
I moved the Jedis version back to its original value.  I'm not sure how their support for different Redis versions has changed over time.
Jedipus only has a build target for jdk8.
Thank you for pointing out the init() issue.  I moved that out as a static constant.  The problem now is that I'm not sure if I am accessing user defined properties correctly.

I can run the following mvn command just fine:
mvn -pl com.yahoo.ycsb:redis-cluster-binding -am clean package
But mvn clean package on the entire project always SKIPS the redis-cluster module.  I'm not very familiar with maven and I'm struggling trying to figure out why it always skips it.

But mvn clean package on the entire project always SKIPS the redis-cluster module. I'm not very familiar with maven and I'm struggling trying to figure out why it always skips it.

You need to add the redis-cluster-binding as a dependency of the distribution module. Without that, the top level build thinks it can build the distribution before it builds this binding.


Removing KB for broken runner job

@brandysmith conflicts

@jim-phillips I am removing the file Servers/Self-Service-Updates-of-VMware-Tools.md, so what is the conflict?


Pypi seem to have change python-requires format '3' not valid

Traceback (most recent call last):
  File "/Users/bussonniermatthias/.local/bin/flit", line 4, in <module>
    main()
  File "/Users/bussonniermatthias/.local/lib/python3.5/site-packages/flit/__init__.py", line 88, in main
    repo=args.repository)
  File "/Users/bussonniermatthias/.local/lib/python3.5/site-packages/flit/wheel.py", line 191, in wheel_main
    do_upload(wheel_path, wb.metadata, repo)
  File "/Users/bussonniermatthias/.local/lib/python3.5/site-packages/flit/upload.py", line 164, in do_upload
    upload_wheel(file, metadata, repo)
  File "/Users/bussonniermatthias/.local/lib/python3.5/site-packages/flit/upload.py", line 133, in upload_wheel
    resp.raise_for_status()
  File "/Users/bussonniermatthias/anaconda/lib/python3.5/site-packages/requests/models.py", line 837, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: requires_python: Invalid specifier in requirement. for url: https://upload.pypi.io/legacy/

See https://github.com/Carreau/warn/blob/8fbb2e0a4e8c46f88361ae3d690784444cc8ca5c/flit.ini  and previous commit (uploading through warehouse)
I should likely check whether it's a warehouse thing but I want to make sure to fix flit docs if it's not the case.

The examples at https://www.python.org/dev/peps/pep-0345/#version-specifiers seem to show that a version specifier consisting of just a number is fine, and that 3 is a shorthand for >=3,<4. So I think we should try making an issue on Warehouse for it. They may say that the PEP should be changed, or that Warehouse is going to be more restrictive than the metadata spec, in which case we can handle that.

You've updated the docs, but I'll leave this open for now because it would also be good for flit to check this, so you can discover the problem before attempting to upload to warehouse.

Validation added in #154.


[HIVE] Update documentation for HIVE kerberos security

[x] Document Update for connect_args attribute

// NOTE - This requires kerberos ticket to be already issued from kinit command....
"source": {
    "type": "hive",
    ......
    "config": {
                "connect_args": {
                        "auth": "KERBEROS",
                        "kerberos_service_name": "hive"
                 }
     }
}

[x] Document update with troubleshooting step

If you come across the below issue, make sure you have all the libraries required to connect to HIVE Cluster via kerberos.
Issue -
thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found'

Solution (Ref - https://stackoverflow.com/questions/30705576/python-cannot-connect-hiveserver2)-
// For Ubuntu
sudo apt-get install sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit

This is in reference to testing from issue #2533
cc - @harshach , @shannonbradshaw , @shahsank3t

@akash-jain-10 I've addressed the troubleshooting portion of this ticket. Please review here:

LGTM! Thanks @shannonbradshaw


Test the automated management of engine subsystems

Engine subsystems placed in the subsystems_ list of Engine are automatically managed by the engine. This management should be tested making sure:

[x] All subsystems are dynamically constructed correctly.
[x] All subsystems are initialized correctly, in forward order.
[x] All subsystems are updated and drawn correctly, in forward order.
[x] All subsystems are terminated correctly, in reverse order.
[x] All subsystems are dynamically freed correctly.

Tested and verified, closing issue.


Option for closing tags list

Ace has predefined list of tag names to NOT be closed. It's handy to have an option to provide the list.
If I'm producing XML, I'd have it empty.
Code changes notes:

The list is kept in a map[string]struct{} as the size of struct{} is zero.
Initializing func makes a copy of defaultNoCloseTagNames for opts.NoCloseTagNames, otherwise plain assignment would create a reference to the default (as it is a map) and it could be modified outside ace.

I also took the opportunity to make initializeOptions public. It becomes complex to re-do what the func does in non-ace code when it passes non-nil *ace.Options to ace.Load etc.

@rzab Thanks for the nice PR! I'm curious why you decided to change the type of NoCloseTagNames from slice to map? Setting an empty struct to each key looks redundant and it seems that there's no merit of using map instead of slice because there's no code which access to map with its key.

It would be easier to modify .NoCloseTagNames as a map in non-ace code:
	aceopts := ace.InitializeOptions(nil)
	delete(aceopts.NoCloseTagNames, "input")

Adding a tag would be aceopts.NoCloseTagNames["input"] = struct{}{} which is ok in my book.

My thinking is this: ace cannot be sure about the format is produces. For anything strict (XML/XHTML) it's obvious the set must be empty. For HTML4 the existing default is ok, but not for HTML5. HTML5 has a dozen of tags which should not be closed, some of which are invalid in HTML4. Ace should not guess, it's up to user to deviate from the default set.
So as long as the set is an option, it must be easy for user to modify. delete is straight forward. Addition is maybe ugly because of struct{}{} but making it a map[string]bool so that the syntax would be better is just wasting space. We could add a helper public method for *ace.Options accepting []string or better yet ...string for the addition to the internal .NoCloseTagNames like this:
func (opts *Options) AddNoCloseTagNames(names ...string) {
	for _, name := range names {
		opts.NoCloseTagNames[name] = struct{}{}
	}
}
// Then we'd use it in `InitializeOptions':
if opts.NoCloseTagNames == nil {
	opts.AddNoCloseTagNames("br", "hr", "img", "input", "link", "meta")
}

Now imagine changing the set when it is a []string.
// Addition
aceopts.NoCloseTagNames = append(aceopts.NoCloseTagNames, "input")

// Deleting "input"
var newnoclose []string
for _, value := range aceopts.NoCloseTagNames {
	if value != "input" {
		newnoclose = append(newnoclose, value)
	}
}
aceopts.NoCloseTagNames = newnoclose

Do you face the case in which you have to add or delete the element of NoCloseTagNames after you create ace. Options? I still cannot understand the necessity of the ability of modifying NoCloseTagNames because I cannot imagine the case when I have to modify NoCloseTagNames after the creation of ace. Options.

I am actually. Depending on a condition, I call ace.Load with either one set of arguments or another. So before any of the calls I setup common *ace.Options. And before the second call to ace.Load I redefine the .NoCloseTagNames, because, well, the result must be strict XML.
	aceopts := ace.InitializeOptions(nil)
	aceopts.FuncMap = templatep.AceFuncs

	if !jscriptMode {
		ace.Load(inputFile, definesFile, aceopts)
		return
	}

	delete(aceopts.NoCloseTagNames, "input")
	aceopts.AttributeNameClass = "className"
	ace.Load(definesFile, "", aceopts)

@rzab Thanks for your explanation. I've thought this matter over and over again. Inside Ace, there's no need of making NoCloseTagNames's type map. So, I think it's good for us to leave its type be slice. Adding helper public functions such as (opts *Options) AddNoCloseTagName(name string) and (opts *Options) DeleteNoCloseTagName(name string) looks nice idea! They make the modification of NoCloseTagNames much easier.

Alright, slice it is.

Thanks a lot!


Fix a tiny bug when rendering gp tutorial

This fixes a rendering bug in Data section of gp tutorial: http://pyro.ai/examples/gp.html

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

Oppps, I will not make a pull request on the top of an old one in the future.


Recent updates are incompatible with PHP 8.1.x due to some symfony/* 7.x dependencies

Laravel Version
10.48.2
PHP Version
8.1.27
Database Driver & Version
No response
Description
Composer generates fatal error in vendor/composer/platform_check.php script due to some symfony/* 7.x dependencies
Composer detected issues in your platform:

Your Composer dependencies require a PHP version ">= 8.2.0". You are running 8.1.27.

PHP Fatal error:  Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.2.0". You are running 8.1.27. in ~/laravel10/vendor/composer/platform_check.php on line 24

Example dependency from vendor/composer/installed.json
{
    "name": "symfony/css-selector",
    "version": "v7.0.3",
    ...
    "require": {
        "php": ">=8.2"
    },
    ...
},

Steps To Reproduce
composer create-project laravel/laravel laravel10 10.*
cd laravel10
php8.1 artisan test

Please do not start new projects on Laravel v10 any more.

@driesvints needed to support existing projects on Laravel 10, above is just a simple demonstration of the problem.

You’re having this issue on a Laravel 10 project? What’s your composer.json?

@driesvints here are all the PHP dependencies of my composer.json
  "require": {
        "php": "^8.1",
        "bacon/bacon-qr-code": "^2.0",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^10.10",
        "laravel/tinker": "^2.8",
        "pragmarx/google2fa-laravel": "^2.0"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^7.0",
        "phpunit/phpunit": "^10.1",
        "spatie/laravel-ignition": "^2.0"
    },

There is also a problem with updating the PHP version in production.
I understand well what to do if the problem is not solved. However, I am surprised by the violation of this rule of backward compatibility. It will also be difficult to explain to the project management ))

Can you run composer why symfony/css-selector and share the full output.

@crynobone all problematic symfony/* 7.x dependencies
composer why symfony/css-selector
tijsverkoyen/css-to-inline-styles v2.2.7 requires symfony/css-selector (^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0)

composer why symfony/event-dispatcher
symfony/console     v6.4.4 conflicts symfony/event-dispatcher (<5.4)
symfony/http-kernel v6.4.5 requires  symfony/event-dispatcher (^5.4|^6.0|^7.0)
symfony/mailer      v6.4.4 requires  symfony/event-dispatcher (^5.4|^6.0|^7.0)

composer why symfony/string
symfony/console v6.4.4 requires symfony/string (^5.4|^6.0|^7.0)

Only symfony/css-selector get installed with v7, this can happened when composer uses PHP 8.2 and later you attempt to use it with PHP 8.1, If you have requirements to run composer project using different version than the default local PHP version you should consider locking the version using platform config: https://mikemadison.net/blog/2020/11/17/configuring-php-version-with-composer

Thanks everyone, I realized my mistake, this is the first time I've come across this.
Ran everything from "php8.1 /usr/local/bin/composer ..." and all dependencies were installed compatible with PHP 8.1.x


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/38119

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/39658

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/39668

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/46736

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/51801

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/64912

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/75248

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/75288

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/75629

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/75802

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/82938

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/83850

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/84802

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/85720

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/94334

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/99366


all-the-icons-dsilver is too dark

all-the-icons-dsilver is too dark and almost invisible in doom-one and other dark themes.

04c147f should make it (and the other silver faces) brighter. Let me know if that's bright enough.

Thanks, @hlissner .
Now it looks as below. The color of icons are all-the-icons-dsilver. It's better if the color is a little bit lighter IMO.

Sorry for the terribly late response. I made all-the-icons-dsilver a brighter in b5435a6, so I'll consider this resolved.

Thank you!


Iterate on design & add PWA support

This iterates on the UI to make it a bit more user friendly in a variety of ways. I focused on keeping the UI simple, accessible, and semantic.
I specifically didn't change any JS and tried to not change anything relating to the core functionality. It's mostly CSS and some HTML adjustments.
See commits for details, I tried to make them small and atomic.
In addition to using some brand colors and styles, I've also added the logo, expanded on the README, and made it so that the website can be installed as a Progressive Web App to make it possible for Chrome users to install on their desktop for easy access.
Screenie

Progressive Web App Install UI

Acceptance Criteria

Check out this PR - gh pr checkout 6
Boot up a web server - if you have Python, python3 -m http.server or with Ruby: ruby -run -e httpd . -p 5555
View the site locally and ensure it:

looks nice
works with input modules if ya' got em

Happy to iterate on this and all feedback welcome.

new screenie w/ hacker vibes bringing back the monospace font

@zachfeldman thanks for all of the feedback, I believe I've addressed most of the issue and implemented the suggestions. 🙌
Could you log a separate GitHub issue in this repo for the console error? That seems unrelated to the changes and isn't something I can fix yet (you or @JohnAZoidberg could investigate though if you're feeling interested 😸 ).

I'm going to rebase this on top of the latest in usbserial so that it gets the Cloudflare Pages preview deployment for easy review + fixes some conflicts I introduced.


Run chromedriver via node instead of command

:+1:

Sorry, I ignored chromedriver start time (generally very fast), maybe we can delay new webdriver.Builder?

Sure, we can try that. Just wander why test were passed on PR but failed on master


can the length of field which is part of Primary key increased

Hi,
We have increased the length of field from 10 to 20 which is part of primary key. Then trying to publish the same. But we are facing the below issue.
** Unsupported field change.   Field: MyTestField ; Change :LengthChanged**
Can we increase the length of field which is part of Primary key.

See #4620
The only option at the moment is replacing the table.

I will close this as a duplicate of #4620


how to generate data in OpenDrive format?

I'm a beginner in OpenDrive. I've read the instructions and learned a lot from OpenDrive and apollo OpenDrive.
I have a high-precision map built by slam, but I don't know how to generate data in OpenDrive format. I learned that JOSM is an editing tool for OpenStreetMap that can generate data in OpenStreetMap format. Is there an editing tool that can generate data in OpenDrive format, just like JOSM for OpenStreetMap？
Thanks, I look forward to your help.

Hi @ljxiango
We do not currently have any tools to convert your map into Opendrive or the Apollo Opendrive format that is available on open source. You could refer to Opendrive's website for tools on converting your current map. Closing this issue currently.


Add indices after nextcloud is installed

After nextcloud is installed indices in database could be missing
I added a task to run an occ command that adds those missing indices

this check is not idempotent, it always changes, because the output of the occ command is as follows:
root@nextcloud1:~# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.
Done.


[Bug]: Property name "$id" leads to TypeError "unhashable type: 'dict'"

Actual Behavior
When a property named "$id" appears inside of an openAPI specification the openapi-core library fails whenever this property is part of a response validation (so when the field COULD appear in a response, it does not have to actually be in a response or be a required field).
"json_schema": {
                "type": "object",
                "title": "JSON Schema",
                "description": "A JSON Schema compliant to [JSON Schema draft-07](https://json-schema.org/draft-07/json-schema-validation.html) or later.\n\nJSON Schemas SHOULD always be dereferenced (i.e. all `$refs` should be resolved).\nThis allows clients to consume the schemas much better.\nClients are not expected to support dereferencing `$refs`.\n\nNote: The specified schema in the OpenAPI document is only a common subset of JSON Schema.\nAdditional keywords from the JSON Schema specification MAY be used.",
                "properties": {
                    "$schema": {
                        "description": "The JSON Schema version. If not given in the context of openEO,\ndefaults to `draft-07`.\n\nYou may need to add the default value for `$schema` property explicitly to the JSON Schema\nobject before passing it to a JSON Schema validator.",
                        "type": "string",
                        "format": "uri",
                        "default": "http://json-schema.org/draft-07/schema#"
                    },
                    "$id": {
                        "description": "ID of your JSON Schema.",
                        "type": "string",
                        "format": "uri"
                    },
                    "type": {
                        "description": "The allowed basic data type(s) for a value.\n\nIf this property is not present, all data types are allowed.",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/json_schema_type"
                            },
                            {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                    "$ref": "#/components/schemas/json_schema_type"
                                }
                            }
                        ]
                    },
                    "pattern": {
                        "type": "string",
                        "format": "regex",
                        "description": "The regular expression a string value must match against."
                    },
                    "enum": {
                        "type": "array",
                        "items": {},
                        "description": "An exclusive list of allowed values."
                    },
                    "minimum": {
                        "type": "number",
                        "description": "The minimum value (inclusive) allowed for a numerical value."
                    },
                    "maximum": {
                        "type": "number",
                        "description": "The maximum value (inclusive) allowed for a numerical value."
                    },
                    "minItems": {
                        "type": "number",
                        "minimum": 0,
                        "default": 0,
                        "description": "The minimum number of items required in an array."
                    },
                    "maxItems": {
                        "type": "number",
                        "minimum": 0,
                        "description": "The maximum number of items required in an array."
                    },
                    "items": {
                        "description": "Specifies schemas for the items in an array.",
                        "anyOf": [
                            {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                    "$ref": "#/components/schemas/json_schema"
                                }
                            },
                            {
                                "$ref": "#/components/schemas/json_schema"
                            }
                        ]
                    }
                },
                "additionalProperties": {
                    "description": "You can add any other property supported by the JSON Schema version that is given through the property `$schema`, so either [draft-07](https://json-schema.org/draft-07/json-schema-validation.html) or any later version."
                }
            },

(Taken from https://api.openeo.org/)
Expected Behavior
There should be no issue with properties named "$id", it should just work like any other name.
Steps to Reproduce
Add a property named "$id" to an internal schema object and validate a response that uses that schema.
OpenAPI Core Version
0.17.2
OpenAPI Core Integration
Requests
Affected Area(s)
Validation
References
https://github.com/OAI/OpenAPI-Specification/discussions/3302
Anything else we need to know?
No response
Would you like to implement a fix?
None

For more reference here is the Stacktrace:
Exception has occurred: TypeError       (note: full exception trace is shown but execution is paused at: test_MOCK_processes)
unhashable type: 'dict'
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 878, in _find_in_subschemas
target_uri = self._urljoin_cache(
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 894, in resolve
match = self._find_in_subschemas(url)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/_validators.py", line 294, in ref
scope, resolved = validator.resolver.resolve(ref)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 305, in descend
for error in self.evolve(schema=schema).iter_errors(instance):
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/_validators.py", line 362, in allOf
yield from validator.descend(instance, subschema, schema_path=index)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_schema_validator/_validators.py", line 98, in allOf
yield from _allOf(validator, allOf, instance, schema)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 305, in descend
for error in self.evolve(schema=schema).iter_errors(instance):
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_schema_validator/_validators.py", line 150, in items
yield from validator.descend(item, items, path=index)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 305, in descend
for error in self.evolve(schema=schema).iter_errors(instance):
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/_validators.py", line 332, in properties
yield from validator.descend(
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/jsonschema/validators.py", line 288, in iter_errors
for error in errors:
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/validation/schemas/validators.py", line 38, in validate
errors = tuple(errors_iter)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/validation/validators.py", line 106, in _validate_schema
validator.validate(value)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/validation/validators.py", line 130, in _get_content_value
self._validate_schema(schema, casted)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/validation/response/validators.py", line 119, in _get_data
return self._get_content_value(raw_data, mimetype, content)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/validation/decorators.py", line 31, in wrapper
return f(*args, **kwds)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/validation/response/validators.py", line 54, in _iter_errors
self._get_data(data, mimetype, operation_response)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/validation/response/validators.py", line 192, in validate
raise err
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/shortcuts.py", line 523, in validate_apicall_response
return v.validate(request, response)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/openapi_core/shortcuts.py", line 446, in validate_response
validate_apicall_response(
File "/home/gerald/co/openeo-conformance-test/openeo_conformance_test/conformance_testing.py", line 243, in test_MOCK_processes (Current frame)
validate_response(
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_callers.py", line 80, in _multicall
res = hook_impl.function(*args)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_manager.py", line 112, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_hooks.py", line 433, in call
return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/python.py", line 1799, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/runner.py", line 169, in pytest_runtest_call
item.runtest()
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_callers.py", line 80, in _multicall
res = hook_impl.function(*args)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_manager.py", line 112, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_hooks.py", line 433, in call
return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/runner.py", line 262, in
lambda: ihook(item=item, **kwds), when=when, reraise=reraise
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/runner.py", line 341, in from_call
result: Optional[TResult] = func()
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/runner.py", line 261, in call_runtest_hook
return CallInfo.from_call(
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/runner.py", line 222, in call_and_report
call = call_runtest_hook(item, when, **kwds)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/runner.py", line 133, in runtestprotocol
reports.append(call_and_report(item, "call", log))
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/runner.py", line 114, in pytest_runtest_protocol
runtestprotocol(item, nextitem=nextitem)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_callers.py", line 80, in _multicall
res = hook_impl.function(*args)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_manager.py", line 112, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_hooks.py", line 433, in call
return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/main.py", line 348, in pytest_runtestloop
item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_callers.py", line 80, in _multicall
res = hook_impl.function(*args)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_manager.py", line 112, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_hooks.py", line 433, in call
return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/main.py", line 323, in _main
config.hook.pytest_runtestloop(session=session)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/main.py", line 269, in wrap_session
session.exitstatus = doit(config, session) or 0
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/main.py", line 316, in pytest_cmdline_main
return wrap_session(config, _main)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_callers.py", line 80, in _multicall
res = hook_impl.function(*args)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_manager.py", line 112, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/pluggy/_hooks.py", line 433, in call
return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
File "/home/gerald/.cache/pypoetry/virtualenvs/openeo-conformance-test-iNfhDeti-py3.10/lib/python3.10/site-packages/_pytest/config/init.py", line 166, in main
ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main(
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
TypeError: unhashable type: 'dict'

I just revisited this problem and it seems to be fixed as of version 0.18.2


App got rejected due to MANAGE_EXTERNAL_STORAGE permission

Google Play Store restricts use of MANAGE_EXTERNAL_STORAGE to apps which specifically manage storage, such as file managers. If the app is not a file manager, it should not request MANAGE_EXTERNAL_STORAGE` permission:
Quote from https://developer.android.com/about/versions/11/privacy/storage
Note: If you publish your app to Google Play, carefully read the notice. If you target Android 11 and declare All files access, it can affect your ability to publish and update your app on Google Play.
Fallery requests and uses MANAGE_EXTERNAL_STORAGE (All files access) which makes it difficult to use it in apps.
Why is it needed? Do you really have to request MANAGE_EXTERNAL_STORAGE? For example, I do not know any other apps with media pickers requesting this permission.

Essentially, your widget should not require this permission. It should function with it. Otherwise it cannot be used by most apps.

Hi @or-else, Sorry for the late response; it's resolved on #25 and will be released ASAP.


Problem with Live Game Scanner

Why does this problem happened to me ?
https://www.youtube.com/watch?v=U2VCLux4K2o

Since certain version, Blizzard stopped using Storm.dll and has the code directly in game.exe, moreover protected by something. So MPQ Editor is unable to find an entry point for SFileOpenFileEx.

I have also tried to run it on 1.24e ver but it was the same problem like that

Since certain version, Blizzard stopped using Storm.dll and has the code directly in game.exe, moreover protected by something. So MPQ Editor is unable to find an entry point for SFileOpenFileEx.
I have also tried to run it on 1.24e ver but it was the same problem like that

I have also tried to run it on 1.24e ver but it was the same problem like that

I checked and it looks like it happened when you run MPQ Editor and the game on 32-bit Windows.
Fixed in latest build, which is already uploaded in my website. Thank you for the bug report.


adding dataXoffset and dataYoffset

I'd like to walk around within my scene. Now I could update the xyz coordinate of every object manually, but there is already a dataZoffset variable that only lets me move every item on the Z axis. Why isn't there a corresponding offset variable for the other two coordinates?
Let me know what you think 🙂

Hey this looks pretty awesome! I'll review this as soon as I can.

I figured out that I should rather use camTx, camTy and camTz for that 😅

nah, it turns out offsetting the data has a different effect than translating the camera (one might say I should be familiar to three dimensionality at this stage of my life 😅). I would at least ask, why it is only the z axis that can be offset.

nah, it turns out offsetting the data has a different effect than translating the camera (one might say I should be familiar to three dimensionality at this stage of my life 😅). I would at least ask, why it is only the z axis that can be offset.

I didn't need them at that time 😅. I use dataZoffset because I wanted to control how the rotation (in the x, y, z axes) worked with respect to the data 😄

I'd like to walk around within my scene. Now I could update the xyz coordinate of every object manually, but there is already a dataZoffset variable that only lets me move every item on the Z axis. Why isn't there a corresponding offset variable for the other two coordinates?
Let me know what you think 🙂

Hey, you didn't give me permission to edit your pull request. Please allow maintainers to edit your pull request! Thanks!
➜  bare-minimum-3d git:(feat/PR-023) git push PR-023 feat/PR-023 --force
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 4 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 14.83 KiB | 1.24 MiB/s, done.
Total 8 (delta 6), reused 0 (delta 0)
remote: Resolving deltas: 100% (6/6), completed with 3 local objects.
To https://github.com/fuddl/bare-minimum-3d.git
 ! [remote rejected] feat/PR-023 -> feat/PR-023 (permission denied)
error: failed to push some refs to 'https://github.com/fuddl/bare-minimum-3d.git'

Yes, of course. I apologize

Yes, of course.

Awesome! 😃


Update start_cerberus.py

solving oc issue
Description
#133
Fixes
dropped in oc, removed -r option in sed as it didn't work on a mac but that can be put back in if necessary

Can one of the admins verify this patch?

/rerun all

Test
Result
Duration

test_daemon_disabled
Pass
00:00:06

test_detailed_data_inspection
Fail
00:00:39

test_slack_integration
Pass
00:00:47

Check
Gold time (s)
PR time (s)
% Change

Im happy with that, was only changing for consistency... kubectl on the
second command is fine
On Thu, 6 May 2021, 22:33 Naga Ravi Chaitanya Elluri, <
@.***> wrote:

@.**** commented on this pull request.
In start_cerberus.py
https://github.com/cloud-bulldozer/cerberus/pull/135#discussion_r627778685
:

         logging.info("\n%s" % (cluster_version))

   cluster_info = runcommand.invoke("kubectl cluster-info | awk 'NR==1' | sed -r "

   cluster_info = runcommand.invoke("oc cluster-info | awk 'NR==1' | sed "

@seanogor https://github.com/seanogor we might want to use kubectl here
since cluster-info resource is common to both kubernetes as well openshift
distributions. This way it works even when the distribution is set to
kubernetes. Thoughts?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cloud-bulldozer/cerberus/pull/135#pullrequestreview-653913584,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB74KG2ZH2SRRKA5NTUZ6CTTMMDMBANCNFSM44HU5I2Q
.


Setup environment variables for RPMs based on flow-params

This change allows setting up a list of RPMs via flow params as ENV variables to the flow container.
The motivation is that the startup scripts for the flow containers can utilize this ENV variable to install the RPMs for various testing purposes.

Based on Janki's comment, it seems like pod.env.var can be utilized and hence no code changes are required. Hence closing this PR.


Only redirects the user to the default page if no specific page page …

…was set in the querystring

[ ] Redmine Issue: https://redmine.pfsense.org/issues/NNNN
[ ] Ready for review

To effectively track changes and bug/feature requests, we require an entry on the pfSense Redmine issue tracker associated with every pull request, and likewise the Redmine entry should also have a link back to the pull request.
Please associate this PR to a Redmine issue either by locating an existing issue at https://redmine.pfsense.org or by creating a new issue. Add a link to the Redmine issue that points to this PR, and also add a link on the PR to the Redmine issue.
For more information, see https://www.netgate.com/docs/pfsense/development/submitting-a-pull-request-via-github.html
Thanks!


[Question] As of right now, is it working?

I want to make sure before I pay for a Patreon creator.

Should be working absolutely fine

Duh. That's why you're supposed to fix it when it breaks.

Maybe.....don't be rude to the person who makes the software you are wanting to use?

No.  UUUUUUM.
And man, whose heav’n-erected face,
The smiles of love adorn,
Man’s inhumanity to Man,
Makes countless thousands mourn.
– Robert Burns
Sent with Proton Mail secure email.
------- Original Message -------
On Sunday, July 30th, 2023 at 16:45, Masamune3210 @.***> wrote:

Maybe.....don't be rude to the person who makes the software you are wanting to use?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Switch to AdoptOpenJDK's JRE image

Changes the base image from "the latest JDK" to "the latests JRE", which is more compact and specific.

The MPD flags are what I think are a safe way to start testing Shenandoah, which seems to provide a smoother experience for me. Apparently it's been backported to OpenJDK 11 as well.

FYI, java15 branch is now setup.


issue with Clavel 2023

Bug description
I noticed that three of the samples published in Clavel et al 2023 are missing from the metadata.

MAJ38, PRJEB59233, ERS14555592,ERS14555591,ERS14555590,ERS14555589,ERS14555588,ERS14555587
RAY1028, PRJEB59233, ERS14555627,ERS14555628
RAY3030, PRJEB59233, ERS14555635,ERS14555636

Additional context
No response

I see.
While I personally don't like the idea of mixing strains, j can see why people would do it.
Also fair enough with the Guellil, I guess I missed that one.
Fancy making a PR? 🌝

I just attempted to but it seems I can't create a branch?
when attempting to push the new branch created locally I got the following error
cameronrobertferguson@Camerons-MacBook-Pro AncientMetagenomeDir % git push --set-upstream origin clavel2023_update_info
ERROR: Permission to SPAAM-community/AncientMetagenomeDir.git denied to theHatIsBack.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

and I couldn't seem to add it through the github website either?

Ach! Will give you permissions in a bit - had to overhaul the permissions for the whole organisations recently...

You should have an invite for the organisation!

ok that should be the PR submitted now

Fixed with PR #1111


Panic from snd_pcm_hw_params_set_format

I get this error:
thread '<unnamed>' panicked at /home/.../.cargo/registry/src/index.crates.io-6f17d22bba15001f/kira-0.8.7/src/manager/backend/cpal/desktop/stream_manager.rs:69:59:
called `Result::unwrap()` on an `Err` value: BuildStreamError(BackendSpecific { err: BackendSpecificError { description: "ALSA function 'snd_pcm_hw_params_set_format' failed with error 'Invalid argument (22)'" } })
   0: rust_begin_unwind
             at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:652:5
   1: core::panicking::panic_fmt
             at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/result.rs:1679:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/result.rs:1102:23
   4: kira::manager::backend::cpal::desktop::stream_manager::StreamManager::start::{{closure}}
             at /home/.../.cargo/registry/src/index.crates.io-6f17d22bba15001f/kira-0.8.7/src/manager/backend/cpal/desktop/stream_manager.rs:69:4
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

and no sound plays.
Sorry if this version of kira is too old - I'm using this with bevy and I can't update bevy atm so it's hard to update kira, in case this was fixed in a later version.
I'm on arch with pipewire.  I do a lot of audio stuff and this (and rodio, fwiw) are the only things that seem to have audio issues.

I think this is probably a cpal issue because Kira doesn't interface with ALSA directly. Maybe open an issue in the cpal repo?


example project builds with errors

I'm using Xcode 7.3. It seems like the pod's not being recognized.

This should be fixed now


Customizing error pages ?

Story
Is there a way to show our own branding in case of error ?
https://auth.openfoodfacts.org/realms/open-pet-food-facts/account?referrer=ProductOpener&referrer_uri=https%3A%2F%2Fworld.new.openpetfoodfacts.org

There's an error.stl theme file in the base theme, so it should be possible to override it in the off theme.


[WIP] Gateway documentation 2.9-3.0

After running into https://github.com/thingsboard/thingsboard-gateway/issues/657, this looks decent. Although it does not address the issue that in docs/iot-gateway/configuration.md line ~18 where it specifies /etc/thingsboard-gateway/config, but in a few places this still isn't updated:

https://github.com/thingsboard/thingsboard-gateway/blob/9202c8f4e45d769cd969758200337d519de688c1/docker/Dockerfile#L19


question about _likelihood

I am a beginner in image compression. I don’t understand why lower, upper and sign are calculated for this step.

Upper and lower are the estimated CDF bounds for the current input, from there the densities can be derived.
You can find more information in Ballé et al. papers: End-to-end Optimized Image Compression, Variational image compression with a scale hyperprior
The sign is used for floating point optimization, this had been directly ported from the tensorflow/compression project, you can find some explanations in the comments.

Upper and lower are the estimated CDF bounds for the current input, from there the densities can be derived.
You can find more information in Ballé et al. papers: End-to-end Optimized Image Compression, Variational image compression with a scale hyperprior
The sign is used for floating point optimization, this had been directly ported from the tensorflow/compression project, you can find some explanations in the comments.

Thanks for your reply!

Thanks for your reply!

    @torch.jit.unused
    def _likelihood(self, inputs: Tensor) -> Tensor:
        half = float(0.5)
        v0 = inputs - half
        v1 = inputs + half
        lower = self._logits_cumulative(v0, stop_gradient=False)
        upper = self._logits_cumulative(v1, stop_gradient=False)
        sign = -torch.sign(lower + upper)
        sign = sign.detach()
        likelihood = torch.abs(
            torch.sigmoid(sign * upper) - torch.sigmoid(sign * lower)
        )
        return likelihood

Why not
    @torch.jit.unused
    def _likelihood(self, inputs: Tensor) -> Tensor:
        half = float(0.5)
        v0 = inputs - half
        v1 = inputs + half
        lower = self._logits_cumulative(v0, stop_gradient=False)
        upper = self._logits_cumulative(v1, stop_gradient=False)
        likelihood = torch.sigmoid(upper) - torch.sigmoid(lower)
        return likelihood

I debug found
> ll = torch.sigmoid(upper) - torch.sigmoid(lower)
> likelihood.isclose(ll).all()
True
> (likelihood == ll).all()
False

Why?!


Mindmap approach to coding?

I love your implementation.  I had this vision and your implementation is the closest to it.
Just an idea...
What if you can visualize your code as a mind map? Not just markdown.
Mind maps let you group ideas and move them around. I see code as group ideas (classes) that you can move around.
All the details will still be in the text view for implementation of a function. But common blocks can be identified in the code. There will be always a function name, there is a begin-end markers, there are classes with begin-end, and so on.

Hi, this could be possible. One just needs to implement a different parser to produce the underlying data, but the code visualizing the mindmap can be reused. It would be interesting to base it on Language Server Protocol, so that you can have one parser but support many different programming languages.
Another research that I find cool that you might be interested in was the Code Bubbles.
If I had another lifetime I would be curios to explore this more :)


Alexis docs hackathon #1 Aug 23

Working on ClimaLand docs 1 day a month - Alexis August 23
https://clima.github.io/ClimaLand.jl/previews/PR736/

[x] index: explain we have docs "for users" and "for developers"
[x] index: explain that we use SI units
[x] getting started, for users: treeview of namespaces, explain simple stuff like parameters (refer to ClimaParams), parameterisation (make a table, show examples, show ParamViz), state and cache variables (refer to diagnostics table), refer to ClimaAnalysis
[x] getting started, for developers: explain modularity and multiple dispatch (refer to docs) explain how ClimaLand uses multiple dispatch with examples (FT, AbstractModel)
[x] AbstractModel (not sure for users or dev): explain basics: models are usually ODEs with at least one state variable, ODEs require initial conditions, a domain, and a timestepper, refer to what we use, and other details of our practices.

TO DO:

[ ] Clean everything, add links, separate into pages, ... then add reviewers

https://sbozzolo.github.io/kuibit/features.html


Listen for pan/zoom events

Is this possible? I'm displaying a tooltip for elements and because it doesn't scale/move with the svg, I'd like to dismiss it when those events are fired. At the moment I'm using a mousewheel jquery plugin on the svg element, but I'd like a fix for panning as well. Thanks

Just noticed the onPan option


Make sure haproxy checks again if DNS entry was not there the first time

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

/assign

/assign

/assign