Cipher

Resources:
https://en.wikipedia.org/wiki/Cipher

In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure. An alternative, less common term is encipherment. To encipher or encode is to convert information into cipher or code. In common parlance, "cipher" is synonymous with "code", as they are both a set of steps that encrypt a message; however, the concepts are distinct in cryptography, especially classical cryptography.
Codes generally substitute different length strings of character in the output, while ciphers generally substitute the same number of characters as are input. There are exceptions and some cipher systems may use slightly more, or fewer, characters when output versus the number that were input.
In the word of digital fraud, to prevent our data many techniques are used to keep our data safe from hackers or any third party. In this article, we are going to discuss the types of cipher. Before that lets first see the meaning. Plain text is the message or data that can be readable by the sender, receiver or any third party. When the plain text is modified by using some algorithms or techniques, the resulting data or message is called ciphertext. In short, converting plain text i.e. readable text into non-readable text is called ciphertext.
Types of Cipher
Several types of cipher are given as follows:
Caesar Cipher
In Caesar cipher, the set of characters of plain text is replaced by any other character, symbols or numbers. It is a very weak technique of hiding text. In Caesar’s cipher, each alphabet in the message is replaced by three places down. Let’s see one example. The plain text is EDUCBA. As a Caesar cipher, each alphabet is replaced by three-place down, so E will replace by H, D will replace by G, U will replace by X, C will replace by F, B will replace by E and A will replace by D. So here the plain text is EDUCBA and ciphertext Is HGXFED.
Caesar cipher algorithm is as follows:
Read each alphabet of plain text
Replace each alphabet by 3 places down.
Repeat the process for all alphabet in the plain text.

A Modified Version of Caesar Cipher: This cipher works the same as Caesar cipher, the only difference is – in Caesar cipher, each alphabet is replaced by three-place down wherein a modified version of Caesar cipher, the number is decided by a user to replace the alphabet and this number will be constant. For example, EDUCBA and number for the replacement are 1, so E will replace by F, D will replace by E, U will replace by V, C will replace by D, B will replace by C and A will replace by B. So here the plain text is EDUCBA and ciphertext Is FEVDCB.
A modified version of the Caesar cipher algorithm is as follows
Read each alphabet of plain text
Take the number for replacement
Replace each alphabet by specified number down.
Repeat the process for all alphabet in the plain text.
Monoalphabetic Cipher
As Caesar cipher and a modified version of Caesar cipher is easy to break, monoalphabetic cipher comes into the picture. In monoalphabetic, each alphabet in plain text can be replaced by any other alphabet except the original alphabet. That is A can be replaced by any other alphabet from B to Z. B can be replaced by A or C to Z. C can be replaced by A, B, and D to z, etc. Mono alphabetic cipher causes difficulty to crack the message as there are random substitutions and a large number of permutation and combination are available.
Homophonic Substitution Cipher
A homophonic substitution cipher is similar to monoalphabetic cipher the only difference is in monoalphabetic we replace the alphabet by any other random alphabet except the original alphabet wherein homophonic substitution cipher, the alphabet is replaced by fixed alphabet or set of alphabet. The substitution alphabet is replaced with te fixed. For example, replace A with x, E with B, S with A, etc. or replace A with E, x or L, B with T, A, Z, etc.
Polygram Substitution Cipher
In polygram substation cipher, rather than replacing each alphabet with another, the Block of alphabets is replaced with another block of alphabets. Replace EDUCBA with XYQLAB. In this case, EDUCBA will replace with XYQLAB, but EDU can be replaced with another set of the block, let’s assume EDU will replace with LOD. In this type of ciphers, the replacement of plain text is done through the block by block rather than character by character.
Polyalphabetic Substitution Cipher
Polyalphabetic Cipher is also known as Vigenere Cipher which is invented by Leon Battista Alberti. In Polyalphabetic Substitution Cipher is a method of encrypting alphabetic texts. It uses multiple substitution alphabets for encryption. Vigener square or Vigenere table is used to encrypt the text. The table contains 26 alphabets written in different rows each alphabet being cyclically shifted to the left in accordance with the previous alphabet, equivalent to the 26 possible Caesar Ciphers. The cipher uses a different alphabet from one of the rows at various points in the encryption process.
Let’s consider Original text is Educba and the keyword is Apple. For the encryption process, The first letter of the original text, E is paired with A, the first letter of the key. So use row E and column A of the Vigenère square, which is E. Similarly, for the second letter of the original text, the second letter of the key is used, the letter at row d and column p is s. The rest of the original text is enciphered in the same way. The final encryption of Educba is Esjnfa.
Playfair Cipher
Playfair cipher is also called as Playfair square. It is a cryptographic technique that is used o encrypt the data. Playfair cipher process is as follows:
Creation and population of the matrix.
Encryption process.
Let’s discussed the above-mentioned steps in detail manner creation and population of the matrix. It uses 5 * 5 matrix to store the keyword or the key which is used for encryption and decryption process.
This step is working as follows
Enter the keyword in the matrix in a row-wise manner i.e from left to right and top to bottom.
Skip the duplicate words in the keyword.
Fill the remaining spaces with the rest of the alphabets (A – Z) that were not a part of the keyword.
Note: while doing so combine I and J in the same cell of the table. i.e. If I or J is present in the keyword, discard both I and J while filling the remaining space encryption process.
The encryption process works as follows:
Break the alphabets into the groups (each group must contain two values). The encryption processes will be performed on these groups.
If both alphabets in the group are the same, add x after the first alphabet.
If both the alphabet in the group are present in the same row of the matrix, replace them with the alphabets to their immediate right respectively. If the original group is on the right side of the row then wrapping around to the left side of the row happens.
If both the alphabet in the group are present in the same column replace them with the alphabets immediate with below respectively. If the original group is on the bottom side of the row then wrapping around to the top side of the row happens.
If both the alphabet in the group are not in the same row or column, replace them with the alphabets in the same row immediately but at the other pair of corners of the rectangle which is defined by the original group.
Hill Cipher
Hill cipher works on the multiple alphabets at the same time. Hill cipher works as follows:
Assign the number to each alphabet in the plain text. A = 0, B= 1….z = 25
Organize the plain text message as a matrix of numbers base on the above step that is in number format. The resultant matrix is called a plain text matrix.
Multiply the plain text matrix with a randomly chosen key. Note that the key matrix must be the size of n*n where n stands for the number of rows in a plain text matrix.
Multiply both the matrix i.e. step 2 and step 3.
Calculate the mod 26 value of the above matrix i.e. matrix results in step 4.
Now translate the numbers to alphabets i.e. 0 =A, 1 =B, etc.
The result of step 6 becomes our ciphertext.

Types of Cipher
Caesar Cipher
In Caesar cipher, the set of characters of plain text is replaced by any other character, symbols or numbers. It is a very weak technique of hiding text. In Caesar’s cipher, each alphabet in the message is replaced by three places down. Let’s see one example. The plain text is EDUCBA. As a Caesar cipher, each alphabet is replaced by three-place down, so E will replace by H, D will replace by G, U will replace by X, C will replace by F, B will replace by E and A will replace by D. So here the plain text is EDUCBA and ciphertext Is HGXFED.
Caesar cipher algorithm is as follows:
Read each alphabet of plain text
Replace each alphabet by 3 places down.
Repeat the process for all alphabet in the plain text.

A Modified Version of Caesar Cipher: This cipher works the same as Caesar cipher, the only difference is – in Caesar cipher, each alphabet is replaced by three-place down wherein a modified version of Caesar cipher, the number is decided by a user to replace the alphabet and this number will be constant. For example, EDUCBA and number for the replacement are 1, so E will replace by F, D will replace by E, U will replace by V, C will replace by D, B will replace by C and A will replace by B. So here the plain text is EDUCBA and ciphertext Is FEVDCB.
A modified version of the Caesar cipher algorithm is as follows
Read each alphabet of plain text
Take the number for replacement
Replace each alphabet by specified number down.
Repeat the process for all alphabet in the plain text.
Monoalphabetic Cipher
As Caesar cipher and a modified version of Caesar cipher is easy to break, monoalphabetic cipher comes into the picture. In monoalphabetic, each alphabet in plain text can be replaced by any other alphabet except the original alphabet. That is A can be replaced by any other alphabet from B to Z. B can be replaced by A or C to Z. C can be replaced by A, B, and D to z, etc. Mono alphabetic cipher causes difficulty to crack the message as there are random substitutions and a large number of permutation and combination are available.
Homophonic Substitution Cipher
A homophonic substitution cipher is similar to monoalphabetic cipher the only difference is in monoalphabetic we replace the alphabet by any other random alphabet except the original alphabet wherein homophonic substitution cipher, the alphabet is replaced by fixed alphabet or set of alphabet. The substitution alphabet is replaced with te fixed. For example, replace A with x, E with B, S with A, etc. or replace A with E, x or L, B with T, A, Z, etc.
Polygram Substitution Cipher
In polygram substation cipher, rather than replacing each alphabet with another, the Block of alphabets is replaced with another block of alphabets. Replace EDUCBA with XYQLAB. In this case, EDUCBA will replace with XYQLAB, but EDU can be replaced with another set of the block, let’s assume EDU will replace with LOD. In this type of ciphers, the replacement of plain text is done through the block by block rather than character by character.
Polyalphabetic Substitution Cipher
Polyalphabetic Cipher is also known as Vigenere Cipher which is invented by Leon Battista Alberti. In Polyalphabetic Substitution Cipher is a method of encrypting alphabetic texts. It uses multiple substitution alphabets for encryption. Vigener square or Vigenere table is used to encrypt the text. The table contains 26 alphabets written in different rows each alphabet being cyclically shifted to the left in accordance with the previous alphabet, equivalent to the 26 possible Caesar Ciphers. The cipher uses a different alphabet from one of the rows at various points in the encryption process.
Let’s consider Original text is Educba and the keyword is Apple. For the encryption process, The first letter of the original text, E is paired with A, the first letter of the key. So use row E and column A of the Vigenère square, which is E. Similarly, for the second letter of the original text, the second letter of the key is used, the letter at row d and column p is s. The rest of the original text is enciphered in the same way. The final encryption of Educba is Esjnfa.
Playfair Cipher
Playfair cipher is also called as Playfair square. It is a cryptographic technique that is used o encrypt the data. Playfair cipher process is as follows:
Creation and population of the matrix.
Encryption process.
Let’s discussed the above-mentioned steps in detail manner creation and population of the matrix. It uses 5 * 5 matrix to store the keyword or the key which is used for encryption and decryption process.
This step is working as follows
Enter the keyword in the matrix in a row-wise manner i.e from left to right and top to bottom.
Skip the duplicate words in the keyword.
Fill the remaining spaces with the rest of the alphabets (A – Z) that were not a part of the keyword.
Note: while doing so combine I and J in the same cell of the table. i.e. If I or J is present in the keyword, discard both I and J while filling the remaining space encryption process.
The encryption process works as follows:
Break the alphabets into the groups (each group must contain two values). The encryption processes will be performed on these groups.
If both alphabets in the group are the same, add x after the first alphabet.
If both the alphabet in the group are present in the same row of the matrix, replace them with the alphabets to their immediate right respectively. If the original group is on the right side of the row then wrapping around to the left side of the row happens.
If both the alphabet in the group are present in the same column replace them with the alphabets immediate with below respectively. If the original group is on the bottom side of the row then wrapping around to the top side of the row happens.
If both the alphabet in the group are not in the same row or column, replace them with the alphabets in the same row immediately but at the other pair of corners of the rectangle which is defined by the original group.
Hill Cipher
Hill cipher works on the multiple alphabets at the same time. Hill cipher works as follows:
Assign the number to each alphabet in the plain text. A = 0, B= 1….z = 25
Organize the plain text message as a matrix of numbers base on the above step that is in number format. The resultant matrix is called a plain text matrix.
Multiply the plain text matrix with a randomly chosen key. Note that the key matrix must be the size of n*n where n stands for the number of rows in a plain text matrix.
Multiply both the matrix i.e. step 2 and step 3.
Calculate the mod 26 value of the above matrix i.e. matrix results in step 4.
Now translate the numbers to alphabets i.e. 0 =A, 1 =B, etc.
The result of step 6 becomes our ciphertext.


