Do not serve "TRAEFIK DEFAULT CERT" when a certificate exists

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
Even when a valid certificate is available, traefik serves the "TRAEFIK DEFAULT CERT". Setting sniStrict: true does not solve the problem (and in some cases is undesirable).
There is an old issue related to this, but it was closed by a bot without resolution.
Please consider adding an optional switch so we can disable this behaviour? It's not useful in production. It could error/warn when no certificate is usable for a route.

Hello @lonix1,
Thanks for reporting this!
It looks like the default certificate configuration on the TLS store would help in your situation, please take a look at this documentation.
It seems that your issue is related to a configuration issue and the GitHub issue tracker is dedicated to bug and feature requests.
For help on your configuration, please join our Community Forum and reach out to us on the Traefik v2 section.
We will close this issue accordingly but feel free to re-open it if you think that we missed something.

Hello @lonix1,
Sorry, I overlooked that you already knew of the default certificate configuration.
Regarding the strictSNI option, what you are experiencing seems almost impossible.
The following code is the part involving this option:
https://github.com/traefik/traefik/blob/878e7de56a875ccb09d05d61d4ffc3e2e22eda87/pkg/tls/tlsmanager.go#L206-L210
As you can see if no certificate matches, no one is returned and the connection will be closed, so there are no chances to serve the default certificate.
It makes me think that you are still facing a configuration issue.

We suspect that the TLSOption which was chosen to serve the connection doesn't have the strictSNI option to true.
Can you please make sure that each of the TLSOptions configures the strictSNI option to true? (Including the default one)

Hello @lonix1,
Can you try to configure as well the default TLS option?
The default TLSOption configured on a router is only used when a router has a host rule that can be leveraged to match with the router TLSOption configuration when doing the TLS handshake.
For instance, a router with a HostRegexp or a PathPrefix rule only cannot satisfy its TLSOption configuration and would always fall back with the default one.
In those cases, during route build time, you should be able to see a warning log like below:
No domain found in rule %v, the TLS options applied for this router will depend on the SNI of each request


Make writing relation count properties optional

https://github.com/barryvdh/laravel-ide-helper/pull/783 introduced writing of DocBlock comments for $relation_count properties, populated by withCount/loadCount. This makes writing those comments optional and configurable (still on by default).

I am interested in this configuration too.
Same as write_model_magic_where, i think this should be optional.

@barryvdh Any chance to get this merged?

Is this repo still maintained?

I think this would be useful addition 👍
Even better if you could add a test!

Am I right in assuming that the missing test is the only thing, that prevents this PR from being merged?

@PaulRotter I'm not the ultimate decision make here, but it's my believe that changes/added features should be accompanied with tests showing they work as intended.
I therefore made sure that, especially the ModelsCommand, can be tested and added an initial batch of tests so others can follow more easily; you should find enough examples to make a test and it shouldn't take you longer than the the actual implementation.
Personally I don't see anything (else) in the way of merging this.


implement sqlx compatibility in uuid type

This pull request is an attempt to make something like this work:
#[derive(leptos_struct_table::TableRow, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "ssr", derive(sqlx::FromRow))]
#[table(sortable, classes_provider = ClassesPreset)]
pub struct User {
    pub id: leptos_struct_table::uuid::Uuid,
    pub name: String,
}

