"NoIndexException: Index not found when initializing Chroma from a persisted directory"

I am facing a problem when trying to use the Chroma vector store with a persisted index. I have already loaded a document, created embeddings for it, and saved those embeddings in Chroma. The script ran perfectly with LLM and also created the necessary files in the persistence directory (.chroma\index). The files include:
chroma-collections.parquet
chroma-embeddings.parquet
id_to_uuid_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.pkl
index_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.bin
index_metadata_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.pkl
uuid_to_id_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.pkl
However, when I try to initialize the Chroma instance using the persist_directory to utilize the previously saved embeddings, I encounter a NoIndexException error, stating "Index not found, please create an instance before querying".
Here is a snippet of the code I am using in a Jupyter notebook:
# Section 1
import os
from langchain.vectorstores import Chroma
from langchain.chat_models import ChatOpenAI
from langchain.chains.question_answering import load_qa_chain

# Load environment variables
%reload_ext dotenv
%dotenv info.env
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

# Section 2 - Initialize Chroma without an embedding function
persist_directory = '.chroma\\index'
db = Chroma(persist_directory=persist_directory)

# Section 3
# Load chat model and question answering chain
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=.5, openai_api_key=OPENAI_API_KEY)
chain = load_qa_chain(llm, chain_type="stuff")

# Section 4
# Run the chain on a sample query
query = "The Question - Can you also cite the information you give after your answer?"
docs = db.similarity_search(query)
response = chain.run(input_documents=docs, question=query)
print(response)

Please help me understand what might be causing this problem and suggest possible solutions. Additionally, I am curious if these pre-existing embeddings could be reused without incurring the same cost for generating Ada embeddings again, as the documents I am working with have lots of pages. Thanks in advance!

You may have to use db.persist() after db = Chroma(...) in Section 2.

Still the same error: NoIndexException: Index not found, please create an instance before querying
In Section 2 after loading the embeddings: Using embedded DuckDB with persistence: data will be stored in: .chroma\index
No embedding_function provided, using default embedding function: SentenceTransformerEmbeddingFunction

I'm facing the same issue, even after using db.persist( ) and creating the index files. Some issue with langchain wrapper?

I'm facing the same issue, even after using db.persist( ) and creating the index files. Some issue with langchain wrapper?

That's quite awkward. I think the problem is directly linked with Langchain's chroma wrapper. There must be some changes in the source code, maybe. @hwchase17 what do you think?

I encountered the same problem.
db = Chroma(persist_directory="./vdb", embedding_function=embeddings)     retriever = db.as_retriever()     qa = RetrievalQAWithSourcesChain.from_chain_type(llm=OpenAI(), retriever=retriever)     result = qa({"question": req.message}, return_only_outputs=True)

I am facing a problem when trying to use the Chroma vector store with a persisted index. I have already loaded a document, created embeddings for it, and saved those embeddings in Chroma. The script ran perfectly with LLM and also created the necessary files in the persistence directory (.chroma\index). The files include:
chroma-collections.parquet chroma-embeddings.parquet id_to_uuid_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.pkl index_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.bin index_metadata_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.pkl uuid_to_id_3508d87c-12d1-4bbe-ae7f-69a0ec3c6616.pkl
However, when I try to initialize the Chroma instance using the persist_directory to utilize the previously saved embeddings, I encounter a NoIndexException error, stating "Index not found, please create an instance before querying".
Here is a snippet of the code I am using in a Jupyter notebook:
# Section 1
import os
from langchain.vectorstores import Chroma
from langchain.chat_models import ChatOpenAI
from langchain.chains.question_answering import load_qa_chain

# Load environment variables
%reload_ext dotenv
%dotenv info.env
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

# Section 2 - Initialize Chroma without an embedding function
persist_directory = '.chroma\\index'
db = Chroma(persist_directory=persist_directory)

# Section 3
# Load chat model and question answering chain
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=.5, openai_api_key=OPENAI_API_KEY)
chain = load_qa_chain(llm, chain_type="stuff")

# Section 4
# Run the chain on a sample query
query = "The Question - Can you also cite the information you give after your answer?"
docs = db.similarity_search(query)
response = chain.run(input_documents=docs, question=query)
print(response)

Please help me understand what might be causing this problem and suggest possible solutions. Additionally, I am curious if these pre-existing embeddings could be reused without incurring the same cost for generating Ada embeddings again, as the documents I am working with have lots of pages. Thanks in advance!

adding the embedding_function to the chroma call worked for me.
db = Chroma(persist_directory=persist_directory, embedding_function=embeddings)
IF you are using your own collection however, you might need to manually assign the collection to the db as it seems to use the default "langchain" or create a duplicate collection.
db._collection=db._client.get_collection("custom-collection")
I'm new to python so verify.

Hi everyone, Jeff from Chroma here. I will be looking into this tomorrow morning and will report back.

h

Hi everyone, Jeff from Chroma here. I will be looking into this tomorrow morning and will report back.

Hi Jeff,
I noticed your message on ChromaD's repository. If you need anything else beyond the code I shared, please let me know. I may also send you the created bin and pk files via email.
Just to update you, the first code I used to convert txt files from PDF, divide them into chunks, and create embeddings worked perfectly. I was able to get answers without any problems. However, when I tried to use the whole embedded data again, I encountered the error message "NoIndexException: Index not found when initializing Chroma from a persisted directory."
My main concern is that I don't want to embed the data each time before answering a question. The reason is that processing large PDFs could end up costing a lot in the long term and would not be cost-effective for my purposes. Therefore, I'm open to any solutions you may have.
Let me know if you need any additional information or if you have any suggestions.

My main concern is that I don't want to embed the data each time before answering a question. The reason is that processing large PDFs could end up costing a lot in the long term and would not be cost-effective for my purposes. Therefore, I'm open to any solutions you may have.
Let me know if you need any additional information or if you have any suggestions.

@KurtFeynmanGodel My main concern is that I don't want to embed the data each time before answering a question. The reason is that processing large PDFs could end up costing a lot in the long term and would not be cost-effective for my purposes. Therefore, I'm open to any solutions you may have.
Let me know if you need any additional information or if you have any suggestions.

here is a trivial example based on the langchain example vectorstore.ipynb
test.py
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.text_splitter import CharacterTextSplitter

from langchain.document_loaders import TextLoader
loader = TextLoader('../../../state_of_the_union.txt')
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)

embeddings = OpenAIEmbeddings()
state_of_union_store = Chroma.from_documents(texts, embeddings, collection_name="state-of-union", persist_directory=".chromadb/")

val = state_of_union_store.similarity_search("the", top_n=2)
print(val)

test2.py
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma

embeddings = OpenAIEmbeddings()
state_of_union_store = Chroma(collection_name="state-of-union", persist_directory=".chromadb/", embedding_function=embeddings)

val = state_of_union_store.similarity_search("the", top_n=2)
print(val)

This works on my end. Can others try this?

Dear

here is a trivial example based on the langchain example vectorstore.ipynb
test.py
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.text_splitter import CharacterTextSplitter

from langchain.document_loaders import TextLoader
loader = TextLoader('../../../state_of_the_union.txt')
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)

embeddings = OpenAIEmbeddings()
state_of_union_store = Chroma.from_documents(texts, embeddings, collection_name="state-of-union", persist_directory=".chromadb/")

val = state_of_union_store.similarity_search("the", top_n=2)
print(val)

test2.py
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma

embeddings = OpenAIEmbeddings()
state_of_union_store = Chroma(collection_name="state-of-union", persist_directory=".chromadb/", embedding_function=embeddings)

val = state_of_union_store.similarity_search("the", top_n=2)
print(val)

This works on my end. Can others try this?

Dear @jeffchuber I am still facing the same issue even after making some changes to the code as per your previous suggestion. Therefore, I would like to send you the .ipynb files via email along with a brief description of the process. This way, you can review the files and possibly find a solution that will work reliably. Once we have a solution, we can share it with the community. Thank you for your help.

ok sounds great! please send that along via email or discord DM

ok sounds great! please send that along via email or discord DM

Ok Email sent. (hello@trychroma.com). Thank you so much!

In everyone, if you are using a notebook -- you need to call client.persist() manually because the garbage collection in a notebook does not call the  __del__ lifecycle method on the object.
I just added a PR here to improve our docs on this. https://github.com/chroma-core/docs/pull/44

@jeffchuber Thanks for this. It solved the issue for me.

Thank you @jeffchuber  for the proposed solution. Unfortunately, it gave me the same error. I've emailed you regarding this issue.
Let me share the Jupyter notebook codebase here again:
# Section 1
import os
from langchain.vectorstores import Chroma
from langchain.chat_models import ChatOpenAI
from langchain.chains.question_answering import load_qa_chain
from langchain.embeddings.openai import OpenAIEmbeddings

# Load environment variables
%reload_ext dotenv
%dotenv info.env
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

# Section 2 - Initialize Chroma with the persisted directory and the embedding function
persist_directory = '.chroma/'
embeddings = OpenAIEmbeddings(openai_api_key=OPENAI_API_KEY)
db = Chroma(collection_name="letstry", persist_directory=".chromadb/", embedding_function=embeddings)
db.persist()  # Add this line

# Section 3
# Load chat model and question answering chain
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=.6, openai_api_key=OPENAI_API_KEY)
chain = load_qa_chain(llm, chain_type="stuff")

#Section 4
# Run the chain on a sample query
query = "What is Harga transport?"
docs = db.similarity_search(query)
response = chain.run(input_documents=docs, question=query)
print(response)

@murasz I started off with the same problem of no index found but I cannot remember how I got over that. Can you make sure your persist directory is correct? Now I encounter a different problem. When initializing from the index, if I do not pass in an embedding function, it warns
No embedding_function provided, using default embedding function: SentenceTransformerEmbeddingfFunction
and then after it initializes the database when trying to retrieve it says there is a dimentionality mismatch in the embeddings
Dimensionality of (384) does not match with index dimensionality (1024)
So it seems hnswlib.py, which I assume is responsible for the dimensionality check, uses the defaulted embedding_function to get an embedding dimension number which it checks against the embedding database as a constraint before retrieval. As a result, without having a thorough look at the code, it would seem like including the embedding_function when restoring from an index might not recompute embeddings from the collection (which I understand is your major concern) but rather just check dimensionality as a constraint. It certainly seems that way from how fast the database gets restored when I initialize with the embedding_function.
@jeffchuber Any insights?