Updated registration agencies

This change is

Coverage decreased (-0.2%) to 95.658% when pulling 63afbd18519ac8f95dc6fcadf65ac9e8bc786347 on yshalenyk:iati_codes_update into e5f58b5fb48b1afc3a921efbfb00cb55c2d88ee4 on openprocurement:master.


AppManifest threshold for RG Memory

Created a feature for applications to set AppObserver thresholds in Application Manifest. This implementation specifically allows this for RG memory and allows for further extension.

How more extensive would it be to support all appconfig parameters as overrides in the app manifest ?

It would be about 3 lines per parameter, so not hard, but should sync on what parameters should be there.


Bug: Pasting over linebreaks puts content in different places

When pasting some text with at least two containers/paragraphs on two linebreaks, the text being pasted gets split, the first container (heading) gets on the correct location, and the remaining text gets pasted after the next paragraph.
Lexical version:
Steps To Reproduce

Hit two Shift-Enter inside a paragraph on Lexical's editor
Try pasting a text having two containers, a heading and a paragraph for example

https://github.com/facebook/lexical/assets/5845160/321fe7a4-56b7-488d-a851-7f6d16174514
Lexical playground exports:
Playground 2023-07-24T13_10_22.747Z.lexical.zip

The current behavior
The first line of the text being pasted gets to the correct location, and the remaining text gets appended to the end of the paragraph.
The expected behavior
All the text gets inserted to the correct location, preferably keeping the same formatting from where it was copied.

Hi @augustobmoura, I reproduced this error, and it seems there is an issue when copying and pasting text. I observed the following:

When you have some text already written and have some space below with "Shift+Enter" and paste some other text there with any formatting, it adopts the same format as the existing text.

i'm willing to work on it, can anyone please assign this task to me.

@Git-Codder Hi! Go ahead and proceed! And thanks for your help here.

Hello! @StyleT I will be working on lexical for the MLH fellowship and would love to take this issue as a chance to get my feet more wet with lexical and start my contribution journey! I noticed the last comment on this issue was in april and not sure if there's already a PR out there for it?

@Git-Codder Hello, are you still working on this?


Institution not exists checkbox not works correctly

Probably it occured after add second author etc. :bug:fix ping @utkuaydin

tested and now works


docs: update http[].match.exprs any -> all

Internal testing and the upstream docs seem to indicate that vars in APISIX with multiple matchers requires all of them to return true for the route to match, not any.

@acuteaura thanks for your PR


pythonPackages.celery: 4.0.2 -> 4.1.0

Motivation for this change
This updates celery and downgrades the py.test version used since tests are not working with latest pytest (https://github.com/celery/celery/commit/acf850643d0c0e0e140b43ea68c9a6141f4752f8)
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] 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/)
[X] Fits CONTRIBUTING.md.

Pushed to master 45b9cf26592f84a33a4b0995913d9a9ffaf363c8


feature request: partial cell scrollbar

At the moment the scrollbar renders as whole cells, I believe this is done because it highlights the whole cell. If you used characters like ▁▂▃▄▆▇█ for the top and bottom of the scrollbar you could have a much more precise position and it will appear to scroll smoother on larger files. Using those same characters, you can invert the highlights and make them appear as they are incrementing from the top.
x

This is something I've explicitly not implemented. The main focus of satellite.nvim is to provide signs like signcolumn but for the entire buffer.
One of the features required for this to work is that highlights in Neovim can be blended. So in order for signs to appear on top of the scrollbar (which is important), the scrollbar must be implemented with whitespace characters.


Potential leftovers from debugging in align-gl.cpp

Required Info

SDK Version
2.35.2

In current master and development branches, in align-gl.cpp, in align_gl::align_z_to_other:
    //...
    render(p, depth, intr, extr, aligned_tex);

    //aligned.get_data();
    aligned = _upload->process(aligned);
    aligned = _upload->process(aligned);

Are the last 3 lines intentional?

By the way - when using rs2::gl::align, does user have to do anything specific to get texture data back to CPU (like glGetTexImage)?
Librealsense gl example mentions:

Once get_frame_data() on a GPU-frame gets called frame content will be copied to main memory.

but from what I understand this is not librealsense user facing API.

Hi @bmegli
This is a work-around for an issue I investigated some time ago. On specific model of GPUs, performing alignment once was not producing valid texture. This is almost certainly due to a bug in our implementation, but I wasn't able to find the root-cause. Assuming this method is performance prohibitive we can re-open it as a bug and look more closely into it.

Ok, thanks!


issue-2525 hadoop 2.7.4

What is the purpose of the change
Fixes #2525
Brief change log

