[Bug]: AttributeError: 'NoneType' object has no attribute 'copy'

Bug Description
We did the following steps

We have a text file, created embeddings using "api.openai.com"
We have created an index in pinecone
We have used pinecone upsert to create vectors in pinecone

We have done all the above steps offline, outside llama
Now,
We have created a py file to query a question using llama with below content
pinecone.init(api_key=api_key, environment=environment)
pinecone_index = pinecone.Index("testindex")
print(pinecone_index.describe_index_stats())

vector_store = PineconeVectorStore(pinecone_index=pinecone_index)
index = VectorStoreIndex.from_vector_store(vector_store=vector_store)

#query_engine = index.as_query_engine()
#Init query engine like this if you want to use filters
query_engine = index.as_query_engine(
    similarity_top_k=3,
    vector_store_query_mode="default"
)
res = query_engine.query("movie inception?")

We got the below error on running above mentioned llama-app.py code
Traceback (most recent call last):
  File "/vscode-workspace/chatgpt/llama-app.py", line 36, in <module>
    res = query_engine.query("who directed movie inception?")
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/indices/query/base.py", line 23, in query
    response = self._query(str_or_query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/query_engine/retriever_query_engine.py", line 147, in _query
    nodes = self.retrieve(query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/query_engine/retriever_query_engine.py", line 107, in retrieve
    nodes = self._retriever.retrieve(query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/indices/base_retriever.py", line 21, in retrieve
    return self._retrieve(str_or_query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/indices/vector_store/retrievers/retriever.py", line 85, in _retrieve
    query_result = self._vector_store.query(query, **self._kwargs)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/vector_stores/pinecone.py", line 298, in query
    metadata, node_info, relationships = legacy_metadata_dict_to_node(
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/vector_stores/utils.py", line 72, in legacy_metadata_dict_to_node
    metadata = metadata.copy()
AttributeError: 'NoneType' object has no attribute 'copy'

On enabling debugging logs, we got the following
DEBUG:llama_index.vector_stores.pinecone:Failed to parse Node metadata, fallback to legacy logic.
Failed to parse Node metadata, fallback to legacy logic.

Version
0.7.8
Steps to Reproduce
Pinecone index has been updated offline using openai embeddings API and pinecone upsert API
Trying to do a basic search via llama.
We have followed the steps mentioned in the below documentation URL.
https://gpt-index.readthedocs.io/en/latest/core_modules/data_modules/index/vector_store_guide.html#connect-to-external-vector-stores-with-existing-embeddings
Relevant Logs/Tracbacks
Traceback (most recent call last):
  File "/vscode-workspace/chatgpt/llama-app.py", line 36, in <module>
    res = query_engine.query("who directed movie inception?")
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/indices/query/base.py", line 23, in query
    response = self._query(str_or_query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/query_engine/retriever_query_engine.py", line 147, in _query
    nodes = self.retrieve(query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/query_engine/retriever_query_engine.py", line 107, in retrieve
    nodes = self._retriever.retrieve(query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/indices/base_retriever.py", line 21, in retrieve
    return self._retrieve(str_or_query_bundle)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/indices/vector_store/retrievers/retriever.py", line 85, in _retrieve
    query_result = self._vector_store.query(query, **self._kwargs)
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/vector_stores/pinecone.py", line 298, in query
    metadata, node_info, relationships = legacy_metadata_dict_to_node(
  File "/vscode-workspace/chatgpt/venv/lib/python3.9/site-packages/llama_index/vector_stores/utils.py", line 72, in legacy_metadata_dict_to_node
    metadata = metadata.copy()
AttributeError: 'NoneType' object has no attribute 'copy'

On enabling debugging logs, we got the following

DEBUG:llama_index.vector_stores.pinecone:Failed to parse Node metadata, fallback to legacy logic.
Failed to parse Node metadata, fallback to legacy logic.

Yea this is a small bug in our legacy code path, fixing now!
https://github.com/jerryjliu/llama_index/pull/6912


possible bug in cupyx sparse matrix transpose/multiplication

Hello cupy(x) developers,
I would like to report what looks like a bug in the cupyx sparse matrix library. I am running on a Skylake cpu and a Tesla V100 gpu on a SUSE-ish Linux system. CuPy version: 6.0.0. CUDA version 10.1.168. I am running inside a conda environment which you can find in my requirements.txt file:
requirements.txt
Here is a reproducer in which I am trying to compare the same operations on the cpu and gpu and checking at every step that they are the same. Finally in the last step the np.allclose() check fails. The iCov_max_diff value is much larger than machine precision which suggests there is a bug.
import numpy as np
import scipy.sparse
import cupy as cp
import cupyx as cpx

m = n = 1000

np.random.seed(1)

#create random data to use in W
random_data = np.random.random(m)

#create A random sparse matrix
A_cpu = scipy.sparse.random(m, n, format='csr', random_state=42)
A_gpu = cpx.scipy.sparse.csr_matrix(A_cpu)
#yank gpu back and compare
A_yank = A_gpu.get()
assert np.allclose(A_cpu.todense(),A_yank.todense())

#create W random sparse matrix
W_cpu = scipy.sparse.spdiags(data=random_data, diags=[0,], m=m, n=n)
W_gpu = cpx.scipy.sparse.spdiags(data=random_data, diags=[0,], m=m, n=n)
#yank gpu back and compare
W_yank = W_gpu.get()
assert np.allclose(W_cpu.todense(),W_yank.todense())

#see how the dot products go
W_dot_A_cpu = W_cpu.dot(A_cpu)
W_dot_A_gpu = W_gpu.dot(A_gpu)
#yank gpu back and compare
W_dot_A_yank = W_dot_A_gpu.get()
assert np.allclose(W_dot_A_cpu.todense(), W_dot_A_yank.todense())

#check the transpose
A_trans_cpu = A_cpu.T
A_trans_gpu = A_gpu.T
#yank gpu back and compare
A_trans_yank = A_trans_gpu.get() #use get bc its a sparse object
assert np.allclose(A_trans_cpu.todense(), A_trans_yank.todense())

#okay now inverse covariance (where things go wrong)
iCov_cpu = A_cpu.T.dot(W_dot_A_cpu)
iCov_gpu = A_gpu.T.dot(W_dot_A_gpu)
#yank gpu back and compare
iCov_yank = iCov_gpu.get()

iCov_diff = iCov_cpu.todense() - iCov_yank.todense()
max_iCov_diff = np.max(iCov_diff)
print("max iCov diff")
print(max_iCov_diff)

assert np.allclose(iCov_cpu.todense(), iCov_yank.todense()) #fails for large matrix sizes

If there is more information I can provide please let me know. Of course if I am doing something wrong I would also be happy for your feedback about how to do this correctly.
Thank you very much for your help,
Laurie

I identified that the issues comes from sum_duplicates(), which is called to convert the sparse matrix to canonical format before csrgemm here: https://github.com/cupy/cupy/blob/master/cupyx/scipy/sparse/csr.py#L98
Indeed, by computing sum_duplicates of A_trans_cpu on CPU and then only copying the transposed matrix (in canonical format) to GPU, the assert is successful.

Thank you for the information, this is helpful to know. Thank you for your work on this.

I got the same issue. Basically A_gpu.dot(A_gpu.T) provides the wrong result when A_gpu is a cupy csr matrix in GPU.
I have seen this since cupy 5.x but didn't get a chance to report. For now, I mitigate this by sending A and A.T(done in CPU) separately to GPU, then doing dot in GPU gives the correct result. But this is very problematic behavior because a numerical error in such basic linear algebra can be unexpected and hard to debug.

Hi @MQQ. Could you try with the patch I pushed to this MR https://github.com/cupy/cupy/pull/2410? It fixes this issue for @lastephey MVE above, and my other experiments. Please let me know if the patch doesn't work!

@econtal I manually applied your patch on cupy 6.2.0 with cuda 10.0, and the dot product result looks good. Thanks a lot for fixing this!
Personally, I would like to suggest explicitly add a test case for the transposed dot product. But I am not really familiar with the cupy test setup, so I will leave it to the cupy maintainers to decide.

I confirm the manual patch fixes things for me also using cupy 6.0.0 and cuda 10.1. Thanks again!

the patch #2410 works great, thank you! the results look good.
perhaps I am doing something else wrong, but it seems  that the matrix gets sorted again (calling coosort.py modified in #2410) the first time you do an SpMV after conversion to csr format;  the matrix is already sorted and sorting takes a lot of time and shouldn't be repeated. I tried with the csc format but  every  time I used it (multiplying a vector on the right), it kept calling coosort every time, so that was even worse.
I suspect this issue has something to do with '_has_canonical_format'  not being set even after calling coosort.   There are several places where to set this flag, and I am not sure if the following is the best place, anyway I was focusing on csr and modified the last 3 lines in cupyx/scipy/sparse/coo.py 'tocsr' function as described below and got  better performance for my problem (SpMV with a csr matrix ), >100x speedup on the first iteration.
I hope it helps.
CuPy : 6.3.0
CUDA  : 10000
4.4.0-154-generic #181-Ubuntu  x86_64 x86_64 x86_64
def tocsr(self, copy=False):
    """Converts the matrix to Compressed Sparse Row format.

    Args:
        copy (bool): If ``False``, it shares data arrays as much as
            possible. Actually this option is ignored because all
            arrays in a matrix cannot be shared in coo to csr conversion.

    Returns:
        cupyx.scipy.sparse.csr_matrix: Converted matrix.

    """
    if self.nnz == 0:
        return csr.csr_matrix(self.shape, dtype=self.dtype)
    self.sum_duplicates()
    # copy is ignored because coosort method breaks an original.
    x = self.copy()
    cusparse.coosort(x)
    #return cusparse.coo2csr(x)
    x=cusparse.coo2csr(x)
    x._has_canonical_format=True
    return x

Hi @smarchesini. The optimization looks great, thanks!
Do you have evidence that the CSR matrix always has canonical format after coo2csr is called? The doc for the Cuda function is here https://docs.nvidia.com/cuda/cusparse/index.html#coo2csr. They don't mention it, but I believe Cuda's functions always work on data with canonical format only.

Hi @econtal, I think so,  following the definition in there coo2csr, this function converts the array containing the uncompressed row indices (corresponding to COO format) into an array of compressed row pointers (corresponding to CSR format). In the cuda definition: "Sparse matrices in CSR format are assumed to be stored in row-major CSR format, in other words, the index arrays are first sorted by row indices and then within the same row by column indices. It is assumed that each pair of row and column indices appears only once."
Anyway, I made some tests using the code attached generating a random (1M by 1M) matrix with 0.1G non-zeros with duplicates, computing the same thing in different ways, for one thing the results are within numerical precision with the CPU implementation and each other, but the timing is also interesting:
-without the modification time cupy left multiply (1st time): 3.2422685334458947
-with      the modification time cupy left multiply (1st time): 0.013027168810367584
besides, performing the same computation, either as (S*x) (left-multiply) or (xT*ST).T (right multiply),  where S is in csr and ST in csc, on GPU and CPU, can change speed quite dramatically:
-time cupy rm (1st and 2nd time): 9.59,   9.11
-time cupy lm (1st and 2nd time): 3.24,    0.00015796
with modified code:
-time cupy lm (1st and 2nd time): 0.01377, 0.0001685973
for reference (single threaded scipy),
-time scipy lm: 0.31812871247529984 (rm) 0.23080338444560766

sparse_test.py.txt


feat: add lint:fix in CI

This PR adds lint:fix job that can be triggered via ci:lint label.
/claim #505

@neo773 the CI doesn't seem to be fixing the lint issues. Can you have a look

@tusharmath
Had a successful run here https://github.com/neo773/tailcall/pull/10
I think the PR needs to be merged first so it has the proper permissions.

@tusharmath, you'll likely need to change the repo settings.
look at this comment on JamesIves/github-pages-deploy-action#1110; you'll need to give read and write on workflow permissions


Allways Error: value for items is missing

Hi community.
I'm dealing with this issue, i don't know if i'm doing something wrong, but every time i call logEvent with "items" property i get an error saying "value for items is missing"
this is my implementation
FirebaseAnalytics.logEvent({
      name: "product_click", params: {
        content_type: "page_view",
        item_id: producto.id,
        item_name: producto.nombre,
        comerce_id: producto.comercio,
        source: "selections",
        items: [{
          tipo: "producto",
          nombre: producto.nombre,
          id: producto.id
        }],
      }
    });

i see the error occurs in FirebaseAnalytics.java line 149 since in mi implementation "Item" is not an String, Integer, Doble en so on.
while (keys.hasNext()) {
            String key = keys.next();
            Object value = params.get(key);

            if (value instanceof String) {
              bundle.putString(key, (String) value);
            } else if (value instanceof Integer) {
              bundle.putInt(key, (Integer) value);
            } else if (value instanceof Double) {
              bundle.putDouble(key, (Double) value);
            } else if (value instanceof Long) {
              bundle.putLong(key, (Long) value);
            } else {
              call.reject("value for " + key + " is missing");
            }
          }

I need help, thanks in advance.

Hi,
It seems that @Mathyn has already solve this issue. I hope he creates a Pull request to the project so we can all get profit of it.
https://github.com/capacitor-community/firebase-analytics/compare/master...Mathyn:master

@ausias-armesto I did start working on trying to add support for arrays of objects however I did not test it enough and an iOS implementation is missing (unless iOS does already support objects).

Hi there, any update on this one @priyankpat?

Hi there, add JSONArray condition for e-commerce.
Go to FirebaseAnalytics.java;
node_modules\@capacitor-community\firebase-
analytics\android\src\main\java\com\getcapacitor\community\firebaseanalytics\FirebaseAnalytics.java

After then add this imports.
import org.json.JSONObject;
import org.json.JSONArray;
import java.util.ArrayList;

and find a logEvent function in FirebaseAnalytics.java
you should to add 1 more if else condition for value instanceof JSONArray.
this is my code
    while (keys.hasNext()) {
      String key = keys.next();
      Object value = params.get(key);
      if (value instanceof String) {
        bundle.putString(key, (String) value);
      } else if (value instanceof Integer) {
        bundle.putInt(key, (Integer) value);
      } else if (value instanceof Double) {
        bundle.putDouble(key, (Double) value);
      } else if (value instanceof Long) {
        bundle.putLong(key, (Long) value);
      } else if (value instanceof JSONArray) { //add this condition for items

        JSONArray items = (JSONArray) value;
        ArrayList itemBundleList = new ArrayList();

        for (int i = 0; i < items.length(); i++) {
          Bundle itemBundle = new Bundle();
          JSONObject itemParams = items.getJSONObject(i);
          Iterator<String> itemKeys = itemParams.keys();

          while (itemKeys.hasNext()) {
            String itemKey = itemKeys.next();
            Object itemValue = itemParams.get(itemKey);
            if (itemValue instanceof String) {
              itemBundle.putString(itemKey, (String) itemValue);
            } else if (itemValue instanceof Integer) {
              itemBundle.putInt(itemKey, (Integer) itemValue);
            } else if (itemValue instanceof Double) {
              itemBundle.putDouble(itemKey, (Double) itemValue);
            } else if (itemValue instanceof Long) {
              itemBundle.putLong(itemKey, (Long) itemValue);
            }
          }

          itemBundleList.add(itemBundle);
        }

        bundle.putParcelableArrayList(key, itemBundleList);
      } else {
        call.reject("value for " + key + " is missing");
      }
    }

You can check this docs for more information.

https://firebase.google.com/docs/android/setup#available-libraries
(android/app/build.gradle)
implementation platform('com.google.firebase:firebase-bom:26.4.0')
implementation 'com.google.firebase:firebase-analytics'

https://developers.google.com/tag-manager/android/v5/enhanced-ecommerce
You can check out of VIEW_ITEM or VIEW_ITEM_LIST for how can you send items/products with android bundle.

Also you can check out of this docs for more information.
https://developers.google.com/analytics/devguides/collection/ga4/ecommerce
https://firebase.google.com/docs/analytics/measure-ecommerce#java

@yunusfillik this seems related to the issue we just were working on in IOS - is this still broken for you?

Hi. Still exists for 0.3.3.
this.analyticsService.logEvent({
    name: FBEvents.VIEW_ITEM,
    params: {
        currency: product.price.currency,
        value: product.price.value,
        items: [ { id: product.id, title: product.title } ]
    }
});

@brownoxford yes same same.
We fixed e-commerce(Items) issues with you for Android and Ios.
Thank you so much.

@sverdlov i don't know latest version. I'm using "@capacitor-community/firebase-analytics": "^0.2.0".
But you can fix it yourself with hard-coded changes.
Check this solution
https://github.com/capacitor-community/firebase-analytics/issues/22#issuecomment-774458867

Hi there I can confirm that with the "@capacitor-community/firebase-analytics": "^1.0.0" I still have this issue but only for Android.
Every event that has items as a custom parameter won't track those items if I check out the Firebase Debug View.
Do you know how to fix it?

Hi, It seems that @Mathyn has already solve this issue. I hope he creates a Pull request to the project so we can all get profit of it. master...Mathyn:master

why isn't this code merged with the current project?

How is that still an issue ?

Guys, who can merge that pull request, please merge it


Terraform provider for ZITADEL

Description

[ ] Create terraform provider for ZITADEL resources
[ ] Create pipeline to publish terraform provider on terraformhub
[ ] Create example files to use the terraform provider

Acceptance criteria

[ ] all necessary resources in ZITADEL can be created through a terraform file
[ ] example files to create all different resources are present

It would be nice if you could also consider creating a Pulumi provider as well. Pulumi is similar to Terraform, but uses actual programming languages.
They offer a bridge between Terraform and Pulumi to minimize the effort: https://github.com/pulumi/pulumi-tf-provider-boilerplate
They do also have a Pulumi-native way to write a provider: https://github.com/pulumi/pulumi-provider-boilerplate

Hi @0x1DA117
Thanks for the input. Once we finish our work on the TF provider I think we could work on an pulumi Implementation (in what ever way).
I created a separate issue for the further tracking.

@stebenz since this is in alpha, can we close this and work with the issues from the TF repo?

Sure we can.


docs: Adds example Calculate Residuals

Recreation of vega-lite example https://vega.github.io/vega-lite/examples/joinaggregate_residual_graph.html
I noticed the last example on Vega Theme Test didn't have an altair equivalent.
This PR will also bring us one step closer to https://github.com/vega/altair/issues/3519#issuecomment-2359179155
Really like how concise the methods syntax version ended up

import altair as alt

imdb_rating = alt.datum["IMDB Rating"]

chart = (
    alt.Chart("https://vega.github.io/vega-lite/data/movies.json")
    .mark_point()
    .transform_filter(imdb_rating != None)
    .transform_filter(
        alt.FieldRangePredicate("Release Date", [None, 2019], timeUnit="year")
    )
    .transform_joinaggregate(AverageRating="mean(IMDB Rating)")
    .transform_calculate(RatingDelta=imdb_rating - alt.datum.AverageRating)
    .encode(
        x="Release Date:T",
        y=alt.Y("RatingDelta:Q").title("Rating Delta"),
        color=alt.Color("RatingDelta:Q").title("Rating Delta").scale(domainMid=0),
    )
)
chart

Note
Wasn't able to use the url from vega_datasets.data.movies.url for this, unsure why exactly

Thanks! This will become even prettier once https://github.com/vega/altair/pull/3505 is in.

oh btw, you have to use underscores instead of spaces when using vega_datasets:
import altair as alt
from vega_datasets import data

imdb_rating = alt.datum["IMDB_Rating"]

chart = (
    alt.Chart(data.movies.url)
    .mark_point()
    .transform_filter(imdb_rating != None)
    .transform_filter(
        alt.FieldRangePredicate("Release_Date", [None, 2019], timeUnit="year")
    )
    .transform_joinaggregate(AverageRating="mean(IMDB_Rating)")
    .transform_calculate(RatingDelta=imdb_rating - alt.datum.AverageRating)
    .encode(
        x="Release_Date:T",
        y=alt.Y("RatingDelta:Q").title("Rating Delta"),
        color=alt.Color("RatingDelta:Q").title("Rating Delta").scale(domainMid=0),
    )
)
chart

See https://github.com/vega/altair/issues/2213

oh btw, you have to use underscores instead of spaces when using vega_datasets:

🤦
Thanks @mattijn, I'll try that out tomorrow.
Feel free to edit this if you can confirm that works before I get a chance to


[FBX] Bones in an FBX Skeleton are in random or arbitrary order

Godot version:
3.2.4 beta2
OS/device including version:
Windows 10.0.19041.630
NVidia GeForce RTX 2080 Ti 452.06
Issue description:
In beta2, imported files show bones added in an arbitrary order, seemingly randomly. My expectation is that parent bones in a skeleton are added before their children, in some sort of traversal order.
Sure, it can be argued that this is not a bug: that the order of bones in a skeleton is unspecified.
I'm filing this bug because this change could break compatibility with code that iterates through a skeleton, assuming parent bones were already processed before hitting child bones.
Another reason this matters to me is because the good skeleton inspector was not yet backported to 3.2, and the old skeleton inspector requires that you guess which bone you're looking at, and having them in order helps significantly.

Steps to reproduce:

Open the attached project.
Click Bunny_Farmer.fbx and click Reimport in the import panel.
Open the imported scene.
Select the Rabbit_Skeleton object.
Select bones in order. Notice that the order does not start with Body, and "Leg" is between "Pinky" and "Index", for example.

Minimal reproduction project:
fbx_issues.zip

Ordering is based on the FBX ID and the node order on export.
What exporter/package are you using: blender, maya, 3ds max?

I need a bit more info about how the file was made to know what to test this in; can you please let me know the above info?

This is probably fixed with the new FBX importer using FBX2glTF.
You can test it in Godot 4.0 alpha 6: https://godotengine.org/article/dev-snapshot-godot-4-0-alpha-6
This new importer might also be backported for the 3.x branch eventually.
If you still find issues with these models using the new importer, we suggest opening a new issue with details about the problems in Godot 4.0 alpha 6 or later.


Typo in Docs: Reference > mult()

https://p5js.org/reference/p5.Vector/mult/
"For example, v.mult(4, 5) multiplies v.x by, v.y by 5, and v.z by 1."

Should be
"For example, v.mult(4, 5) multiplies v.x by **4**, v.y by 5, and v.z by 1."

it's because https://github.com/processing/p5.js/blob/78c4442d9cc77e849f3cdea3509fff99e3a26301/src/math/p5.Vector.js#L794


fixed 401 for registration and cancellation

Hi @sjimenez77 ,
As there is no backend implementation for registering a user, we cant handle(ignoring) security for it in the backend. So the chnages have been made in the front end part with the help of @dattuchillal and fixed the issue.
There was an another issue thats the call goes to backend for cancellation of login and signup. That also fixed.
Thank you @dattuchillal  for the help.
regards,
Ravichandran M

Hi @ravicm2, @isandesh1986, what happened with this PR? Is it still valid?

Yes it's still valid. It avoids the 401 error whenever user tries to cancel an operation.


Export Error "hrtime" in typescript Vite Application

Hello,
using
"feathers-hooks-common": "^6.1.2",
with node version 16.15.1 in a vite vue application (typescript) I get the following error:

No matching export in "browser-external:process" for import "hrtime"
node_modules/feathers-hooks-common/dist/index.mjs:918:9:
  918 │ import { hrtime } from "process";

I am using feathers-hooks-common like this:
import { paramsForServer } from 'feathers-hooks-common'
Thanks!
Martin

Hey Martin 👋,
thanks for the issue. It should be fixed in version<EMAIL_ADDRESS>Please try and let me know.

Hello,
thanks! With 6.1.3 the issue is fixed!
Thanks again,
Martin


Error starting PPPwn

When I tried to press "Start PPPwn", the command prompt window it opened gave me the error "PermissionError: [Errno 13] Permission denied: 'PPPwnUI.ini'"

Hey !
Are you on Windows or on Linux ?
I will update PPPwnUI soon because it's been a while since I didn't look at it x)

I have revised the PPPwnUI README to give much more detail on how to run this program
https://github.com/B-Dem/PPPwnUI/pull/13


FileSystem settings in newFileSystem

AS A user
I WANT to easily configure a new file system with FileSystems.newFileSystem("s3://...", env)
SO THAT each instance can have its own environment
NOTES

it could be something like

FileSystems.newFileSystem(myuri, new S3NioSpiConfiguration()
    .withAccessKey("access-key")
    .withSecretKey("secret-key")
    .withEndpointProtocol("http")
);

closing as duplicate of #61


virtcontainers: fix vCPU calculation errors

We were grabbing a running total of quota and period for each container
and then calculating the number of resulting vCPUs. Summing period
doesn't make sense.  To simplify, let's just calculate mCPU per
container, keep a running total of mCPUs requested, and then translate
to sandbox vCPUs after.
Fixes: #1292
Signed-off-by: Eric Ernst<EMAIL_ADDRESS>

This is an important fix which is applicable for stable-1.5, but not stable-1.4.

/test

/test

Nice catch @egernst !

I know this is an important fix, and we should land asap....
are we also going to improve the tests so we don't regress again in the future? Sure, we don't have to block the merge without the tests - I think as long as we get a promise to update the tests asap as well...

Ah, I see test request on #1296 already - thx.

/retest

@chavafg - what's the delta in testing on fedora vs ubuntu?
I see a CPU test failure that i'm going to look at now, but i'm wondering how it wasn't exercused with the other jobs?

We currently have the same resources for both - 4 vCPUs.
I think that [Fail] Update CPU constraints Update CPU set [It] cpuset should be equal to 2   is the one that we have seen lately and that @devimc was trying to fix.
See: https://github.com/kata-containers/tests/pull/1238

OK, I don't think we should gate based on this then, correct?

Correct, I have restarted the job anyway.


error: building jasper:x86-windows failed with: BUILD_FAILED

Host Environment

OS: Windows
Compiler: g++

To Reproduce
Steps to reproduce the behavior:
git clone https://github.com/Microsoft/vcpkg.git cd vcpkg .\bootstrap-vcpkg.sh .\vcpkg integrate install vcpkg install ogre
Additional context
error: building jasper:x86-windows failed with: BUILD_FAILED Please ensure you're using the latest port files with git pullandvcpkg update. Then check for known issues at:     https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+jasper You can submit a new issue at:     https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[jasper]+Build+error Include '[jasper] Build error' in your bug report title, the following version information in your bug description, and attach any relevant failure logs from above.     vcpkg-tool version: 2022-05-05-67e17c1782801cf481be9ac0b3765dff3e4bdeb8     vcpkg-scripts version: 0cf5b4305 2022-05-13 (2 days ago)

@Luseno64 ,Thanks for posting this issue, could you please provide your error log?

We can't reproduce this issue locally.
Pleaes provide the output in your console and the failure logs mentioned in the ouput.
Thanks.

We don't have enough information to solve this issue, unfortunately; if you have any more information to help us solve this, please reopen!


Glossary

Redesigned glossary which includes:

Hyperlinks to existing and new content
Minor rewrites and clarifications of content
Will be altered as new content comes through

Looks good. Feel free to merge in. I think we'll want to remove all the PQL SQL functions from here later. That's so much content here. Maybe there's a strategy around this as it seems only some sql is here while all pql is here, but I think the purpose here should be higher level concepts, not down to individual functions. This also adds more maintenance steps/checks for docs

Agreed. I'd prefer to rip out all the PQL and SQL wholesale because linking from here isn't that useful. Most people will go to a search rather than a glossary.


Must change ethernet adapter after turn on

Describe the bug
When computer ip is changed and i turn it on i must change ethernet adapter in macro deck, because it not remember this
To Reproduce
Steps to reproduce the behavior:

Turn off computer
Restart your router or change ip of your computer
Turn on the computer
See error of macrodeck

Expected behavior
Run normal
Log file
2022-09-27.log

This is because the configuration saves the ip address and not the network adapter. Try to assign a static ip address to your computer.


A plugins/theme website

I wanted to work on a plugins and themes website, similar to the Visual Studio Code marketplace.
Before starting on the project, I wanted to ask few questions:

Has work on this regard already been done?
Is it too early to start (if there is such thing)?

My idea was something quite simple and effective: take advantage of the new repository tags feature of GitHub to fetch and catalog the repositories.
So if you tag the repo as oni-plugin you appear on the plugins page and so on.

Hi @albertorestifo ,

I wanted to work on a plugins and themes website, similar to the Visual Studio Code marketplace.

That would be incredible! 💯 Having a solid plugin story is the next step on our roadmap, and having a clear, easy way to discover plugins is essential in realizing that.

Has work on this regard already been done?

No work yet! We have our website code here: https://github.com/onivim/onivim.io, but it's mostly static.
The only other mention we have is some work starting on a 'plugins pane' internally in the app (#1431) as a potential entry point for a search experience.

So if you tag the repo as oni-plugin you appear on the plugins page and so on.

This sounds like a great start, and it's nice because we can just use the GitHub API as opposed to needing to provide our own API. This opens the door to discovering Vim plugins.
Later on, I believe we may also leverage NPM, for plugins that utilize Oni's JS/TS API.
One other source that is interesting is vimawesome actually exposes an API, too: https://vimawesome.com/

Is it too early to start (if there is such thing)?

I don't think it's too early to at least get the basics working (like an minimium viable product - just a barebones UX querying against the oni-plugin), since in parallel we'll be starting to materialize a more complete plugin story for the editor. It would be awesome to be able to showcase a marketplace alongside that functionality for our next release (0.4.0), even if its minimal.
Let me know if you'd like to chat more, @albertorestifo . Thank you for proposing this!

Sounds great @bryphe, let's move forward with it then.
I would start by creating a small library which will act as api client shared between the website, the in-editor sidebar and the CLI tool described in #186.
NPM doesn't seem to expose a public API so it would require a server to find packages.
For GitHub, it's pretty straight forward with the GraphQL API. For example:
query {
  search(first: 10, type: REPOSITORY, query: "topic:oni-theme") {
    repositoryCount
  }
}

As far as using vim-awesome, I don't seem to find a page explicitly documenting the API. It's true that the API the website uses seems well built, but even then, should we use their data? Is it planned to give the possibility of installing a vim theme within the in-editor sidebar? If not then maybe linking to the website is enough.
Once that's done, how much work is left to do before the CLI tool describe in #186 can be implemented?
If it's a lot, then we can start with the website, where the package will contain a quick copy & paste to install it, otherwise maybe completing the CLI before the website is more sensible.

Sounds great @bryphe, let's move forward with it then.

Excellent! 🎉

I would start by creating a small library which will act as api client shared between the website, the in-editor sidebar and the CLI tool described in #186.

Perfect. GitHub sounds like a great starting point - as long as we are getting some results, we can start testing out the end-to-end flow.

As far as using vim-awesome, I don't seem to find a page explicitly documenting the API. It's true that the API the website uses seems well built, but even then, should we use their data?

I believe there is a Neovim GUI using this, but I could be mistaken. But it definitely doesn't need to be something we incorporate initially - I think the GitHub provider is the perfect starting point.

Once that's done, how much work is left to do before the CLI tool describe in #186 can be implemented?

Regarding the CLI tool - I was actually considering scrapping it, and having these entry points to plugin management:

API - The Oni API object actually supports installing plugins - this is in the build today. You can run 'Oni.plugins.installer.install("morhetz/gruvbox")` (or any Git/NPM package) from the developer tools, and it will install to the plugins folder. It's still a WIP, but the barebones functionality is there.

Sidebar - A sidebar experience for adding / installing / uninstalling / enabling / disabling plugins - there's a WIP but not very functional today (you can see what we have so far with sidebar.plugins.enabled set to true). Later, this could be backed by the Oni API object (handling installation/removal/etc of plugins), as well as the new api client for discovering plugins.

Protocol handler - A protocol handler for something like: oni-install-plugin://git/morhetz/gruvbox. This would let us have an install button on a website 'deep-link' into the install experience, so you can install from the marketplace website.

Configuration - Not as applicable... but I want to expose a plugins: [..] configuration setting too. But this would be more for a power-user who knows exactly what plugins they want in order to share the config between machines.

Given those pieces of functionality, I'm not sure the CLI is totally necessary - at least not for this PoC.
What we could try is maybe creating a simple menu that calls the API:

    const menu = oni.menu.create()
    menu.show()
    menu.setLoading(true)

    fetchPluginsFromNewApiClient().then((results) => {
            const menuItems = convertPluginResultsToMenuItems(results)
            menu.setItems(menuItems)
            menu.setLoading(false)
    })
    menu.onItemSelected.subscribe((selectedValue) => oni.plugins.installPlugin(getInstallPathFromMenuItem(selectedValue))

This would give us a really bare-bones experience we could try out - we spin up a menu that calls the API client, show the menu, and then allow for installing it based on the value. The main gaps we'd need to fill in to test this out are implementing fetchPluginsFromNewApiClient (using your API client), implementing convertPluginResultsToMenuItems (convert the results to what the menu needs - a label and a detail), and then getInstallPathFromMenuItem, which would give us the github path fro the menu item.
We could put a button in the WIP sidebar pane to expose this - like 'Discover Plugins' - and test it out end-to-end 👍 And then of course increment and improve - it'd be nice to show details about the plugin later, have a confirmation prompt for installing, etc.
@albertorestifo , does that seem like an OK way to test the API client?
From the website, we could start stubbing out an oni-install-plugin protocol handler, too, to build out that entry point. It would be fun to have an 'Install' button that at least opens up Oni - and then we could work from there to build out hooking it up to the install-plugin API.
Either of those actually seem cheaper than the CLI to me at this point - and would be a relatively short path to getting something working end-to-end that we could iterate and improve on.
Let me know what you think! Thanks again for your help with this, @albertorestifo 👍

I believe there is a Neovim GUI using this, but I could be mistaken. But it definitely doesn't need to be something we incorporate initially - I think the GitHub provider is the perfect starting point.

https://github.com/daa84/neovim-gtk uses it in their Plugin Manager as far as I know.

Everything you said @bryphe makes total sense to me and I agree the CLI tool is not really needed.
If it sounds good to you, I'll proceed in the following order:

Step 1: Discovery tool - Create a repo and package named oni-extensions-dicovery, which for now will only deal with plugins, but it can grow with time to handle installing any vim plugin, theme or oni themes and whatnot

Step 2: In-editor sidebar - Integrate the plugins discovery in the editor sidebar in the simples way and call the already-built install function. In this iteration, clicking a plugin will open the README.md in the in-editor browser.

Step 3: Improvments - Iterate on the sidebar and discovery experience. That's where we integrate themes, vim plugins, improve the design of the sidebar or whatever else we see it's more important once we start testing the system

Step 4: URL Install protocol - Implement the oni-extension install protocol. It should be too much work

Step 5: Website - I think it makes sense to work on the website only once all the other pieces are in place. It's better to have a nice in-editor experience before having a website. What do you think?

Step 6: Replace README.md - Clicking on a plugin in the sidebar won't open the GitHub README.md anymore but instead a dedicated/slightly modified view of the plugin page on the website, same as VS Code basically

Sounds good?

@albertorestifo - excellent roadmap! The plan sounds great and the breakdown makes sense to me. 💯 I like that we get a simple end-to-end working relatively early in step 2 - that will be a good foundation for us to improve and iterate on.
Agree with having the website be at the end - I envision the in-editor experience will be the primary entry point.
Keep me posted and let me know if you need anything! Our discord is a great place to chat too: https://discord.gg/7maEAxV

@bryphe that would be awesome! I'll join the discourse and start working on it whenever I get a chance!
Happy to be able to help the project.

@albertorestifo - perfect! I just created the repo here: https://github.com/onivim/oni-extensions-discovery and I gave you write permissions for it, so you should be able to push freely to it.
Let me know if there is anything else you need!

@bryphe Awesome, I'll keep you posted.

@albertorestifo npm have a public api, but it's undocumented (shame on you npm), the api is exposed by the registry and used by the npm cli they use a client for this
The search api can be used very simply https://registry.npmjs.org/-/v1/search?text=oni-vim
The npm api even set a CORS Allow Header Access-Control-Allow-Origin: * \o/, seems that this feature don't need a backend :100:

That's awesome!
On another note, I can't use the GitHub GraphQL API because the search doesn't allow unauthenticated calls.

Yeah the GraphQL v4 API need authentication for all actions, to do unauthenticated call the V3 API seems more adapted
(The search endpoint on the V3 API don't seems to require authentication)


Tighter integration with feathers-authentication-management

feathers-authentication-management adds a isVerified flag to user. That can be used in a service hook to check a user is verified, after any checking that the user is authenticated.
Still it looks a bit wierd that the feathers-authentication ecosystem will authenticate a user with isVerified === false. I wonder if that flag, if it exists, should be checked by the ecosystem.

We definitely need a better way to integrate.  Is the user present in an afterCreate hook on the authentication service?  If so, we could just register an after hook that checks the user and throws an error to keep the token from going out.

I'd like to revisit this and look at tweaking feathers-authentication-management to be a bit more generic so that the user isn't required to define any specific model attributes. I see it being pretty minor tweaks and also easier once we have some of the work slated for Auth 2.0 complete.


chore: Fix operator sdk download url in release workflow

Fix operator sdk download url in release workflow

Release Note
NONE

Thanks!


Parsing error

Hello, I'm using cl-markdown for a documentation project. So far, it's awesome.
I'm having an issue where the following:
title
=====
text under title

produces:

title text under title

what I expect is:

title

text under title

adding another line break between ===== and text under title yields correct results.

Confirmed, thanks for the bug report.


add bigger data sizes

E.g. 1M files dataset, and 10M (maybe more as well?) dataset would be great to have.

It seems to me that we could try obtaining ImageNet for this use case. Its de-facto a standard dataset and can actually be used to fulfill both needs.
The whole dataset contains around 14M images, and the most used subset is around 1.3 M samples.
The license can be found here: https://image-net.org/download.php
Seems to me that benchmarking would fall into the research category.
I haven't yet requested access due to the last point of the license.

It is probably better to just use https://pypi.org/project/Faker/ to generate the biggest dataset and then have small/tiny/etc options based on it, as we do now.

https://storage.googleapis.com/openimages/web/download.html ?
I'm missing some context but, why not just generate X images with random pixels. Like:
import numpy
from PIL import Image

NUM_IMAGES = 1e6
for i in range(NUM_IMAGES):
    array = numpy.random.rand(100,100,3) * 255
    img = Image.fromarray(array.astype('uint8')).convert('RGBA')
    im.save(f"dataset/{i}.png"))

It would be also nice to have a dataset with big individual fiels


Error in video stats card for a particular video id

Describe the bug
Video API is giving error of a particular video & for other video ist working.
Expected behavior
Video id provided is public n active but still api is giving error.
Screenshots / Live demo link (paste the youtube-stats-card link as markdown image)
Error for this video id: https://youtube-stats-card.vercel.app/api/video?videoid=tFq6Q_muwG0&layout=compact

But works for this one: https://youtube-stats-card.vercel.app/api/video?videoid=4vwZNTagHsQ&layout=compact

This happened because comments on the video is disabled & hence the comment count was undefined.

Reopening this issue because for another video id also endpoint is not working.
https://youtube-stats-card.vercel.app/api/video?videoid=LKQHsHKrxeY

Solved the video's thumbnail issue


Modified Code

Summary
Gave meaningful names for  the following controls
Button, btn1 -> btnEnableContentScrolling
ScrollViewer, sv1 -> svrContent
Fixes dotnet/docs#4633

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: amaldevv sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for submitting a fix for this issue @amaldevv
I've reviewed the changes, and I'll :shipit: now.
Thanks for your ongoing contributions to docs!  We appreciate it.


Asset support

It'd be useful to have tools that can automatically extract an asset from a binary and generate a header to include its bytes in C

Added in 9440af51c3a29221bcb5c7b1d5d178955eba37d6


[WIP] Add generic versions of Hash and Hash128

New functions can accept []byte or string.
Backwards compatibility saved by wrapping new functions.
Assembly functions signature changed a bit to allow simple unsafe cast []byte|string to string.

What's the rationale for adding this?

What's the rationale for adding this?

To calculate hash from string and bytes without allocations/copying and without code duplication. My changes provides safe api for this (assuming isolated unsafe is acceptable).

This looks like an overuse of generics: we can instead add HashString and WriteString to digest like in xxhash. Explicit distinction between []byte and string is important. However, I'd rather wait for the Go compiler to improve.


BOB does not support source and target objects with # in the name

The # get's interpreted as the beginning of a comment and the rest of the line is ignored

Attempt to solve by escapting with ^# as in
^#FOO.FILE: #foo.pf
mentioned in https://github.com/IBM/ibmi-bob/issues/347


Asking for chinese genshin yuanshen.exe support

tysm!

I can change the game language to English just pls make support for that

This is something that I have written in on my internal build. I hope to get it out after I fix one or two more bugs.

Support for the Chinese client has been added in the v1.2.1-prerelease.


Adding support for ForwardConfig property in ListernRule in CloudFormation

Right now, ListerRule does not support the ForwardConfig property that comes under the Action section in AWS::ElasticLoadBalancingV2::ListenerRule. This PR aims to add that.
Here are the AWS docs for the above: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html

Hello again @bblommers What do you think about this PR?


Create a privacy notice for the GCDS website

Create a privacy statement for the GCDS website, to cover collection of information through feedback from & email newsletter draft here

Sent to translation

French translation here

In response to @melaniebmn's question about what needs to be included in the GCDS documentation site footer:
I agree with Sarah's assessment that the GCDS site is a standard page, not a transactional or campaign page. As a result, we should be following the Canada.ca design system requirement that the global footer on all GC standard pages must include 2 mandatory elements:

The sub-footer band with the Canada watermark, which is what you're talking about above. So yes, we need to keep that with all the links and just change the "privacy" link to our new page
The main band, which we don't currently have on the GCDS site... but IMO we should add it in order to meet the same requirements GCDS is helping other GC teams meet

So my advice is that we keep all the links in the sub-footer band, and also add the main band.

New privacy page + footer update has been added in PR #316.


Added function descriptions

Description of Work
Fixes #88
Added function descriptions.
Testing Instructions

Look through all the files and see if the function descriptions are satisfying.

thanks for the adding of this additional code document


SliverAnimatedList doc example bug

SliverAnimatedList code example has a bug, where on removal, CardWidget is built with index of an item instead of actual removed object. Though AnimatedList example doesn't contain one.

Hi @misterfourtytwo, thanks for catching that.
I can confirm that there is a bug in the example.

videos

current example
fix proposed(from PR)

https://github.com/flutter/flutter/pull/105252
i forgot to link PR from here. I'll write some simple tests later and then will wait for approval


[shell] Can't build 2.0.0-beta3 for Windows 32-Bit

In our project (Windows 32-Bit support needed, i686-pc-windows-msvc) we updated from 2.0.0-beta0 to 2.0.0-beta3 (both versions 2.0.0-beta1 and 2.0.0-beta2 did not compile in the combination with other Tauri deps). 64-Bit x86_64-pc-windows-msvc however builds just fine.
The build process aborts with the MSVC linker giving this error message (unresolved external symbol) when trying to link ShellExecuteW for libopen:
  = note: libopen-694a3dd32f5061c1.rlib(open-694a3dd32f5061c1.open.5c851ecd4378e97c-cgu.0.rcgu.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShellExecuteW" in Funktion "__ZN4open7windows13ShellExecuteW17h190ca8d6aadc8784E".
          c:\tauri-app\src-tauri\target\debug\deps\tauri_app.exe : fatal error LNK1120: 1 nicht aufgelöste Externe

I noticed that with #1021 the dependency of crate open was raised from major version 4 to 5. Maybe this is related. I'm unsure whether this is an issue of the shell plugin or with the open crate.
This is reproducible with a fresh Tauri2-beta.
$ yarn tauri info
yarn run v1.22.21
$ tauri info

[✔] Environment
    - OS: Windows 10.0.19044 X64
    ✔ WebView2: 122.0.2365.66
    ✔ MSVC: Visual Studio Build Tools 2022
    ✔ rustc: 1.76.0 (07dca489a 2024-02-04)
    ✔ cargo: 1.76.0 (c84b36747 2024-01-18)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-i686-pc-windows-msvc (default)
    - node: 20.10.0
    - pnpm: 8.15.4
    - yarn: 1.22.21
    - npm: 10.2.3

[-] Packages
    - tauri [RUST]: 2.0.0-beta.9
    - tauri-build [RUST]: 2.0.0-beta.7
    - wry [RUST]: 0.37.0
    - tao [RUST]: 0.26.1
    - @tauri-apps/api [NPM]: 2.0.0-beta.4
    - @tauri-apps/cli [NPM]: 2.0.0-beta.7

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:1420/
    - framework: Vue.js
    - bundler: Vite
Done in 11.19s.

This is the same as https://github.com/Byron/open-rs/pull/91#issuecomment-1974905927, could you share the repo or a minimal repro where this issue happens as I am unable to reproduce.

@amrbashir

This is the same as Byron/open-rs#91 (comment),

Yes, I also just found this issue and it mentioned exactly the same.

could you share the repo or a minimal repro where this issue happens as I am unable to reproduce.

Unfortunately I can't share I can't share the main application repo. But as I said it's reproducible using the current Tauri beta. I'll try to list the steps for reproduction (see my tauri info for the other environment info; basically it's a Windows 10 x86_64 machine building for i686):
$ rustup default
stable-i686-pc-windows-msvc (default)

$ rustup toolchain list
stable-i686-pc-windows-msvc (default)     # This is the only toolchain that is installed

$ rustup target list --installed
i686-pc-windows-msvc                  # This is the only toolchain that is installed

$ yarn create tauri-app --beta        # Fresh Tauri 2 beta

$ yarn tauri dev --target i686-pc-windows-msvc

I'll try in another machine/setup if it behaves the same.

Thank you, I think I have found the problem. Will open an issue upstream.

Opened a PR here: https://github.com/Byron/open-rs/pull/93
you can try the fix by adding the following patch inside Cargo.toml:
[patch.crates-io]
open = { git = "https://github.com/tauri-apps/amrbashir", branch = "fix/shell-execute-w-link" }

then do cargo update inside src-tauri

The PR has been merged and released, you can remove the patch and just do cargo update and it should be fixed.


Question: Restricting a Client to a User

Hi,
Is it possible to restrict a Client to a User.
I'm looking for a way to limit a User A to use only Client A. If User A tries to use Client B, I like to throw a unauthorized message.

Hi,
What do you mean with use client B? Do you mean to access from Admin and change settings of this client? So adding of additional authorization stuff on Admin part?
Thanks.

Hi Skoruba,
On the admin page, I would like to restrict User A to only modify/access Client A's information and can not modify/access other Client. Is there a way to do that?
Thanks.

For this use case you need implement some extra policy with your requirements - something like this:
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-2.2
For example: You can bind the access for some specific client_id for maybe some role name or create your own logic. 😊

I am closing it, feel free reopen.
Thanks


where is y?

Thanks for your sharing.
However, where is the y(i1) in your code compared to the published paper?
probs_with_factor = ((1 - probs) ** self.alpha) * probs
loss = 1 - (2 * probs_with_factor + self.gamma) / (probs_with_factor + 1 + self.gamma)

I try to use tp + fp + fn to calculate the loss, but it didn't work.
Here is my code, is there any error?  many thanks.
pre = (tp + 1e-8) / (tp + fn + 1e-8)
rec = (tp + 1e-8) / (tp + fp + 1e-8)
nominator = 2*((1 - pre) ** alpha) * pre * rec + 1
denominator = ((1 - pre) ** alpha) * pre + rec + 1
dc = (nominator + 1e-8) / (denominator + 1e-8)
waiting for your reply~

@GuobinZhangTJU The paper provides an example only for the binary case. For multi-class case you don't need y. Please take a closer look at the code.


Add missing definitions in stdlib/net

No signatures.

Testing on Stripe's codebase:
http://go/builds/bui_HJXfCFdsFhFyse

^ fixed tests

@Morriar I included most of these in #3109, so I think i'm going to close this unless you had any opinions otherwise.

Thanks! Closing.


[Android] Fix for cxxflags

It fixes Android conf for CXX flags.
It uses the same flags as c initially.
Signed-off-by: Jiho Chu<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2490. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.


Project is broken while a 2nd deploy is in progress

To repro:

Deploy a project (I deployed the sample to viewablehq)
Edit the project locally (I changed title, theme, and added a line to pages in observable.config.ts
Verify the changes work locally for good measure
Start deploying it. Before the deploy is done, try...

refreshing a project page from viewablehq.cloud
traversing to the project from the project list on viewablehq.com

Expected:
Previous version of site displays until deploy is done. Or, failing that, a graceful "hang tight, we're building your awesomneness" sort of message
Actual:
While the deploy was in progress, parts of the project pages that previously loaded correctly showed as broken.

sample images from the root page showed the broken href placeholder
pages waiting on data builds had error messages about missing data or files

With the new hash file names this ought to be resolved? Can you confirm?


Create operator role with existing policies

Determine if the cluster account roles have managed policies,
if so, create the operator roles accordingly.
Related: SDA-7660
The CLI detects that the account roles have managed policies:

and creates operator roles with managed policies:

@zgalor @gdbranco PTAL

/lgtm


vulkan-tools: 1.1.85 -> <IP_ADDRESS>

Motivation for this change
sdk-1.1.85 is a branch and not the stable release tag
Follow-up to #48861
Also moved cmake to nativeBuildInputs
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

cc @dywedir


Add dolar-hoy extension

Description
This extension is a utility for doing quickly conversions between USD and ARS. Has some basic features like: seeing the current value, get a historical value and doing value conversions.
Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

It's not possible to pass validation if you first tries to submit without a date, could you look into this too?
https://github.com/raycast/extensions/assets/38033107/62befb41-9787-4595-b5dc-4c6d6d3ee8b2
Request a new review when you are ready. Feel free to contact me here or at Slack if you have any questions.

It's not possible to pass validation if you first tries to submit without a date, could you look into this too?
Raycast11032024-jrnAOYyE.png.mp4
Request a new review when you are ready. Feel free to contact me here or at Slack if you have any questions.

Thanks for catching this, the problem was that the error message was not getting updated (you need a date and also the date should be in the past).

Hi @pernielsentikaer 👋
I just changed that but it seems I cannot ask for new review 🤔


[SPARK-41489][SQL] Assign name to _LEGACY_ERROR_TEMP_2415

What changes were proposed in this pull request?
This PR proposes to assign name to _LEGACY_ERROR_TEMP_2415, "INVALID_TYPE_FOR_FILTER_EXPR".
Why are the changes needed?

We should assign proper name to LEGACY_ERROR_TEMP*
Does this PR introduce any user-facing change?

No
How was this patch tested?

./build/sbt "sql/testOnly org.apache.spark.sql.SQLQueryTestSuite*

cc @MaxGekk @srielau @cloud-fan

Thanks @MaxGekk . Resolved the comments

+1, LGTM. Merging to master.
Thank you, @itholic and @srielau for review.

@itholic Could you backport this to 3.4, please.

Backport: https://github.com/apache/spark/pull/39829


Minor: Add comments and clearer constructors to Interval

Which issue does this PR close?
related to https://github.com/apache/arrow-datafusion/pull/7467
Rationale for this change
While reviewing https://github.com/apache/arrow-datafusion/pull/7467 I found I had to remind myself several times what open/closed meant in the context of intervals.
What changes are included in this PR?

Clarify comments on Interval (they were already nice, just could be somewhat clearer)
Add Interval::new_open and Interval::new_closed as a way to make the code more self documenting
Change some uses of Interval::new to Interval::new_open and Interval::new_closed

I am happy to change more uses but I wanted to see what people thought of the idea first
Are these changes tested?
Existing tests
Are there any user-facing changes?
No functional change intended, just easier to understand code

These seems good. I would also add: change get_datatype to just datatype to be more idiomatic.
The other change I was wondering about is whether Display could be implemented to output the set notation representation. Would be cool to get something like [10, 20], [10, ∞), (-∞, 100] or (-∞, ∞) back. But if we don't feel like that's idiomatic Rust, we should at least change the representation so it indicates whether the bounds are open or closed. Right now the Display implementation for IntervalBound just uses value.

This looks good to me. I also like the display suggestion @wjones127 👍

The other change I was wondering about is whether Display could be implemented to output the set notation representation. Would be cool to get something like [10, 20], [10, ∞), (-∞, 100] or (-∞, ∞) back. But if we don't feel like that's idiomatic Rust, we should at least change the representation so it indicates whether the bounds are open or closed. Right now the Display implementation for IntervalBound just uses value.

I have filed https://github.com/apache/arrow-datafusion/issues/7547 to track this suggestion
@ozankabak and @wjones127  if you think this PR is ok to merge as is, can you please github approve it? If not, can you explain what else you would like to see?
Thank you!


bazel_6: installCheckPhase .bazelversion override

In case bazel dist archive includes .bazelversion (like in 5.4.1 https://github.com/bazelbuild/bazel/issues/18189 or 6.3.1rc1) running bazel commands in dist worktree will require using version specified in .bazelversion. If .bazelversion is absent there any available version will be used.
Let's make sure we don't fail installCheckPhase for dist archives that do include .bazelversion (note: bazel bootstrapping from sources not via bazel works regardless of that file, so that's only about test/check phases)
Similar to https://github.com/NixOS/nixpkgs/pull/245856 case
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

I think we should remove the .bazelversion file instead, that seems simpler and addresses a lower cause in the stack.

updated the PR. darwin checks fail but look unrelated


Wrong disable for category selection

Category [feature] (feature, refactor, bug, minor, style)? should be displayed as Category (feature, refactor, bug, minor, style)? [feature]

Fixed by #13


Runtime error log.SetLogger(...) was never called in the crossplane-provider-kafka-94381af0b190 pod

What happened?
We have rolled out crossplane-provider-kafka version to v0.5.0 two weeks ago and then we have upgraded the kubernetes version from v1.26 to v1.27 and the provider is still working after the upgrade.  after few days we are getting errors from the crossplane-provider-kafka pod.
What environment did it happen in?
Crossplane version: v1.15.1
Kubernetes version: v1.27.12-eks-adc7111
kafka provider : xpkg.upbound.io/crossplane-contrib/provider-kafka:v0.5.0
Provider Logs

kubectl logs crossplane-provider-kafka-94381af0b190-c5c7fbc94-zhs5m

[controller-runtime] log.SetLogger(...) was never called; logs will not be displayed. Detected at: 	>  goroutine 161 [running]: 	>  runtime/debug.Stack() 	>  	runtime/debug/stack.go:24 +0x5e 	>  sigs.k8s.io/controller-runtime/pkg/log.eventuallyFulfillRoot() 	>  	sigs.k8s.io/controller-runtime@v0.16.3/pkg/log/log.go:60 +0xcd 	>  sigs.k8s.io/controller-runtime/pkg/log.(*delegatingLogSink).WithValues(0xc00005f300, {0xc004677740, 0x2, 0x2}) 	>  	sigs.k8s.io/controller-runtime@v0.16.3/pkg/log/deleg.go:168 +0x49 	>  github.com/go-logr/logr.Logger.WithValues(...) 	>  	github.com/go-logr/logr@v1.2.4/logr.go:323 	>  sigs.k8s.io/controller-runtime/pkg/builder.(*Builder).doController.func1(0xc004677720) 	>  	sigs.k8s.io/controller-runtime@v0.16.3/pkg/builder/controller.go:400 +0x173 	>  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000444f00, {0x20dbbc8, 0xc00043a410}, {0x1a4ad00?, 0xc000050e00?}) 	>  	sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:306 +0x16a 	>  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc000444f00, {0x20dbbc8, 0xc00043a410}) 	>  	sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266 +0x1c9 	>  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2() 	>  	sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227 +0x79 	>  created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 30 	>  	sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:223 +0x565

I just ran into this upgrading from 0.4.3 to 0.5.0

Hey
I am still getting the same error even after upgrading it to 0.5.0


Link component: activeClassName gets not appended when route is active

Worked a few days ago.
history doesn't support isActive. (anymore? ever?)
Tests are skipped.
Can you give us an update?

not sure what problem you are facing, could you be more specific?

Sure. The Link component does not get the specified class (via activeClassName) appended when the route is active.

can we see some code to help?

the tests are already there but skipped ;)

hm, the test is actually passing and I double checked it with a sample.
So this can be closed, but the test should not be skipped.

I reopen as the tests should be passing, I'm looking into that now. I know it works, just fixing tests, will close when it's done

fixed https://github.com/rackt/react-router/commit/45df0ddeaac2ad8b5a6905d4613d6da0886d2ed9


South Congress App Zones

Adding definitions for the new paid South Congress parking zones. These end up getting flagged as "Unknown Location" in the location_group column if they are not defined here.
https://www.axios.com/local/austin/2024/07/02/austin-south-congress-parking-revenue

nice! 🏦


Add Ormolu to CI.

Never mind, I saw you added ormolu to default.nix. But is it the same version as the one CI uses?
Also some instructions in README for how to format a PR would be nice.

I don't think the versions currently match.  Otherwise there's no way to keep it in sync.


Share Heron-core and YARN-scheduler package

Currently Heron-core package and YARN-scheduler package is uploaded for each topology submission. These packages do not change and could be shared.

Or it might could be at a fixed location and downloaded when the containers start - similar to Aurora.


Error: The name of the current PowerShell host is: 'Visual Studio Code Host'. PwshSyntaxHighlight.psd1' requires the following PowerShell host: 'ConsoleHost'

I get the error in the title when trying to access the module from vs code.
It works if I comment the PowerShellHostName field of the manifest:
Description = 'A code block renderer for PowerShell code in the terminal'
PowerShellVersion = '5.0'
# PowerShellHostName = 'ConsoleHost'
RootModule = 'PwshSyntaxHighlight'

Is the host name necessary?
Also, I'm not sure if setting PowerShellVersion to 5.0 will cause PS 7 running in "legacy mode" without taking advantage of its performance improvements. Shouldn't be better to comment this too and leave PS auto adapt based on the host machine?

I just removed the restriction anyway. It should be sorted if you run Update-Module PwshSyntaxHighlight or install the latest from PSGallery 😁 Thanks

I just removed the restriction anyway. It should be sorted if you run Update-Module PwshSyntaxHighlight or install the latest from PSGallery 😁 Thanks

Many thanks! It works now!

Good points, I'll take a look thanks. I didn't know about legacy mode - Is there a way to detect it?

Well, I also don't know about any legacy mode. I just assumed (and I could be perfectly wrong) that restricting to version 5.0 may cause PowerShell 7 to run in some sort of compatibility mode. It may possible (and I could be wrong again) that on 5.0 will be loaded the .Net Framework or  .Net Standard runtime rather than .Net 7 (and yes, this is like night and day). As far as I know, compatibility breaks if you use 5.0 dedicated modules not yet ported to the new PS 7. From what I see, the library  don't even use external modules, so I think we should be fine.


Reject padded frames with invalid padding lengths.

This is required for python-hyper/hyper-h2#73.
/cc @mhils to confirm I didn't break anything needed there.

LGTM, thanks! :smiley:


Ensure correct path name on objects

There is some edge case that is not accounted for that causes modules to lose the closest parent name from their full qualified name. For instance, I noticed this with the sphinx.websupport.storage module, which somehow creates a sphinx.storage object. I also noticed this with Django, so it may be fairly common.

autoapi has changed a lot since this was opened and I'm not able to reproduce, so I'm going to close this and assume it has been fixed.


python310Packages.types-requests: 2.27.29 -> 2.27.30

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.types-requests is: "Typing stubs for requests"
meta.homepage for python310Packages.types-requests is: "https://github.com/python/typeshed"
meta.changelog for python310Packages.types-requests is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 2.27.30 with grep in /nix/store/i1xp6vcca9c6plxkhb5dww023xp8rjsf-python3.10-types-requests-2.27.30
found 2.27.30 in filename of file in /nix/store/i1xp6vcca9c6plxkhb5dww023xp8rjsf-python3.10-types-requests-2.27.30

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
python310Packages.types-requests
python39Packages.types-requests

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/i1xp6vcca9c6plxkhb5dww023xp8rjsf-python3.10-types-requests-2.27.30 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.types-requests https://github.com/r-ryantm/nixpkgs/archive/dbe7754e30c7deb5d6618e1d5bf6fdd9fa25cb9e.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/i1xp6vcca9c6plxkhb5dww023xp8rjsf-python3.10-types-requests-2.27.30
ls -la /nix/store/i1xp6vcca9c6plxkhb5dww023xp8rjsf-python3.10-types-requests-2.27.30/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.types-requests
python39Packages.types-requests

Maintainer pings
cc @fabaff for testing.

@ofborg eval

Superseded by #175909


Different types of date selection

I'm creating an app for drug cessation and each day the user is prompted with an alert asking them if they refrained from drug use that day. If they select yes, I want to display a "yes" view in the cell view, and if they select no I want to display a "no" view in the cell view. I know there is calendarView.selectDates however I can't figure out how to select the view that I want to display. Is there a way to do this?

I do not fully understand what you are trying to do.
But I will ask have you checked out the tutorials on https://patchthecode.github.io/ ?
The tutorials there will help you in what you are trying to accomplish

After a user selects yes, I would imagine that you have some dataSource that saves which day user said yes and which day he said no. Therefore you would have a datasource that links days to yes/no.
Therefore in your willDisplayDate delegate function, all you have to do is check to see if the dateCell being configured, matches a yes/no date in your dataSource.

Thank you, I figured out how to do it using the willDisplayCell delegate function.


Music will not play in-game until a Joypad Input is pressed

Note: for support questions, please use one of the following channels.
Reddit: /r/gbstudio
Discord: Join Chat
This repository's issues are reserved for feature requests and bug reports.

I'm submitting a ...

[X] bug report
[ ] feature request
[ ] support request => Please do not submit support request here, see note at the top of this template.

Do you want to request a feature or report a bug?

Bug.

What is the current behavior?

Can't get music to play in a Scene until a Joypad Input is pressed. (Or, at least, that's what my tests have shown.)

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

This can be tested with the GB Studio demo files...

Add a Music: Play Track to the Title Screen Scene... Test the game and it won't work.
DO the same thing on the Outside Scene and it will.

What is the expected behavior?

Music will play whenever called.

What is the motivation / use case for changing the behavior?

To provide music on Scenes when the game loads.

Please tell us about your environment:

Version: 1.0.0
Platform: macOS

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

The music will begin on the Title even if you press a Joypad button that's not being listened for.

This is confirmed as a Web-only issue -- works fine when emulated.

This sounds like an issue with general web features that prevent sounds from auto playing unless interacted with, not really an issue with the html5 emulator.
Try uploading to Itch.io, where they have a built in "Click to play" feature on html games that meets these conditions.
If this resolves your issue, please close it.

Is it's "Click to Play" functionality different from mine?
http://samoff.com/CATG/
If so, I'll test it, but in my experience, clicking a button on a webpage is not within the same "domain" interacting within the "app."
In any case, it's a pretty bad UX issue, since 4 of my playtesters (who knew there was music) didn't do anything on the titlescreen for several seconds because they thought the game was still loading.
Is there a way to implement an "invisible click" function or some other form of game-instigated interaction that does not require user interactions to kick the music into gear?

Right, this happens on itch.io too, Issue is with the js-emulator on all versions.
A temporary hackey solution i've come up with, is modifying the GameBoyCore.js to run  initSound();
Somewhere after generateAudioFake line 5325.
This will overide the built in handler for "when sound is disabled by user/browser", not sure of side effects.
If you would like this hack, replace the file in web/js/GameBoyCore.js with the one i've modified below.
GameBoyCoreJS.zip

Thank you. I will try this!

@RichardULZ: This new JS file seems to break audio altogether (i.e., no music plays at all, even with Joypad interaction).

@timsamoff Auto play audio should be working on Chrome, firefox, and hopefully more with the latest dev build as of 17195e7 ( see #298 )
Note the browser still needs to meet a certain 'site engagement' threshold for autoplay sound to run. Clicking anywhere in the game window will now also begin audio.
Would be great to hear how this works on your end.

Generally, the only guaranteed to be able to play audio, is to do it through user interaction. If you say capture a click event, you will be able to start audio, as it is considered as a user interaction.
However, this will only work if the event is a real event initiated by the user, a synthetic event will not work.

@thomas-alrek That's right, a user click on the page is usually required.
But if the page is used enough or was clicked on recently, it may reach the media engagement index,  https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#mei
Itch.io includes a Click to run feature as default on all html games, so our auto play should work with that, without interaction in the game as such.
Otherwise, any click on the player now also kickstarts our sound, it was previously limited to keyboard or touch buttons only.


how to sign out?

Thanks; great project and very useful.  I'd very much like to provide a "button" to log the user out of my site as in  Sign out a User. Please advise how to sign out if there exists a way.  If not perhaps add a URL (e.g., "oauth.domain.com/_signout") if feasible?

I think this makes sense and would be useful, it just needs another endpoint (/_oauth/signout?) that removes the cookie.
The only reason this might not be backwards compatible would be if someone is already using that path, but given it's prefixed with the /_oauth path which can be explicitly configured, I think it's reasonable to assume that /_oauth* is reserved for this application and that if /_oauth/signout has been implemented, it would only be to do this anyway - as such I think this is safe for a minor version bump, but depending on how soon 3.0 is ready, I might just hold it for that anyway.

Thanks! I'll keep alert for an update with the "Sign Out" feature which will be much appreciated.

just remove the cookie is not secure enough. As user can save the cookie and perform a successful curl request with the cookie even after you logout the cookie itself.
A more securer logout is to revoke the session on server side, which means a session storage is needed.

@westwin very true - this project provides only stateless authentication, so in this mode it wouldn't be possible to store that invalidation. There are a couple of more advanced features, such as this, that would benefit from storing some state, so it's something I'm looking at. For now, I will document this constraint so it's clear.
@joedefen I have pushed an implementation in #107 - it just needs some extra documentation 👍

Merged in #107 pending release in 2.2


Add support for specifying a concurrency limit per queue

Allows a concurrency setting to be supplied along with the queue name to support limiting how many jobs should be handled concurrently for that queue.
This is a fairly basic implementation of queue management and can be improved with more advanced features such as tracking which worker has which queue to allow it to monitor workers and auto checkin queues if a worker goes down unexpectedly.
I wasn't sure on how to structure the config for this, so I have gone with the smallest change to the existing config and we can alter it if needed.
This will now allow two types of values (a binary or two element tuple) to be specified in the worker pool queues list which would look something like this.
{FaktoryWorker,
  worker_pool: [
     size: 100,
     queues: [
       "test_queue",
       {"limited_queue", max_concurrency: 5}
     ]
  ]}

Codecov Report

Merging #70 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #70   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          25     26    +1
  Lines         318    346   +28
=====================================
+ Hits          318    346   +28

Impacted Files
Coverage Δ

lib/faktory_worker/worker/pool.ex
100% <ø> (ø)
:arrow_up:

lib/faktory_worker.ex
100% <ø> (ø)
:arrow_up:

lib/faktory_worker/queue_manager.ex
100% <100%> (ø)

lib/faktory_worker/worker/server.ex
100% <100%> (ø)
:arrow_up:

lib/faktory_worker/worker.ex
100% <100%> (ø)
:arrow_up:

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 fed865b...8eb46eb. Read the comment docs.


Serializer improvements

Is your feature request related to a problem? Please describe.
With regards to this issue raised against apicodegen https://github.com/christianhelle/apiclientcodegen/issues/906, the JsonSerializerOptions within Refiter.Core does not generate prettified Json
Describe the solution you'd like
The JsonSerialzer should be capable of generating pretty json, in this case the output of a refitter file in a human readable format.
the methods should take an optional JsonSerializerOptions such that the Serialise method should look like
    public static string Serialize(object any, JsonSerializerOptions? options) =>          JsonSerializer.Serialize(any, options ?? JsonSerializerOptions);
Describe alternatives you've considered
n/a
Additional context
As far as I am aware, the WriteIndented JsonSerializerOptions only affects the Serialization into JSON, and does not affect reading of minified or prettified json content

@dammitjanet Thanks for taking the time to report this. This will be resolved soon


Moving to next screen

How to route to some screens on clicking bottom tab items?
Please help

Use a navigation library like react-navigation. Please refer to their documentation for further infos.


Is there a way to view past notifications?

I think it without this plugin :messages would work but now the notifications don't show up there anymore

I think it without this plugin :messages would work but now the notifications don't show up there anymore

+1 for this proposal. Sometimes, I want to check the error message more carefully via :message command.

Please try with the latest commit, I've added a history function to the module which returns previous messages. See the README for details

FYI: I wrote a tiny command to show messages from nvim-notify.
require'notify'.print_history = function()
  local color = {
    DEBUG = 'NotifyDEBUGTitle',
    TRACE = 'NotifyTRACETitle',
    INFO = 'NotifyINFOTitle',
    WARN = 'NotifyWARNTitle',
    ERROR = 'NotifyERRORTitle',
  }
  for _, m in ipairs(notify.history()) do
    vim.api.nvim_echo({
      {vim.fn.strftime('%FT%T', m.time), 'Identifier'},
      {' ', 'Normal'},
      {m.level, color[m.level] or 'Title'},
      {' ', 'Normal'},
      {table.concat(m.message, ' '), 'Normal'},
    }, false, {})
  end
end
vim.cmd([[command! Message :lua require'notify'.print_history()<CR>]])

Then,
:Message

Thanks @delphinus I've changed your snippet a little and put it in as a built in :Notifications command :smile:


Added missing basque language properties

Hi,
I've added missing properties in basque language file to display calendar correctly.
Thanks in advance.

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Related tickets
N/A

License
MIT

Thanks @ierrasti


Improve data transfer between ScalaPy and Python

The goal is to improve the transfer speed of data passing from ScalaPy to Python. This would make ScalaPy programs which rely heavily on data switching from one to other run much faster.
The current plan for solving this issue is:

[ ] Replace JNA with JNI in CPythonAPI

[ ] Replace JNA with JNI in Platform

These two alone could bring a speedup of an order of magnitude if not more.

[ ] Find and implement optimization like low-level copying of data (if possible) or using proxies for accessing some data

The last one is the most open as there is no guarantee that optimization can and will be found but it is definitely the most interesting and time demanding.

What do you think of jdk.incubator.foreign APIs introduced since jdk 17? I think this will reduce a lot of boilerplate in native code while keeping performance.
This project uses them and this article says its performance advantage over JNA.
https://dev.to/markehammons/slinc-update-5afi


Postal gives a random 403 after many UI requests

Describe the bug
After a succesful configuration and many UI requests, a random 403 is triggered. This causes:

Requests to no longer show up on the web container log
403 status code to be sent back from the web container on any subsequent request

It disappears when you remove the postal session cookie.
To Reproduce

Fully setup postal as described on the site
Use nginx as your ingress (but this should also happen for caddy)
Use the UI for a while, until you get a 403

Expected behaviour
No 403 should be triggered.
Screenshots
Irrelevant
Environment details
Run within Docker with Nginx as an ingress.
Additional information/context
Already tested and not the problem:

The ingress itself functions correctly
The requests are actually sent to the container, but no logs are created
Resetting other cookies has no effect, only postal session.

Possibly related to:
https://github.com/postalserver/postal/issues/2459
https://github.com/postalserver/postal/issues/487
Note that generally, you just get the normal UI, until after about 30-50 requests you suddenly start getting 403's.

Sadly, I can't reproduce this and nobody has been able to provide any logs when it happens. In light of that, I'm closing this issue until such data can be provided.


Replace occurrence of isNaN with Number.isFinite

This should properly honor the intention since inside the if the tested item gets passed as the first argument to Buffer.writeIntLE which expects a number for that argument.
It looks like some whitespace changes got in here... sorry about that. The money change is line 160.

FWIW, I'm also thinking that both lines 162 and 163 should be using buffcount rather than node.count. This is probably where tthe size error from issue #39 actually comes from.

and yes - agree - should be buffcount

Given that the error was from a NaN getting in there and given...
> typeof NaN
'number'
> Number.isFinite(NaN)
false

...I thought Number.isFinite might be a safer route.

ok - not too fussed - will you change the  buffcount ones ?

Done, but I'm not in the office today so I couldn't validate.
There were a couple of other node.counts that made no sense so I got those, too.

ok - merged - I'll publish to npm so you can check it - but won't update the flows site until you give the OK.

Sorry for the long delay, @dceejay. It's checking out good for me.


Added LTS install support like in #469

Own implementation of #469 but with a specific function that improves the design a bit.

I've merged #469. I appreciate this version, but it duplicates the features in the existing node.GetAvailable() function.


Max-pods is not set according to the instance type but set to the default value of 110 in user_data

Description
Max-pods is not set according to the instance type but set to the default value of 110 in user_data.
We have nodes deployed via node_groups and Karpenter. We noticed that the nodes created via node groups have the default max-pods setting of 110 instead of the value according to the instance type derived from the eni-max-pods file. Only the nodes created by Karpenter have the correct instance type specific values.
We don’t set the max-pods value in our terraform code and I checked the base64 user-data string from the terraform state file and it shows only the values from our code without and max-pods setting.
The user_data in the terraform state file matches our code. Both don’t have any settings for max-pods.
But the user_data taken from the AWS console and the output from the api client commands have an entry for “max-pods = 110”. It looks like that the max-pods setting was added somewhere else.
A similar issue has been raised before but there is no conclusion to it:
https://github.com/terraform-aws-modules/terraform-aws-eks/issues/2297
Versions

Module version [Required]:
Downloading registry.terraform.io/terraform-aws-modules/eks/aws 19.14.0 for eks.awseks...

eks.awseks in .terraform/modules/eks.awseks

eks.awseks.eks_managed_node_group in .terraform/modules/eks.awseks/modules/eks-managed-node-group

eks.awseks.eks_managed_node_group.user_data in .terraform/modules/eks.awseks/modules/_user_data

eks.awseks.fargate_profile in .terraform/modules/eks.awseks/modules/fargate-profile

Terraform version:
v1.3.9

Provider version(s):

Finding hashicorp/null versions matching ">= 3.2.0"...

Finding hashicorp/tls versions matching ">= 3.0.0"...

Finding hashicorp/time versions matching ">= 0.9.0"...

Finding hashicorp/cloudinit versions matching ">= 2.0.0"...

Finding hashicorp/kubernetes versions matching ">= 2.10.0, >= 2.21.0"...

Finding hashicorp/aws versions matching ">= 3.72.0, >= 4.0.0, >= 4.47.0, >= 4.54.0, >= 4.57.0, >= 5.1.0, >= 5.5.0"...

Using hashicorp/null v3.2.1 from the shared cache directory

Using hashicorp/tls v4.0.4 from the shared cache directory

Using hashicorp/time v0.9.1 from the shared cache directory

Using hashicorp/cloudinit v2.3.2 from the shared cache directory

Installing hashicorp/kubernetes v2.23.0...

Installed hashicorp/kubernetes v2.23.0 (signed by HashiCorp)

Installing hashicorp/aws v5.17.0...

Installed hashicorp/aws v5.17.0 (signed by HashiCorp)

Reproduction Code [Required]
  # EKS Managed Node Group(s)
  eks_managed_node_group_defaults = {
    ami_type            = "BOTTLEROCKET_x86_64"
    platform            = "bottlerocket"
    ami_release_version = var.eks_bottlerocket_version

    bootstrap_extra_args = <<-EOT
    [settings.kubernetes]
    image-gc-high-threshold-percent = "85"
    image-gc-low-threshold-percent = "80"

    [settings.kubernetes.kube-reserved]
    cpu = "200m"
    ephemeral-storage = "1Gi"
    memory = "100Mi"

    [settings.kubernetes.system-reserved]
    cpu = "100m"
    ephemeral-storage = "1Gi"
    memory = "100Mi"
    EOT

    instance_types = ["m5a.large", "m6a.large", "m6i.large", "m5.large"]
    disk_size      = 20

    ## This seems to cause issues with the Load balancer controller
    ## attach_cluster_primary_security_group = true
    vpc_security_group_ids = []
    iam_role_additional_policies = {
      additional             = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
      ecr_pull_through_cache = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:policy/${var.project}-${var.environment}-core-ecr-pull-through-cache"
    }

    # This policy is already attached to the `aws-node` service account via IRSA, keep nodes more secure.
    # Ref: https://docs.aws.amazon.com/eks/latest/userguide/cni-iam-role.html
    iam_role_attach_cni_policy = false
  }

  eks_managed_node_groups = {
    core = {
      min_size     = 3
      max_size     = 3
      desired_size = 3

      instance_types = ["c5.xlarge", "c5a.xlarge", "c6a.xlarge"]
      capacity_type  = "ON_DEMAND"

      labels = {
        nodegroup   = "core"
        provisioner = "managed-node-group"
      }

      taints = [
        {
          key    = "system-no-schedule"
          value  = "true"
          effect = "NO_SCHEDULE"
        }
      ]

      update_config = {
        # Do not delete existing nodes if new ones fail
        max_unavailable_percentage = 1 # or set `max_unavailable`
      }

      tags = {
      }
    }
  }

Steps to reproduce the behavior:
Create a new cluster with the default eks managed node group.
Expected behavior
There is no entry in user_data for max-pods.
The max-pods setting gets derived from the  eni-max-pods and set according to the instance type.
Actual behavior
max-pods get set to a fixed value of 110 in user_data.
Terminal Output Screenshot(s)

Additional context
Below is:
An extract of the code to set the userdata
The userdata of a node taken from from the AWS console
The output of the API client command
The user_data extracted from the Terraform state file
Code setting user_data
  # EKS Managed Node Group(s)
  eks_managed_node_group_defaults = {
    ami_type            = "BOTTLEROCKET_x86_64"
    platform            = "bottlerocket"
    ami_release_version = var.eks_bottlerocket_version

    bootstrap_extra_args = <<-EOT
    [settings.kubernetes]
    image-gc-high-threshold-percent = "85"
    image-gc-low-threshold-percent = "80"

    [settings.kubernetes.kube-reserved]
    cpu = "200m"
    ephemeral-storage = "1Gi"
    memory = "100Mi"

    [settings.kubernetes.system-reserved]
    cpu = "100m"
    ephemeral-storage = "1Gi"
    memory = "100Mi"
    EOT

Userdata of a node from the AWS console
settings.kubernetes.cluster-name = 'xxx'
settings.kubernetes.api-server = 'xxx.eu-west-1.eks.amazonaws.com'
settings.kubernetes.cluster-certificate = 'xxx'
settings.kubernetes.cluster-dns-ip = 'xxx'
settings.kubernetes.max-pods = 110
settings.kubernetes.node-labels.'eks.amazonaws.com/sourceLaunchTemplateVersion' = '2'
settings.kubernetes.node-labels.'eks.amazonaws.com/nodegroup-image' = 'ami-00714b26afc505311'
settings.kubernetes.node-labels.'eks.amazonaws.com/capacityType' = 'ON_DEMAND'
settings.kubernetes.node-labels.'eks.amazonaws.com/nodegroup' = 'core-xxx'
settings.kubernetes.node-labels.'eks.amazonaws.com/sourceLaunchTemplateId' = 'lt-xxx'
settings.kubernetes.node-labels.nodegroup = 'core'
settings.kubernetes.node-taints.system-no-schedule = 'true:NoSchedule'
settings.kubernetes.image-gc-high-threshold-percent = '85'
settings.kubernetes.image-gc-low-threshold-percent = '80'
settings.kubernetes.kube-reserved.cpu = '200m'
settings.kubernetes.kube-reserved.ephemeral-storage = '1Gi'
settings.kubernetes.kube-reserved.memory = '100Mi'
settings.kubernetes.system-reserved.cpu = '100m'
settings.kubernetes.system-reserved.ephemeral-storage = '1Gi'
settings.kubernetes.system-reserved.memory = '100Mi'

apiclient output
ssm-user@control]$ apiclient get settings.kubernetes
{
  "settings": {
    "kubernetes": {
      "api-server": https://xxx.eu-west-1.eks.amazonaws.com/,
      "authentication-mode": "aws",
      "cloud-provider": "aws",
      "cluster-certificate": "xxx",
      "cluster-dns-ip": "xxx",
      "cluster-domain": "cluster.local",
      "cluster-name": "xxx-eks-cluster",
      "image-gc-high-threshold-percent": "85",
      "image-gc-low-threshold-percent": "80",
      "kube-reserved": {
        "cpu": "200m",
        "ephemeral-storage": "1Gi",
        "memory": "100Mi"
      },
      "max-pods": 110,
      "node-ip": "xxx",
      "node-labels": {
        "eks.amazonaws.com/capacityType": "ON_DEMAND",
        "eks.amazonaws.com/nodegroup": "core-xxx",
        "eks.amazonaws.com/nodegroup-image": "ami-00714b26afc505311",
        "eks.amazonaws.com/sourceLaunchTemplateId": "lt-xxx",
        "eks.amazonaws.com/sourceLaunchTemplateVersion": "2",
        "nodegroup": "core"
      },
      "node-taints": {
        "system-no-schedule": [
          "true:NoSchedule"
        ]
      },
      "pod-infra-container-image": "602401143452.dkr.ecr.eu-west-1.amazonaws.com/eks/pause:3.1-eksbuild.1",
      "provider-id": "aws:///eu-west-1a/i-05e91fb435eaacac4",
      "server-tls-bootstrap": true,
      "standalone-mode": false,
      "system-reserved": {
        "cpu": "100m",
        "ephemeral-storage": "1Gi",
        "memory": "100Mi"
      }
    }
  }
}

Decrypted base64 user_data from the Terraform state file
% cat user_data.b64 | base64 -d
[settings.kubernetes]
image-gc-high-threshold-percent = "85"
image-gc-low-threshold-percent = "80"

[settings.kubernetes.kube-reserved]
cpu = "200m"
ephemeral-storage = "1Gi"
memory = "100Mi"

[settings.kubernetes.system-reserved]
cpu = "100m"
ephemeral-storage = "1Gi"
memory = "100Mi"

lets keep this issue over at https://github.com/bottlerocket-os/bottlerocket/issues/3449 - there isn't anything that this module is doing in terms of max pods. thanks!


Simplify JSON ->UTxO conversion & add Write.Tx module

[x] Simplify conversion from JSON/[ApiExternalInput]  to UTxO

Previously: [ApiExternalInput] -> [(W.TxIn, W.TxOut, Maybe (Hash "Datum"))] -> Cardano.UTxO era

W.TxOut is incomplete, so we currently need the separate Maybe (Hash "Datum") and to re-combine it in TransactionLayer.toCardanoUTxO. This would get even more complicated with Babbage features.
TransactionLayer.toCardanoUTxO is partial and may call error

Now: [ApiExternalInput] -> [(WriteTx.TxIn, WriteTx.TxOut)] -> Ledger.UTxO era -> Ledger.UTxO era

where WriteTx.TxOut is isomorphic to Ledger.TxOut BabbageEra
More graceful error handling with: utxoFromTxOutsInRecentEra :: forall era. RecentEra era -> [(TxIn, TxOutInRecentEra)] -> Either ErrInvalidTxOutInEra (Shelley.UTxO (ShelleyLedgerEra era))

[x] Add Cardano.Wallet.Write.Tx module supporting the above

Uses cardano-api-style RecentEra era GADT and IsRecentEra era constraint.

Api changes

Dropped support for balancing txs in Shelley, Allegra and Mary. The balance_tx_byron_not_supported error has been replaced with balance_tx_era_not_supported .

[ ] Should mention this in the swagger for balanceTx

New errors inline_scripts_not_supported_in_alonzo, and inline_datums_not_supported_in_alonzo, currently unused.

Motivation
Preparation for #3436
Comments

Issue Number
ADP-1655

bors try

bors try

bors r+

bors r+


Fix Lumen 5.7 compatibility

This fixes it for me on the latest version of your package.

Codecov Report

Merging #467 into master will not change coverage.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master     #467   +/-   ##
=========================================
  Coverage     92.43%   92.43%
- Complexity      245      246    +1
=========================================
  Files            12       12
  Lines           582      582
=========================================
  Hits            538      538
  Misses           44       44

Impacted Files
Coverage Δ
Complexity Δ

src/Tools/Generator.php
95.03% <100%> (ø)
70 <0> (+1)
:arrow_up:

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 b677e66...2b91065. Read the comment docs.

Yep, sorry. I think the last PR #460 broke this.

Thanks