@KurtFeynmanGodel yes - I can help with this.
Chroma relies on the user to tell it how to embed things. This is not currently stored within chroma, which is why you have to pass it to Chroma whenever you do create_collection, get_collection, or get_or_create_collection.
What is happening here is that Chroma is using the default embedding function (sentence-transformers) to embed your document/query with 384 dimensionality. As this does not match the dimensionality of the embedding model you use 1024 - it throws an error.

Hi @jeffchuber  and team.  Not sure if this issue is still being worked or if it's considered resolved, but I'm running into the same issues as the rest of the thread.
I'm using an AWS-hosted Chroma instance with persistence, and I can store & retrieve successfully in the same notebook.
But when I switch to a new notebook (eventually to be replaced by a web app) I can instantiate the AWS Chroma instance but receive what appears to be a very similar issue.
Exception: {"error":"NoIndexException('Index not found, please create an instance before querying')"}
I use db.persist() as advised, but still doesn't seem to work in a separate notebook.

The same issue was resolved on my Ubuntu server by restarting my python app :smile:

Hi @jeffchuber @murasz , I found the issue. So the issue is with the uuid creation and fetching. The issue of index not found was only happening in the case of custom collection_name. So you guys have used this mechanism to create uuid for the saved index files : uuid.uuid4(), which generates and gets a new uuid every time it is called.
ref file : chromadb/db/clickhouse.py , chromadb/db/duckdb.py

I instead changed the uuid mechanism while creating and fetching docs to do something like this using a seed as collection_name parameter which generates a consistent uuid for a fixed value of collection_name.
   rd = random.Random()
   rd.seed(collection_name)
   id = uuid.UUID(int=rd.getrandbits(128))

   collection_uuid = id

This generates a consistent UUID for a collection based on the name passed in the params. Do this same in get_collection_uuid_from_name() functions as well .
I tried this in various scenarios where it was failing for me, this solution works in those scenarios.

I am facing the same issue, I am using a notebook to create a persisted chroma db instance locally and then copy the data over to the server, my file structure is:

the file with the following code is on the same level as the db folder:
persist_directory = 'db'
embedding = OpenAIEmbeddings()
chroma_client = Chroma(persist_directory=persist_directory,
                       embedding_function=embedding)

what could be the bug here?

@dankolesnikov did you create the Chroma DB outside LangChain and now you want to pass to LangChain?

@jeffchuber Sorry I forgot to update my thread. I was able to resolve this error simply by upgrading chroma! I am not facing this error anymore but I uncovered another one and created a ticket on chroma's repo: https://github.com/chroma-core/chroma/issues/640
Please look into it if possible, I owe you and Anton a beer if it is something that I overlooked.

@murasz  can you try upgrading chromadb/langchain packages? if it works for you we could close this issue

@dankolesnikov great! glad to hear it. will take a look at 640

Not sure if it worked for @murasz but I can report that upgrading langchain ( pip install --upgrade langchain) worked for me.

I haven't checked it yet due to my intensive schedule this week. Unless you  won't let me check till monday, you can close the topic.

@jeffchuber
could you help me with these code , i create a api with fastapi and langchain,there is a problem, i upload 3 documents ,and in another py file , i use vectorstore.get() ,i can see all the document, but when i close the api, i use vectorstore.get() again, there is only the first document return , and i found that ,when i close the api,The size of the file chroma-embeddings.parquet has decreased，Its size has become the size of the first document uploaded for the first time？why？thanks
import os
import re
import uuid

from fastapi import FastAPI, UploadFile
import uvicorn
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import Chroma
from langchain.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
import chromadb

app = FastAPI()

DB_DIR = "./db"
embeddings = HuggingFaceEmbeddings(model_name="nghuyong/ernie-3.0-medium-zh")

def replace_newlines_and_spaces(text):
    # Replace all newline characters with spaces
    text = text.replace("\n", " ")
    # Replace multiple spaces with a single space
    text = re.sub(r'\s+', ' ', text)
    return text

def get_documents(file_path):
    return TextLoader(file_path, encoding="utf-8").load()

def init_chromadb(file_path):
    if not os.path.exists(DB_DIR):
        os.mkdir(DB_DIR)

    documents = []
    for num, doc in enumerate(get_documents(file_path)):
        doc.page_content = replace_newlines_and_spaces(doc.page_content)
        documents.append(doc)

    client_settings = chromadb.config.Settings(
        chroma_db_impl="duckdb+parquet",
        persist_directory=DB_DIR,
        anonymized_telemetry=False
    )
    # Split the documents into chunks
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=400, chunk_overlap=20, length_function=len,
                                                   separators=["\n\n", "\n", " ", "", "。"])
    texts = text_splitter.split_documents(documents)
    print(len(texts))
    # Create the vectorestore to use as the index
    vectorstore = Chroma.from_documents(texts, embeddings, persist_directory=DB_DIR, client_settings=client_settings,
                                        collection_name="news")
    vectorstore.persist()

@app.post("/process-file")
async def process_file(file: UploadFile):
    try:
        random_name = str(uuid.uuid1())
        index_path = "./upload_file/" + random_name + "/"
        file_path = index_path + file.filename
        if not os.path.exists("./upload_file/" + random_name):
            os.mkdir("./upload_file/" + random_name)
        with open(file_path, "wb") as buffer:
            buffer.write(file.file.read())

        init_chromadb(file_path)

        return {"status": "success"}
    except Exception as e:
        return {"status": "failure", "error": str(e)}

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

@lastrei
This is because you are creating a new Chroma Client every time and the auto-lifecycle cleanup is running in reverse order and saving the first one you created last - which results in a stomp.
A solution here is to creating one chroma client, and then pass it into Langchain when you want to use it.
Here is a small example.
import chromadb
chroma_client = chromadb.Client()
collection = chroma_client.create_collection(name="my_collection")

collection.add(
    documents=["This is a document", "This is another document"],
    metadatas=[{"source": "my_source"}, {"source": "my_source"}],
    embeddings=[[1,2,3],[4,5,6]],
    ids=["id1", "id2"]
)

from langchain.vectorstores import Chroma
langchainChroma = Chroma(client=chroma_client, collection_name="my_collection")

print(langchainChroma._collection.count())

You can pass this directly from_documents - https://github.com/hwchase17/langchain/blob/master/langchain/vectorstores/chroma.py#LL417C10-L417C10

collection_name

thanks！ i get it！

Reading this thread from start to end, my understanding is that the root cause is Chroma doesn't reinitialize collection_name to langchain when restored from a persisted directory, and so passing collection_name = "langchain" or whatever manual name was given to it should resolve this error. Feel free to correct me if I'm wrong

I have had the same problem - when I reload the persisted database via the class init (Chroma), it is non-functional (does not throw any error codes) - but cannot return any documents. When I use reloading via the _from_documents, it works.  The collection parameters does no difference.

@mhovgaard happy to help more here - please ask in our discord - https://discord.gg/MMeYNTmh3x - we are responding very quickly right now


Error message and stack trace logging not ECS compliant

With this change logs will look like:
{
   "service":{
      "name":"petshop"
   },
   "@timestamp":"2020-05-11T15:01:01.000Z",
   "log":{
      "level":"error"
   },
   "message":"Artificially raised exception",
   "error":{
      "message":"divided by 0",
      "stack_trace":"..."
   }
}

We shouldn't be encouraging the use of 'dotted keys'.

Our README.md definitely encourages its use :)
https://github.com/simplybusiness/twiglet-ruby#use-of-dotted-keys

We shouldn't be encouraging the use of 'dotted keys'.

Our README.md definitely encourages its use :)

It's there as a backup, because Quynh felt strongly that we should help people acclimatise to the use of structured logging. Think of it as a training wheel. My view was that it was a needless complication and they should just rip off the band-aid, but I guess I'm just...


Updating messaging for toHaveTagName to be more clear

The messaging for toHaveTagName seems a bit confusing to me. From the current message, it's not very clear what didn't match. Looking at the enzyme API, name() will return type.displayName -> type.name -> type. I think display name summarizes all three of those well. This also makes me wonder if toHaveTagName should be renamed to toHaveDisplayName and toHaveTagName deprecated, since display name is what it is actually being checked.  Lastly, even though === was used for the comparison, it doesn't really offer to much insight as to why the match failed here, so I removed it.
Current messaging
Expected <Foo> node to equal (using ===) type "Bar" but it is a "Foo".
Expected <Foo> node not to equal (using ===) type "Bar" but it is that type.

New messaging
Expected <Foo> to have display name "Bar" but it had display name "Foo".
Expected <Foo> not to have display name "Bar" but it did".

That's a decent argument. My next release will be a major. So it's probably fine to make the matcher name change.
In my mind, toHaveDisplayName is more correct.  So it's not 100% clear cut to me. But probably better to be more correct and help educate people about React. So I'd be happy to accept a change of matcher name.
Want to do this in this PR?

Done. I also added a deprecate utility, which I'm using to print a deprecation warning when toHaveTagName is called. Ideally, the deprecation message would print after the tests are complete, but to accomplish that I think the deprecation functionality would have to be implemented in each environment. Let me know if you'd like this done another way, or if you have other ideas for implementing deprecation messaging.

Maybe toHaveTagName could be preserved but refined to "really" check for tagName?
wrapper.getDOMNode().tagName

For clarity, are you saying it should only accept an element who's type is a string? Ultimately, I wouldn't mind that, but that change should probably not happen until after the deprecation has had time to propagate.

It looks like this has some changes that got copied in from your last PR. Can you rebase against master and squash down to 1 commit?

@pascalduez I don't see the benefits outweighing the risks of having 2 methods that are nearly named, and sometimes similar in functionality. I think it would just add some confusion. I think the display name works because it matches what's happening in React. And educating people more about React itself is helpful imo.

Done


Clone Column Properties not matching up columns with a blank in the column name

When doing Clone Column Properties, the code matches source and target columns that have the same name. This matching is failing when the column name contains a blank.

Turned out to be surprisingly hard to track down and fix. Problem was that JQuery doesn't like blanks in IDs for selectors. So I needed to modify the JavaScript to replace blanks with underscores in the matching, without affecting the column names as they are displayed.


How to save the location for every post? Maybe also the first comment?