Upgrade pom files

Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added tests for submit and execute all kinds of jobs to go through and verify the lifecycles of different EngineConns.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
Anything that affects deployment: (yes / no / don't know)
The MGS(Microservice Governance Services), i.e., Spring Cloud Gateway, OpenFeign, Eureka.: (yes / no)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

stale PR closed


add new snipet vue

Sorry, I really can't provide a good commit so please help

Hi @bobbyrahmanda13, some pointers to help get this PR into shape:

Before raising a PR please group the commits together with an interactive rebase (git rebase -i <hash>) as this makes it a little more clear on the changes.
The PR title should also match the changes (add new snippet vue doesn't necessarily imply the rename of the snippets that I also see).
If you plan to have significant changes, the individual commit messages can be light on words so long as the description explains why it's needed -- since it's unreasonable to ask any sole person to know all languages, I do rely on the context from others to inform my reviews (plus the documentation that I reference).

If you'd like some help/clarifications, please ping me and I'll see how I can assist further :slightly_smiling_face:

for naming commits or whatever honestly I'm a bad person at that, so I'm sorry for naming please help me
in this change I added snippets that will be used by Vue developers to speed up coding, currently Vue is developing very fast and there are even some new ones which I think if they use them it will help,
then for the javascript and typescript for the snippet I took it from the JS and ts snippets in this friendly snippet and I moved it to vue and some additions
I moved it because some people use this
broadnipLoader.lazy_load()
broadnip.filetype_extend("javascript", {"vue"})
broadnip.filetype_extend("typescript", {"javascript"})
broadnip.filetype_extend("vue", {"javascript","typescript"})

This makes the snippets in JavaScript and Typescript merge, and this makes them double
so I moved it to script.json so they don't use it anymore so it's just vue without the need to extend javascript and typescript,
because in javascript there is a console.log snippet with the prefix "cl" and in typescript the prefix is "log" for console.log
Please correct me and ask for help if I'm wrong, please criticize so that Vue can be better


Edition links in frontend/notification schemas

This is built on top of https://github.com/alphagov/govuk-content-schemas/pull/582 so won't be mergable until that is merged in and this is rebased against any changes.
This includes edition links inside frontend and notification schemas.
It also includes description and maxItems values in those schemas. Logic being that description is useful for people reading these schemas to know the purpose of the links, maxItems is useful as can anticipate how to handle the link. Originally I had it include required and minItems but I realised that we can't guarantee these are included. If this aspect of this PR is controversial let me know and I can break it out into a separate one for discussion.

@tijmenb are you happy with this?


Update New-ProtectionAlert.md

added example

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/policy-and-compliance/New-ProtectionAlert.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


--ngc doesnt work

Short description of the problem:
When using --ngc in the build, the tsconfig file is not updated with the additional configuration specifiedby the --ngc flag.
What behavior are you expecting?
This was working with version 41 and it's not working with the latest version (48). We would expect that we could modify the tsconfig by specifying additonnal configuration with --ngc. In our project, we use this to ignore some files from ngc.
Steps to reproduce:

Build with --ngc, specify a config file
the config file specified is not used to modify the tsconfig.json when calling ngc.

Which @ionic/app-scripts version are you using?
48
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)

When you say --ngc, what do you mean exactly? We deprecated the ngc config file and just use the tsconfig.json file for now. It was in the changelog as moving to in-memory ngc.
Thanks,
Dan

OK, sorry I missed that changes, you can close this issue.
Did not see this breaking changes in the changelog of version 47 (version where In-memory was introduced)
Note : --ngc should be removed from the Readme file.


Using hnsw and lsh as classifier

How can I use both methods for data classification rather than just retrieving nearest neighbours.
Or should I just use it like this kNN = KNeighborsClassifier(n_neighbors=50, algorithm = m) where m can be hnsw or lsh?

I assume you want to compare the two methods with respect to your classification task?
In this case, I would approach this exactly the way you suggested. Simply create two KNeighborsClassifiers,
one with algorithm="hnsw" and one with algorithm="lsh".
Note that v0.30 is currently under development. It's not yet finished, but it should be possible to install it from the main branch here. It integrates nicely with recent versions of scikit-learn that provide the KNeighborsTransformer. That is, you can precompute k-neighbors graphs with various (approximate) neighbor methods with scikit-hubness, and feed the results to any scikit-learn function that works on such graphs, including classification.

I have installed it and it seems to be working but when I import it on my notebooj I get the following warnings:

These are known issues of an old scikit-learn version when used with newer numpy versions.
They do not cause any errors and you may ignore them, or even filter them away:
import warnings

with warnings.catch_warnings():
    warnings.filterwarnings("ignore", category=DeprecationWarning)
    from sklearn import ...  # Insert all your sklearn-related imports here

These warnings will also go away with scikit-hubness v0.30 which works with scikit-learn versions > 0.21.

How do I upgrade to scikit-hubness v0.30? I tried using the following command on anaconda :
pip install -U scikit-hubness but I got the followin

g

A note of caution first, v0.30 is experimental at this point and might have all kinds of problems as is.
If you still want to try it, I suggest creating a new conda environment and installing it there.
# Install setup requirements
python3 -m pip install --upgrade pip
python3 -m pip install setuptools wheel pybind11

# Install scikit-hubness from main branch; including approx. neighbors libraries
python3 -m pip install git+https://github.com/VarIr/scikit-hubness.git[ann]

Can you please try without the [ann] part in the end? Perhaps this does not work when installing directly from github. The difference would only be whether other packages like nmslib or annoy are installed automatically at the same time. To use HNSW, you would then also have to pip install nmslib.

I have done all the steps in a new environment as suggested by when importing from skhubness I get the following error message:

From v0.30 scikit-hubness does provide an own implementation of KNeighborsClassifier anymore.
Instead, you can use the one from scikit-learn. The workflow will be as outline here. For example, you can create a pipeline of NMSlibTransformer and KNeighborsClassifier.

In terms of pipeline creation I am not well versed. Is there any possibility I can see how this is done for lsh and HNSW classification methods as I really want to use them to do comparison in terms of time complexity and accuracy. For example I have already used the exact methods which are brute force, kd tree, and ball tree in this manner:

I would in this case suggest you stick with the old scikit-hubness version for the time being,
because I don't really have any tested example code for the new version at this point.
It will take a while until I manage to update documentation and examples.

Okay thanks. So with the old version there is no problem to use both lsh and hnsw as classifiers?
I can have some thing like this: models = ['brute','kd_tree', 'ball_tree', 'lsh', 'hnsw']

Is there a way of installing and importing puffinn package because I want to use it for lsh method
I have installed it using: pip install puffin
But still when I run my notebook I get error above

puffinn (note the double-n) is not available from PyPI. puffin is an unrelated package.
Did you get any warnings/error messages from following the manual puffinn installation steps?
If no, did you install it in the same conda environment you are using in this Jupyter notebook?

I followed instruction from this page and hnsw is working perfectly with nmslib installed but its a different story for lsh

I only now realized you are on Windows. Unfortunately, falconn does not support Windows, and neither does puffinn. So LSH is only available on Linux or Macos.

Do you have any idea How can I modify/add scoring method on the following annoy wrapper class so that it can fully function as a classifier:
```#https://pypi.org/project/annoy/
#Based on code from: https://scikit-learn.org/stable/auto_examples/neighbors/approximate_nearest_neighbors.html
import annoy
from collections import Counter
from sklearn.base import BaseEstimator
#Wrapper for using annoy.AnnoyIndex as sklearn's KNeighborsTransformer
class Annoy():
def __init__(self,n_neighbors=5, metric='euclidean', n_trees=10):
    self.n_neighbors = n_neighbors
    self.Ametric = metric
    self.n_trees = n_trees

def fit(self, X_train, y_train):
    self.N_feat = X_train.shape[1]
    self.N_train = X_train.shape[0]
    self.y_train = y_train
    self.t = annoy.AnnoyIndex(self.N_feat,metric=self.Ametric)
    for i, v in zip(range(self.N_train), X_train):
        self.t.add_item(i, v)
    self.t.build(self.n_trees)
    return self

def predict(self,X_test):
    y_pred = []
    for tv in X_test:
        nn_inds = self.t.get_nns_by_vector(tv, self.n_neighbors)
        nn_classes =[self.y_train[nn] for nn in nn_inds]
        y_hat.append(most_frequent(nn_classes))
    return y_pred

def most_frequent(List):
occurence_count = Counter(List)
return occurence_count.most_common(1)[0][0]

You could try inheriting from the ClassifierMixin which provides the score() method. Or explicitly write the method. If you take a look at the linked code, it's literally two lines of code.

Right no I am using UBUNTU but still when I am installing the sk-hubness package it breaks when building and installing falconn package. Are there any specific steps/commands I need to follow when using ubuntu?

I quickly googled these error messages and some reports on insufficient memory popped up. But this is a wild guess.
I fear I cannot give more support on falconn compilation bugs. You may try to reach out to the falconn devs about this. (Note, however, that falconn has seen no development for over 4 years, for which reason I am dropping falconn support completely with v0.30).


Configure Renovate

Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.
🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.

Detected Package Files

Dockerfile (dockerfile)
requirements.txt (pip_requirements)

What to Expect
With your current configuration, Renovate will create 8 Pull Requests:

Update dependency PyYAML to v5.4.1

Schedule: ["at any time"]
Branch name: renovate/pyyaml-5.x
Merge into: master
Upgrade PyYAML to ==5.4.1

Update dependency urllib3 to v1.26.16

Schedule: ["at any time"]
Branch name: renovate/urllib3-1.x
Merge into: master
Upgrade urllib3 to ==1.26.16

Update dependency Pillow to v9.5.0

Schedule: ["at any time"]
Branch name: renovate/pillow-9.x
Merge into: master
Upgrade Pillow to ==9.5.0

Update dependency SQLAlchemy to v1.4.49

Schedule: ["at any time"]
Branch name: renovate/sqlalchemy-1.x
Merge into: master
Upgrade SQLAlchemy to ==1.4.49

Update dependency Pillow to v10

Schedule: ["at any time"]
Branch name: renovate/pillow-10.x
Merge into: master
Upgrade Pillow to ==10.0.0

Update dependency PyYAML to v6

Schedule: ["at any time"]
Branch name: renovate/pyyaml-6.x
Merge into: master
Upgrade PyYAML to ==6.0.1

Update dependency SQLAlchemy to v2

Schedule: ["at any time"]
Branch name: renovate/sqlalchemy-2.x
Merge into: master
Upgrade SQLAlchemy to ==2.0.19

Update dependency urllib3 to v2

Schedule: ["at any time"]
Branch name: renovate/urllib3-2.x
Merge into: master
Upgrade urllib3 to ==2.0.4

🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or overwhelm the project. See docs for prhourlylimit for details.

⚠ Dependency Lookup Warnings ⚠
Please correct - or verify that you can safely ignore - these lookup failures before you merge this PR.

python: Response code 429 (Too Many Requests)

Files affected: Dockerfile

❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section.
If you need any further assistance then you can also request help here.

This PR has been generated by Renovate Bot.

Renovate is disabled
Renovate is disabled because there is no Renovate configuration file. To enable Renovate, you can either (a) change this PR's title to get a new onboarding PR, and merge the new onboarding PR, or (b) create a Renovate config file, and commit that file to your base branch.


P4 2016 draft: inconsistent use of semicolons after declarations

At least in the sample P4 program in section 7.1, some top-level P4 syntax elements end with semicolons, and some do not.  At least from this C programmer's perspective, it is going to be difficult to remember which ones take semicolons and which ones do not.  I hope that, if semicolons are not required after particular declaration elements, they are at least allowed, so that a programmer who always adds a semicolon will not cause syntax errors.  Or perhaps the semicolons could always be made part of the syntax.

Note that this applies not just at the top level, but in (all?) nested scopes as well -- within controls, parsers, tables, block statements, and extern instantiations, we currently allow a sequence of declaration-like things, some of which end in semicolons and some of which do not...


your repo link is not working

Hi @shining0611armor, thanks for opening the issue. What link exactly isn't working properly?

Your repo link given in youtube description. https://www.youtube.com/watch?v=pACWvXc-GLs
https://github.com/BrianPulfer/PapersReimplementations/blob/main/vit/vit_torch.py

Oh I see. I guess the description of the video should be updated on the side of the creator of the video (which is not me). The new link after organizing this repo a bit better is: this

Thank you!


experimental: Enhance protection against arbitrary code execution in PALChain

Description: Block some ways to trigger arbitrary code execution bug in PALChain.

@DanisJiang thank you for the PR. We need to re-lint and can merge. I'm going to re-title this PR since I don't think we can claim that it fixes arbitrary code execution in PALChain. Approaches based on filtering AST nodes rather than including AST nodes are impossible to guarantee (e.g., will this code work safely in python 3.20 which may include some new AST nodes?)

Ready to merge after tests pass

@DanisJiang thank you for the PR. We need to re-lint and can merge. I'm going to re-title this PR since I don't think we can claim that it fixes arbitrary code execution in PALChain. Approaches based on filtering AST nodes rather than including AST nodes are impossible to guarantee (e.g., will this code work safely in python 3.20 which may include some new AST nodes?)

I haven't try in python 3.20, I think this code only blocks when risky node is detected, so it shouldn't be a problem.


Add joan38/kubernetes-client

And remove community Haskell since it's already in Officially-supported

/assign @rajakavitha1

@sftim are we good on this?

Thanks, @joan38 .
Page preview:
https://deploy-preview-20285--kubernetes-io-master-staging.netlify.app/docs/reference/using-api/client-libraries/
Not worried about the sorting of the table entries.
Would you have time to squash your commits?

@kbhawkey Do you want me to squash all commits into one as it was before @sftim mentioned I recommend separating those into 2 different commits?

:wave: @sftim
This PR looks good.
Squash or leave as is?

Each commit does a different thing. I don't think squashing further is a benefit.
/approve

Thanks guys!


Removal of nil's before relationship remove_children

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1511214

@miq-bot add_labels bug, providers

Nice @jameswnl can you see about adding a test to https://github.com/ManageIQ/manageiq/blob/master/spec/models/ems_refresh/metadata_relats_spec.rb to catch this?


Web: Unable to validate email address: invalid format, statusCode: 422

Description
I am getting the following error when running the project on web and using signup and providing email and password.
Unable to validate email address: invalid format, statusCode: 422
To Reproduce
I am testing authentication with Supabase as follows:
 final params = ref.read(authFormController);
      debugPrint(params.toString()); //AuthenitcationFormParams(email<EMAIL_ADDRESS>password: examplepass123)
      final result = await ref.read(supabaseClient).auth.signUp(
            password: params.email,
            email: params.password,
          );
      return result;

So whenever I try to signup, I receive the error message mentioned in above.
I am using the latest version of supabase_flutter: ^1.0.1 with flutter 3.3.3, and I am running the project on Chrome.

Was typo on my part. Sorry I had not figured this out until I actually read my own mistake in the snippet above


🐛 fix(vpn): avoids sudo when running as root

Description
A few tailscale commands require root privilege to run and are executed with sudo. However, when the user is already the root user, the CLI throws an error. This PR fixes that by adding sudo only when the executing user is non-root.

:tada: This PR is included in version 5.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Suggestion: SQL Server specific attributes

Is the feature request related to a problem
Not a problem, just an increment.
Describe the solution
Since this package is SQL Server specific, would be nice to see SQL Server specific fields such as SqlParameter.SqlDbType. Additionally, could be nice to also add other DbParameter attributes, such as Size, Precision and/or Scale. Personally, the SqlDbType would help me notice if a command is using NVarchar instead of Varchar. This is achievable through the DbType AnsiString/String`, but I think it still would be useful to have it, maybe by having fields being serialized by default instead of hand-picking them?
Describe alternatives considered
Looking at the source, looks like it can be achieved by implementing my own diagnostic listener and grabbing the fields I want. Also DbCommand.DbType kind of gives me this information.
Additional context
I decided to open an issue instead of a pull request just to hear your thoughts on it.

what api are you referring to here?

in that case. yep i am happy to accept a PR

can u try 9.0.0-beta.1


Fix display disappearance, add new field, fix ctrl-c

Cleanup after #89

Not going to write tests for the display even though it's desperately needed, because #54 is underway


Errors when pinging offline server

When the server is online, I get no errors, but once I restart it or turn it off, I get these errors
(node:7688) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED SERVER_IP:25565
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:7688) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandle
d promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