note that the Uuid here is the newtype from this library to support the leptos_struct_table::TableRow derive
This adds feature flags and implementations for the required sqlx stuff for the above to work on postgres
hopefully also mysql and sqlite (I have not tested these ones myself yet tho) from what i can tell these are the database providers with an imementation for these in the sqlx library.
While the above seems to work i have no idea if this pr is a good idea (does feel like it could be a slippery slope to begin these kinds of extentions to the newtypes this library has to provide for convenient rendering)
An alternative instead of placing this responsibility within this library would be to map from an sqlx struct (with FromRow implemented) to a leptos_struct_table struct (with appropriate newtypes instead of the uuid::Uuid type) feel free to close this pr if this is more of the direction you want this library to go. (if that is the case i would be happy to try to provide a pr with documentation (or extend the sqlx example with information on how to map a uuid type that works with sqlx::FromRow to a type that works with the leptos_struct_table::TableRow derive)

Thanks for putting so much thought into this. I have indeed mixed feelings about this. On the one hand this might be sth that is useful to many people. On the other hand I think this is a bit out of scope for this crate.
So yes, an example of how to do this would be highly appreciated.


Remove unused code

I already got a follow up PR ready that will replace underscore with lodash. Waiting for #143 to be merged before I submit it.


IndexError: Invalid key: 0 is out of bounds for size 0

Describe the bug
IndexError: Invalid key: 0 is out of bounds for size 0. This happens in the latest version installed from source.
Ragas version: git+https://github.com/explodinggradients/ragas.git@5f105c08b7579188aea1113334dae6b6a8a15660#egg=ragas
Python version: 3.9
Code to Reproduce
from datasets import load_dataset
import os
from ragas.metrics import (
    context_precision,
    answer_relevancy,
    faithfulness,
    context_recall,
)
from ragas.metrics.critique import harmfulness
from langchain_community.chat_models import AzureChatOpenAI
from langchain_community.embeddings import AzureOpenAIEmbeddings
from ragas.llms import LangchainLLMWrapper
from ragas import evaluate

# list of metrics we're going to use
metrics = [
    faithfulness,
    answer_relevancy,
    context_recall,
    context_precision,
    harmfulness,
]
fiqa_eval = load_dataset("explodinggradients/fiqa", "ragas_eval")
print(fiqa_eval)

# Set the OpenAI API key
os.environ["AZURE_OPENAI_API_KEY"] = "******"
os.environ["OPENAI_API_KEY"] = "******"
# os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] ="******"

azure_model = AzureChatOpenAI(
    deployment_name="******",
    model="gpt-35-turbo",
    openai_api_base="******",
    openai_api_type="azure",
)
# wrapper around azure_model
ragas_azure_model = LangchainLLMWrapper(azure_model)
answer_relevancy.llm = ragas_azure_model

# init and change the embeddings
# only for answer_relevancy
azure_embeddings = AzureOpenAIEmbeddings(
    deployment_name="******",
    model="gpt-35-turbo",
    openai_api_base="******",
    openai_api_type="azure",
)

# embeddings can be used as it is
answer_relevancy.embeddings = azure_embeddings

for m in metrics:
    m.__setattr__("llm", ragas_azure_model)

fiqa_eval = load_dataset("explodinggradients/fiqa", "ragas_eval")
result = evaluate(
    fiqa_eval["baseline"],
    metrics=metrics,
)

print(result)

Error trace
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/chat_models/__init__.py:31: LangChainDeprecationWarning: Importing chat models from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.chat_models import ChatOpenAI`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/chat_models/__init__.py:31: LangChainDeprecationWarning: Importing chat models from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.chat_models import AzureChatOpenAI`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/chat_models/__init__.py:31: LangChainDeprecationWarning: Importing chat models from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.chat_models import ChatVertexAI`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/llms/__init__.py:548: LangChainDeprecationWarning: Importing LLMs from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.llms import AzureOpenAI`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/llms/__init__.py:548: LangChainDeprecationWarning: Importing LLMs from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.llms import OpenAI`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/llms/__init__.py:548: LangChainDeprecationWarning: Importing LLMs from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.llms import VertexAI`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/embeddings/__init__.py:29: LangChainDeprecationWarning: Importing embeddings from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.embeddings import AzureOpenAIEmbeddings`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/embeddings/__init__.py:29: LangChainDeprecationWarning: Importing embeddings from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.embeddings import FastEmbedEmbeddings`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain/embeddings/__init__.py:29: LangChainDeprecationWarning: Importing embeddings from langchain is deprecated. Importing from langchain will no longer be supported as of langchain==0.2.0. Please import from langchain-community instead:

`from langchain_community.embeddings import OpenAIEmbeddings`.

To install langchain-community run `pip install -U langchain-community`.
  warnings.warn(
DatasetDict({
    baseline: Dataset({
        features: ['question', 'ground_truths', 'answer', 'contexts'],
        num_rows: 30
    })
})
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The class `langchain_community.chat_models.azure_openai.AzureChatOpenAI` was deprecated in langchain-community 0.0.10 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import AzureChatOpenAI`.
  warn_deprecated(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_community/chat_models/azure_openai.py:174: UserWarning: As of openai>=1.0.0, if `deployment_name` (or alias `azure_deployment`) is specified then `openai_api_base` (or alias `base_url`) should not be. Instead use `deployment_name` (or alias `azure_deployment`) and `azure_endpoint`.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_community/chat_models/azure_openai.py:182: UserWarning: As of openai>=1.0.0, if `openai_api_base` (or alias `base_url`) is specified it is expected to be of the form https://example-resource.azure.openai.com/openai/deployments/example-deployment. Updating https://mvpgomi.openai.azure.com/openai to https://mvpgomi.openai.azure.com/openai.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The class `langchain_community.embeddings.azure_openai.AzureOpenAIEmbeddings` was deprecated in langchain-community 0.1.0 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import AzureOpenAIEmbeddings`.
  warn_deprecated(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_community/embeddings/openai.py:268: UserWarning: WARNING! deployment_name is not default parameter.
                    deployment_name was transferred to model_kwargs.
                    Please confirm that deployment_name is what you intended.
  warnings.warn(
/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The class `langchain_community.chat_models.openai.ChatOpenAI` was deprecated in langchain-community 0.0.10 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import ChatOpenAI`.
  warn_deprecated(
Evaluating:   5%|█▍                             | 7/150 [00:04<01:24,  1.69it/s]
Traceback (most recent call last):
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/evaluation.py", line 176, in evaluate
    raise e
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/evaluation.py", line 159, in evaluate
    results = executor.results()
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/executor.py", line 118, in results
    raise e
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/executor.py", line 114, in results
    r = future.result()
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/concurrent/futures/_base.py", line 439, in result
    return self.__get_result()
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/concurrent/futures/_base.py", line 391, in __get_result
    raise self._exception
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/executor.py", line 36, in wrapped_callable
    return counter, callable(*args, **kwargs)
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/metrics/base.py", line 75, in score
    raise e
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/metrics/base.py", line 71, in score
    score = self._score(row=row, callbacks=group_cm)
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/metrics/_answer_relevance.py", line 136, in _score
    return self._calculate_score(response, row)
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/metrics/_answer_relevance.py", line 114, in _calculate_score
    cosine_sim = self.calculate_similarity(question, gen_questions)
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/metrics/_answer_relevance.py", line 88, in calculate_similarity
    question_vec = np.asarray(self.embeddings.embed_query(question)).reshape(1, -1)
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_community/embeddings/openai.py", line 697, in embed_query
    return self.embed_documents([text])[0]
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_community/embeddings/openai.py", line 668, in embed_documents
    return self._get_len_safe_embeddings(texts, engine=engine)
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_community/embeddings/openai.py", line 494, in _get_len_safe_embeddings
    response = embed_with_retry(
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/langchain_community/embeddings/openai.py", line 116, in embed_with_retry
    return embeddings.client.create(**kwargs)
TypeError: create() got an unexpected keyword argument 'deployment_name'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/abhijithneilabraham/Desktop/ragas_test.py", line 62, in <module>
    result = evaluate(
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/evaluation.py", line 178, in evaluate
    result = Result(
  File "<string>", line 6, in __init__
  File "/Users/abhijithneilabraham/Documents/GitHub/ragas/src/ragas/evaluation.py", line 207, in __post_init__
    for cn in self.scores[0].keys():
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/datasets/arrow_dataset.py", line 2803, in __getitem__
    return self._getitem(key)
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/datasets/arrow_dataset.py", line 2787, in _getitem
    pa_subtable = query_table(self._data, key, indices=self._indices if self._indices is not None else None)
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/datasets/formatting/formatting.py", line 583, in query_table
    _check_valid_index_key(key, size)
  File "/Users/abhijithneilabraham/mambaforge/envs/py/lib/python3.9/site-packages/datasets/formatting/formatting.py", line 526, in _check_valid_index_key
    raise IndexError(f"Invalid key: {key} is out of bounds for size {size}")
IndexError: Invalid key: 0 is out of bounds for size 0

I encountered the same issue as you;have you managed to resolve it?

@herman159 Yes, the issue is resolved with the latest release of ragas and refer the docs. I also removed answer relevancy from the metrics before the release and it worked, maybe the new release has more fixes. Check out latest docs here: https://docs.ragas.io/en/latest/


log4j2-core-2.17.0 is marked as potential vulnerable

Hi,
after applying the latest fixes the log4j-core-2.17.0.jar is marked as potentially vulnerable:
[?] Found CVE-2021-44228 (log4j 2.x) vulnerability in /Users/xgadkem/Downloads/log4j/log4j-core-2.17.0.jar, log4j N/A - potentially vulnerable.
I think the bug is related in class Detector:220 and Detector:176.
When reading the pom.properties of 2.17 there is no version given back. So in line 220 the JAR is marked as mitigrated (because the JndiLookup class existes).
I've made my test with the attatched JAR.
log4j-core-2.17.0.jar.zip

@ChKemper Thank you for your patch PR again. :D


Provide a way to get URL of the upload

I think it would be amazing if there was a way to get the URL of the uploaded artifact(s), so it can be processed further down the line.
For example I push a Discord message on release of a new version. So having that URL means I can add that to the message.

Check it on https://github.com/ijo42/CurseForge2Discord

I think it would be amazing if there was a way to get the URL of the uploaded artifact(s), so it can be processed further down the line.
For example I push a Discord message on release of a new version. So having that URL means I can add that to the message.

You can rebuild the url with the information of the task curseforge
example

// Project curseforge identifier
def PROJECT_CURSEFORGE_IDENTIFIER = 12345

// Project curseforge slug
def PROJECT_CURSEFORGE_SLUG = "my_slug_url"

curseforge {
  apiKey = 'XXXX'
  project {
    id = PROJECT_CURSEFORGE_IDENTIFIER
  }
}

tasks.getByName("curseforge").doLast {
  def fileID = (tasks.getByName("curseforge${PROJECT_CURSEFORGE_IDENTIFIER}").property("mainArtifact"))['fileID']
  def fileURL = "https://www.curseforge.com/minecraft/mc-mods/${PROJECT_CURSEFORGE_SLUG}/files/${fileID}"

  // debug (it's for exampe..)
 println fileURL

  // create/write file in ./gradle/lastRelease.json
  def lastRelease = file("gradle/lastRelease.json");
  if (!lastRelease.exists()) lastRelease.createNewFile()
  lastRelease.write("""|{
                       |  "fileId": "${fileID}",
                       |  "slug": "${fileURL}"
                       |}
                       |""".stripMargin())
}

it may be necessary to modify the code to make it work on your project...


Restic Backup Report

Don't know if there is an issue or topic of this, but i could not find it.
Is there a solution implemented for Restic to send a Backup Report to an email in case of errors, information or succes?
And maybe some kind of daily report for backups etc.

Certainly some script calling restic or using the REST api to query for info for that mail is possible.
But having restic print out a configurable human readable report (that could be piped to an email sending tool of your choice) would be nice.
I am old school myself and would love an email after my cron .. eh systemd-timer is done with the backup.

log to file and send it

Usually whatever tool/system you use to run/automate/schedule restic will make sure to send the output from restic to whatever reporting system you have, e.g. a mail when you run it using cron.
So I don't really see why this should be in restic - restic is a backup program, and it already outputs a report of the backup run. Use that output and send it however you want. If you want more specific reporting you need to script or wrap that anyway, and can then use the existing commands in restic to know what snapshots there are or similar.
Daily reports isn't really applicable since there's no restic server - restic runs when it backs up or similar, so it doesn't know about other backups during the day. To aggregate that, you'd need to script something that lists the snapshots made during the day. I think the possibilities are already in restic to do what you need.
Am I missing something here, or can we close this issue?

IMHO you can close but I didn't start it in the first place.

Closing this issue as there should be already enough output provided by restic to implement this feature request via scripting.


Lack of formatting for java & python within Gatsby

Information

Language: JS, Python, Java
Plugins: none
Prism: 1.20.0

Description
I am trying to onboard PrismJS for Gatsby. I do not want to use plugin called gatsby-remark-prismjs as I am trying to make some custom work. I have component which formats JS, but it does not of Java & Python.
Do I need to load anything more apart of prismjs from npm ?
Code snippet
import React from "react";
import Prism from "prismjs";

export default class PrismCode extends React.Component {
  constructor(props) {
    super(props);
    this.ref = React.createRef();
  }
  componentDidMount() {
    this.highlight();
  }
  componentDidUpdate() {
    this.highlight();
  }
  highlight = () => {
    if (this.ref && this.ref.current) {
      Prism.highlightElement(this.ref.current);
    }
  };
  render() {
    const { code, plugins, language } = this.props;
    return (

          <code ref={this.ref} className={`language-${language}`}>
            {code.trim()}

    );
  }
}

The code being highlighted incorrectly.
num_sqrt = num ** 0.5
print('The square root of %0.3f is %0.3f'%(num ,num_sqrt))

Prism is modular by design. The Prism instance you get by importing from "prismjs" only includes Markup, CSS, JS, and C-like (a language prototype used to create other languages, e.g. JS).
There are multiple ways to load more languages depending on your environment. If the rendering is purely server-side, you can use the loadLanguages to dynamically load languages as needed.
If you're rendering in the browser, it will be harder. If you know the languages you want to support, our babel plugin will be your best bet. If you wanted to dynamically load languages in the browser, choose a CDN and go with our Autoloader plugin. You can use the import from "prismjs/plugins/autoloader/prism-autoloader" but then you have to set the CDN manually.
(Autoloader page is broken rn. I'll fix it.)

I think, I answered the question and since there hasn't been a response, I'll assume that the issue was solved.
Feel free to reopen if the issue isn't solved yet.


select2 not honouring hash change

I've noticed on a site a have this problem. I have a select that has as its values hashs of IDs on the page like:
<select>
    <option value="#section-1">Section 1</option>
    <option value="#section-2">Section 2</option>
    <option value="#section-3">Section 3</option>
</select>

I then apply a jQuery on change event that updates window.location.href. On a standard select it works fine. When I apply select2 to the select, when the drop down changes it updates in the address but but doesn't scroll. Any ideas why? Is this a bug?
I'm using 4.0.0.

It sounds like there is something else at play here, Select2 doesn't do anything special with the value of an <option>.

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


Possible bug in discarding overflow

I thinks in line 53 there should be ids[:, overflow:] not ids[:, -overflow:]
https://github.com/turboderp/exllamav2/blob/96bccd565907454c831fd55d7d83a765d16c1b4c/exllamav2/generator/base.py#L52-L53
Let's assume that
ids = np.arange(123)
num_tokens = 8
max_seq_len = 32

then
overflow = ids.shape[-1] + num_tokens - max_seq_len # overflow  is 99
ids[-overflow:] # array([ 24,  25,  26,  ... , 120, 121, 122]) <- len 99
# But what we want is
ids[overflow:] # array([ 99, 100, 101,  ... , 120, 121, 122]) <- len 24

I'm writing it at 2 am so I could be wrong somewhere.

Nope, you are right, this was a bug. It is fixed now, thanks.


Lifecycle events on intent requests?

It'd be great if there were, at minimum, before and after events fired for intent requests.
A couple basic use cases might be using a remote session store to persist some data between sessions, to support tracking of response times on requests, etc.

Sounds like a good idea to me. Anyone willing to make PR for this?
Sorry for not replying sooner


Modifier key for snapping nodes on straight lines

Kinda hard to describe, so here is a picture

So when dragging the orange node and pressing an modifier key, it should snap anywhere on the red dotted lines.
This would be really useful, when splitting up ways to add a covered=yes section and similar tasks.

I like this! I think we should just have the node snap automatically unless a modifier key is down, like how other snapping works in iD.

It should snap without modifier key preferable to the place where the red dotted lines cross.

I kind of feel like this would be more annoying than useful 🤔
I almost never want roads to snap this way when I'm adjusting nodes.   I definitely wouldn't want it to be the automatic behavior.

I personally don't like this idea, since I would never use it.  If other people need it, a shift or ctrl / cmnd modifier should be required for the operation to behave in this way.

I think I'd use it sometimes, but I'm mostly worried about making it a default behavior.   I'm worried it might do the wrong thing anytime a road is not straight.  Like squashing roundabouts or something:

@famo

This would be really useful, when splitting up ways to add a covered=yes section and similar tasks.

Do you mean ways from building outlines (e.g. amenity=fuel roofs) and highways?
If so, actually for these cases I still wonder if there should be used shared nodes, because of the different layers ...

To clarify I also don't need this as the default behavior, it should only be there on demand (e.g. by pressing an modifier key).

Do you mean ways from building outlines (e.g. amenity=fuel roofs) and highways?
If so, actually for these cases I still wonder if there should be used shared nodes, because of the different layers ...

I would agree on the layers, but even then you need to align covered with the non-covered way - which isn't possible ATM without workarounds.

Yeah I don't really agree anymore with my initial thought about making this default.

I'd definitely like this; I've wished I had it a number of times. In particular when moving nodes along an existing straight way, it'd be nice for adjusting the position of the node without bending the way. I might take a crack at this in a few weeks, but in the meantime, I'll think through some details aloud:

I agree it should be enabled with a modifier key, and coming from Photoshop et al, I'd expect it to be shift
Trying to define the behaviour a little more formally, when dragging the node N:

Let A be the set of nodes which are adjacent to N in an existing way
Let L be the set of all possible lines drawn between nodes A
Let I be the set of intersections of lines L
If the nearest intersection of I is within snap distance (~10px?) of N, snap to it
Else if the nearest line of L is within snap distance of N, snap to the nearest point on that line
Else do not snap

It's starting to sound like it could potentially have a pretty bad algorithmic complexity, but I know optimizations for these things exist, probably even built into d3.
This also differs from the original proposal a bit, preferring the red dot here and adding more lines to which it could potentially snap, but I think that would make it a bit more flexible.


Add delete functionality & make  _create and _update private

This commit integrates the delete functionality.
Test:
Change the status of one of the config.yml file tests from present to absent. The console should show such test was deleted and the test should disappear from the Statuscake website.

Changes look good. Can you update this PR with the latest fromdevelop after merging #10?

I merged #10. Do you mean main?

Yes!


[5.5] load missing closure issue fixed

Fixes #22134

Did someone forget the tests? ;)

Yeah "someone" missed them. I wanted to include them but searched a lot and couldn't find tests for load or loadMissing.

There never was any tests in the original PR https://github.com/laravel/framework/pull/20630 either. That's what makes this so fun, you get to be the first to write them! To boldly write what no one has written before!

Yeah I know. I thought it is something better for a separate PR?

Is there really a need to create these two variables?

Please resubmit with tests.


Application not loading

It stopped working a few days ago.
It is stuck at Loading Music Library

It happens on both linux and microsoft.
I tried re installing the latest release but didnt help

Duplicate of #3660

my bad


classCastCache causes serialization to fail in model event

Laravel Version
10.13.2
PHP Version
8.1.17
Database Driver & Version
MySQL 8.0.30 for Win64 on x86_64 (MySQL Community Server - GPL)
Description
A model with casts that has events registered is not able to have a non-serializable class (UploadedFile) assigned to a casted property. I believe this is due to the fact that classCastCache passes the non-serializable class even when it's already casted.
App\Models\Convention {#1552 ▼ // vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasEvents.php:189
  #classCastCache: array:1 [▶
    "thumbnail_url" => Illuminate\Http\UploadedFile {#1533 ▶
      -test: false
      -originalName: "Gojo.jpg"
      -mimeType: "application/octet-stream"
      -error: 0
      #hashName: "pM3oeHUTb770og7YuiNXeiM6ZTgGGCDMOaHRKtxG"
      path: "C:\Users\Kyzegs\AppData\Local\Temp"
      filename: "php4516.tmp"
      basename: "php4516.tmp"
      pathname: "C:\Users\Kyzegs\AppData\Local\Temp\php4516.tmp"
      extension: "tmp"
      realPath: "C:\Users\Kyzegs\AppData\Local\Temp\php4516.tmp"
      aTime: 2023-08-27 01:02:02
      mTime: 2023-08-27 01:02:02
      cTime: 2023-08-27 01:02:02
      inode:<PHONE_NUMBER>6247486
      size: 1002007
      perms: 0100666
      owner: 0
      group: 0
      type: "file"
      writable: true
      readable: true
      executable: false
      file: true
      dir: false
      link: false
      linkTarget: "C:\Users\Kyzegs\AppData\Local\Temp\php4516.tmp"
    }
  ]
}

Steps To Reproduce
To reproduce the error you'll need the following cast:
<?php

namespace App\Casts;

use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;

class Image implements CastsAttributes
{
    /**
     * Create a new cast class instance.
     */
    public function __construct(
        private readonly ?string $path = null,
    ) {
    }

    /**
     * Cast the given value.
     *
     * @param  array<string, mixed>  $attributes
     */
    public function get(Model $model, string $key, mixed $value, array $attributes): mixed
    {
        return $value && Storage::exists($value) ? Storage::url($value) : $value;
    }

    /**
     * Prepare the given value for storage.
     *
     * @param  array<string, mixed>  $attributes
     */
    public function set(Model $model, string $key, mixed $value, array $attributes): mixed
    {
        return $value instanceof UploadedFile ? $value->storeAs($this->path ?? $key, $value->hashName()) : $value;
    }
}

Ensure the cast is set on your model that has events registered:
class Dummy extends Model
{
    /**
     * The attributes that should be cast.
     *
     * @var array<string, string>
     */
    protected $casts = [
        'thumbnail_url' => Image::class.':thumbnails',
    ];
}

Then when trying to create an entry that uses it'll result in the error:
Model::create([
    'thumbnail_url' => $request->file('thumbnail_url'),
]);

// Serialization of 'Illuminate\Http\UploadedFile' is not allowed

Keep in mind that the entry is actually stored to the database successfully.

The issue you're facing appears to be related to the serialization of an Illuminate\Http\UploadedFile instance when it is assigned to a casted property in a model with events registered. Laravel tries to serialize all attributes when firing events, but Illuminate\Http\UploadedFile is not serializable by default.
To resolve this issue, you can modify your code to handle the serialization of the Illuminate\Http\UploadedFile object in a way that Laravel can understand. One approach is to serialize only the necessary information from the UploadedFile object and store it in the database.
Here's how you can modify your Image cast to store only the necessary information:
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;

class Image implements CastsAttributes
{
    public function __construct(private ?string $path = null)
    {
    }

    public function get(Model $model, string $key, $value, array $attributes)
    {
        // Deserialize the value if it's not already an array
        if (!is_array($value)) {
            return $value;
        }

        // Reconstruct the UploadedFile instance
        if (isset($value['originalName'], $value['hashName'])) {
            return new UploadedFile(
                $value['pathname'],
                $value['originalName'],
                $value['mimeType'],
                $value['error'],
                false
            );
        }

        return null;
    }

    public function set(Model $model, string $key, $value, array $attributes)
    {
        if ($value instanceof UploadedFile) {
            // Store only the necessary information for later reconstruction
            return [
                'originalName' => $value->getClientOriginalName(),
                'hashName' => $value->hashName(),
                'pathname' => $value->getRealPath(),
                'mimeType' => $value->getMimeType(),
                'error' => $value->getError(),
            ];
        }

        return $value;
    }
}

With this modification, you store the minimal information required to reconstruct the UploadedFile instance when retrieving it from the database. This should allow you to work with casted properties without encountering serialization issues.
Make sure to update your migrations to match the changes in your casting. After making these changes, you should be able to create entries without encountering the serialization error.

Thank you @keyurmodipro

The issue you're facing appears to be related to the serialization of an Illuminate\Http\UploadedFile instance when it is assigned to a casted property in a model with events registered. Laravel tries to serialize all attributes when firing events, but Illuminate\Http\UploadedFile is not serializable by default.
To resolve this issue, you can modify your code to handle the serialization of the Illuminate\Http\UploadedFile object in a way that Laravel can understand. One approach is to serialize only the necessary information from the UploadedFile object and store it in the database.
Here's how you can modify your Image cast to store only the necessary information:

use Illuminate\Contracts\Database\Eloquent\CastsAttributes;

use Illuminate\Database\Eloquent\Model;

use Illuminate\Http\UploadedFile;

use Illuminate\Support\Facades\Storage;

class Image implements CastsAttributes

{

    public function __construct(private ?string $path = null)

    {

    }

    public function get(Model $model, string $key, $value, array $attributes)

    {

        // Deserialize the value if it's not already an array

        if (!is_array($value)) {

            return $value;

        }

        // Reconstruct the UploadedFile instance

        if (isset($value['originalName'], $value['hashName'])) {

            return new UploadedFile(

                $value['pathname'],

                $value['originalName'],

                $value['mimeType'],

                $value['error'],

                false

            );

        }

        return null;

    }

    public function set(Model $model, string $key, $value, array $attributes)

    {

        if ($value instanceof UploadedFile) {

            // Store only the necessary information for later reconstruction

            return [

                'originalName' => $value->getClientOriginalName(),

                'hashName' => $value->hashName(),

                'pathname' => $value->getRealPath(),

                'mimeType' => $value->getMimeType(),

                'error' => $value->getError(),

            ];

        }

        return $value;

    }

}

With this modification, you store the minimal information required to reconstruct the UploadedFile instance when retrieving it from the database. This should allow you to work with casted properties without encountering serialization issues.
Make sure to update your migrations to match the changes in your casting. After making these changes, you should be able to create entries without encountering the serialization error.

I've tried that but that doesn't work. The cast works just fine, as I mentioned. It even stores it in the database as a path. It's the cache of the casts that causes the event to fail.

Hey there, thanks for reporting this issue.
We'll need more info and/or code to debug this further. Can you please create a repository with the command below, commit the code that reproduces the issue as one separate commit on the main/master branch and share the repository here?
Please make sure that you have the latest version of the Laravel installer in order to run this command. Please also make sure you have both Git & the GitHub CLI tool properly set up.
laravel new bug-report --github="--public"

Do not amend and create a separate commit with your custom changes. After you've posted the repository, we'll try to reproduce the issue.
Thanks!

I've found out that the issue is related to a package. They serialize the pre-casted values.


"could not create control compt"

I'm on Win-10 and seems to have built Unbound and the Pytho3 module OK.
Test outputs from:

libunbound/python/examples/async-lookup.py: Resolve error: could not fork

libunbound/python/examples/ns-lookup.py: Result:
raw data: 05 70 69 70 69 74 03 63 69 73 05 76 75 74 62 72 02 63 7A 00;05 72 68 69 6E 6F 03 63 69 73 05 76 75 74 62 72 02 63 7A 00
host: pipit.cis.vutbr.cz.
host: rhino.cis.vutbr.cz.

libunbound/python/examples/dns-lookup.py: Result: ['<IP_ADDRESS>']

libunbound/python/examples/example8-1.py: Result:
raw data: 00 14 02 6D 78 03 6E 69 63 02 63 7A 00;00 0A 04 6D 61 69 6C 03 6E 69 63 02 63 7A 00
priority:10 address:mail.nic.cz.
priority:20 address:mx.nic.cz.
Result:
raw data: D9 1F CD 32
address:<IP_ADDRESS>
Result:
raw data: 01 64 02 6E 73 03 6E 69 63 02 63 7A 00;01 61 02 6E 73 03 6E 69 63 02 63 7A 00;01 62 02 6E 73 03 6E 69 63 02 63 7A 00
host: a.ns.nic.cz.
host: b.ns.nic.cz.
host: d.ns.nic.cz.

Seems pretty okay to me.  But using an Python3 adaption of ubmodule-tst.py, shows these errors:
bin/unbound.exe -ddvv -c F:/MinGW32/src/inet/DNS/Unbound/run/example.conf
[1696943035] unbound.exe[12256:0] notice: Start of Unbound 1.18.1.
[1696943035] unbound.exe[12256:0] debug: chdir to F:/MinGW32/src/inet/DNS/Unbound/run
[1696943035] unbound.exe[12256:0] debug: switching log to stderr
[1696943035] unbound.exe[12256:0] debug: module config: "python validator iterator"
[1696943035] unbound.exe[12256:0] notice: init module 0: python
[1696943035] unbound.exe[12256:0] info: F:/MinGW32/src/inet/DNS/Unbound/run/ubmodule-tst.py: script loaded.
[1696943035] unbound.exe[12256:0] info: F:/MinGW32/src/inet/DNS/Unbound/run/ubmodule-tst.py: init called, module id is 0 port: 53 script: <u
nboundmodule.config_strlist; proxy of <Swig Object of type 'config_strlist *' at 0x000001BA27916040> >
[1696943035] unbound.exe[12256:0] notice: init module 1: validator
[1696943035] unbound.exe[12256:0] notice: init module 2: iterator
[1696943035] unbound.exe[12256:0] debug: target fetch policy for level 0 is 3
[1696943035] unbound.exe[12256:0] debug: target fetch policy for level 1 is 2
[1696943035] unbound.exe[12256:0] debug: target fetch policy for level 2 is 1
[1696943035] unbound.exe[12256:0] debug: target fetch policy for level 3 is 0
[1696943035] unbound.exe[12256:0] debug: target fetch policy for level 4 is 0
[1696943035] unbound.exe[12256:0] error: could not create control compt.
[1696943035] unbound.exe[12256:0] fatal error: Could not initialize main thread

I did cook up an run/example.conf based on  doc/example.conf.in containing:
server:
  module-config: "python validator iterator"
  python-script: "F:/MinGW32/src/inet/DNS/Unbound/run/ubmodule-tst.py"

What is this "control compt" an how can I fix this?
System:

Unbound version: 1.18.1
OS: Win-10
unbound -V output:

Version 1.18.1

Configure line: --with-libexpat --with-openssl --with-pyunbound --with-pythonmodule
[warn] signal.c: socketpair: Programmet har ikke kalt WSAStartup, eller WSAStartup mislyktes.
Linked libs: event winsock (it uses WSAWaitForMultipleEvents), OpenSSL 3.2.0-alpha3-dev
Linked modules: dns64 python cachedb respip validator iterator

BSD licensed, see LICENSE in source package for details.
Report bugs to https://github.com/NLnetLabs/unbound/issues

The [warn] signal.c: seems unimportant for this issue (WSAStartup() was not called).

The error is created when unbound is making the internal control communication point, it is from util/tube.c. That depends on some config.h defines, like USE_WINSOCK and HAVE_SOCKETPAIR. It has a separate implementation for windows, when the variable is defined. When it is not defined, it assumes like Linux or so, and then uses socketpair(). If this was weirdly compiled, it would easily create such an error, where a pipe is created but that does not work, and it fails.
Yes I think the warning in the -V output it harmless too, for this issue.
The routine tube_create that is called for it logs more when verbosity is 4 or higher, so with that enabled more debug output is produced about this issue. But it seems to fail in tube.c:tube_setup_bg_listen, assuming it is taking the windows code path, and that detected okay, and then calls ub_winsock_register_wsaevent, but that from util/winsock_event.c only fails if the cap on number of items is reached. Something that should only happen with many items listened to, like interface statements. So I am not sure what is going on.

Seems that my build did not define -DUSE_MINI_EVENT.
Adding that, everything works better: a bin/unbound.exe -ddvv -c F:/MinGW32/src/inet/DNS/Unbound/run/example.conf
and calling dig @<IP_ADDRESS> -t mx google.com  in another window, returns valid info.
And ubmodule-tst.py  prints:
[1697007461] unbound.exe[19308:0] info: pythonmod: operate called, id: 0, event:module_event_moddone
Query:   ['']Type: NS (2)Class: IN (1)
Return MSG rep   :: flags: 8400, QDcount: 1, Security:2, TTL=86400
           qinfo :: qname: [''] . type: NS class: IN
RRSets: 27
0 : [''] . flags: 0000type: NS (2) class: IN (1)
    RRDatas: 14
     0 : TTL= 86400 RR data:
   ...

Seems not be fully Python3 compatible, but pretty cool afterall.
So bottom-line, using libevent 2.2.1 does not work for Windows!!?
I'll try to rebuild with the latest libevent.

Glad that it works! The libevent compile for windows has not been used, so there is no previous data I can tell you about. Could be nice if that works.
For the python3 compatibility, I think this is about the printout after the pythonmod log line, that is a printout from the python module itself. Is that a python3 issue in an example python script, it would be nice to know what part of the example is a problem?

. Is that a python3 issue in an example python script, it would be nice to know what part of the example is a problem?

Some use of ord(x) that works in Python 2.x but not in my Python 3.10. Pretty gibberish to me.
Please try ubmodule-tst.py with your Python 3.x.
But I have other issues with MSVC and the Python-module etc. that I raise here. E.g. this:
   //SWIG will see the ub_ctx as a class
   struct ub_ctx {
   };

Throws this error in MSVC:
libunbound_wrap.c(3633,3): error C2016: C requires that a struct or union have at least one member
  };
  ^

Not sure which C-standard says what about this issue. So would this be OK?
  struct ub_ctx {
    int dummy;
  };

Not sure if msvc can compile the code, but the dummy member variable is no problem. Added it in the commit.

The pythonmod/ubmodule-tst.py file should work better with Python 3.x with the commit referenced. That makes it work with Python-3.10 for me.

Tried with MSVC and it works fine with Python 3.10.
Still other issues that I can create another PR for.


Support standard XDG dirs

Would be great if fasder improved on fasd by supporting XDG dirs, e.g. ~/.local/share/fasder.

I like this idea. I'm not too familiar with XDG dirs myself but I'll do some reading.

I've been thinking about this a little bit more and reading https://specifications.freedesktop.org/basedir-spec/latest/
The $_FASDER_DATA env var already exists to match the convention with fasd.
Current priority:

$_FASDER_DATA if set
$HOME/.fasder default

Proposal A priority:

$_FASDER_DATA if set
$HOME/.fasder if exists for compatibility and ease of migration
$XDG_DATA_HOME/.fasder if $XDG_DATA_HOME is set
$HOME/.local/share/.fasder new default

Proposal B priority:

$_FASDER_DATA if set
$HOME/.fasder if exists for compatibility and ease of migration
$XDG_DATA_HOME/fasder/data if $XDG_DATA_HOME is set
$HOME/.local/share/fasder/data new default

Considerations:

What to name the data file: .fasder, data, or somethingelse
Future differentiation with configuration which could live in .config/fasder/config

Thanks for this. I think proposal B makes sense to me; directories in the XDG hierarchy typically don't contain .; there's no need as they are hidden under that hierarchy anyway. Take a look at what's in your current ~/.local/share for an example.


Warning: Text content did not match. Server: "...css..."

Getting large error (printing all of CSS used in

// Replaced with this awful thing


codespell: config, workflow + typos fixed

to ensure absence of typos

ah, ok. Do you want me to drop a commit with the workflow and leave the rest in? or just leave the typos fixed in?

Happy to merge the typo fixes! Thank you!

ok, kept only last commit

We can add a .precommit.yaml file for codespell and run pre-commit-ci here. That would work. But I don't have a strong opinion on this. Documentation should have codespell, this repo, not so much. We can do something like this PR from time to time, no need for strong spell checking.


chore: updated go-database-reconciler to v1.16.1

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

Project coverage is 27.55%. Comparing base (07aa9ff) to head (2f12ca0).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1451   +/-   ##
=======================================
  Coverage   27.55%   27.55%
=======================================
  Files          61       61
  Lines        6294     6294
=======================================
  Hits         1734     1734
  Misses       4432     4432
  Partials      128      128

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


flutter install should imply flutter build just like flutter run does

@hixie, going through the triage exercise and this was on my list. This issue has been outstanding for 3 1/2 years and apparently it's not something that has caused significant customer pain. I'd speculate that the solution is obvious enough (and flutter install is relatively rarely used) that this is not a scenario we need to fix. I've moved this to milestone future for now, but perhaps this should be closed.


Orchard 1.10; Gallery install fails

Due to some issues with Gallery modules I tested with a freshly downloaded 1.10 from Github.
I added gallery feed as follows:
https://orchardgallery.azurewebsites.net/api/FeedService (changed it from the old one)
A) I wanted to download 'Contrib.GoogleAnalytics'. I have seen the successfully installed msg BUT I do Not see the Module in my list NOR does the Gallery now say 'Installed'! A 2nd install: nothing happens
B) then I tried to install 'Bing.Maps' from the gallery and get msg:
quote
Package installation failed: There was an error installing the requested package.
This can happen if the server does not have write access to the '~/Modules' or '~/Themes' folder of the web site. If the site is running in shared hosted environment, adding write access to these folders sometimes needs to be done manually through the Hoster control panel. Once Themes and Modules have been installed, it is recommended to remove write access to these folders.
end quote
PS: I'm sure the 'write' access is ok!
PSPS: just copying Bing.Maps from a 1.9.2 results in issues described in #6359.
has something changed with the new gallery ?
thanks for your hints, ed

The url is gallery.orchardproject.net/api/FeedService

Why do you have to add a specific gallery feed, the default one in 1.10 should already point to the new gallery correctly.

I changed because the  'default' one gave me the very same results. I certainly will go back again.
BUT as said the issue remains the same. Any help is appreciated, ed

ooops, just realised and I tried 3-times!
I went via module --> gallery, searched with 'analytics' and clicked 'google analytics (author: sebastien) and got 'Theme.Classic' installed (see msg below):
quote
Successfully added 'Orchard.Theme.Classic 1.0' to D:\CMSites\OrgBing_110s\src\Orchard.Web
The theme has been successfully installed. It can be enabled in the "Themes" page accessible from the menu.
end quote
something must be mixed up! Sorry for not looking more carefully before!

Can we close the issue ?

I probably confused you guys. Therefore, I tried this morning again. AND AGAIN I want to download the 'Google Analytics - Version: 1.0' Module via the Gallery.
BUT instead I receive:
quote:
Successfully added 'Orchard.Theme.Classic 1.0' to D:\CMSites\OrgTest_110s\src\Orchard.Web
The theme has been successfully installed. It can be enabled in the "Themes" page accessible from the menu..
end quote
AND that Theme, 'Orchard.Theme.Classic 1.0', is really installed!!! BUT I clearly clicked the 'Analytics' Module.
I wouldn't know what's wrong on my side; I leave it up to you guys whether to close or not and
wait for the official release.
But thanks again for all the effort you guys put into this wonderful project, ed
PS: the Gallery feed is back to: https://gallery.orchardproject.net/api/FeedService

This may actually be an issue with the gallery, not with Orchard.
I can confirm, the same thing is happening to me when I try to install a module directly into Orchard (on local dev).  Downloading downloads the correct nuget package.

Using Fiddler, this is the query that is being sent to the gallery: https://gallery.orchardproject.net/api/FeedService/Packages()?$filter=tolower(Id) eq 'orchard.module.contrib.googleanalytics'&$orderby=Id

I didn't even know that 'gallery' is not orchard related. For now I refrain from 'gallery' and download the Nuget version.
thanks, ed


BUG: error when install k8s on centos7.9  error: resource mapping not found for name: "tigera-operator" namespace: "" from "manifests/tigera-operator.yaml": no matches for kind "PodSecurityPolicy" in version "policy/v1beta1"

Which command or component
sealos run labring/kubernetes:v1.25.0 labring/calico:v3.22.1 --single
The Description of the bug
when install, report  error: resource mapping not found for name: "tigera-operator" namespace: "" from "manifests/tigera-operator.yaml": no matches for kind "PodSecurityPolicy" in version "policy/v1beta1"
How to reproduce（pictures can be attached if necessary）
command:
sealos run labring/kubernetes:v1.25.0 labring/calico:v3.22.1 --single
log:
2022-09-21T08:43:08 info Start to create a new cluster: master [<IP_ADDRESS>], worker []
2022-09-21T08:43:08 info Executing pipeline Check in CreateProcessor.
2022-09-21T08:43:08 info checker:hostname [<IP_ADDRESS>:22]
2022-09-21T08:43:08 info checker:timeSync [<IP_ADDRESS>:22]
2022-09-21T08:43:08 info Executing pipeline PreProcess in CreateProcessor.
60d759ef12b047369834a3f89757a41699a27dc92b785772e6b64d03d8f38d5b
29516dc98b4b2d4fc899c9b27dfd004e75ee73ef9071ad6835f9ff97f156f58c
default-1wsi4pnp
default-n4wu3sse
2022-09-21T08:43:08 info Executing pipeline RunConfig in CreateProcessor.
2022-09-21T08:43:08 info Executing pipeline MountRootfs in CreateProcessor.
which: no docker in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
INFO [2022-09-21 08:43:53] >> check root,port,cri success
Created symlink from /etc/systemd/system/multi-user.target.wants/containerd.service to /etc/systemd/system/containerd.service.
INFO [2022-09-21 08:43:59] >> Health check containerd!
INFO [2022-09-21 08:44:00] >> containerd is running
INFO [2022-09-21 08:44:00] >> init containerd success
Created symlink from /etc/systemd/system/multi-user.target.wants/image-cri-shim.service to /etc/systemd/system/image-cri-shim.service.
INFO [2022-09-21 08:44:00] >> Health check image-cri-shim!
INFO [2022-09-21 08:44:00] >> image-cri-shim is running
INFO [2022-09-21 08:44:00] >> init shim success

Applying /usr/lib/sysctl.d/00-system.conf ...
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...
kernel.yama.ptrace_scope = 0
Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
kernel.kptr_restrict = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
Applying /etc/sysctl.d/99-sysctl.conf ...
Applying /etc/sysctl.d/k8s.conf ...
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.all.rp_filter = 0
Applying /etc/sysctl.conf ...
net.ipv4.ip_forward = 1
INFO [2022-09-21 08:44:05] >> init kube success
INFO [2022-09-21 08:44:05] >> init containerd rootfs success
2022-09-21T08:44:24 info Executing pipeline Init in CreateProcessor.
2022-09-21T08:44:24 info start to copy kubeadm config to master0
2022-09-21T08:44:26 info start to generate cert and kubeConfig...
2022-09-21T08:44:26 info start to generator cert and copy to masters...
2022-09-21T08:44:26 info apiserver altNames : {map[apiserver.cluster.local:apiserver.cluster.local kubernetes:kubernetes kubernetes.default:kubernetes.default kubernetes.default.svc:kubernetes.default.svc kubernetes.default.svc.cluster.local:kubernetes.default.svc.cluster.local localhost:localhost xiaochao:xiaochao] map[<IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:<IP_ADDRESS>]}
2022-09-21T08:44:26 info Etcd altnames : {map[localhost:localhost xiaochao:xiaochao] map[<IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:<IP_ADDRESS> ::1:::1]}, commonName : xiaochao
2022-09-21T08:44:29 info start to copy etc pki files to masters
2022-09-21T08:44:29 info start to create kubeconfig...
2022-09-21T08:44:30 info start to copy kubeconfig files to masters
2022-09-21T08:44:30 info start to copy static files to masters
2022-09-21T08:44:30 info start to apply registry
Created symlink from /etc/systemd/system/multi-user.target.wants/registry.service to /etc/systemd/system/registry.service.
INFO [2022-09-21 08:44:32] >> Health check registry!
INFO [2022-09-21 08:44:32] >> registry is running
INFO [2022-09-21 08:44:32] >> init registry success
2022-09-21T08:44:32 info start to init master0...
2022-09-21T08:44:32 info registry auth in node <IP_ADDRESS>:22
2022-09-21T08:44:32 info domain sealos.hub:<IP_ADDRESS> append success
2022-09-21T08:44:33 info domain apiserver.cluster.local:<IP_ADDRESS> append success
W0921 08:44:33.933783    3536 initconfiguration.go:119] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme "unix" to the "criSocket" with value "/run/containerd/containerd.sock". Please update your configuration!
[init] Using Kubernetes version: v1.25.0
[preflight] Running pre-flight checks
[WARNING FileExisting-socat]: socat not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[certs] Using certificateDir folder "/etc/kubernetes/pki"
[certs] Using existing ca certificate authority
[certs] Using existing apiserver certificate and key on disk
[certs] Using existing apiserver-kubelet-client certificate and key on disk
[certs] Using existing front-proxy-ca certificate authority
[certs] Using existing front-proxy-client certificate and key on disk
[certs] Using existing etcd/ca certificate authority
[certs] Using existing etcd/server certificate and key on disk
[certs] Using existing etcd/peer certificate and key on disk
[certs] Using existing etcd/healthcheck-client certificate and key on disk
[certs] Using existing apiserver-etcd-client certificate and key on disk
[certs] Using the existing "sa" key
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Using existing kubeconfig file: "/etc/kubernetes/admin.conf"
[kubeconfig] Using existing kubeconfig file: "/etc/kubernetes/kubelet.conf"
W0921 08:45:08.383317    3536 kubeconfig.go:249] a kubeconfig file "/etc/kubernetes/controller-manager.conf" exists already but has an unexpected API Server URL: expected: https://<IP_ADDRESS>:6443, got: https://apiserver.cluster.local:6443
[kubeconfig] Using existing kubeconfig file: "/etc/kubernetes/controller-manager.conf"
W0921 08:45:08.615114    3536 kubeconfig.go:249] a kubeconfig file "/etc/kubernetes/scheduler.conf" exists already but has an unexpected API Server URL: expected: https://<IP_ADDRESS>:6443, got: https://apiserver.cluster.local:6443
[kubeconfig] Using existing kubeconfig file: "/etc/kubernetes/scheduler.conf"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Starting the kubelet
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[control-plane] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifest for "kube-controller-manager"
[control-plane] Creating static Pod manifest for "kube-scheduler"
[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[apiclient] All control plane components are healthy after 15.504834 seconds
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config" in namespace kube-system with the configuration for the kubelets in the cluster
[upload-certs] Skipping phase. Please see --upload-certs
[mark-control-plane] Marking the node xiaochao as control-plane by adding the labels: [node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers]
[mark-control-plane] Marking the node xiaochao as control-plane by adding the taints [node-role.kubernetes.io/control-plane:NoSchedule]
[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
[bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:
kubeadm join apiserver.cluster.local:6443 --token
--discovery-token-ca-cert-hash sha256:9ce671613b4c7583a69ea40e849c9a4d492b597ee724b95b902247587c80670d
--control-plane --certificate-key
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join apiserver.cluster.local:6443 --token
--discovery-token-ca-cert-hash sha256:9ce671613b4c7583a69ea40e849c9a4d492b597ee724b95b902247587c80670d
2022-09-21T08:45:28 info Executing pipeline Join in CreateProcessor.
2022-09-21T08:45:28 info start to get kubernetes token...
2022-09-21T08:45:31 info Executing pipeline RunGuest in CreateProcessor.
2022-09-21T08:45:31 info guest cmd is kubectl apply -f manifests/tigera-operator.yaml
customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/caliconodestatuses.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipreservations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/apiservers.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/imagesets.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/installations.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/tigerastatuses.operator.tigera.io created
namespace/tigera-operator created
serviceaccount/tigera-operator created
clusterrole.rbac.authorization.k8s.io/tigera-operator created
clusterrolebinding.rbac.authorization.k8s.io/tigera-operator created
deployment.apps/tigera-operator created
error: resource mapping not found for name: "tigera-operator" namespace: "" from "manifests/tigera-operator.yaml": no matches for kind "PodSecurityPolicy" in version "policy/v1beta1"
ensure CRDs are installed first
2022-09-21T08:45:35 error Applied to cluster error: exit status 1
2022-09-21T08:45:35 info
___           ___           ___           ___       ___           ___
/\  \         /\  \         /\  \         /_\     /\  \         /\
/::\  \       /::\  \       /::\  \       /:/  /    /::\  \       /::\
/:/\ \  \     /:/:\  \     /:/:\  \     /:/  /    /:/:\  \     /:/\ \
:~\ \  \   /::~:\  \   /::~:\  \   /:/  /    /:/  :\  \   :~\ \
/\ :\ \ _\ /:/:\ :_\ /:/:\ :_\ /://    /:// :_\ /\ :\ \ _
:\ :\ // :~:\ // /:/:/  / :\  \    :\  \ /:/  / :\ :\ //
:\ :_\    :\ :_\        ::/  /   :\  \    :\  /:/  /   :\ :_
:/:/  /     :\ /__/        /:/  /     :\  \    :/:/  /     :/:/  /
::/  /       :_\         /:/  /       :__\    ::/  /       ::/  /
//         //         //         //     //         //
              Website :https://www.sealos.io/
              Address :github.com/labring/sealos

What you expected to happen
install success
Operating environment

Docker version:   none

Kubernetes version: 1.25.0

Sealos version: sealos version
{"gitVersion":"4.1.3","gitCommit":"b2ba9705","buildDate":"2022-09-06T06:04:14Z","goVersion":"go1.19","compiler":"gc","platform":"linux/amd64"}

Operating system: centos7

Runtime environment:  virtual machine (virbox, 2G memory, 2 core cpu, 100G storage)

Cluster size: single

Additional information:  none

version:  sealos version
{"gitVersion":"4.1.3","gitCommit":"b2ba9705","buildDate":"2022-09-06T06:04:14Z","goVersion":"go1.19","compiler":"gc","platform":"linux/amd64"}

1.25 不再支持 PSP 我们会升级一下 calico 镜像

using v3.24.1 calico


Badly passed --pretty argument

Running this command should yield a correct pretty formatted git log:
git log -5 --pretty=tformat:' * %C(yellow)%h%Creset %<|(72,trunc)%s %C(cyan)%cr%Creset'

However, doing the argument passed by wslgit doesn't pass the %<|(72,trunc) correctly, it would print something like this instead:
 * abc123456 %\<|(72,trunc)feat: commit message 10 minutes ago

Notice the appended \ just before the < symbol.

It seems to work just fine for me, using the exact command you posted from powershell (with git version 2.43.0 in WSL).
From cmd.exe it does only work if I change the quotes from ' to ".
However, I can't get the incorrect escaping behavior that you observed. Are you using the latest version of wslgit? Do you have any special configuration, e.g. environment variables for wslgit?

I tried using CMD and changed the quote as you suggested, but the appended \ still persist.
I used the latest Ubuntu (24.04.1 LTS) on WSL2 (<IP_ADDRESS>) on Windows 11 (26100.2033) and updated my packages via apt update && apt upgrade (git version 2.43.0). The I deleted my WSLENV environment variable to set it to its default but the issue still persist.

Here's my wsl --version

WSL version: <IP_ADDRESS>
Kernel version: <IP_ADDRESS>-2
WSLg version: 1.0.65
MSRDC version: 1.2.5620
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26100.2033

I wonder what was your configuration?

Sorry for the late reply.
My configuration is almost exactly the same, except I'm on Windows 10:
> wsl --version
WSL-Version: <IP_ADDRESS>
Kernelversion: <IP_ADDRESS>-2
WSLg-Version: 1.0.65
MSRDC-Version: 1.2.5620
Direct3D-Version: 1.611.1-81528511
DXCore-Version: 10.0.26100.1-240331-1435.ge-release
Windows-Version: 10.0.19045.4529

Not sure what makes the difference here, I'll try to do some testing if I find some time.


Admin activity unique user count chart not displaying data

Fixed -- Mistake in cleanup undertaken during model lookup refactor


AudioContext resume() in latest Safari

Safari 9.3 (OSX El Capitan) is finally fixing the MediaElement bugs, but it's introduced another bug. Sometimes when you open a URL in a new tab, the AudioContext will start in a "suspended" state, and we need to force resume() it for audio to play. 😞
Will investigate.

Should be fixed now.


encodings

Implements custom Base64, Base64URL, and Hexadecimal encoders. The encoders from foundation have proven too unstable.

Codecov Report

Merging #6 into master will increase coverage by 1.03%.
The diff coverage is 93.98%.

@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
+ Coverage    91.6%   92.64%   +1.03%
==========================================
  Files          17       20       +3
  Lines         441      693     +252
==========================================
+ Hits          404      642     +238
- Misses         37       51      +14

Impacted Files
Coverage Δ

Sources/Bits/Bytes+Hex.swift
100% <100%> (ø)

Sources/Bits/Bytes+Base64.swift
100% <100%> (+16.66%)
:white_check_mark:

Tests/BitsTests/ByteTests.swift
96.58% <100%> (+5.27%)
:white_check_mark:

Sources/Bits/Base64Encoder.swift
88.88% <88.88%> (ø)

Sources/Bits/HexEncoder.swift
94.82% <94.82%> (ø)

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 351e835...ecf50cf. Read the comment docs.


Ignore doc/haddock.{ps,pdf}

These have frequently clogged up my workflow as arcanist insists that there be no unstaged changes (including untracked files) before creating a differential.

In 319bf20d44589545e6850db3e676e30216dd3cc2
If you're working with GHC source as you seem to be, you'll need to arrange for it to make it into ghc-head branch.


Code Refactoring: Improving Code Quality and Readability

Plzz assign this issue to me

@himanshiiiiii I have assigned this issue to you. You can make a PR after the coding period starts(15th Jan) for JWOC. Until then, feel free to work on it and ask if any doubts arise

@himanshiiiiii I have assigned this issue to you. You can make a PR after the coding period starts(15th Jan) for JWOC. Until then, feel free to work on it and ask if any doubts arise

Ok thnk u

@himanshiiiiii any progress?

@himanshiiiiii any progress?

Still working


llext: Extend test coverage

The platform key using arch + simulation better provides coverage of unique architectures. Adds a testcase for writable module builds and loading which was uncovered previously and would've led to a failure on xtensa as xtensa currently requires writable storage.

Should fix #68273

hotfix: fixes CI failures in many PRs.


Refactor Spree::Auth::Engine

A handful of small refactorings to Spree::Auth::Engine. The code in here was not amazing, I've attempted to simplify it where possible.

This looks good to me. Thanks @stewart. 👍


single cell RNA sequencing assay

I will need to have 'single cell RNA sequencing assay' term and I think should be child of RNA sequencing assay.
Proposed Definition: is an RNA sequencing assay that has specify input RNA extract form only single cell.
Thanks
AM

In general this is good, but I would suggest to focus on the output. With barcoding techniques, one can argue that many single cell RNA sequencing assays have as an input a large number of cells. It is just that the output can distinguish them.
Definition: An RNA sequencing assay that outputs data about RNA contained in individual cells.
Parent: 'RNA sequencing assay'

Pushing #995 and #864. Single cell technology should really be part of OBI, probably by yesterday.
@masciam: Could you formalize your request more according to the guidelines. I guess that improves the chance for implementation.

Consider using single cell specimen as input to single-cell RNA Seq.

PR https://github.com/obi-ontology/obi/pull/1100 merged into master on 12/23/19


Request for comments on the two tests added

Uncomment the BREAK definition to see the errors.

Deadzen,
I have been a bit swamped of late. So Judging by the commits I am assuming that these are a couple of unit tests. Would you mind going into some detail on the reason there are two files that are very nearly exactly the same? I am not a big fan of code duplication and I suspect once we know your purpose we can optimize this a bit.

Yes well this seems to be a bug present in both API's when checking siblings in relatives. Maybe somethings missing?
I'm also not a fan of code duplication, but this isn't for my purposes, its for the purpose of testing seresye examples, for which I found basically not a single one to be functional..
There appears to be two ways of using this library, (probably imported from ERESYE), in any event, there are obvious code misalignments, the previous patch fixes one of them..
The two relateapi tests are near exact copies on purpose to highlight ones I ran into..
If you're swamped, please look at it when you have the time..
The request for comments was not on the tests, or coding style advice but simply on the intended behaviour
of the code and perceived differences between otherwise seemingly exact copies...
The difference being only the API calls used are different and the fact that in neither case did it work.
The tests are designed to pass unless you uncomment the BREAK definition.

DeadZen,
I am not surprised the tests are not functional. Its an unreleased work in progress (WIP) and should be taken as such until it is released (even as an alpha). @yrashk has been promoting it on irc, which is all good, but he has not been letting people know that it is not complete, not even as an alpha. All that said I do still appreciate contributions.
Ok, with all of that out of the way you have cleared up a misconception on my part. I didn't realize this was pull request was mostly to illustrate brokenness in the code base not necessarily as an actual request to add code to the codebase. In light of that, I will probably take these, work up some illustrative tests and and commit those tests along with the fixes for them.
Again, I hope the tone of this did not come off poorly. I do very much appreciate finding and especially taking the time to illustrate bugs.

Rereading this comment to myself it comes off as pretty defensive. Which shouldn't be. Its code after all. The tests in the canonical repo should pass or the code shouldn't be in canonical regardless of the state of the project. Another area where working solo has made me a bit lazy. As an aside to the commits I will get that problem resolved as well.

I am going to close this @DeadZen, We don't actually use this any more. I need to figure out a way to deprecate it.


[Node.js tools]Truncation of button "Clear cache"

Expected Behavior
Whole button is visible.
Actual Behavior
Button is truncated.

Visual Studio Version: 15.2

Repro steps: Tools -> Options -> Node.js Tools -> Npm
See attached screenshot. Non-resizable from localization side.

Thanks for reporting, this button is removed in 15.3.


fix(apply_text_edits): reverse text edits before applying them

Should fix #457

Hi @TheLeoP, i have no mastery about lua and nvim, but I got error after updating the plugins.
And after reading your changes in this MR, I assume your changes has something relevant with my issue, do you know something? is there something should I do?
Here I provide my setup
  {
    "ThePrimeagen/refactoring.nvim",
    lazy = true,
    dependencies = {
      "nvim-lua/plenary.nvim",
      "nvim-treesitter/nvim-treesitter",
    },
    config = function()
      require('refactoring').setup({
        -- overriding printf statement for cpp
        print_var_statements = {
            -- add a custom print var statement for cpp
            php = {
                -- 'dump("Variable: %s", %s);'
                'dump(\'Variable: %s %s\', %s);'
            },
            go = {
                'fmt.Println(fmt.Sprintf("%s %%+v ", %s))'
            }
        },
        printf_statements = {
            -- add a custom print var statement for cpp
            php = {
                'dump("Debugging: %s");'
            }
        }
      })
      -- require("telescope").load_extension("refactoring")
    end,
  },

        -- REFACTOR
        [";dV"] = { function() require('refactoring').debug.print_var({below = false}) end, desc = "Print var before" },
        [";dv"] = { function() require('refactoring').debug.print_var({}) end, desc = "Print var after" },
        [";dF"] = { function() require('refactoring').debug.printf({below = false}) end, desc = "Print debug before" },
        [";df"] = { function() require('refactoring').debug.printf({}) end, desc = "Print debug after" },
        [";dc"] = { function() require('refactoring').debug.cleanup({}) end, desc = "Clear debugging" },

My error messages

vim.iter was added on Neovim 0.10, your route is because you are using an older version. Nevertheless, the check for neovim 0.11 on the code is wrong, so I'll fix it. Thanks for the comment :D


Handle more SMTP response codes

This PR adds handlers for RCPT response codes from SMTP reply codes.
In the code I opted (in most cases) for lambdas instead of full functions for readability. If you need me to do any modifications, feel free to ask.
Resolves #1 .

I see. Following your tips, here's how I would handle the errors:
Description in parentheses doesn't automatically mean there's a message field (see 553 and 450)
550 (mailbox unavailable): deliverable=False, host_exists=True, message=<different if blocked by server>
551 (mailbox moved): deliverable=False, host_exists=True
552 (storage allocation exceeded): deliverable=True, host_exists=True, full_inbox=True
553 (mailbox name not allowed): deliverable=False, host_exists=True
450 (mailbox unavailable): deliverable=False, message="Mailbox unavailable, try again later."
451 (local error processing): deliverable=False, message="Local error processing, try again later."
452 (insufficient storage): deliverable=True, full_inbox=True

# 500, 501 and 503 are syntax errors
# Wasn't sure what these ones should be, here's a guess
500 (command not recognised): deliverable=False, host_exists=True
501 (parameter/argument not recognised): deliverable=False, host_exists=True
503 (bad command sequence): deliverable=False, host_exists=True

521 (domain does not accept mail): deliverable=False, host_exists=False
421 (service not available): deliverable=False, host_exists=True, message="Service not available, try again later."
441 (account over data quota): deliverable=True, full_inbox=True, host_exists=True

This is great. I don't know 500, 501 and 503 will occur. That would be because of our mistake.
Except for these three, you can all the above. (You can add them if you want)
Those with try again will be where you will add a message (as you have already added)
We will be having a retry on these. Maybe 3 times or so. But that's another issue
Rest looks good.

Did some voodoo magic (never done something like this before) to squash the commits, I'm not sure how Github will handle this.

That voodoo blog does not look very helpful to me. And it also resulted in more commits.
squash = merge two or more commits into one such that the final commit contains changes of all other commits. The reason to do this is so that one feature/change is contained in one commit/patch. Because 10 commits changing small thing as the review goes is not great. And its easier to find breaking changes as well.
git rebase is used for it. (rebase command is not limited to just squashing, it can do a lot of other stuff such as reordering the commits, editing commit message, dropping a commit etc.)
The steps for squash are simple.

Make sure your master branch is even with origin/master. This means that both the email-verifier:master and DefaltSimon/email-verifier: master have same commit on top. In your case, you are making changes in your master branch so you need to make sure that your commits are on top of the latest commit on email-verifer:master which it is. (I can tell you more on making both branches even later). User git log --oneline to list the commits.

git rebase -i HEAD~10 will open the editor with 10 commits each in one line like the image below (here 10 represents the number of commits you want to deal with can be higher of lower)

Change pick to squash or s to mark commits for squashing. The commit will get merged with the one above it. In below image Add .gitignore will get squashed with Add license.

Save and close the file. (If you dont make any changes nothing will happen). An editor will open to change the commit message. You can change it there.

Now you have changed the git history by squashing the commits. You will need to force push these changes. Use git push -f to force-push. (Generally it is not recomended to force push on master) Github might have protected the master branch, in which case you will have to unprotect from settings and then push. Make sure to protect it after that again.

Now try to do it . Save your changes somewhere because it might get ugly if you get something wrong.
Feel free to ask the doubts.
Once you do it correctly. Thing will be more clear :+1:

This should do it.
Thanks for the help ;)

Thanks. Merged :+1: Now you need to do this on your master.

git fetch origin
git rebase orgin/master

This will make both your fork's master and email-verifer: master even
I hope this was a good learning experience for you :+1:


Abbreviation extension can not have text on multiple lines

To prevent having too long lines, which is checked by markdown linters, that would be nice to be able to write abbreviations on multiple lines. Today it only work on one single line:
*[THTBOOSL]: This has to be on one single line.

I expect that Markdown linters don't know anything about a abbreviation definition. If they aren't complaining about them at all, that that is coincidental (in that the linter isn't strict enough). We should expect that all abbreviation definitions will trip up a linter. Therefore, the fact that long lines trip up the linter is a read herring.
That said, I suppose there might be some argument for allowing long lines to be wrapped (easier to read, etc.). But, how long are your abbreviations anyway? Wow. I don't think I ever considered this to be a problem.
In any event, this is not a high priority item for me. However, I would be willing to review a PR is someone else wanted to do the work.


UIWebView comment in AppAuth may cause the app to be rejected by Apple

We are working on getting our app in compliance with App Store requirements for google sign in, by this year any usage of UIWebView will be a reason of rejection in App Store. Running a grep lookup on my app I realized you are referencing OpenID AppAuth version 1.3.0 in that version there is a header file called AppAuth.h (Located in Frameworks/AppAuth.framework/Headers folder) this file contains a comment where is mentioning the fact there's no any usage of UIWebView or WKWebview, just by mentioning in the comment might be interpreted as some sort of usage. AppAuth project guys realized that may cause rejection and removed the comment for version 1.3.1.
I think it's important to update the AppAuth reference in Google SignIn package in order to avoid any rejection in App Store. I know this is silly stuff because just by a simple comment is necessary to generate a new release but it's better not to mess with Apple since they've historically been kind of grumpy.
https://github.com/openid/AppAuth-iOS/issues/529
https://developer.apple.com/forums/thread/122114

Hi
We have the same problem!.
Here show the news versions that this library
https://cocoapods.org/pods/AppAuth#changelog

Still have this problem ?

I have the same issue right now.

Xamarin Forms 5 update fixed that problem..

I use Xamarin Native iOS/Android.


Fix/peep requirements

Killing MD5 with fire, one dependency at a time.

I also added a "carml checkpypi" command that automates the "check the peep-hash of a download multiple times over different Tor circuits"


Lightmap denoiser breaks when using Physical Light Unit

Tested versions
Reproducible in v4.2.1.stable.official [b09f793f5] and v4.2.stable.official [46dc27791]
System information
Godot v4.2.1.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated AMD Radeon RX 6700 XT (Advanced Micro Devices, Inc.; 31.0.23013.1023) - AMD Ryzen 7 5700X 8-Core Processor (16 Threads)
Issue description
The lightmap denoiser seemingly stops doing its job when Physical Light Unit is enabled.
Without PLU:

With PLU:

Steps to reproduce

Set up a lightmapped scene
Bake
Enable PLU
Bake again & compare results

Minimal reproduction project (MRP)
PLU Breakdown.zip

The baked lightmap is much brighter when baked with physical light units, as evidenced by what happens if you disable physical light units then reload the project:

I tried something and then found out that LightmapGI does not default to using the scene's environment-set camera attributes when not assigned. Assigning a camera attribute to LightmapGI solves the issue.
Should I keep this issue open or open a proposal?

I tried something and then found out that LightmapGI does not default to using the scene's environment-set camera attributes when not assigned. Assigning a camera attribute to LightmapGI solves the issue.
Should I keep this issue open or open a proposal?

This is the expected behaviour. The Lightmap will bake the input brightness without a CameraAttributes resource. Assigning a CameraAttributes resource will reduce the baked exposure to more reasonable levels.
Feel free to open a proposal if you have an idea on how to make this more clear for users!


Timed out while waiting for EGM feedback (did the EGM session end on the robot controller?)

When we launch bringup example 3, we get some warnings about soft limits, but I think those are fine, e.g.:
[ WARN] [1614788399.000458960]: Configured default soft limits for 'yumi_robl_joint_7': position [-3.95683; 3.95683], k: 1
What does concern me is that immediately after that, we get the following warnings, with 10 seconds interval between them:
[ WARN] [1614783640.237502918]: Timed out while waiting for EGM feedback (did the EGM session end on the robot controller?)
And indeed, the EGM session did not start yet, since we are at Idling... state on the robot controller.
So what we do is, as the bringup example prescribes,
rosservice call /yumi/rws/stop_rapid "{}"
rosservice call /yumi/rws/pp_to_main "{}"
rosservice call /yumi/rws/start_rapid "{}"
rosservice call /yumi/rws/sm_addin/start_egm_joint "{}"

And then this warning message Timed out while waiting for EGM feedback stops for 60 seconds, as the TeachPendant also prints out Starting joint motion. After 60 seconds, the TeachPendant goes back to Idling... and the terminal prints warnings every 10 seconds again.
What kind of EGM feedback does the bringup_example expect? How can we make sure it gets its feedback? Why is the joint motion stopped after a timeout period?

I'm pretty sure you're running into the EGM convergence timeout or idle timeout.
If this

Why is the joint motion stopped after a timeout period?

means "why does Starting joint motion go back to Idling after a timeout of 60 seconds", then it would probably be that convergence timeout.
But this should only happen if your robot is doing nothing.
You should be able to check the state of the EGM channels via the /egm/egm_states topic. The active field should say True whenever EGM is active, and False when you've either disabled the channel yourself (by calling stop_egm) or because the timeout occurred.
You should be able to change the timeout value using the egm settings service. I find it's convenient to retrieve the current settings, changing the values I need to change and the writing them back again (instead of populating all the fields yourself in a from-scratch service request object).

@jontje: this may be something we need to document better.
It's not specific to this driver, as it's a base EGM behaviour, but it's surprising enough that it would warrant some explanation.
Perhaps just by referring to the relevant sections in the EGM and/or IRC5 manuals though.

But this should only happen if your robot is doing nothing.

Robots sitting idle don't need to be guided, so EGM has done its job and can be shut down.

Why is the joint motion stopped after a timeout period?

here we have to be careful: is your robot moving and then the EGM session times out, or is your robot actually idling?
Again: the session should only terminate via the timeout if your robot is actually idling.

It also happens when we plan and execute a motion (using MoveIt) that takes more than 60 seconds. We have a lot of those scenarios because for some reason the robot is moving very slowly.
The motion will stop halfway through, we'd have to rosservice call /yumi/rws/sm_addin/start_egm_joint "{}" again, and press Plan and Execute again in MoveIt, and then it will resume moving.

You should be able to change the timeout value using the egm settings service. I find it's convenient to retrieve the current settings, changing the values I need to change and the writing them back again (instead of populating all the fields yourself in a from-scratch service request object).

Thanks, we'll definitely look into that. We didn't think that would be the 'way to go' because we've obviously broken some feedback mechanism in our setup.

Can it be that this Timed out while waiting for EGM feedback occurs because we've renamed /yumi/joint_states to /joint_states? I'd test it out but I have no access to the robot today.

for some reason the robot is moving very slowly.

the default setting for MaxSpeedDeviation is 0.1 by default. This is mentioned in the Troubleshooting section of the abb_egm_hardware_interface package.
You'll want to change that.

It also happens when we plan and execute a motion (using MoveIt) that takes more than 60 seconds.

hm, this should not happen afaik.
@jontje ?

Edit: with YuMi, there are two channels. Are you using both at the same time, or only one?

Both at the same time, and both go Idling... after 60s, even if both are moving. (IIRC, to be confirmed tomorrow).

I've used something like this in the past:
#!/usr/bin/env python3
import sys
import rospy
import math

from abb_rapid_sm_addin_msgs.srv import *

rospy.wait_for_service('<some_namespace>/rws/get_egm_settings')
rospy.wait_for_service('<some_namespace>/rws/set_egm_settings')
get_egm_settings = rospy.ServiceProxy("<some_namespace>/rws/get_egm_settings", GetEGMSettings)
set_egm_settings = rospy.ServiceProxy("<some_namespace>/rws/set_egm_settings", SetEGMSettings)

current_settings = get_egm_settings(task='T_ROB1')
settings = current_settings.settings
print (settings)

# max_speed_deviation is in deg/s, we convert from rad/s
settings.activate.max_speed_deviation = math.degrees(3.0)
print (settings)

set_egm_settings(task=taskname, settings=settings)

Be sure to update namespaces, values and add error handling of course.
And be sure to use correct task names.
Note: these settings are not persisted. So you'll have to run something like this every time you restart the StateMachine task(s).

Thanks a lot @gavanderhoorn ! Very useful script, the robot speed is indeed much higher now.
As far as the EGM feedback timeout goes, I suppose that's not a severe issue anymore since our individual robot movements do not take more than a minute anymore. We'll just call start_egm rosservice call /yumi/rws/sm_addin/start_egm_joint "{}" before planning and executing on MoveIt and rosservice call /yumi/rws/sm_addin/stop_egm "{}" after MoveIt tells us that trajectory execution has completed.
Thanks again, your and jontje's help has been crucial in arriving to a working system.

We've debated whether we should integrate updating the EGM settings automatically on the controller based on whatever the ROS side 'knows'. However, there are some disadvantages to that:

it would only work if the StateMachine addon is installed (as otherwise there isn't really an easy way to configure the EGM settings)
it doesn't really matter what the ROS side has configured, as the IRC5 holds the absolute truth (ie: we cannot make the controller do things it's been configured not to allow)

These things combined made us not do this by default -- as annoying as having to update the settings every time you start a session is.
Based on user feedback, we may reevaluate that decision though -- perhaps we've overlooked some way of configuring the controller (without relying on the SM Addon) which could help here (using RWS perhaps?).

As far as the EGM feedback timeout goes, I suppose that's not a severe issue anymore since our individual robot movements do not take more than a minute anymore.

no, it is an issue and remains one.
Based on my understanding, EGM sessions should not time out while motions are executing.
So either:

my understanding is incorrect -- but I expect @jontje to weigh in in that case
something is misconfigured on your IRC5 (or configured in a way we did not expect)
something is misconfigured on the ROS side of your setup

I'm going to wait for @jontje to add his opinion, but I expect we should follow up on this.

Based on my understanding, EGM sessions should not time out while motions are executing.

Yes, that should be true, as long as the convergence conditions are unfulfilled, which are specified in the EGM settings by the settings.activate.cond_min_max and the settings.run.cond_time fields.
Something to test could be to decrease cond_min_max and increase cond_time.
@robberthofmanfm, did you execute EGM motions for both of YuMi's arms?
/yumi/rws/sm_addin/start_egm_joint "{}" starts EGM sessions for both of YuMi's arms by default, so if only one arm is moving and the other is standing still, then the arm that is standing still can timeout.
One way to mitigate this is to set the "settings.allow_egm_motions" for respective arm.

@jontje wrote:

@robberthofmanfm, did you execute EGM motions for both of YuMi's arms?

IIUC, both arms were moving (https://github.com/ros-industrial/abb_robot_driver/issues/16#issuecomment-790510238):

Edit: with YuMi, there are two channels. Are you using both at the same time, or only one?

Both at the same time, and both go Idling... after 60s, even if both are moving. (IIRC, to be confirmed tomorrow).
Edit: confirmed: both go idling after 60s while both are moving.


link to performance tradeoff?

LINQ syntax is typically less efficient than a foreach loop. It's good to be aware of any performance tradeoff that might occur when you use LINQ to improve the readability of your code.

where do we read more about this?  what are the tradeoff(s)? 🤔
is there an MSFT documentation page that can be linked? 🤔

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

ID: 36a7fc54-584b-4ae2-ad71-6343ad8e2801
Version Independent ID: 0784bf12-f389-3660-ae7a-1641a82d3e46
Content: Convert a foreach loop to LINQ - Visual Studio (Windows)
Content Source: docs/ide/reference/convert-foreach-linq.md
Product: visual-studio-windows
Technology: vs-ide-general
GitHub Login: @mikadumont
Microsoft Alias: midumont

@spottedmahn -- Michael, thank you for your questions.  Please consider these resources:

Visual Studio on Microsoft Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit

@mikadumont -- Mika, please look into this issue.