Hi all! for full disclosure, I have no idea how I got here, I probably shouldn't even be here, this is above my skills. But I happen to be quite amazed by the potential of this tool! so as a total beginner I am wondering about the following:
1.
--post-metadata-txt="{location} location" doesn't work. Is there any other function besides {location} to extract the location metadata of a given post?
2.
How do you guys read the json files? with excel? the power query thing? And how about the json.xz? I guess I am not supposed to unzip all the files one by one no? These zipped json files contain the location info, but it's  a bit too hard to get, there must be an easier way...
3.
Is it possible to scrape only the first comment of every post? or would that have the same number of API requests as scraping them all? often the hashtags of the post are found in the first comment.
Thank you in advance for any guidance in any of these issues!

In order to get location (if available) you would need to do --geotags. I'm pretty sure the {location} part of --post-metadata refers to which folder you want your metadata saved in. It doesn't have anything to do with GPS locations. That would be --geotags.

In order to get location (if available) you would need to do --geotags. I'm pretty sure the {location} part of --post-metadata refers to which folder you want your metadata saved in. It doesn't have anything to do with GPS locations. That would be --geotags.

Hi Syl0pt! Thanks for answering. Geotags saves the location as a google maps link. So you would have to follow the link with the browser and find out where that is. It is a bit troublesome... I was hoping I could get the location in a txt straight away. In the json file that's zipped inside the json.xz file the location appears like this: "location":{"id":567008008,"name":"Gal\u00e1pagos","slug":"galapagos"

You can use --no-compress-json if you do more like uncompressed json files instead of the xz ones.
See: https://instaloader.github.io/cli-options.html#cmdoption-no-compress-json

You can use --no-compress-json if you do more like uncompressed json files instead of the xz ones.
See: https://instaloader.github.io/cli-options.html#cmdoption-no-compress-json

oh I see, that's great!  Much appreciated Showmaster

If you can work with the python module it provides far more options than the command line and is very powerful.

for scraping the first comment you can probably just save the comment with the minimum timestamp value and for a single user, this will depend on the number of comments and posts and usually, the number of posts affects much more than the comments as I found by my personal experience.
2)If you make use of location property in the python module you'd probably get the location tags if they're specified in the post.

If you can work with the python module it provides far more options than the command line and is very powerful.
1. for scraping the first comment you can probably just save the comment with the minimum timestamp value and for a single user, this will depend on the number of comments and posts and usually, the number of posts affects much more than the comments as I found by my personal experience.
   2)If you make use of location property in the python module you'd probably get the location tags if they're specified in the post.

Thanks ShashankTwr! That's a very helpful answer. I will do some tests. I am learning more and more stuff, slowly... but I enjoy it. I got a pretty decent script working already : )


Add more typecasting examples for $queryRaw/$executeRaw

Since 4.x, when using raw queries, we require type casts to appropriate types in certain cases. Our docs page on this mention only a simple case and we have users confussed about more complicated cases.
We should improve our docs and provide at least couple of examples for IN/Prisma.join queries. Both soltions  here and here  work for this case.

We should understand how typecasting plays with TypedSQL, and if still relevant, tackle this issue.


⚠ Fetchers has degraded performance

In 419b16c, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 269 ms

Resolved: Fetchers performance has improved in daff4f5.


Exception (red screen) from gallery home after reload

Steps to repro:

Start gallery onto iOS simulator with flutter run --reload-sources
Scroll up and down
Make a change to home.dart (e.g change the text from Flutter gallery to "Flutter gallery!!")
Go to the console of the flutter tool
hit r
Go back to the simulator
Notice how the reload completed and you see the text change
Click anywhere in the gallery home

See:

Output from console:
[INFO:FlutterDynamicServiceLoader.mm(107)] 0 custom service definitions registered
Observatory listening on http://<IP_ADDRESS>:8100
Application running.
Type "h" or F1 for help, "r" or F5 to restart the app, and "q", F10, or ctrl-c to quit.
Type "w" to print the widget hierarchy of the app, and "t" for the render tree.
backboardd: CoreAnimation: updates deferred for too long
SpringBoard: [MPUSystemMediaControls] Updating supported commands for now playing application.
rRe-starting application...                           0.6s
══╡ EXCEPTION CAUGHT BY GESTURE LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown while dispatching a pointer event:
'package:flutter/src/widgets/framework.dart': Failed assertion: line 232 pos 12: 'removed' is not
true.
When the exception was thrown, this was the stack:
#0      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:27)
#1      _AssertionError._checkAssertion (dart:core-patch/errors_patch.dart:34)
#2      GlobalKey.unregisterRemoveListener (package:flutter/src/widgets/framework.dart:232:12)
#3      _FocusState._updateScopeRemovalListener (package:flutter/src/widgets/focus.dart:346:19)
#4      _FocusState._setFocusedScope (package:flutter/src/widgets/focus.dart:331:5)
#5      Focus.moveScopeTo (package:flutter/src/widgets/focus.dart:222:29)
#6      ModalRoute.didPush (package:flutter/src/widgets/routes.dart:539:13)
#7      NavigatorState.push.<anonymous closure> (package:flutter/src/widgets/navigator.dart:365:13)
#8      State.setState (package:flutter/src/widgets/framework.dart:775:24)
#9      NavigatorState.push (package:flutter/src/widgets/navigator.dart:360:5)
#10     NavigatorState.pushNamed (package:flutter/src/widgets/navigator.dart:352:5)
#11     Navigator.pushNamed (package:flutter/src/widgets/navigator.dart:214:27)
#12     GalleryItem.build.<anonymous closure> (/Users/sethladd/Code/flutter/examples/flutter_gallery/lib/gallery/item.dart:38:21)
#13     _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:161:14)
#14     TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:148:14)
#15     TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:119:7)
#16     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:107:27)
#17     BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:137:20)
#18     BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:111:22)
#19     BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:92:7)
#20     BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:51:7)
#21     BindingBase&SchedulerBinding&GestureBinding._handlePointerPacket (package:flutter/src/gestures/binding.dart:44:5)
#22     _dispatchPointerPacket (file:///b/build/slave/Mac_Engine/build/src/out/ios_debug_sim/gen/sky/bindings/dart_ui/hooks.dart:43)
Event:
  PointerUpEvent(Point(326.0, 272.3))
Target:
  <WidgetsFlutterBinding>
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: 'package:flutter/src/widgets/routes.dart': Failed assertion: line 608 pos 12: 'animation.status != AnimationStatus.dismissed' is not true.