That's my code:
setInterval(function() {
        ping('SERVER_IP', 25565)
            .then((response) =>{
                if(isOnline == false){
                    console.log(response)
                    onlineStatus()
                    isOnline = true
                }
            })
            .catch((error) => {
                if(isOnline == true){
                    offlineStatus()
                    isOnline = false
                }
            })
        }, pingDelay * 1000)

I'm trying to get it to call if(isOnline == true) thing when the server is offline, but it just keeps spamming errors :(

it fixed itself


Transport thread name changed in Elasticsearch

Thread "transport_server_worker" and "transport_client_boss" is no longer used starting ES 6.6. It's changed to "transport_worker" instead.
6.5:
https://github.com/elastic/elasticsearch/blob/6.5/server/src/main/java/org/elasticsearch/transport/TcpTransport.java#L119-L120
6.6: https://github.com/elastic/elasticsearch/blob/6.7/server/src/main/java/org/elasticsearch/transport/TcpTransport.java#L103
PA:
https://github.com/opendistro-for-elasticsearch/performance-analyzer/blob/master/src/main/java/com/amazon/opendistro/elasticsearch/performanceanalyzer/reader/MetricsEmitter.java#L61-L62

it's too expensive for the new node's cpu and the Lucene Merge


trying to use spy:// (pyserial feature) with Interface mistakes it for a host address

using SerialInterface instead works fine.
pyserial supports telnet & socket connections as well as specifying device properties directly with hwgrep
https://pyserial.readthedocs.io/en/latest/url_handlers.html
can't say what the best approach is, but spy:// is very handy and could cause some confusion
Traceback (most recent call last):
  File "./rpctest.py", line 6, in <module>
    i = Interface("spy:///dev/ttyUSB0", 9600)
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/simple_rpc.py", line 235, in __new__
    return SocketInterface(device, *args, **kwargs)
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/simple_rpc.py", line 190, in __init__
    self.open()
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/simple_rpc.py", line 196, in _auto_open_wrapper
    result = f(self, *args, **kwargs)
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/simple_rpc.py", line 210, in open
    super().open()
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/simple_rpc.py", line 105, in open
    self.methods = self._get_methods()
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/simple_rpc.py", line 82, in _get_methods
    if self._read_byte_string() != _protocol:
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/simple_rpc.py", line 64, in _read_byte_string
    return read_byte_string(self._connection)
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/io.py", line 90, in read_byte_string
    return _read_bytes_until(stream, _end_of_string)
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/io.py", line 15, in _read_bytes_until
    return b''.join(until(lambda x: x == delimiter, stream.read, 1))
  File "/home/ohsix/.local/lib/python3.8/site-packages/simple_rpc/io.py", line 120, in until
    result = f(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/serial/urlhandler/protocol_spy.py", line 205, in read
    rx = super(Serial, self).read(size)
  File "/usr/lib/python3.8/site-packages/serial/serialposix.py", line 483, in read
    ready, _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], timeout.time_left())
KeyboardInterrupt

thanks! this library is very useful

that is what I thought initially, and what got me to come to github, but then I noticed SocketInterface in the backtrace after I pasted it in, and remembered that the library used a colon to decide whether to use SerialInterface or SocketInterface
if I use SerialInterface("spy://....") directly it works fine

that is what I thought initially, and what got me to come to github, but then I noticed SocketInterface in the backtrace after I pasted it in, and remembered that the library used a colon to decide whether to use SerialInterface or SocketInterface
if I use SerialInterface("spy://....") directly it works fine

Thanks for the additional information. Can you try the latest version?
Please reopen the ticket if this did not solve the problem.

Thanks for the additional information. Can you try the latest version?
Please reopen the ticket if this did not solve the problem.


Remove references to run Rake tasks on Jenkins

We should be running rake tasks on EKS now, and these links to Jenkins may be confusing.

It might create some chore work here, but I think it would be useful to add a link to the Run a rake task docs in every case that used to link directly to a Jenkins job. It's still an extra step or two compared to the old process, but at least devs wouldn't have to scramble to remember how to run rake tasks on the new platform? 🙏
(Also worth moving the EKS instructions on that page above the Jenkins ones, and marking the Jenkins ones as deprecated - but probably still worth keeping the Jenkins instructions around for as long as it's technically still possible to run them?)

Will do a follow up PR to implement your suggestions @ChrisBAshton


Add missing condition to stop reaping child procs

Since PR #75 the loop that reaps child processes is not properly stopping.
Since WaitPidFlag::WNOHANG is being used, the WaitStatus::StillAlive status should also be considered.

StillAlive
There are currently no state changes to report in any awaited child process. This is only returned if WaitPidFlag::WNOHANG was used (otherwise wait() or waitpid() would block until there was something to report).

This is equivalent to the res_pid == 0 condition before PR #75.

The CI failure seems like an unrelated transient network issue
+ integration
go<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>unrecognized import path "lukechampine.com/uint128": https fetch: Get "https://lukechampine.com/uint128?go-get=1": dial tcp [2600:3c03::f03c:91ff:fe55:92ba]:443: connect: network is unreachable


Improvement: Partial boon uptime

Many builds provide only partial boon uptime (or less than 25 stacks of Might). I think it would be useful to be able to track this as well. Currently a simple checkbox implies either 0% uptime or 100%. This feature could be implemented as an opt-in "advanced mode". What do you think?

I already had this on my list, forgot to open it as an issue.
My current idea would be partial boons shown from red to orange to yellow to green (you get the idea) based on the amount of stacks and alternatively give the option to show a numerical value.


Enable hadoop-ha

Enable hdfs-ha
Enbale yarn-ha

Test Result:
NAME                               READY     STATUS    RESTARTS   AGE
etcd-server-10.xxx.xxx.xxx            1/1       Running   0          6d
etcd-server-10.xxx.xxx.xxx            1/1       Running   0          6d
etcd-server-10.xxx.xxx.xxx            1/1       Running   0          6d
hadoop-data-node-ds-8ltls          1/1       Running   0          16m
hadoop-data-node-ds-cf20q          1/1       Running   0          16m
hadoop-data-node-ds-schm4          1/1       Running   0          16m
hadoop-jobhistory-service-z1rjs    0/1       Running   0          9s
hadoop-journal-node-ds-h94l4       1/1       Running   0          17m
hadoop-journal-node-ds-p8rm3       1/1       Running   0          17m
hadoop-journal-node-ds-xddz7       1/1       Running   0          17m
hadoop-name-node-ds-5l95z          1/1       Running   0          17m
hadoop-name-node-ds-s5szp          1/1       Running   0          17m
hadoop-node-manager-ds-158b0       1/1       Running   0          11m
hadoop-node-manager-ds-8zszt       1/1       Running   0          11m
hadoop-node-manager-ds-qwg08       1/1       Running   0          11m
hadoop-resource-manager-ds-mn3w6   1/1       Running   0          15m
hadoop-resource-manager-ds-xdrv0   1/1       Running   0          15m
zookeeper-ds-gc2nt                 1/1       Running   0          18m
zookeeper-ds-mt34w                 1/1       Running   0          18m
zookeeper-ds-nvbhn                 1/1       Running   0          18m

root@master01:/# yarn rmadmin -getServiceState hrm-1
active
root@master01:/# yarn rmadmin -getServiceState hrm-2
standby
root@master01:/# hdfs haadmin -getServiceState hnn-1
active
root@master01:/# hdfs haadmin -getServiceState hnn-2
standby

Is there anything that needs to be changed in other services after ha enabled, like hdfs interface?


new backend fails

it seems to just exit on mac

yes, i could reproduce it. for me the problem was in unavailable ports. when we can't find available port we just exit the app. for some reason i had many R processes that were hanging in a memory and were using ports that we checked. after i killed them new backend started normally

i cleaned up all processes and still had the same problem.
if it does happen then a decent error has to be reported.

could you please show your console output when you're starting new backend?


Ignoring .DS_Store files

Adding .DS_Store files to .gitignore.
.DS_Store files are created automatically by mac OS and aren't needed to include in the project files.

@paOmer I learned a new thing yesterday and we could have used it here. This is good knowledge for the future.

It is also possible to ignore files or folders but not show it in the distributed .gitignore file.
These kinds of ignores are specified in the .git/info/exclude file. It works the same way as .gitignore but are not shown to anyone else, and are not branch-dependent.
Taken from https://www.w3schools.com/git/git_ignore.asp

@paOmer I learned a new thing yesterday and we could have used it here. This is good knowledge for the future.
It is also possible to ignore files or folders but not show it in the distributed .gitignore file.
These kinds of ignores are specified in the .git/info/exclude file. It works the same way as .gitignore but are not shown to anyone else, and are not branch-dependent.
(Taken from https://www.w3schools.com/git/git_ignore.asp)

That awesome, i'll keep that in mind.


1.21.4 Update

I would love to give this mod a try.  Looking forward to one that is safe to use in 1.21.4  Thanks!

I did a high level test on a 1.21.4 instance and this seems to work, fyi.

Im going to test this on a prod server.  it seems pretty safe.

The reason that the main development is on 1.21.3 is that this is currently being used on the Gamemode 4 server, and I'm not super used to developing for multiple versions at the same time.

Totally understand, gotcha, thanks!
After testing it on a 1.21.4 server, this is the result:
[16:28:48] [Server thread/ERROR]: Failed to save invrestore.dat: Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]; Can't access registry ResourceKey[minecraft:root / minecraft:enchantment]

I'll wait for any sort of update :)

That issue was fixed in f164b573da1eadbd99ff263745cf37a3634a3936. Please download v0.1.1 :)


When using AudioStreamInteractive, AudioStreamPlayer.get_playback_position() always returns 0

Tested versions
Reproducible in 4.3.stable.official [77dcf97d8].
Not reproducible before 4.3 as AudioStreamInteractive did not exist.
System information
Godot v4.3.stable - Windows 10.0.22631 - Vulkan (Forward+) - dedicated AMD Radeon RX 6600 (Advanced Micro Devices, Inc.; 32.0.11037.4004) - AMD Ryzen 5 5600X 6-Core Processor (12 Threads)
Issue description
When using AudioStreamInteractive, AudioStreamPlayer.get_playback_position() always returns 0 instead of returning the actual position. This is true for mp3 files and wav files, and probably other formats.
Steps to reproduce

Create new project.
Create AudioStreamPlayer node.
Set AudioStreamPlayer's stream to AudioStreamInteractive
Expand the AudioStreamInteractive in the inspector.
Add clip.
Import any audio file to the project.
Set Clip 0's stream as the new audio file (drag the audio file over Clip 0's stream)
Attach a script to the AudioStreamPlayer node.
Replace function _process() with the following:
func _process(delta: float) -> void: print(get_playback_position())
Run project and see that the result is always 0.

Minimal reproduction project (MRP)
In my MRP, I have included a 2-second mp3 of my own creation. I've set the mp3 to loop to demonstrate the bug clearly, but the bug also happens if the loop is disabled.
audiostreaminteractive-bug-test.zip

I'm wondering if this is actually a bug. If there's multiple tracks, what does the playback position actually mean? Especially if there's long transitions.

I could make a PR that adds this to the documentation if that sounds good.

Sounds great! Feel free to close this PR and mention it in your documentation one.


Allow committing a degree-zero polynomial (aka constant)

Currently, the library disables committing a polynomial of degree zero. This requirement seems unnecessary because:

Both related papers for KZG and IPA did not say a degree-zero polynomial cannot be committed in their schemes.

Allowing this would have certain benefits.
For example, sometimes we may use a dummy circuit, which may be so dummy that its arithmetization has a degree of zero. Currently, these checks prohibit such dummy circuits. But for completeness, they should be permitted.
Tests for such zero-degree polynomials are also added.

Besides dummy circuits, this PR would also permit dummy input for commit-and-prove SNARK, as described in https://github.com/arkworks-rs/marlin/issues/43.
Note, this PR would close https://github.com/arkworks-rs/poly-commit/issues/40.


Launching Services from a private web repository

The documentation explains how to run custom services from a public repository. But how do I run services from a private BitBucket? Where do I add authentication?

Currently, ros can support http and https for services repo url, but does not support authentication.


jujutsu: 0.16.0 -> 0.17.0

Signed-off-by: Muhammad Falak R Wani<EMAIL_ADDRESS>Description of changes
Diff: https://github.com/martinvonz/jj/compare/v0.16.0...v0.17.0
Changelog: https://github.com/martinvonz/jj/blob/v0.17.0/CHANGELOG.md

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

There was apparently a test failure for aarch64-linux, which is strange. I'll try to file it upstream. I suspect it's a flake of some kind: https://logs.ofborg.org/?key=nixos/nixpkgs.308433&attempt_id=72767adf-0437-4f07-a7c5-9fb4b0a4d1e2

Can you remove with lib; in L80 meta? Then use lib. explicitly when needed.

I believe this is a convention, I took a look at other packages.


feature request: api expansion to allow for tools like Rekit Studio

So I am wondering what the VScode team thinks of a tool such as https://github.com/supnate/rekit
A demo can be found http://demo.rekit.org/
I absolutely love it.  I would LOVE to be able to have something like this... but inside of VScode, not a web based IDE.  However, it seems the author has looked into doing it specifically in VScode but found the API too limiting to allow it.  See this issue
Basically at its core, its virtual folders and virtual tabs (and somewhat nested tabs)
Thoughts on getting support for the ability to do things like this?

This would make a good extension. Please file individual issues for any limitations you are running into with the current VS Code API


Add support for custom TypeRegistry

Hello,
We use mongomock to patch the PyMongo MongoClient in our unittests.
In our database we use a custom TypeCodec to instantiate the TypeRegistry and in turn the CodecOptions.
The call to get_database(database or name, codec_options=codec_options)  with the patched MongoClient raises the following Error:
File "/***/env/lib/python3.6/site-packages/mongomock/mongo_client.py", line 135, in get_database
    codec_options=codec_options or self._codec_options, _store=db_store)
File "/***/env/lib/python3.6/site-packages/mongomock/database.py", line 28, in __init__
    mongomock_codec_options.is_supported(codec_options)
File "/***/env/lib/python3.6/site-packages/mongomock/codec_options.py", line 81, in is_supported
    return CodecOptions(**custom_codec_options._asdict())
File "/***/env/lib/python3.6/site-packages/mongomock/codec_options.py", line 65, in __new__
    'Mongomock does not handle custom type_registry yet %r' % type_registry)
NotImplementedError: Mongomock does not handle custom type_registry yet TypeRegistry(type_codecs=[<qilib.utils.storage.mongo.NumpyArrayCodec object at 0x1163d4cf8>], fallback_encoder=None)

Can you please help us solve this issue? This behaves fine in PyMongo.
Please let me know if you need more information.
Best Regards,
Bogdan Constantin

Hi @bogdanvconstantin , I've recently added a basic codec_options implementation so that's a first step towards TypeRegistry.
However TypeRegistry loads and saves from bson format, whereas mongomock only sores python objects. Therefore it might not be easy to make it work. I have never worked with those: could you share your code for the TypeCodec please? that could help test things and maybe implement the TypeRegistry in mongomock.

Hi,
I am having the same problem as @bogdanvconstantin while trying to insert numpy arrays in mongomock.
This is the TypeCodec I am using, which should be really close to Bogdan's.
import pickle

import numpy as np
from bson.binary import USER_DEFINED_SUBTYPE, Binary
from bson.codec_options import CodecOptions, TypeCodec, TypeRegistry

class NumpyCodec(TypeCodec):
    python_type = np.ndarray
    bson_type = Binary

    def transform_python(self, value):
        return Binary(pickle.loads(value), USER_DEFINED_SUBTYPE)

    def transform_bson(self, value):
        if value.subtype == USER_DEFINED_SUBTYPE:
            return pickle.dumps(value, protocol=2)
        return value

numpy_codec = NumpyCodec()
type_registry = TypeRegistry([numpy_codec])
codec_options = CodecOptions(type_registry=type_registry)

Then, I call mongo db with db.get_collection(name, codec_options = codec_options)
I used to transform arrays into Binary before inserting into mongo, which worked well with pymongo and mongomock.
I'm new to this therefore I am not familiar with mongomock mechanisms, do you have a workaround that I could use ?
Thanks,
Best regards,
Thomas

@bogdanvconstantin @pcorpet
was there any progress on this?
It's giving us a massive headache too.


definition of breaks

I was wondering what the difference was between a break and a microbreak?
Is it only the duration( one is meant to be shorter).
What is a natural break? how does it relate to idle time? what is idle time?

Hi and thanks for questions ;]
Microbreak is meant to be small break, little exercise to remember to keep your body in check. So small eye or posture exercise, remember to drink or so.
For me personally it's about getting my mind to think about my posture, to remember to close my eyes and breath.
Break is meant to be longer break after few microbreaks. It allows you to make a longer exercise, to keep your mind fresh and so on.
For me personally it's about letting my mind relax and take some time off the computer. My brain can then figure out solutions to problem I am solving by itself.
Natural break is when you leave your computer (not because of break or microbreak). We say that natural break occurs when you leave your computer for longer than 5 minutes. (This is what idle time means - when your mouse/keyboard is idle). When you leave your computer for let's say 10 minutes, we say that you took natural break and after you come back we reset the timers.
(note: idle time detection is not that good, so it does not always work 100% on all platforms)

thanks


Correct some Korean translations