(note: reload seems to work OK from the starter app. I'm able to start the starter app, make a change, reload, and then click on the starter app without a crash.)
Note: I do not trigger the crash if I change item.dart's GalleryItem titles and reload. Seems to be specific to changing the title in home.dart and then reloading (instead of changing anything and reloading).

cc @johnmccutchan @Hixie

@Hixie Looks like an assert is blowing up during/after a reassemble?

That stack suggests it's happening in response to user input. I don't think it's related to hot reload.

@Hixie Could the reassemble command leave things in a weird state that could lead to this?

@Hixie thanks for taking a look. I'm able to click all around the app before I reload. I only get the crash after I edit home.dart's title, reload, and then click.

Weird.
I'm sure something is broken that the reload is tickling, then. Maybe the currently focus object is being recreated with a new key but Focus isn't being notified?

Hans is trying out reload now and we hit some exceptions on our first try (the second try was successful):
NOTE: This is both after a reload and a reassemble.
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 232 pos 12: 'removed' is not true.
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/routes.dart': Failed assertion: line 608 pos 12: 'animation.status != AnimationStatus.dismissed' is not true.
E/flutter : [ERROR:dart_error.cc(17)] Unhandled exception:
E/flutter : 'package:flutter/src/widgets/navigator.dart': Failed assertion: line 436 pos 12: '!_debugLocked' is not true.
E/flutter : #0      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:27)
E/flutter : #1      _AssertionError._checkAssertion (dart:core-patch/errors_patch.dart:34)
E/flutter : #2      NavigatorState.pop (package:flutter/src/widgets/navigator.dart:436:12)
E/flutter : #3      _WidgetsAppState.didPopRoute (package:flutter/src/widgets/app.dart:134:22)
E/flutter : #4      BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.handlePopRoute (package:flutter/src/widgets/binding.dart:163:20)
E/flutter : #5      _popRoute (file:///b/build/slave/Linux_Engine/build/src/out/android_debug/gen/sky/bindings/dart_ui/hooks.dart:38)
E/flutter : [ERROR:dart_error.cc(17)] Unhandled exception:
E/flutter : 'package:flutter/src/widgets/navigator.dart': Failed assertion: line 436 pos 12: '!_debugLocked' is not true.
E/flutter : #0      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:27)
E/flutter : #1      _AssertionError._checkAssertion (dart:core-patch/errors_patch.dart:34)
E/flutter : #2      NavigatorState.pop (package:flutter/src/widgets/navigator.dart:436:12)
E/flutter : #3      _WidgetsAppState.didPopRoute (package:flutter/src/widgets/app.dart:134:22)
E/flutter : #4      BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.handlePopRoute (package:flutter/src/widgets/binding.dart:163:20)

I've been testing with just sending a reassemble (not a load from sources):
I/flutter : Another exception was thrown: scheduleBuildFor() called for a widget for which a build was already scheduled.
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 1442 pos 12: '_debugLifecycleState == _ElementLifecycle.active' is not true.
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2253 pos 14: '_dependents.isEmpty' is not true.
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2004 pos 12: 'child == _child' is not true.
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2004 pos 12: 'child == _child' is not true.

more:
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 232 pos 12: 'removed' is not true.
I/flutter : Another exception was thrown: 'package:flutter/src/widgets/navigator.dart': Failed assertion: line 89 pos 12: '_navigator._history.contains(this)' is not true.
I/flutter : Another exception was thrown: setState() called after dispose(): _AnimatedState(53493709; _StateLifecycle.defunct; not mounted)
E/flutter : [ERROR:dart_error.cc(17)] Unhandled exception:
E/flutter : 'package:flutter/src/widgets/focus.dart': Failed assertion: line 335 pos 12: '_focusedScope == key' is not true.
E/flutter : #0      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:27)
E/flutter : #1      _AssertionError._checkAssertion (dart:core-patch/errors_patch.dart:34)
E/flutter : #2      _FocusState._scopeRemoved (package:flutter/src/widgets/focus.dart:335:12)
E/flutter : #3      GlobalKey._notifyListeners (package:flutter/src/widgets/framework.dart:258:21)
E/flutter : #4      _microtaskLoop (dart:async/schedule_microtask.dart:41)
E/flutter : #5      _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
^Chansmuller@chumley:/builds/dev/flutter$

All the dumps above that start with 'removed' is not true are triggered by closures changing identity during a hot reload. That's all of them except the scheduleBuildFor case, but I haven't seen that one. I've submitted a PR which will cause the first error after a reload to include a full stack which should make error reports more useful in the future.

@johnmccutchan - I've assigned this to you for the closure identity issue; please feel free to reassign to me once you've decided what to do on that one. Thanks!

@Hixie Once https://github.com/flutter/engine/pull/2838 is pulled in the tear off closure equality problem is fixed.

Last remaining known issue is with loading assets in hot reload mode. I'm going to close this bug since we have no longer any unknown issues. Please file new bugs if there's new problems with hot reload.

Thanks for the help here!


Concurrency addon

I've added the concurrency addon to this project. I'm currently using this for a determinate progress bar in one of our dependent apps, but I could see us using this addon even more in the future.
Please let me know if I've missed anything or if you have any feedback!

This should be augmented to have this addon install the ember-concurrency addon for consuming applications.  (https://github.com/rynam0/ember-cli-vtkui/blob/master/blueprints/ember-cli-vtkui/index.js#L14)


decouple Keycloak DB from  databases from the community chart

Description
Acceptance criteria
AS A
I WANT TO
SO
Acceptance criteria
GIVEN
WHEN
THEN
Definition of done

[ ] Relevant PRs are merged
[ ] Tested by peer
[ ] Updated documentation reviewed by peer

Please also test this feature in the context of backup and restore with Velero


readline.py generates error

From<EMAIL_ADDRESS>on 2013-01-26T08:21:41Z
I am using python 3.2.2 and running under WindowsXP.
I typed in:
C:\Program Files\Python322\Scripts>ipython3
And I got:
Traceback (most recent call last):
File "C:\Program Files\Python322\Scripts\ipython3-script.py", line 9, in <modu
le>
load_entry_point('ipython==0.13.1', 'console_scripts', 'ipython3')()
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\frontend\terminal\ipapp.py", line 388, in launch_new_instance
app.initialize()
File "", line 2, in initialize
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\config\application.py", line 84, in catch_config_error
return method(app, *args, **kwargs)
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\frontend\terminal\ipapp.py", line 324, in initialize
self.init_shell()
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\frontend\terminal\ipapp.py", line 340, in init_shell
ipython_dir=self.ipython_dir)
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\config\configurable.py", line 318, in instance
inst = cls(*args, **kwargs)
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\frontend\terminal\interactiveshell.py", line 360, in init
user_module=user_module, custom_exceptions=custom_exceptions
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\core\interactiveshell.py", line 455, in init
self.init_readline()
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\core\interactiveshell.py", line 1780, in init_readline
import IPython.utils.rlineimpl as readline
File "C:\Program Files\Python322\lib\site-packages\ipython-0.13.1-py3.2.egg\IP
ython\utils\rlineimpl.py", line 33, in <module>
from readline import *
File "C:\Program Files\Python322\lib\site-packages\pyreadline-1.7.1-py3.2-win3
2.egg\readline.py", line 42
u'''Return the console object used by readline so that it can be used for pr
inting in color.'''
              ^

SyntaxError: invalid syntax
If you suspect this is an IPython bug, please report it at: https://github.com/ipython/ipython/issues or send an email to the mailing list at<EMAIL_ADDRESS>You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.
Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
c.Application.verbose_crash=True What version of the product are you using? On what operating system?
Please provide any additional information below
.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1238

From pierre.raybaut on 2013-01-26T10:09:49Z
No problem.
Status: Invalid

From<EMAIL_ADDRESS>on 2013-01-26T05:24:33Z
Oppss!! so sorry, I report to the wrong project group


Support numerical tests for GA4GH measurements

We now have a t test for Measurements, closing this issue!


BZ2065276: Enable adding hosts in more cluster states than just pendingimport

Scale up the cluster is possible in pendingimport, ready and unknown
cluster states.
Signed-off-by: Jiri Tomasek<EMAIL_ADDRESS>

Included in https://github.com/stolostron/console/pull/1361. Closing


微信3.8.7开第二个wechat的时候反复弹出“WeChat” would like to access data from other apps.“窗口

微信3.8.7开第二个wechat的时候反复弹出“WeChat” would like to access data from other apps.“窗口，即使选择“Allow”也不行

同样的问题，反复弹出“WeChat” would like to access data from other apps.“窗口


TypeScript: Property of T | undefined Check Mismatch

Summary
TypeScript flags the following code with an error
TypeScript Link Here
type T = { x: number | undefined }

function test(value: T) {}

test({})
//    ^
//    Property 'x' is missing in type '{}' but required in type 'T'

However the is and equals checks return true for the same type.
import typia from 'typia'

type T = { x: number | undefined }

const X = typia.is<T>({})
const Y = typia.equals<T>({})

console.log(X) // true | expect false
console.log(Y) // true | expect false

Notes
The intent here is to validate for the policy of T1 however Typia appears to be using the policy of T2.
type T1 = { x: number | undefined } // x property key is REQUIRED
                                    // x property value can be (number | undefined)

type T2 = { x?: number }            // x property key is OPTIONAL
                                    // x property value can be (number | undefined)

Use Case
This was previously discussed on https://github.com/samchon/typia/pull/256#issuecomment-1287826222, however may be worth revisiting for the following usage.
type T = { x: number | undefined } // expect 'x' key to be required property

const V = {}                       // an object without 'x' property

const R = typia.is<T>(V)           // reports true, suggesting 'x' exists

const K = Object.keys(V)           // error: expected ['x'] got []

System
Node: 16.17.1
TypeScript: 4.9.5
Typia: 3.5.7
Config
{
  "transform": "typia/lib/transform",
  "functional": true,
  "numeric": true,
  "finite": true,
}

How to distinguish it?

Ah, it is possible through obj.hasOwnProperty(key) function.
It would better to support the explicit undefined type through configuration.

Ah, I got it by your hint. It is possible to distinguish through obj.hasOwnProperty(key) function.

Sure, just use which ever has the fastest runtime performance.

Object.keys(value).includes(key) - good for key caching with other logic.
value.hasOwnProperty(key) - good for inlining
key in value - this may also be good (needs benchmarking)

It would better to support the explicit undefined type through configuration.

I would have expected this check to be the default as it's better capturing the semantics around TypeScript required and optional property key checks (as seen here), But if implementing as a config, would it also be possible to provide a strict option that just switches everything on?
{
  "transform": "typia/lib/transform",
  "strict": true, // function + numeric + finite + nan + required-undefined
}

Or maybe reading strict: true from tsconfig.json ?

Do you have any idea about expected type name of error instaces? (TypeGuardError and IValidation.errors)

@samchon I do, but error handling is perhaps a topic for another time. I could recommend setting up a TypeGuardErrorCode enumeration similar to this, and update TypeGuardError to accept the code on it's constructor. This code can be used to differentiate between different classes of error (i.e. missing property keys), as well as make provisions for internationalization (i18n) support in future.
export enum TypeGuardErrorCode {
   ObjectRequiredProperties,    // use this code if missing property (this error)
   ObjectAdditionalProperties,  // use this code if additional properties
   Boolean,                     // use this code if not a boolean
   String,                      // use this code if not a string
   Number,                      // use this code if not a number
   Undefined,                   // use this code if not a undefined
   Null,                        // use this code if not null
   // ... more
   Unknown                      // use this code on unknown error
}

export class TypeGuardError extends Error {
  constructor(
    public readonly code: TypeGuardErrorCode, // error code detected during assertion
    public readonly path: string,             // RFC 6901 JSON Pointer
    public readonly value: unknown,           // actual: value
    public readonly expect: unknown,          // expect: type
    message: string                           // optional message (code more important!)
  ) {
    super(message)
  }
}

Just so long as typia.is<{ x: undefined }>({}) is returning false, you should be able to throw the following on assert at a later time.
throw new TypeGuardError(TypeGuardErrorCode.ObjectRequiredProperty, '/x', undefined, 'undefined', 'Expect required property')

If change the TypeGuardError, when it would be a break change causing major version update to v4.0.
I should delay this issue for a while and consider how to solve it.

This has been implemented recently in TypeBox. To implement this correctly, you will need to check if the property value extends undefined. TypeBox implements a fast path extends check specifically for this case (but it should be possible perform a similar check using the Compiler API by checking for unions of undefined).
Compiler Assertion
https://github.com/sinclairzx81/typebox/blob/master/src/compiler/compiler.ts#L267
Value Assertion
https://github.com/sinclairzx81/typebox/blob/master/src/value/check.ts#L242-L244
Fast Path Extends Undefined Check
https://github.com/sinclairzx81/typebox/blob/master/src/typebox.ts#L1185-L1195

@sinclairzx81 Those links works fine now, but the branch is a moving target and the links are almost guaranteed to be broken when someone reads this in the future. Could you update to specific commit references instead?

@hlovdal Updated


docs: Migrate Sapphire documentation from oasisprotocol/docs

This PR migrates topic-oriented Sapphire documentation from https://github.com/oasisprotocol/docs/tree/main/docs/dapp/sapphire to this repository. The README file is still kept inside the docs repository to be consistent with Emerald and Cipher.
Preview

Ok this looks good, all the docs here are self-contained

Actually there are 3 images inside guide.mdx which caused me some gray hair and didn't find a way arond it. They are not shown, if not viewed from the docs site. The remaining material works fine. Links to markdown files from other repos (inlcuding the docs repo) must be provided as https://github.com/oasisprotocol/...) and the documentation parser on docs.oasis.io will transform it to a local path.


imported lib files are not scanned

Describe
In monorepo, I have two project, one component library, one app. Both use vite, windicss and vue.
The library export tree-shakable components
export {default as TestComp1} from './components/Test1.vue';
export {default as TestComp2} from './components/Test2.vue';

TestComp1 looks like this:
<template>

hello

</template>

Then I import library component in the app
<template>

        <TestComp1/>

</template>

bg-pink-500 and  text-white classes are not generated.

I have checked the plugin options but I did not find a solution.
If i Include the node_modules for scan, I'm afraid of ending up with too much CSS, because it will scan all the components even the ones I don't use.
Edit:
indeed, if I add my lib to the scan.dir option, it is scanned as a whole, so at the end, I will have to purge the final bundle.
Versions

vite-plugin-windicss: 0.8.2
vite: 2.05
framework(vue/react/svelte/etc): vue 3.0.7

Additonal Context

You can use scan.include: [ComponentFullPath] option to include it, or add component class to safelist option.

Yes i can, but to maintain its a real hassle. Imagine if my library has 300 components and I use a hundred... better to use purgecss at the end

After somes investigations, it turns out that only the hmr can generate the lib classes. When I build or start dev server, only main app classes are generated, but when I modify lib components, its ok.
  vite-plugin-windicss:scan:transform /home/germs/dev/vite-plugin-windicss/examples/vue-lib/src/Nan.vue +34s
  vite-plugin-windicss:detect:class Set(1) { 'mb-2' } +34s
  vite-plugin-windicss:detect:tag Set(0) {} +34s
  vite-plugin-windicss:hmr refreshed by /home/germs/dev/vite-plugin-windicss/examples/vue-lib/src/Nan.vue +34s
22:49:12 [vite] hmr update<EMAIL_ADDRESS>hmr update<EMAIL_ADDRESS>(x2)
  vite-plugin-windicss:compile compiled 1 classes +34s
  vite-plugin-windicss:compile [ 'mb-2' ] +0ms
  vite-plugin-windicss:transform:group /home/germs/dev/vite-plugin-windicss/examples/vue-lib/src/Nan.vue +34s

In main app,  all files that are not excluded by user options and somes internals plugin regex are scanned even if they are not imported in the entry point tree. This results in overestimated css output.
eg: create non imported component with classes used nowhere, build your app and check your css output.

That's a good point @germsb, maybe we can have a different strategy to do that on the build. Thanks for bring this up

@antfu any updates on this? I'm running into the same issue.
If not, you wrote that a function for generating the safelist in this issue #132 , do you know if it would be possible to access the component list inside of a plugin?

I'm having a similar problem and unfortunately I still haven't found a solution even though I've tried tons of things. any progress? @antfu


test: Verify 'group by recurring' instruction works

Description
Fixes copy-and-paste error in a test.
How has this been tested?
By running the tests.
Screenshots (if appropriate)
Types of changes
Internal changes:

[x] Tests (prefix: test - additions and improvements to unit tests and the smoke tests)

Checklist

[x] My code follows the code style of this project and passes yarn run lint.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] My change has adequate Unit Test coverage.

Terms

[x] My contribution follow this project's contributing guide
[x] I agree to follow this project's Code of Conduct

I checked to make sure there were no other 'group by' options missing from the tests.


Further increase systemd service hardening

Disable use of namespaces, control groups, addresses families that aren't used, kernel module loading, and setting of kernel tunables.

Apparently one of the recent systemd updates broke increasing maxconns: https://github.com/memcached/memcached/issues/218 - would you mind taking a look?

@dormando looked and provided information.

Particularly given the recent CVE and interest in such hardening by distros such as Fedora https://lwn.net/SubscriberLink/709755/a3b534d94fc57157/ , can this PR please be merged? (Or if a change is necessary, or problem identified, please let me know so I can address it)

It's already in the next branch. I just haven't cut a release yet.

released in 1.4.34


read-only ?

thanks, this looks like a really useful tool.
will it support the "read-only" part of the RPC calls only, or do you plan to extend it?
what about e.g. author_submitExtrinsic ?
Thanks!

Thank you very much for your feedback @drandreaskrueger
We are currently working on modifying the API server to be compatible with the changes made in v1.6.2 of the @polkadot/api package. This API Server was originally made with the intention to be used with PANIC for Polkadot, which is why it only has read-only parts. That being said, we appreciate your suggestion and will consider getting the endpoint you mentioned included in a future release.

That sounds very good.
Please keep me posted.
Perhaps close this issue, but put a reminder for yourself in a few months (or whenever).
It would be nice if you then posted to this issue thread here - once the "write access" phase begins.


chore(deps): Update plugin org.openapi.generator to v7

This PR contains the following updates:

Package
Type
Update
Change

org.openapi.generator
plugin
major
6.6.0 -> 7.10.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 7.x releases. But if you manually upgrade to 7.x then Renovate will re-enable minor and patch updates automatically.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


Fix shellcode bin_base_name uninitialized

Hi guys! I was executing some shellcodes through speakeasy and I encountered the following error
0x77001b12: shellcode: Caught error: 'Win32Emulator' object has no attribute 'bin_base_name'
* Finished emulating

The patch that I made is very small and cover only this small use case, but the IDE is warning me that can be more attribute that are uninitialized in the win32.py module.

awesome, thanks @0ssigeno !


Background observing with this library

I am making use of activity mappings when the user has our react native app open but I'm wondering if it is possible to sync activities in the background (app in closed or background state) with this library.

Hi @JDMathew and thanks for your question. We do expose the enableBackgroundDelivery method in the library, which I think should be enough to make it work. With that said I'm not sure if anyone has actually tried it.
I would suggest having a quick look at the official Apple Docs and make sure the queries you want to run in the background are not dependent on UI being rendered (i.e. outside the React lifecycle). Also make sure to add the Healthkit background delivery entitlement.
Good luck and let me know how it goes! :)

@JDMathew just to let you know this #20 is part of the new 4.2.0 release.

@robertherber, awesome thanks for the update. I'll check out the docs and see if I can get it working

@robertherber hi. I've been transitioning my project from https://github.com/agencyenterprise/react-native-health to this library. First of all, thanks for the amazing work. The API is very intuitive and elegant!
I was trying to enable background delivery. One thing I noticed. In Apple docs it states:

As soon as your app launches, HealthKit calls the update handler for any observer queries that match the newly saved data. If you plan on supporting background delivery, set up all your observer queries in your app delegate’s application(_:didFinishLaunchingWithOptions:) method. By setting up the queries in application(_:didFinishLaunchingWithOptions:), you ensure that you’ve instantiated your queries, and they’re ready to use before HealthKit delivers the updates.

whereas this library's enableBackgroundDelivery seems like it should only be called from the js side.
What approach do you recommend for this?
Thanks.

@ha3 I haven't actually been using the library in the background yet myself. Does it seem to work with the JS implementation or do we need to go fully native on this one?
If not - the option would be to add this as a config plugin (complemented by manual instruction for Bare Workflow developers).

@ha3 Both are great improvement ideas, I've added them as issues, please feel free to elaborate on them:
#51 #50

@robertherber We conducted tests with the current API; and it seems working both on background and terminated states. However the phrasing here ...you ensure that you’ve instantiated your queries, and they’re ready to use before HealthKit delivers the updates... concerned me over possible race conditions—but I am not sure, not very knowledgeable in the native side.
Another thing; now, it is not possible to retrieve only new changes reliably. Apple seems to suggest using HKAnchoredObjectQuery for this.

How did you conduct tests?


Support expression relations without an alias

The parser restricts expression relations to require an alias, but I don't think there is any reason for this except that's what SQL does. Can we relax this restriction?

@zeeiyerWork I'm happy to work on this whenever you prioritize it


EXC_BAD_ACCESS in determineMimeType during startup on iPhone 5s

This is a follow-up from issue #1  I am still having trouble running this app on iOS. It crashes on my device but not the simulator. Both are running iOS 8.2, so it is strange that they act differently.

The EXC_BAD_ACCESS error occurs when the path is /private/var/mobile/Containers/Bundle/Application/795335F1-7DE0-4E31-92B7-D65F52AE7842/Who Goes First.app/www/plugins/org.chromium.bootstrap/chromeappstyles.css
It does not crash and exit.

Thanks again for helping out with this! I've just published another fix to the function which should resolve the issue.

Thanks so much. Works great after updating the org.chromium.bootstrap plugin to 2.0.4.

Woohoo!!


tab title color

i do not find a way to custom a tab title when it is selected.
And i have a bug here:my indicator slide to the middle between two tab items,why?

I have the same problem.

Hi,I had found the solution. You could solve by setting app:stl_defaultTabTextColor. For example:
app:stl_defaultTabTextColor="@color/color_tab"
make a file called color_tab in res/color. write like this:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/text_enabled" android:state_selected="true"/>
    <item android:color="@color/text_disabled" android:state_selected="false"/>
</selector>

Os there a way to have a different text color for tabs selected?

Thanks for your help！I have used it for my project.


Ensure node plugin plays nice with nodenv

nodenv manages executable location through "shims", and these can conflict with the normal way one would configure their workspace. This addresses that. Thanks!

Looks good, thanks!


Fix issues with Network Utilisation MaaS Checks

This PR fixes the following issues:

The network tasks were run against ALL containers, this should only be
run against physical hosts.
Adds a test to see if an interface exists on a host, and errors with a
message to indicate what to do if the interface does not exist.
Fixes the logic around adding/removing MaaS checks based on check
name.
Fixes agent restart task to only run against physical hosts.

TODO: Fix maas check exclude list logic, currently it will perform this
per check type, and that doesn't work particularly well. Will be fixed
in a separate PR/issue.
Fixes-Issue: #677

The problem with the restart job is that for EVERY container (and host) we are running a task for "restart agent service" delegated to the physical host.
Since we don't run the agents on the containers, there is no need to restart the service for each container.
Similarly for networking - we don't monitor network interfaces on the containers themselves, so there is no point gathering information about the container's networks, or delegating anything to the physical host.

+1

recheck - failed on pub cloud issue.

recheck - build timed out

Looks like this branch needs to be rebased.

I'll rebase it tonight assuming it wasn't rolled into the Bit Branch Merge (tm).

This PR has been replaced by #736


Splitting size not configured correctly for other platforms than X86 in Image Processing Benchmark

Describe the bug
In file benchmarks/ImageProcessing/CMakeLists.txt it detects extensions using commands in cmake/check-simd.cmake to set the splitting size. It only supports X86 SIMD extensions, having no default value, it could pass an empty string to following build commands and leads to compilation failure.
To Reproduce
Build the benchmark on targets other than X86. AArch64 for instance.
Expected behavior
For different platforms, different SIMD extensions should be checked and used to set the splitting size. A default value should be provided, even a target is unknown it could provide some vectorization to speed things up. Otherwise, warns the user that it doesn't support current target and throws an error.
Code
if (${BUDDY_OPT_STRIP_MINING})
  set(SPLITING_SIZE ${BUDDY_OPT_STRIP_MINING} CACHE STRING "Spliting Size")