Hello. :)
It's been over a year since I translated it into Korean.
I recently read this again and corrected some tranlations.
thank you for providing such a great tutorial!

Thank you for the updates!


Use Container contract.

The console commands should definitely not know about foundation etc.
(By the way, I would suggest, turning some $this->laravel['config'] style accesses in some of the core commands into using the interface methods.)

This doesn't work. Also, the docblock descriptions are wrong. We should really make it an application contract, not a container contract.

Huh? How are the docblock descriptions wrong?

It says get the application, but we're not...

That's why it only makes sense for it to be an application instance, otherwise we should rename the method.

Well, I guess Taylor can decide whether he prefers the container or the application contract. I'll fix this accordingly.

Well you've broken a load of tests by changing the method interface.

...which I'll fix once I know which direction this should go.

Would prefer it be application.


Could only link 1 notes... bug.

Describe the bug
A clear and concise description of what the bug is.
note contain 3 name of notes, suggested 3 links, but only linked 1 at last.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

in a new note, type in 3 already existing notes' name.
scan note, shows 3 but could only link 1.
Expected behavior
A clear and concise description of what you expected to happen.
it showed 3, but after ticking, only show link 1.
Screenshots
If applicable, add screenshots to help explain your problem.
note:

plugin:
3 ticks checked, bottom shows only 1.

Desktop (please complete the following information):

OS: [e.g. iOS] win10, 64bit
Browser [e.g. chrome, safari]
Version [e.g. 22] plugin v1.1.1; obsidian v 1.1. 9

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

even i made a new vault,
install almost no other plugin,
it's same result:

even i made a new vault,
install almost no other plugin,
it's same result:

tested, even just have note linker as the only plugin, same result

I am also having the same problem

Same problem here. Definitely a bug and not an individual issue.

most FOSS = abandoned ware, orphans... produced by producers for fun, without considerations of future

most FOSS = abandoned ware, orphans... produced by producers for fun, without considerations of future

Quite sad, since the idea is brilliant and no other plugin does what this does so well (in idea).
I have some coding knowledge, but not enough that in less than 30 minutes I could figure out what the problem seems to stem from. More time spent on it would not be worth it in my case, since in less then an hour, I used the current solution (of clicking them one by one) and I got what I wanted.

Same Problem here! What a Pity, it would have been the perfect plugin for me...

Indeed, same problem. Here's to hoping.

most FOSS = abandoned ware, orphans... produced by producers for fun, without considerations of future

Quite sad, since the idea is brilliant and no other plugin does what this does so well (in idea). I have some coding knowledge, but not enough that in less than 30 minutes I could figure out what the problem seems to stem from. More time spent on it would not be worth it in my case, since in less then an hour, I used the current solution (of clicking them one by one) and I got what I wanted.

try gpt4.
i just used gpt4 to enhanced launchQ, a life changer for me i think.
i don't need this plugin anymore, otherwise i could help

i dont need this, because it links ALL keywords?
but now i agree /w obsidian's authors, that such linking is meaningless.
you should only link those thare are MEANINGFUL
so you could tag them on the Rt hand side one by one manually

Well, this might be true, but it still is the case that you can choose which links will be created by ticking them... which saves a lot of time for linking obvious keywords. I have a lot of articles saved, which could be linked easily to important topics with this plugin.

Well, this might be true, but it still is the case that you can choose which links will be created by ticking them... which saves a lot of time for linking obvious keywords. I have a lot of articles saved, which could be linked easily to important topics with this plugin.

i think obsidian itself allow you to tag on the Right hand side. when it found unlinked but likely related thing, there is a "not linked" button there, you click it and they become linked.

Thank you, this works now for single notes, and also for a smaller amount of notes.
There is a problem though with linking a bigger amount (+2K). The plugin freezes and becomes unresponsive. Maybe a problem with loading all the links into memory?

Thank you, this works now for single notes, and also for a smaller amount of notes. There is a problem though with linking a bigger amount (+2K). The plugin freezes and becomes unresponsive. Maybe a problem with loading all the links into memory?

Yeah, probably due to the removal of useMemo (which helps avoiding unnecessary re renders). If I have time I'll look into it again to improve performance.

Thank you very much, this is highly appreciated!


Get latest version of nmap instead of relying on OS repos

As of right now, Ubuntu 18.04's nmap package is 7.60 (20.04 has 7.80). Would be nice to ensure whatever OS version, the latest nmap version is retrieved instead of relying on possibly outdated OS provided packages.

nmap doesn't supply deb packages, only rpm. We could use alien to build the rpm and then copy the resulting binary to our final image, but this might be troublesome.
Details on manual installations of nmap - https://nmap.org/book/inst-linux.html#inst-rpm


Figma Prototype for the App

A discussion and planning for the Figma prototype of the app is required. The prototype will guide our design and development process, helping us visualize the user flow and interface for the various sections of the app. The goal is to ensure that the prototype is both intuitive and aligns with our objective.
Sub-task 1: Outline the key features and sections that need to be included in the prototype.
Sub-task 2: Defining wireframes for each section.
Sub-task 3: Linking the sections together to create an user-flow.
The prototype should be able to demonstrate the user flow and navigation between different sections.
The design should reflect the core objectives of the app, ensuring that the prototype is user-friendly and accessible.

For the outline and the beginning (sub-task-1), I'd like to suggest a floating SOS or alert button that stays on the app throughout all sections.
Also section suggestions:

Home
Helpline
User section: The section we have with settings and where user can register themselves and add their emergency contacts and stuff
Chatbot section to provide support and send alerts whenever the user is in a location that is prone to crime.

Here is the basic structure that I suggest, please add onto it.

Whenever any user opens the app, the name, logo, and tagline will be displayed first.
If we have a new user, we can implement a horizontal scroll feature that allows them to browse through a few key features of the app before prompting them to sign up.
For the sign-up process, we can have users enter their contact details, name, emergency contact, and then verify their accounts.
The front page can display a map that shows the user’s current location and categorizes areas based on safety levels. Also a search location on the top.
For areas marked with a risk above a certain threshold, an SOS will be sent automatically to the contact numbers provided during sign-up.
Below the map, we can include a floating button for the chatbot and a separate button for sending an SOS alert.
We can add a strip at the bottom of the screen that includes sections like "About Us" and "User Profile."

@vansheeekaaa Great work on this!!


Extern Code and Default Implementation

In resolving #237, I have implemented a function method with {:extern} and also provided a default implementation.  There are a bunch of points / issues here:

(Default Implementation).  I had to provide a default implementation because otherwise Dafny cannot generate the Java code (i.e. because it always tries to compile it and I cannot control this).
(External Code).  The external code is provided as a Java class which is linked against instead of the default implementation.  This is achieved by physically deleting the default implementation generated by Dafny.

Overall, this works --- but its ugly.  I wonder if there is a better way to do this?

subsumed by #530


Fix for [#4]

Fix for Issue #4.
Successfully passes all tests when make test is run.

Thank you @snehankekre for the PR!

We'll add your name to the contributor list if that is ok with you.

For sure! Huge thanks to you and the team for putting this much needed resource together.


Map mpox clinical data

Discuss whether to map mpox clinical data, and if we need extra fields for this.

Deferred to after a few more ISARIC datasets have been processed.

Re-open when task becomes active


Bug: Attributes' value with spread operator is not being parsed

I confirmed the following issue: https://github.com/vuejs/eslint-plugin-vue/issues/497
This code:
<input v-on="{ ...$listeners }" />

results in the following AST:
         - type: VAttribute
            directive: true
            key:
              type: VDirectiveKey
              name: on
              argument: null
              modifiers: []
              shorthand: false
              raw:
                name: on
                argument: null
                modifiers: []
            value:
              type: VExpressionContainer
              expression: null
              references: []

Whereas for this:
<input v-on="{ click: action }" />

we get the correct AST with VOnExpression:
         - type: VAttribute
            directive: true
            key:
              type: VDirectiveKey
              name: on
              argument: null
              modifiers: []
              shorthand: false
              raw:
                name: on
                argument: null
                modifiers: []
            value:
              type: VExpressionContainer
              expression:
                type: VOnExpression
                body:
                  - type: BlockStatement
                    body:
                      - type: LabeledStatement
                        body:
                          type: ExpressionStatement
                          expression:
                            type: Identifier
                            name: action
                        label:
                          type: Identifier
                          name: click
              references:
                - id:
                    type: Identifier
                    name: action
                  mode: r

Can we parse objects with spread operators inside attributes' values properly? Same applies to attributes and bindings.

Thank you for this issue.
Try parserOptions.ecmaVersion: 2018.

Thanks!

I confirmed that the paths of v-on and v-on:foo are different. v-on:foo="{}" becomes a block statement, but v-on="{}" becomes an object expression. I  will fix vue-eslint-parser.

I'm thinking about AST, v-on="{ click: action }" skips VOnExpression node because it's not supporting statements.
It will be:
         - type: VAttribute
            directive: true
            key:
              type: VDirectiveKey
              name: on
              argument: null
              modifiers: []
              shorthand: false
              raw:
                name: on
                argument: null
                modifiers: []
            value:
              type: VExpressionContainer
              expression:
                type: ObjectExpression
                properties:
                  - type: Property
                    computed: false
                    method: false
                    shorthand: false
                    key:
                      type: Identifier
                      name: click
                    value:
                      type: Identifier
                      name: action
              references:
                - id:
                    type: Identifier
                    name: action
                  mode: r

Probably we will have to modify some rules which are checking v-on attribute.

i have the same problem, my currently vue-eslint-parser version is 6.0.3

Hey @mysticatea I'm facing the same problem of @pedroSoaresll here. I'm actually stuck on version ^4.7.1 because of that. Any suggestions?


Support font names with spaces for OSK, correct OSK layer switching bug

I've merged this commit, but found a compile warning. Not going to break anything but should be corrected:
kmwosk.js:625: WARNING - actual parameter 1 of osk.getLayerId does not match formal parameter
found   : (null|string|undefined)
required: number
if(typeof nextLayer == 'number') nextLayer = osk.getLayerId(nextLayer);


MM-18122

Fixes https://github.com/mattermost/mattermost-plugin-jira/issues/314

This issue has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @hanzei

@levb Quick reminder to help review this PR or request other reviewers :)
@dnguy078 big thanks for the contribution!