elseif(HAVE_AVX512)
  set(SPLITING_SIZE 256 CACHE STRING "Spliting Size")
elseif(HAVE_AVX2)
  set(SPLITING_SIZE 128 CACHE STRING "Spliting Size")
elseif(HAVE_SSE)
  set(SPLITING_SIZE 64 CACHE STRING "Spliting Size")
endif()

The correct spelling would be splitting, by the way.
Desktop (please complete the following information):

Target Triple: arm64-apple-darwin21.4.0
Compiler: Apple clang version 13.1.6

Additional context
Benchmark random3x3KernelAlign on Image YuTu1024.png have shown following results on Apple M1 Max. Other benchmarks have similar outcomes and don't vary much with different splitting sizes. (Neon instructions use 128-bit registers)

@SForeKeeper , thanks for reporting the issue!
Can you please specify the exact stride size used by you to generate the attached benchmark result.

Nice catch, @SForeKeeper !
This feature is called "auto-config", we want to detect the hardware at compile-time and give the proper configuration to the lowering passes. We are still in very early stages, as you can see, it only supports Intel processor detection now.
Feel free to send a PR to support the Apple Silicon (Arm Neon).

Can we close this issue now @SForeKeeper ?


GPU Instancing: Trees rotation/ z placement wrong

When usig GPU Instancing with model 'tree.glb' (see testfixtures tree.glb), the trees are rotated wrong:

Workaround: Set column Pitch to 1.57079632679
update traffic_signs_instances set pitch = 1.57079632679

Notice there is another issue about correcting the z values.
Workaround: Add about ?4? meter to z:
update traffic_signs_instances set geom1 = ST_translate(st_force3d(geom),0,0,4.0)

Trees are now placed correctly

Todo: Check formulas for rotation/z values

cannot reproduce now

Issue: The tree model has 5 nodes in defaultscene, the root node has a rotation but it's not taken into account.

won't fix now


Buffer Short packets if the handshake is not complete

From Receiving Out-of-Order Protected Packets in draft-ietf-quic-tls-32:

Received
packets protected with 1-RTT keys MAY be stored and later decrypted
and used once the handshake is complete.

Also in the case of 0-RTT:

A server could receive packets protected with 0-RTT keys prior to
receiving a TLS ClientHello.  The server MAY retain these packets for
later decryption in anticipation of receiving a ClientHello.

remove references in https://github.com/aws/s2n-quic/blob/ec6f50d3c185826aee4cbb1cb0c26315f6c3b7d3/quic/s2n-quic-transport/src/connection/connection_impl.rs#L1480 and close


Support the env where ROS is installed with "fat" archive

Official instruction for ROS installation guides there are two ways to install ROS env, Debian packages and "fat" archive.
https://docs.ros.org/en/foxy/Installation.html
Current implementation assumes that ROS is installed by Debian packages.
According to the Qiita article written by @kikuzo (thx!), we need to modify Makefile if ROS was installed with "fat" archive.
https://qiita.com/kikuzo/items/e15f2e4938a4dfa0512d#rclexをインストールする
https://github.com/rclex/rclex/blob/465ef83e870b25960204ecbe946ae2d050fe6689/Makefile#L1-L2

An idea to solve this issue:

we first check whether /opt/ros/${ROS_DISTRO} exists
If NO, seek LD_LIBRARY_PATH or PATH and  convert it to identify the location of "fat" archive.

Here is the investigation with rclex/rclex_docker:foxy-ex1.11.2-otp23.3.1 image.
<skip>
LC_ALL=C.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DEBIAN_FRONTEND=noninteractive
ROS_DISTRO=foxy
_=/usr/bin/env

root@d9cb37232059:/# . /opt/ros/foxy/setup.bash
<skip>
LD_LIBRARY_PATH=/opt/ros/foxy/opt/yaml_cpp_vendor/lib:/opt/ros/foxy/lib/x86_64-linux-gnu:/opt/ros/foxy/lib
ROS_LOCALHOST_ONLY=0
LC_ALL=C.UTF-8
PATH=/opt/ros/foxy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DEBIAN_FRONTEND=noninteractive
ROS_DISTRO=foxy
_=/usr/bin/env

At least, we need to explain the note for instruction how to install ROS env (e.g., assuming only Debian packages) to README.

I found a simpler way than the above. which ros2 returns the location of ROS 2 environment.


Can't install deconz 3.9

I can't install deconz. I'm running Hassio in kvm with Ubuntu server 18.04 as both guest and host.
Syslog:
Can't install homeassistant/amd64-addon-deconz:3.9 -> 404 Client Error: Not Found ("manifest for homeassistant/amd64-addon-deconz:3.9 not found: manifest unknown: manifest unknown"

I am seeing the same. I have verified traffic passes firewall. Hass.io running as VM on Unraid 6.7.2

19-12-06 03:03:22 INFO (SyncWorker_1) [hassio.docker.interface] Update image homeassistant/amd64-addon-deconz:3.8 to homeassistant/amd64-addon-deconz:3.9
19-12-06 03:03:22 INFO (SyncWorker_1) [hassio.docker.interface] Pull image homeassistant/amd64-addon-deconz tag 3.9.
19-12-06 03:03:22 ERROR (SyncWorker_1) [hassio.docker.interface] Can't install homeassistant/amd64-addon-deconz:3.9 -> 404 Client Error: Not Found ("manifest for homeassistant/amd64-addon-deconz:3.9 not found").

Same error here on my intel nuc running HASS.io
19-12-06 03:30:40 INFO (SyncWorker_17) [hassio.docker.interface] Update image homeassistant/amd64-addon-deconz:3.8 to homeassistant/amd64-addon-deconz:3.9 19-12-06 03:30:40 INFO (SyncWorker_17) [hassio.docker.interface] Pull image homeassistant/amd64-addon-deconz tag 3.9. 19-12-06 03:30:41 ERROR (SyncWorker_17) [hassio.docker.interface] Can't install homeassistant/amd64-addon-deconz:3.9 -> 404 Client Error: Not Found ("manifest for homeassistant/amd64-addon-deconz:3.9 not found").

We are looking into the issue. It seems the build has only partly succeeded causing the add-on update not to be available for all architectures.

Same problem on my VM Ubuntu 18.04.3 LTS on Unraid.

We have reverted the update for now. So 3.8 is now the latest until we have found the issues/fixed it from publishing while being broken.

Fixed, 3.9 is now available

Fixed, 3.9 is now available

Works for me, thanks!

Works, many thanks.


Menu on navigationbar

Hi,i want to add menu on navigationbar , how to work it out.
Or Parchment can't do it like that?
I'll be waiting for your reply.

Yeah this is definitely possible!
You basically need to move the collectionView into the navigation bar by setting the titleView property on the navigationItem, like this:
navigationItem.titleView = pagingViewController.collectionView

Then you need to set the frame of the title view. For example, if you always want it to be the same size as the navigation bar:
override func viewDidLayoutSubviews() {
  guard let navigationBar = navigationController?.navigationBar else { return }
  navigationItem.titleView?.frame = CGRect(origin: .zero, size: navigationBar.bounds.size)
}

You also need to update constraints of the PagingView, as the default implementation will setup some auto-layout constraints that will mess the collection view. Since you're putting the menu view inside the navigation bar we basically want to remove the layout constraints for the menu view and set the page view controller to extend the entire size. To do this you need to create you own PagingView subclass, and override setupConstraints:
class CustomPagingView: PagingView {
  override func setupConstraints() {
    pageView.translatesAutoresizingMaskIntoConstraints = false
    pageView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
    pageView.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
    pageView.topAnchor.constraint(equalTo: topAnchor).isActive = true
    pageView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
  }
}

Then create your own PagingViewController subclass and set your custom view:
class CustomPagingViewController: FixedPagingViewController {
  override func loadView() {
    view = CustomPagingView(
      pageView: pageViewController.view,
      collectionView: collectionView,
      options: options)
  }
}

I've also added a new navigation bar example you can take look at for the full implementation. Hope this works for you!

Thanks! It's very helpful.
I've solved my problem.
Thank you again.


Associate a file with a page without displaying

I should be able to associate a file with a page without being forced to display it on the page itself. This would be useful in situations that require displaying child page content/files on some kind of parent page (or something similar)

@cms_page.blocks.find_by_label('some_files_label').files is now @cms_page.blocks.find_by_identifier('some_files_label').files


Update cadence

For contributor use:

[x] Targeted PR against master branch
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the standards mentioned here.
[x] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[x] Added appropriate labels

Codecov Report

Merging #320 (a248620) into master (3460190) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #320   +/-   ##
=======================================
  Coverage   65.31%   65.31%
=======================================
  Files          21       21
  Lines        1975     1975
=======================================
  Hits         1290     1290
  Misses        564      564
  Partials      121      121

Flag
Coverage Δ

unittests
65.31% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Add rating system for website

Ratings are important part to know the views of users of our website and what all can be improved.
Please assign it to me under JWOC'24.
@Animesh606

Please assign it to me under JWOC'24
@Animesh606

don't think required

You have reopened the issue.Should i work on it?
@Animesh606

No no, I don't think the rating/feedback system required this time.
But I don't want to close this issue now.
Let's hold this issue for phase 2

okay sure..thank you


Native classes controllers not working

There is an issue with native class controllers in Chrome. Controller like this:
alight.ctrl.test = class {
    constructor() {;
        this.value = 1;
    }
};

and html like this:

could not be initialised due to new error:
Error in controller: test Class constructor  cannot be invoked without 'new' Object {name: "test", env: Object, scope: d, element: div} TypeError: Class constructor  cannot be invoked without 'new'

Wow... I didn't expect to see some bad limitations in native classes:

impossible to call constructor (not class) without new, so impossible to use old way to create controller
impossible use "this" in constructor before super, so Scope functions ($watch, $scan) will not work in constructor, (because they should be prepared for this)

so, probably proper way to inherit it from some class Controller
class Main extends alight.Controller {
  constructor(option) {
    super(option);
    this.name = 'Hello!';
  }
};

Also I want to try some trick with temporary "this" for scope functions, maybe it will works...

I think it would be proper way to instantiate controllers with new always.

Yes, but in this case, it's impossible to pass scope as first arguments into constructor, like it works now - broken compatibility. or "this" will not have system functions like "$watch/scan"

in this case the better way is to use alight.Controller. As I see Scope interface is changed in v0.14 and it is not backward compatible.