@dnguy078 Thanks for the submission! I'll take another look after you've improved it based on Lev's feedback.

This issue has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @hanzei

Hey @dnguy078, let us know if you have any questions about the above feedback? We'd be happy to help. Thanks for your contribution! :)

Closing as expired


Remove aspect ratio restriction?

Is it possible to remove the aspect ratio restriction? Meaning to be able to resize to any (borderless) fullscreen resolution?

Not as such, the resolution needs to be in your supported resolution list. If you're using an Nvidia GPU, you can add a custom resolution in the Nvidia control panel. You can also switch to windowed mode and resize the window to whatever resolution you wish.


Windows Store wsl executables unsigned

Version
WSL version: <IP_ADDRESS>
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>-microsoft-standard-WSL2
Distro Version
No response
Other Software
No response
Repro Steps
Run Sysinternals Sigcheck on C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_<IP_ADDRESS>_x64__8wekyb3d8bbwe\wslservice.exe, C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_<IP_ADDRESS>_x64__8wekyb3d8bbwe\wslhost.exe, C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_<IP_ADDRESS>_x64__8wekyb3d8bbwe\wslg.exe, and C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_<IP_ADDRESS>_x64__8wekyb3d8bbwe\wsl.exe.
Expected Behavior
Sigcheck to report that the executables are signed.
Actual Behavior
Sigcheck reports that the executables are unsigned.

Diagnostic Logs
No response

Do those really need to be signed? The AppxManifest.xml has PackageIntegrity enabled https://learn.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap10-packageintegrity

Yeah that's my thinking, our package is signed, and we have package integrity enabled.

I'm not sure what best practices are for other apps, if most also sign the packaged binaries we could also do that...

Do those really need to be signed? The AppxManifest.xml has PackageIntegrity enabled https://learn.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap10-packageintegrity

I was not aware of this, thanks for the link!

The only other consideration i can think of is that in Sysinternals Autoruns, it highlights the wslservice executable red, due to it being unsigned, which might be undesired. Its not a large issue though.

What I have typically seen is that third party apps, such as Mozilla Firefox are traditionally signed as well as using package integrity, whereas Microsoft apps are not, such as windows terminal. I no longer believe that this is an issue, as previously I was not aware of package integrity as an option.


Lock icons

@cd16b Nice! I had something very similar drafted… Just with a slightly more keyhole shape:

What is the use case for this icon that is currently not covered by lock?

Not really in favour of adding these as separate icons. Either let's change the OG lock icons or drop these, I think they're way too similar to be a separate set.

@ericfennis: I've reviewed this again, upon further reflection I'm okay with adding these as alts just as long as the base lock shape is the same in both icons (i.e. the core icons are also updated), although I think I'd rather stick to either lock-dot or lock-keyhole not both:

@karsa-mistmere awesome. I think we should go for simple and go for the lock-dot. Since on 100% scale you probably won't see the keyhole that well.

@karsa-mistmere awesome. I think we should go for simple and go for the lock-dot. Since on 100% scale you probably won't see the keyhole that well.

I think it works OK, definitely sells the illusion of a keyhole, and even scaled up it looks pretty decent:

@karsa-mistmere True, I'm okay with both ways. I think the dot is a more simplistic design that fits with the lucide style. But the keyhole is more recognizable and more useful when scaled up.

@cd16b Can you update the names to lock-keyhole? probably a more logical name.
And I'm still open to changing back to the keyhole designs instead of the dot.


json: cannot unmarshal object into Go struct field ChatRequest.messages of type string

Hi Lennart,
thanks for the library. I'm trying to use it to enforce a json format in a classification task on Ollama models:
messages = [
{"role": "system", "content": sys_prompt},
{"role": "user", "content": prompt}
]
    response = client.chat_completion(
        model=model,
        pydantic_model=validation.ModelResponse,
        messages=messages,
        format="json",
        options=setting
    )

which often works, but regularly returns such errors:
response = self.ollama_client.chat(
model=model,
...<4 lines>...
keep_alive=keep_alive
)
File "...\ollama_client.py", line 236, in chat
return self._request_stream(
~~~~~~~~~~~~~~~~~~~~^
'POST',
^^^^^^^
...<10 lines>...
stream=stream,
^^^^^^^^^^^^^^
)
^
File "...\ollama_client.py", line 99, in _request_stream
return self._stream(*args, **kwargs) if stream else self._request(*args, **kwargs).json()
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "...\ollama_client.py", line 75, in _request
raise ResponseError(e.response.text, e.response.status_code) from None
ollama._types.ResponseError: json: cannot unmarshal object into Go struct field ChatRequest.messages of type string.
Any experience with how to solve this?
Thanks in advance!

Hey Daniel,
thank you for creating this issue! I was having something in the early days of the development of this library.
The Ollama server expects to get a single string (e.g. JSON). I assume I missed considering that somewhere in the processing.
As this seems not to occur very often, it will maybe not easy to reproduce.
Could you tell me which model you are using? And maybe the pydantic model or a similar one?
I hope I will have some time on the weekend.
Best,
Lennart

Hi Lennart,
thanks for the quick response!
Models I've tried it with: qwen2.5 and llama3.1. It occurs with both but more frequently with qwen2.5.
Its also fairly frequent, actually: happens in around 25% of calls for me.
The pydantic model:
class ModelResponse(BaseModel):
"""
Validate response
"""
classification: int = Field(..., description="Indicates if the text contains passages relevant to the question (0 or 1)")
confidence: float = Field(..., description="Confidence level of this classification (0 to 1)")
@field_validator('classification')
def validate_relevant(cls, value):
    if isinstance(value, str):
        raise ValueError('classification must be an integer, not a string')
    if value not in (0, 1):
        raise ValueError('classification must be 0 or 1')
    return value

@field_validator('confidence')
def validate_confidence(cls, value):
    if isinstance(value, str):
        raise ValueError('confidence must be a float, not a string')
    if not (0 <= value <= 1):
        raise ValueError('confidence must be between 0 and 1')
    return value

def to_dict(self):
    return self.model_dump()

Let me know if you need more details or can't reproduce the problem, happy to provide more details.
Thanks in advance!
Best,
Daniel

Hey Daniel,
I found the issue and it seems like I can fix it. 🥳
I will prepare a new version during the weekend.
Btw. could I use the idea for question-answer classification for my docs?

Hey Daniel,
the new release is on PyPI and here on GitHub.
Would be great to get feedback if it fixed your issue ☺
Best,
Lennart

Hi Lennart,
wonderful, thank you for getting on it so quickly. Seems to have fixed it for me. Of course you can use it for the docs!
Best,
Daniel


expression_filter(dm): fix updateOldExprs and updateNewExprs length not same

Signed-off-by: lance6716<EMAIL_ADDRESS>
What problem does this PR solve?

Issue Number: close #7774
What is changed and how it works?
treat updateOldExprs and updateNewExprs as a whole when caching
Check List
Tests

Unit test
Integration test

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
Fix a bug when only one of `update-old-value-expr` or `update-new-value-expr` is set for a table, it does not take effect or panic

Codecov Report

Merging #7779 (e7a4c17) into master (b0f5a0b) will increase coverage by 0.1630%.
The diff coverage is 76.0233%.

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

Additional details and impacted files

Flag
Coverage Δ

dm
52.3306% <76.0233%> (+0.1836%)
:arrow_up:

engine
64.3399% <ø> (+0.0554%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #7779        +/-   ##
================================================
+ Coverage   55.0067%   55.1697%   +0.1630%
================================================
  Files           415        415
  Lines         52739      52904       +165
================================================
+ Hits          29010      29187       +177
+ Misses        20957      20939        -18
- Partials       2772       2778         +6

/cc @asddongmen @D3Hunter @buchuitoudegou

/merge

/run-all-tests


Import syntax listed on website typo?

Describe the bug
On fontsource.org the instructions for each font lists the step of:
import<EMAIL_ADDRESS>For me, this does not work. To get it to work I had to do either of these:
import "@fontsource/roboto"
import<EMAIL_ADDRESS>
I'm only familiar with the basics of webpack with css-loader, so maybe these instructions are intended for another build tool but I found this quite confusing<EMAIL_ADDRESS>also isn't a real file. Is this a typo?
Clicking on the "full documentation" link, the examples there do not include the @fontsource/roboto.css notation and only the other two.
To Reproduce
Steps to reproduce the behavior:

Go to any font page - https://fontsource.org/fonts/roboto
View Quick Installation section

Expected behavior
Installation instruction should drop the ".css"
Screenshots

Yes, that does look like a typo. To import the package entry point you can use either of the following:
import "@fontsource/roboto"
import<EMAIL_ADDRESS>
I will work on fixing that right now.

The typo is now fixed with commit https://github.com/fontsource/fontsource/commit/c29646a00fc816c9bce5e29790492700b867f0d0.


forge run

forge run would run a solidity file without having to set up a project for it. It would prob need work on the packaged libraries front, where a number of libraries are natively offered by forge (e.g ds-test, vm.sol, console.sol).

Could see this being forge run Foo.sol and it'd default to calling run() on the specified contract, or you'd do forge run Foo.sol myFunction(uint256) 2 and it'd call myFunction with 2 as the argument.

i like option #2 @gakonst, maybe with a default of run()?

Yeah sorry that's what I meant, it'd be the latter with default to the former.

ref #234 since it'd benefit from stdlib

Working on this. @gakonst trying to figure out best way to load the file. Ideally cli just takes a --path argument, but the analogous code I can find only takes a root. https://github.com/gakonst/foundry/blob/master/cli/src/cmd/build.rs#L212-L213

Yeah doing it the same way as --root but calling it --path sounds good to me.

Right, we might need to hack on ethers-solc a bit to have both auto-detection of solidity version and the ability to provide single files. Take a look at ethers-solc Solc struct (instead of Project), maybe it makes your life easier.

ok cool yeah, was just pulling up https://docs.rs/ethers/latest/ethers/solc/struct.ProjectPathsConfig.html, checking out Project as well

looks like compile_with_version could help us, https://docs.rs/ethers-solc/0.1.2/src/ethers_solc/lib.rs.html#251-255, but then do we need to read the pragma from the file, or pass as an arg?

@gakonst wondering how much we can/should rely on remapping. The idea is that this should be able to be run outside a forge project, right? Maybe first pass just has hard settings for EVMVersion etc.

I think let's go with no remappings initially, just assume everything is self contained in a single file? And we can augment this feature when we have progress on the #165

Should we close this issue @gakonst


Get Array::write() to return tiledb_errmsg for all write modes

Array::write() was returning tiledb_errmsg only for TILEDB_ARRAY_WRITE_SORTED_COL and TILEDB_ARRAY_WRITE_SORTED_ROW modes. Get it to return the message for all modes as downstream clients like GenomicsDB rely on tiledb_errmsg for propagation in std::exception messages.

Codecov Report

Merging #62 into develop will increase coverage by 0.04%.
The diff coverage is 33.33%.

@@             Coverage Diff             @@
##           develop      #62      +/-   ##
===========================================
+ Coverage    60.87%   60.91%   +0.04%
===========================================
  Files           50       50
  Lines        16380    16379       -1
===========================================
+ Hits          9972     9978       +6
+ Misses        6408     6401       -7

Impacted Files
Coverage Δ

core/src/fragment/write_state.cc
65.82% <0.00%> (ø)

core/src/array/array.cc
54.79% <40.00%> (-0.19%)
:arrow_down:

core/src/misc/utils.cc
70.64% <0.00%> (+0.11%)
:arrow_up:

core/src/storage_manager/storage_manager.cc
41.36% <0.00%> (+0.15%)
:arrow_up:

core/src/fragment/read_state.cc
70.53% <0.00%> (+0.31%)
: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 b60fc00...f0891a9. Read the comment docs.


Building with AOT fails to handle message template serialization

Hi! Thanks for reporting this bug!
Please keep / fill in the relevant info from this template so that we can help you as best as possible.
NLog version: (e.g. 4.4.13)
5.3.2
Platform: .Net 3.5 / .Net 4.0 / .Net 4.5 / Mono 4 / Xamarin Android / Xamarin iOS / .NET Core / .NET5 / .NET6
dotnet8.0/aot
Current NLog config (xml or C#, if relevant)
<nlog>
  <targets>
  </targets>
  <rules>
  </rules>
</nlog>

What is the current result?
What is the expected result?
Did you checked the Internal log?
Please post full exception details (message, stacktrace, inner exceptions)
Are there any workarounds? yes/no
Is there a version in which it did work?
Can you help us by writing an unit test?
Example code：

            Logger.Info("{@keywork}",keywork);
            Logger.Info("{@testAccount}",testAccount);
            Logger.Info("{@url}",url);
            Logger.Info("{@webJfh}",webJfh);

The output content when not using AOT:
2024-07-24 13:23:25.2171 {"Group":{"IsAny":false, "IsImgAny":false, "Keywords":[]}, "Friend":{"IsAny":false, "IsImgAny":true, "Keywords":[{"Pattern":"模糊匹配", "Keyword":"来张,圈"}]}, "LabelItems":{"IsAny":false, "LabelIds":[{"LabelId":14073752438818040, "HasLabelId":true, "CorpOrVid":1970325950977483, "HasCorpOrVid":true, "LabelGroupid":14073752438818039, "HasLabelGroupid":true, "BusinessType":0, "HasBusinessType":true}]}}
2024-07-24 13:23:25.2171 {"FirendVidList":[123], "GroupVidList":[]}
2024-07-24 13:23:25.2171 {"Uid":1, "Username":"123", "Mobile":"12312312312", "CorpId":"123", "Vid":11, "BaseSyncUrl":"http://up2", "RealTimeUrlDz":"http://dz2", "RealTimeUrl":"http://bz2", "WsUrl":"ws2", "InitUrl":"http://init2", "SyncMsgUrl":"http://msg2“}
2024-07-24 13:23:25.2171 {"VersionType":"BASE", "FuncTypes":[], "TaskType":[{"Enum":"AutoAuthFriend", "Interval":300, "IsOpen":false},{"Enum":"AutoDelFriend", "Interval":300, "IsOpen":false}], "FirendSeq":9446925, "LabelSeq":0}

The output when using AOT:
2024-07-24 13:15:42.3767 "Xiaobai.xbapi.Entitys.GetKeyWorkText"
2024-07-24 13:15:42.3767 "Xiaobai.xbapi.Entitys.GetTestAccount"
2024-07-24 13:15:42.3767 "Xiaobai.xbapi.Entitys.GetUrls"
2024-07-24 13:15:42.3767 "Xiaobai.xbapi.Entitys.GetWebJfhInfo"

NLog v5.2 supports trimming, but generates compiler-warnings when enabling AOT.
AOT requires additonal method-attributes to ensure the compiler doesn't remove reflection-capabilities (Ex. DynamicallyAccessedMemberTypes.PublicProperties). But adding these attributes, has cascading effect that will spread to the application-code and give compiler warnings even when not using @.
The goal is that NLog v6 will support AOT without compiler-warnings, but not sure if @ will ever work with AOT. Maybe it can be handled using Fluent-Logging-API (Special extension method with the method-attributes to allow object reflection).

However, I found that I can output new anonymous objects, such as Logger.  Info("url: {@url}",new {
url.  Uid,
url.  Vid,
url.  Mobile,
url.  CorpId,
url.  BaseSyncUrl,
url.  InitUrl,
url.  RealTimeUrl,
url.  RealTimeUrlDz,
url.  SyncMsgUrl,
url.  WsUrl
});   This results in a normal output, but the previous
Logger.  Info("url: {@url}",url};
The output is abnormal @snakefoot

NLog does not control if the .NET AOT Compiler should allow object-reflection or not. NLog just attempts to perform reflection, when requested by @.
If you feel the .NET AOT Compiler is inconsistent in how object-reflection is handled, then maybe open an issue/ticket at Microsoft DotNet Repository.

I guess NLog could add new method where one can register custom types for reflection, that will make reflection of custom-types work when using AOT.
Something like this:
LogManager.Setup().SetupSerialization(s => s.RegisterObjectTransformation<MyCustomObject>());

Closing due to inactivity, and post-poned for NLog v6.


Consistently getting "Module not found: Error: Can't resolve [some lodash library]" for velocity-react.

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

What is the current behavior?
When I load the velocity-react component, it outputs many errors for the following libraries:

lodash/object/extend
lodash/object/omit
lodash/object/keys
lodash/lang/isObject
lodash/lang/isEqual
lodash/collection/pluck
lodash/collection/forEach

If the current behavior is a bug, please provide the steps to reproduce.
Add this to module.rules:
{
  test: /\.(js|jsx)$/,
  exclude: /node_modules/,
  use: [
    'babel-loader',
  ],
}

Install lodash and velocity-react
Try importing velocity-react in anything built by the config.

What is the expected behavior?
Should load it correctly, as I have lodash installed already.
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
<EMAIL_ADDRESS>

Not webpack related.

@AlexFrazer I had the same problem after upgrading to Webpack 2 my resolve configuration was incorrect I changed:
resolve: {
        modules: [
            path.resolve(__dirname, "node_modules"),
        ],
        extensions: [".js", ".jsx"],
    },

to:
resolve: {
        modules: [
            "node_modules",
        ],
        extensions: [".js", ".jsx"],
    },

And velocity-react was able to compile with Lodash, see this thread for more info: https://github.com/twitter-fabric/velocity-react/pull/134

Changing the resolve to match what @ryanwild suggested doesn't fix the issue for me.

Nor me either. We're getting with on our bamboo build server with a React Starter Kit app, and it seems pretty non deterministic. The config is already as ryan described. Here's a full stack trace
ModuleNotFoundError: Module not found: Error: Can't resolve './_copyArray' in '/buildPath//src1/node_modules/rc-editor-core/node_modules/lodash'
--
06-Jun-2018 18:07:48 | at factory.create (/buildPath//src1/node_modules/webpack/lib/Compilation.js:511:10)
06-Jun-2018 18:07:48 | at factory (/buildPath//src1/node_modules/webpack/lib/NormalModuleFactory.js:358:22)
06-Jun-2018 18:07:48 | at resolver (/buildPath//src1/node_modules/webpack/lib/NormalModuleFactory.js:118:21)
06-Jun-2018 18:07:48 | at asyncLib.parallel (/buildPath//src1/node_modules/webpack/lib/NormalModuleFactory.js:198:22)
06-Jun-2018 18:07:48 | at /buildPath//src1/node_modules/neo-async/async.js:2772:7
06-Jun-2018 18:07:48 | at /buildPath//src1/node_modules/neo-async/async.js:6730:13
06-Jun-2018 18:07:48 | at normalResolver.resolve (/buildPath//src1/node_modules/webpack/lib/NormalModuleFactory.js:188:25)
06-Jun-2018 18:07:48 | at doResolve (/buildPath//src1/node_modules/enhanced-resolve/lib/Resolver.js:181:12)
06-Jun-2018 18:07:48 | at hook.callAsync (/buildPath//src1/node_modules/enhanced-resolve/lib/Resolver.js:232:5)
06-Jun-2018 18:07:48 | at _fn0 (eval at create (/buildPath//src1/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:15:1)
06-Jun-2018 18:07:48 | at resolver.doResolve (/buildPath//src1/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:37:5)
06-Jun-2018 18:07:48 | at hook.callAsync (/buildPath//src1/node_modules/enhanced-resolve/lib/Resolver.js:232:5)
06-Jun-2018 18:07:48 | at _fn0 (eval at create (/buildPath//src1/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:15:1)
06-Jun-2018 18:07:48 | at hook.callAsync (/buildPath//src1/node_modules/enhanced-resolve/lib/Resolver.js:232:5)
06-Jun-2018 18:07:48 | at _fn0 (eval at create (/buildPath//src1/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:12:1)
06-Jun-2018 18:07:48 | at resolver.doResolve (/buildPath//src1/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:42:38)
06-Jun-2018 18:07:49 | error Command failed with exit code 1.

--

I'm not sure how your build server is configured and this does not seem related to Webpack, @damiangreen you seem to have a double slash in your path: /buildPath//src1/