I think that controller could looks like that:
class Controller {
    constructor(scope, el, expr, env) {
        this.$scope = scope;
        this.$el = el;
        this.$env = env;
        this.$expr = expr;

        this.$init();

        scope.$watch('$destroy', this.$destroy.bind(this));
    }

    $init() {

    }

    $destroy() {

    }
}

And I think that scope should not be mixed in controller. I'd prefer to assign controller to $this scope's property.


Incorrect calculation of Scroll Height, y always 0 in onLayOut function

Need to find another way of measuring the the y offset that also keeps updating as other components above do

fixed by (https://github.com/jrans/react-native-smart-scroll-view/commit/ab57d60cf96467dc77ae204016c3e0d28e0dc96e)


Collected Nits

collected nits over the last months ...

code remove is split out to #797 ...

Codecov Report

Merging #796 (e3c1655) into master (ecc2539) will decrease coverage by 3.11%.
The diff coverage is 100.00%.

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

@@            Coverage Diff             @@
##           master     #796      +/-   ##
==========================================
- Coverage   55.27%   52.16%   -3.12%
==========================================
  Files          78       86       +8
  Lines        5610     5956     +346
==========================================
+ Hits         3101     3107       +6
- Misses       2331     2676     +345
+ Partials      178      173       -5

Impacted Files
Coverage Δ

server/shared/procBuilder.go
86.24% <100.00%> (+0.05%)
:arrow_up:

server/store/datastore/build.go
77.65% <100.00%> (+0.48%)
:arrow_up:

server/remote/gitlab/gitlab.go
27.02% <0.00%> (-0.07%)
:arrow_down:

server/remote/bitbucketserver/bitbucketserver.go
0.00% <0.00%> (ø)

server/remote/common/utils.go

server/remote/common/status.go

server/plugins/secrets/builtin.go
0.00% <0.00%> (ø)

server/router/middleware/session/repo.go
0.00% <0.00%> (ø)

server/plugins/registry/filesystem.go
0.00% <0.00%> (ø)

server/plugins/registry/db.go
0.00% <0.00%> (ø)

... and 10 more

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 ecc2539...22283bb. Read the comment docs.

hmm well that's the only commit thing left at this "parking log"
so we could just open issues for the to do and close it


MILLIS_TO_TIMESTAMP function discards the millisecond part

When calling MILLIS_TO_TIMESTAMP any milliseconds do not appear in the produced timestamp. The produced timestamp always has .000 for milliseconds.
Affected Version
0.23.0
Description
To reproduce this issue run the following SQL:
SELECT MILLIS_TO_TIMESTAMP(1670325506528) AS my_timestamp

The output is:
my_timestamp
2022-12-06T11:18:26.000Z

I expected the output to be:
my_timestamp
2022-12-06T11:18:26.528Z

@abhishekagarwal87 are there plans to fix this bug?

I tested this out on the latest master, and it is producing the expected result. I am on the latest master branch. Can you please check if upgrading to the newest version 25.0.0 resolves this bug?

Thank you @LakshSingla for verifying.

Sorry about writing in this closed thread.
Did this also fix the problem that I can see in my Druid instance when SELECT TIME_PARSE('2023-10-19T09:29:58.613Z') results in 2023-10-19T09:29:58.000Z cutting off the milliseconds part (I run this in Druid's web UI)? I expect the result to be 2023-10-19T09:29:58.613 keeping the milliseconds and not cutting them off.
Also filtering like WHERE __time >= '2023-10-19T09:29:58.613Z' returns records with timestamps above 09:29:58.000 but below 09:29:58.613 for me which seems to be related to the TIME_PARSE problem.

Turns out it was a bug and it was fixed. I installed version 27.0.0 locally and TIME_PARSE returns milliseconds now and filtering seems to account for milliseconds as well.


Add cache to ForestToParseTree

This PR adds a cache to ForestToParseTree to save the results of some node transformations. Correct me if I'm wrong, but the reuse of subtrees should not be problematic as Lark's parse trees are actually DAGs. The cache can provide significant performance benefits for ambiguous parses with ambiguity='explicit'.
Here is a script that can be run with and without the cache to highlight the difference in runtimes:
from lark import Lark

grammar = r"""
start: (string | string2)+
string: /\w+/
string2: /\w+/
"""

p = Lark(grammar, ambiguity='explicit', lexer='dynamic_complete')
p.parse('abcdefghijk')

For me, the above code runs around 16 times faster with the cache (1 second vs. 16 seconds).

While they are DAGs, and therefor there is no infinite loop, the fact that they are shared and mutable, does mean that modifying one branch of the ambiguity might have effects everywhere else. We have a few options:

Leave as is, and just say 'you aren't supposed to modify the resulting Tree'. This is a potentially breaking change
Give the end user the option to disable caching. This ofcourse loses the performance benefit
Add a 'true_copy' method to the Tree class, that makes sure that there are no shared Trees (neither .copy() nor deepcopy() work)
Make sure to copy the trees when using them from cache. For that we still need true_copy (I think. Maybe deppcopy is enough)

Right, I see the potential challenges. After thinking through the various options, my suggestions are:

Disable caching by default, but give the user an option to enable it with warnings in the docs.
Only use caching when ambiguity='explicit' and make a copy of the parse tree before returning it to the user. I think a deep copy may be achieved with Transformer().transform(tree).

Tbh, I'm not sure that it's such a big deal. No where in Lark does it say that trees are all unique objects.
At the same time, I can see how it might end up confusing users who change the tree in-place.
@chanicpanic, Is there any use for this outside of ambiguity='explicit'? If not, maybe we can add a new value, ambiguity='explicit_shared' ?
Fwiw, I think most users would prefer performance over the hazard of shared trees.

Is this caching relevant when ambiguity!='explicit'? If it brings a performance benefit, I would be against disabling it.

Only use caching when ambiguity='explicit' and make a copy of the parse tree before returning it to the user. I think a deep copy may be achieved with Transformer().transform(tree).

After thinking about it a bit more, I would say this: Default behavior should be to not copy to save memory, but emit a warning when debug=True telling the user that they can easily make a copy with <insert new function name> (or with Transformer().transform, but that feels a bit weird for me), when they need to modify it. I would assume that most of the time they don't need to modify it, and they will just appreciate the speed up and memory down.

@erezsh Off the top of my head, I cannot think of a situation in which caching with ambiguity!='explicit' would provide any notable performance benefit. Explicit ambiguity benefits because it can reuse common subtrees across different derivations, but ambiguity='resolve' does not as it only produces a single derivation.
I like the idea of ambiguity='explicit_shared'.
@MegaIng I agree, it may not be worthwhile to copy the tree by default. Also, I figure that most users who want to modify the tree would be using a custom subclass of Transformer which would not modify the tree in-place.

Also, I figure that most users who want to modify the tree would be using a custom subclass of Transformer which would not modify the tree in-place

Unless they use Transformer_InPlace, which still has a decent chances of not breaking, since it already correctly visits duplicate Trees only once.

@chanicpanic @MegaIng I'm planning to merge it in this week, but keep the cache off by default, for now.
Any objections?

@erezsh Wasn't the current consensus of this discussion that while the cache might in theory break stuff, we couldn't really find a situation where it is a big problem that can't be resolved easily? I would actual suggest keeping cache on by default and therefore making a very minor breaking change. The speedup is worth it.

Alright. Let's do it then. I'll just make a mental note that the next version should be 0.12 (if not 1!)


Multiple Subscribers to a Specific Message from One Publisher

Hey guys.
Was really looking for some guidance on this one.
My current setup is 4 visual studio projects. 1 Publisher. 2 Subscribers. And 1 for Messages.
Subscribers are being run as windows services.
Let's say I publish 10 messages. Half of them get picked up by Subscriber1, and the other half by Subscriber2.
This is obviously not desired, as I want each message I send from the publisher to be received by BOTH Subscribers. I am not sure how to configure that to work, using the JustSaying Syntax.
I will past my code for each handler below. If anyone can provide some advice, I would greatly appreciate it.
//Subscriber1
public class Service
{
public void Start()
{
//create instance of bus for this endpoint
CreateMeABus.DefaultClientFactory = () =>
new DefaultAwsClientFactory(new BasicAWSCredentials("blahblah", "blahblah"));
        CreateMeABus.InRegion(Amazon.RegionEndpoint.USEast1.SystemName)
       .WithSqsTopicSubscriber("OrderCreate")
       .IntoQueue("MessageQueue")
       .WithMessageHandler<OrderCreate>(new OrderCreateHandler())
       .StartListening();
    }

    public void Stop()
    {

    }
}

public class OrderCreateHandler : IHandler<OrderCreate>
{
    public bool Handle(OrderCreate message)
    {
        //business logic
        Console.WriteLine("RECEIVED Message: " + message);

        return true;
    }
}

//Subscriber2
public class Service
{
    public void Start()
    {
        //create instance of bus for this endpoint
        CreateMeABus.DefaultClientFactory = () =>
            new DefaultAwsClientFactory(new BasicAWSCredentials("blahblah", "blahblah"));

        CreateMeABus.InRegion(Amazon.RegionEndpoint.USEast1.SystemName)
       .WithSqsTopicSubscriber("OrderCreate")
       .IntoQueue("MessageQueue")
       .WithMessageHandler<OrderCreate>(new OrderCreateHandler())
       .StartListening();
    }

    public void Stop()
    {

    }
}

public class OrderCreateHandler : IHandler<OrderCreate>
{
    public bool Handle(OrderCreate message)
    {
        //business logic
        Console.WriteLine("RECEIVED Message: " + message);

        return true;
    }
}

In Amazon SNS, I only see one subscription. I believe that's an issue, but I also believe the JustSaying C# code should be taking care of generating the necessary plumbing in Amazon SNS/SQS for me... I just am not sure what that syntax is.
Thanks again for helping.

You need to be aware of the difference between a SNS topic and an SQS queue. For this scenario, you want one SNS topic, with two SQS queues attached to it. Both queues will then receive a copy of the message.
it might be enough for you to alter your subcribers to do .IntoQueue("MessageQueue_1") and .IntoQueue("MessageQueue_2") or any other two different queue names.

In addition to what @AnthonySteele has said, another option is to use your own INamingStrategy (here is the default: https://github.com/justeat/JustSaying/blob/master/JustSaying/DefaultNamingStrategy.cs) then you can model the SQS queue names to fit however you need it to, for example a different queue name per project, we do a similar thing at JUST EAT. The end result will be the same, 1 topic -> 2 queues, which is what you are after.

Thank you gentlemen. This helped me a lot.


can you make it work with auto dark mode?

can you make it work with auto dark mode?
when light switch to default light
when dark switch to default dark
always incognito purple

Hey, @yazan1107. I'll take a look but i don't think this is something available for custom themes. Do you know any custom theme that have this working?

Hey, @yazan1107. I'll take a look but i don't think this is something available for custom themes. Do you know any custom theme that have this working?

not really, dark reader is not a theme but works per system theme(u can check it out)!

I took a look at this issue, but I'm afraid it is not currently possible to make this work with custom themes. Themes are very basic kind of extensions that do not allow this kind of control like dark reader. 😕

I took a look at this issue, but I'm afraid it is not currently possible to make this work with custom themes. Themes are very basic kind of extensions that do not allow this kind of control like dark reader. 😕

is there an option to make incognito border theme only?


Correct #6530 Issue on unintended editor input after game crashes.

Grabbed focus from the editor in popup() when user press play, so no unintended inputs will affect the editor after a game crashes.

Just a git tip: in your commit log, it's better to mention what you're actually fixing and not just to say that this commit fixes something :)
This would have been better:
Prevent unwanted script editor input on game crash

Fixes #6530.

My bad, I'm still a PR newbie, haha. Next time I'll be more descriptive on my commits.


Fix timer running in solution mode

https://github.com/otacke/h5p-game-map/commit/fa3719e3a453af16d3cecfac1d01a63570728306


1.21 support

Feature description
Hello, I found that it seems that this project does not support version 1.21 yet. Is there an estimated time for upgrading this project to 1.21?
Relevant issues
No response

Resolved in 92639d8c2c3ef6d92048515e7311baf1d457077e


peaks in ram usage

hello guys,
you should definetley check your code against the k-shape implementation from tslearn.
your code has very high peaks in ram usage for k > 4; m = 56; n = 5,000,000.
(n is the number of time series, k is the number of clusters, and m is the length of the time series; from the original paper)
It goes up to 196 gigabyte of ram usage. The tslearn-implementation only uses up to 7 gigabyte (like your implementation) but it does not have the peaks. Your solution builds up a peak and then goes down rapidly.
at least put a link to the tslearn project in your readme-file.
https://github.com/rtavenar/tslearn/blob/master/tslearn/clustering.py#L597
thanks for your implementation though. At least you tried and open sourced it. Thanks for that =)

Thanks for pointing this out. We believe this issue got resolved with our recent update.


soc: atmel: sam: Add invalidate d-cache at z_arm_platform_init

Before that fix, the SOC was unable to boot properly. Starting turned directly into z_arm_usage_fault().
Fixes #73485
Signed-off-by: Sven Ginka<EMAIL_ADDRESS>(cherry picked from commit c3d7b1c978f8b462dcbdda998dbaefa981b3d089)

Missed this was a backport to 3.6, dropped the 3.7 milestone

Hi @tswaehn! Thank you for submitting this. However, it is preferred to just use set/request the Backport v3.6-branch label on the PR introducing the relevant change to main, as that automates everything.
I have just added that label to https://github.com/zephyrproject-rtos/zephyr/pull/73605 which caused the bot to open https://github.com/zephyrproject-rtos/zephyr/pull/74036. Let's close this one in favour of that.

Thank you.


Set the Programmed condition in the KongUpstreamPolicy ancestor status

Is there an existing issue for this?

[X] I have searched the existing issues

Problem Statement
https://github.com/Kong/kubernetes-ingress-controller/issues/4932 aims at introducing the Accepted condition in the KongUpstreamPolicy object status. This issue is about adding the ancestor's programmed condition, which should be set after the clients push the configuration affected by the KongUpstreamPolicy to the dataplane.
Proposed Solution
When the client pushes a Service affected by a KongUpstreamPolicy, such an event is bubbled up to the controller, and the controller properly sets the ancestor's Programmed condition to True or False depending on the push outcome.
Additional information
No response
Acceptance Criteria

[ ] When a Service affected by a KongUpstreamPolicy is pushed, the ancestor status in the KongUpstreamPolicy gets updated according to the outcome of the push action.

Blocked by #4932

No longer blocked - #4932 is done


Add pipeline versions table, refactor pipelines table and pipelines selector

JIRA:
https://issues.redhat.com/browse/RHOAIENG-263
https://issues.redhat.com/browse/RHOAIENG-264
Description

The PR did the following things:

Refactor the global pipelines table, and change it to bulk selection, change the columns to get the versions number and updated date (the latest version date)

Add the pipeline versions table to the expandable section in the row of the pipeline, when it's more than 10 versions, you can click on the View More button to load more versions, you can also sort the versions by name and create time.

NOTE: The view run Button link is not implemented yet, needs to be addressed when refactoring the pipeline runs page.

Refactor the pipeline and pipeline version selector to make it also use the server-side filtering and sorting to keep the behavior aligned with what we have now.

How Has This Been Tested?

Go to the global pipelines page
Try to expand the pipelines to see the pipeline versions
Click on the version should be able to navigate you to the version details page
Try to upload new versions to the pipelines
Try to create more than 10 pipeline versions under a pipeline to test the view more function
Try to sort the pipelines table and the pipeline versions table
Try to delete all the versions in one pipeline to check this state

Play around with the pipeline selectors, it should have better filtering and sorting now

Test Impact

Update the test cases for the pipeline selector. Didn't create new tests, because it makes more sense to use e2e tests for this.
Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

If you have UI changes:

[x] Included any necessary screenshots or gifs if it was a UI change.
[x] Included tags to the UX team if it was a UI/UX change (find relevant UX in the SMEs section).

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

@yannnz Could you check the UI on this page?

Tested this locally, and functionally it seems fine. I think some of these newly created hooks/functions, especially some of the complicated ones should have some unit testing, ideally before merging, but otherwise tracked in a separate ticket as a fast-follow.

RHOAIENG-1124 for adding tests.

/lgtm
/approve


[ISSUE] Azure CLI auth makes 3 unnecessary invocations to az CLI when user principal is used

When authenticating entire machine via az, we use user-principals (most of the times). Getting token for https://management.core.windows.net/ is only required for service principals.
2023/10/17 11:39:10 [INFO] Refreshed OAuth token for 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d from Azure CLI, which expires on 2023-10-17 12:34:58.000000
2023/10/17 11:39:10 [INFO] Using Azure CLI authentication with AAD tokens
2023/10/17 11:39:14 [INFO] Refreshed OAuth token for https://management.core.windows.net/ from Azure CLI, which expires on 2023-10-17 12:34:47.000000
2023/10/17 11:39:14 [INFO] Refreshed OAuth token for 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d from Azure CLI, which expires on 2023-10-17 12:34:58.000000
2023/10/17 11:39:14 [INFO] Refreshed OAuth token for https://management.core.windows.net/ from Azure CLI, which expires on 2023-10-17 12:34:47.000000

@mgyucht CLI subprocess takes 700ms per call (because az is in Python), slowing down an app.


Move ion and neutral_atoms packages under devices

Move ion and neutral_atoms packages under cirq.devices.
Fixes #2793.
Part of #3228 and #3245.

Okay for the part concerning Pasqal!

Thanks @HGSilveri!

The new plan is to move these out to the vendors that use them. Closing.


Module 2 JavaScript capstone project - The Resturant -  Asynchronous API-based webapp

In this project, we developed a restaurant menu website by fetching data from the mealsDB API that helped populate data into our application.
We also used the involvement API that we could get and post data based on the unique id's from the mealsDB API
we used the API to perform the following functionalities.

Get a list of items with a unique item id (or generate the unique id).
For a given item, get detailed information about it.

Menu page
When the page loads, the webapp retrieves data from:

The mealsDB AI API and shows the list of items on screen.
The Involvement API to show the item likes.
When the user clicks on the Like button of an item, the interaction is recorded in the Involvement API and the screen is updated.
When the user clicks on the "Comments" button, the Comments popup appears.
When the popup loads, the webapp retrieves data from:
The mealsDB API and shows details about the selected item.
The Involvement API to show the item comments.
When the user clicks on the "Comment" button, the data is recorded in the Involvement API and the screen is updated.

@amejid noted


API methods

Is there any possibility to call queryBuilder methods such as addFilter() using the builder object?
Trying to do something like this:
ctrl.ruleEditor = {
                options: {
                    ...
                },
                builder: {}
            };

ctrl.ruleEditor.builder.addFilter(...);

This functionality is possible as an environmental factor affected my test earlier. Closing.


Init Error: Missing Instance ID Service

After init, using the same as the example (just changing senderID, it get in push.on('error',  showing this error:

MISSING_INSTANCEID_SERVICE

Using Mac, with android emulator level 19 , with all pkgs installed in sdk and almost all extras (all required in readme)
Any ideas?

When creating your emulator image, instead of specifying
target="Android 4.4.2",
select
target="Google APIs (Google Inc.) - API Level 19"
so that it will have all Google Play Services available, which are needed to run this plugin.
I'll close this, but please re-open it if, after recreating your emulator, the issue still persists.

yeah thats true.. i was already stucked in a new bug  "Empty registration ID received from GCM"..

+1 Issue was using a simulator

how i resolve this error "MISSING_INSTANCE_ID".


dattcore: Peers: Set up listeners so CorePeers will know when a message is received, etc.

Closed by https://github.com/dattnetwork/datt/commit/c8aeebd33a98e0c8b9c4b2403bb2cc653d06223c


build failed- trouble unpacking the file

Thanks, Eli! I tried a harvest of this archive in the archive manager and it hit a snag at the "unpack" stage. The logs (hover over the pink block in the progress chart) say something about having trouble recognizing the zip file.
http://archive.effechecka.org/job/reeflifesurvey/
@jhpoelen may have wisdom to share about this archive.

part of email I received from @eliagbayani earlier:
[...]
Anyway, I updated the archiveUrl of the Jenkinsfile here:

https://github.com/gimmefreshdata/source-reeflifesurvey

Will that work, even if it points to a .tar.gz file instead of a zip file?
[...]

and my reply:
[...]
tar.gz files are currently not supported, but you can add support by modifying https://github.com/gimmefreshdata/archive-importer/blob/master/archives.groovy .

If is it easy to use zip, please do. If not, let me know if you need any help updating the groovy script used for importing the archive.
[...]