${env:VARNAME} does not seem to expand within args

I've got a company-wide definition that needs to be added to the args of flake8 as --append-config, which is outside of the workspace, and part of the path is an env var.
Currently, this:
    "flake8.args": [
        "--append-config",
        "${env:OTA_ROOT}/sharedimages/pythoncodequality/flake8.ini",
        "--append-config",
        "${workspaceFolder}/flake8.ini"
    ],

Seems to expand to only this when checking via the Output tab (formatted). Note that workspaceFolder expanded correctly.
2023-08-01 10:27:54.681 [info] /Users/jvacek/.pyenv/versions/3.10.3/envs/usermanagement/bin/python -m flake8\
--format='%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s'\
--append-config ${env:OTA_ROOT}/sharedimages/pythoncodequality/flake8.ini\
--append-config /Users/jvacek/repositories/usermanagement/flake8.ini\
/Users/jvacek/repositories/usermanagement/usermanagement/service/subscription_service.py

In the implementation in the python tooling, this has been substituted without issues.

We support limited env expansion currently. We should be able to add full environment expansion here:
https://github.com/microsoft/vscode-flake8/blob/6f638010c80d4ee17a4ad515c3666f6d7cea7796/src/common/settings.ts#L31-L51
Switching this to a feature request.

Hate to be that guy, but any updates on this?

Nope, no update. We will post something here when we do. This also isn't the most upvoted feature request, so it's unfortunately not top priority for us.
We also happily accept PRs if you would like to attempt to implement the feature request yourself.

We are reserving this issue for Grace Hopper's Open Source Day, which will take place on September 22nd, 2023. If you're part of the event and would like to submit a contribution to this issue, please let us know, and we'll be happy to assign it to you.
For other community members who are not participating in the event, we appreciate your interest in contributing! We kindly request that you wait until after September 22nd to work on this issue. If no one from the event has been assigned to it by then, we'll gladly assign it to you. Thank you for your understanding and support!


 If this source has not been updated for a long time, this does not mean that all the proxies in it are dead. You can check this list separately and see for yourself.
checkr -url https://raw.githubusercontent.com/clarketm/proxy-list/master/proxy-list-raw.txt
At the time of my post there were at least 30 live proxies.
On the other hand, it is better to make sure that these proxies do not come across to us in other lists. If so, then we can safely remove this provider from the checker without


change: improve icon design

The original icon didn't really fit the design standards I would expect, at least in MacOS, so I did somewhat of a redesign. Let me know your thoughts!

We have rebranded for the Surrealist 2.0 release and adopted a new icon in the process!


tests for spkw15 and spkw17, implemented spkw20

still need to implement spkw18

Coverage increased (+0.3%) to 98.19% when pulling b8f70fdbfacd56f5e0ef00a24a54d8761808ba4b on misc_more_functions_one into 8773b35dc3bdb411d172e40c602f5aeac338938c on master.


Vertical text detection

Hi all!
I've been struggling for a while with this problem.
I need to get text from an image column by column, by despite my all config efforts I only can read the text from the image line by line.
Can anyone help me please?
Cheers

I don't know what you mean here.
Post an image and the command you used. Also post version information.

Hi @amitdo
i came across the same problem statement,
If the text in the image is written in horizontal direction then the library can easily extract.
But i have something in vertical direction it fails to identity
Example:
text in horizontal direction : vishal123
text in vertical direction :
v
i
s
h
a
l
1
2
3
Note : if i have only numbers in vertical direction then its able to extract the numbers. But with the alphabets it will fails or identify the wrong character

Hi @vishal-kr-yadav, did you come up with any solution?

@NikhilShaw yes, I tried various way using OCR but it didnt give me that much accuracy. So i moved to object detection, considering each character as an object & then arrange based on the coordinate of each object


Add a linting rule to enforce 'use strict'

This is a draft PR just to show where we're not using strict mode

@richardTowers is this PR still needed? I think as we've now deployed the switch to type="module" this work is done?

Yep, no need for this now - it was just to identify which functions weren't already using strict mode, and they all will be now we're on type="module" 🎉


Graph corrupted at restart

Graph connections are erased after every restart of Obsidian.
Only connections outside an ad-block survives.
This happens with or not the "sync links to metadata cache" option.
Tried with all other community plugin disabled.
The plugin is great but this bug is very annoying and make Obsidian useless for me.
Windows 10.
Obsidian v0.12.15
Admotion updated to last version.

Hi, sorry, this behavior is probably the best it is going to get until Obsidian offers a way to parse content inside code blocks. Just the way it is, unfortunately.
There is the non-codeblock syntax but I understand it is not ideal to use.


migrated to new way

cc @Kartones

Frontend tests were OK :+1: (details)

Probably the build will fail because you need to move this specs (or at least make them call the new controller): https://github.com/CartoDB/cartodb/blob/master/spec/unit/controllers/api/json/oembed_controller_spec.rb

Apart from that, :+1:

ok, will move, thanks

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)


Update munit-maven-plugin-configuration.adoc

Thanks for contribuiting, but at this time we don't link to anchors in our documentation site.
We'll keep your suggestions in mind for future revisions of this content.


imbued heart timer

Please check if your issue is not a duplicate by searching existing issues
Describe the bug
A clear and concise description of what the bug is.
Currently it seems mainly if your character is doing another animation or has something going on, preventing the red lightning or whatever one may call it from the imbued heart from appearing when you use it, the timer for the heart will not appear. At least from practice I assume this is the cause, but it doesn't appear sometimes and this appears to be why. This is common in combat where you're being hit by multiple things such as DKs and sometimes elsewhere as well. (Also had it happen at sarachnis, perhaps due to the minions?)
To Reproduce
Steps to reproduce the behavior:

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

Expected behavior
A clear and concise description of what you expected to happen.
The imbued heart timer should appear when either the client sees you've been boosted up to 109, or possibly make it work like the slayer counter with barrage tasks where refreshing it by checking the helm works, but instead make it so that clicking the heart and receiving a chatbox message will result in some sort of relatively correct timer appearing (I realize unless it's below 1 minute it just says 1 minute 2 minutes etc and it won't give accurate time until below 1 minute, but this is still better than no timer)
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: [e.g. Windows, Ubuntu, macOS]
RuneLite version: [e.g 1.4.6]
Launcher version: [e.g 1.5.2]

Additional context
Add any other context about the problem here, e.g. logs. Your client logs can usually be found in
C:\Users\<your_user_name>\.runelite\logs on Windows and ~/.runelite/logs on Linux and macOS.

Duplicate of #3516


Throw Exception if Missing Splat Registrations

Using Splat for Dependency Injection, I'm noticing that if a class is initialized and there are missing registrations, it will pass null to the constructor and I won't know about it. Is there a way to make it "fail early" and tell me there's a missing registration to build the object?

How are you doing your splat registrations?
May be worth using the new source generator package https://www.nuget.org/packages/Splat.DependencyInjection.SourceGenerator/

With Source Generator, actually.


Update sync tests to latest VM, where possible

What was wrong?
Was testing sync against Byzantium.
How was it fixed?

Update most of the sync tests to run against Petersburg
Created a new test chain that will be easier to update to the latest VM

Cute Animal Picture

Thoughts on using a bounty to have someone rebuild the data for the regular sync tests? It definitely requires someone to dig in to figure it out, but hopefully should be straightforward to determine if it's done correctly (roughly: do the tests pass).

Hm, at first glance the test failures look like the client was just failing to connect to any peers. But I want to investigate some more, since there were a few failures.

Ok, well it seems like it was just a slow VM. If it keeps being flaky, we might have to increase the timeout.

I may have lost Piper to the night. @cburgdorf do you mind taking a look?
This is blocking #694 which is blocking #641 :)

I may have lost Piper to the night. @cburgdorf do you mind taking a look?

Sorry, you had lost me to the night there, too :sleeping: Just approved it now :+1:


could not compile thiserror (lib) due to 1 previous error

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
Hi, I'm trying to pip install pydantic but I have the following error message:
error[E0463]: can't find crate for `thiserror_impl`

               --> /project/6007512/C3G/analyste_dev/software/rust/rust-1.79.0/registry/src/index.crates.io-6f17d22bba15001f/thiserror-1.0.57/src/lib.rs:248:9
                |
            248 | pub use thiserror_impl::*;
                |         ^^^^^^^^^^^^^^ can't find crate

            For more information about this error, try `rustc --explain E0463`.
            error: could not compile `thiserror` (lib) due to 1 previous error

            Caused by:
              process didn't exit successfully: `/project/6007512/C3G/analyste_dev/software/rust/rust-1.79.0/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc --crate-name thiserror --edition=2021 /project/6007512/C3G/analyste_dev/software/rust/rust-1.79.0/registry/src/index.crates.io-6f17d22bba15001f/thiserror-1.0.57/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=40f3b9adc24f3a6e -C extra-filename=-40f3b9adc24f3a6e --out-dir /tmp/pip-install-m53wud3v/maturin_f603e71bbaa649078c941da330773b48/target/release/deps -C strip=debuginfo -L dependency=/tmp/pip-install-m53wud3v/maturin_f603e71bbaa649078c941da330773b48/target/release/deps --extern thiserror_impl=/tmp/pip-install-m53wud3v/maturin_f603e71bbaa649078c941da330773b48/target/release/deps/libthiserror_impl-f78058e727277af3.so --cap-lints allow` (exit status: 1)
            warning: build failed, waiting for other jobs to finish...
            error: `cargo build --manifest-path Cargo.toml --message-format=json-render-diagnostics --release -v --no-default-features --locked` failed with code 101

I'm on an HPC, having rust installed as a module in a custom location as long as python.
I tried searching around before opening this ticket but I'm kind of stuck here. Please let me know if I can provide anything else relevant.
Thanks in advance for the help.
Example Code
No response
Python, Pydantic & OS Version
Python: 3.12.2
OS: Rocky Linux 8.9
Rust: 1.79
Pydantic: latest

Hi @paulstretenowich, can you try building pydantic-core directly from this repository and attach the full build log, using make build-prod? Might be worth building with the CARGO_TERM_VERBOSE=true environment variable too.

Hi David, I'm attaching the full build log out of the command make build-prod CARGO_TERM_VERBOSE=true prefix=/project/6007512/C3G/analyste_dev/software/pydantic-code/pydantic-core-2.20.1 &>build.log.
FYI, I previously did the following, and I have loaded as modules python/3.12.2 and rust/1.79.0:
wget https://github.com/pydantic/pydantic-core/archive/refs/tags/v2.20.1.tar.gz
tar zxvf v2.20.1.tar.gz
cd pydantic-core-2.20.1
python3 -m venv env
source env/bin/activate

Thanks for your help and let me know if I can provide any other information.
build.log

It seems to me that your Rust configuration is having problems building "proc macro" crates. Do you still have access to the build directory /tmp/pip-install-ua2wni18/maturin_b2dedc05458341109190c4ae3b51a741/target/release/deps/ ? Does the file /tmp/pip-install-ua2wni18/maturin_b2dedc05458341109190c4ae3b51a741/target/release/deps/libnum_enum_derive-2fe07d17790dfdbc.so actually exist, and is it a valid shared object for your platform?
I'm not sure how your HPC environment will affect things, I assume that's the cause.
What do you get for "EXT_SUFFIX" config variable? For example, I get:
$ python -c 'import sysconfig; print(sysconfig.get_config_var("EXT_SUFFIX"))'
.cpython-312-x86_64-linux-gnu.so

I tried again to see if the /tmp content remains for a few moments but I can't find it unfortunately. Do you know if there is any way to write it to a custom location?
When running the python command I have the exact same .cpython-312-x86_64-linux-gnu.so.

A further thought - what is the glibc version on the system you're running?

I'm able to keep alive the /tmp and /tmp/pip-install-me2qq20s/maturin_30e69a58180d44cfb4257bc21573185a/target/release/deps/libnum_enum_derive-2fe07d17790dfdbc.so exists indeed.
For glibc:
$ /lib64/libc.so.6
GNU C Library (GNU libc) stable release version 2.28.
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 8.5.0 20210514 (Red Hat 8.5.0-20).
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

Can you try a small rust test program, something like https://serde.rs/enum-number.html
Does it compile and run?

I tried following the getting started here and it compiles and runs.
I can also try with the https://serde.rs/enum-number.html but what do you want me to try? (Sorry for my questions I'm new to Rust).

The important part is to use a package which has a proc macro dependency, which is why I suggested the serde example. My guess is that that example will also have trouble compiling and running, which will get us closer to understanding the root cause as it's then a much simpler reduction.

Ok so after testing serde with the example you sent me it compiles and runs fine:
   Updating crates.io index
     Locking 12 packages to latest compatible versions
  Downloaded serde_repr v0.1.19
  Downloaded syn v2.0.72
  Downloaded serde_json v1.0.121
  Downloaded 3 crates (424.2 KB) in 9.32s
   Compiling proc-macro2 v1.0.86
   Compiling unicode-ident v1.0.12
   Compiling serde v1.0.204
   Compiling serde_json v1.0.121
   Compiling itoa v1.0.11
   Compiling ryu v1.0.18
   Compiling memchr v2.7.4
   Compiling quote v1.0.36
   Compiling syn v2.0.72
   Compiling serde_repr v0.1.19
   Compiling serde_test v0.1.0 (/project/6007512/C3G/analyste_dev/software/pydantic-code/tmp/serde_test)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.53s
     Running `target/debug/serde_test`
[2,3,5,7]

Hmm, so that surprises me that that works, but that's also good news.
I have some ideas which might help us find a solution:

Why is your pip install building from source rather than using our precompiled wheels? It looks like https://files.pythonhosted.org/packages/99/6a/8c9e41bd2848e6f2a970f93f4cf0f2f62ce5248ab2b23b85dd7247069f1a/pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl should be a suitable artifact for your platform. Maybe something special about your HPC setup?
Is there something special about your /tmp filesystem which might be causing the problem? Maybe setting PIP_NO_BUILD_ISOLATION=1 when running make build-prod will succeed.
Can you install maturin in your virtualenv first before running make build-prod? Then the build will go through maturin rather than pip.

Thanks for the help, I just opened in maturin GH first and will see how it goes.

I could finally install it by doing pip install maturin out of the venv without rust module loaded. I don't know why it worked that way though.


TEI Exercise 1: Introducing the Text Encoding Initiative

Begin by reading these slides: "Overview of Text Encoding and the TEI"
Then contribute a post to this conversation about learning the TEI. Please respond in your post to at least two of the following prompts:

From what you're reading, how is writing TEI code similar to or different from what you've been doing with XML so far?

What new things are you learning about representing documents in markup from these slides?

On one of the slides the authors make an interesting statement about what TEI does:
"So although it looks as if what we’re doing here is reproducing a text, we are, in fact, selectively and strategically modelling it. We’re creating a surrogate or proxy, which functions sort of like a different projections of a map: each with selective and useful omissions and distortions. "
What do you think is the difference between reproducing and modeling in this statement and why might it be important to help us understand what we are doing when we describe documents using TEI and XML?

Think about the documents or objects we looked at together in the library, and pick one that you remember really interested you. How do you think TEI could help you model something interesting about that document or object ?

** Fun fact: one of the people who helped develop this slide deck is a member of our newtfire GitHub organization, @sydb . Other friends from the markup community who may be interested in our discussion include @djbpitt and @haggis78 .

@sydb  Hi! Syd!

I think that TEI is very similar to how I've been using xml, as our class has mainly used it to markup documents for the humanities. Whether it is categorizing poems, letters from WW1, or even recipes, they are all pieces that relate to the humanities and have been our primary focus. This is likely because documenting important documents typically involves history, art, or literature, but it just physically makes sense to categorize the information the way we do. To separate information, refer back to it, all in a way that has a purpose to inform.
The newer things that I am learning about representing documents in markup are that there are many different ways that I have not considered before. TEI takes the idea that we are documenting humanities-related information, and runs with it to demonstrate how specific a piece, such as a play can be documented. When comparing it to html, like the slides showed, it demonstrates that html is purely trying to design a web page, whereas TEI and XML form organized documents for others to learn from.

TEI and XML have alot more common features than originally thought. While also going hand in hand with one another. For instance, they both deal with markup in one way or another. XML uses a method to distinguish our markup from the content that we are marking up. To where TEI translates our concepts into XML, while providing us with a more controlled vocabulary that we use in marking up text. TEI has a more formal approach when it comes to the research aspect which in turn makes it more sustainable and analytically rich because it provides a much larger vocabulary. Making things easier to categorize and allude to when need be.

TEL is an XML schema specialized for the markup of literary and linguistic texts. TEI can be useful for abstracting the layout features of source documents, but can be effective for searching, indexing, comparing and printing publications. The different between TEL and XML is that the XML define a syntax for text coding and TEL provide the specific of the actual encoding language. They also have different function. The XML distinguish the markup from the content and the TEL translate the concept into XML.

Based on my understanding of TEI, it is very similar to XML. I would say that in XML you can as broad or thorough as you would like, but what really distinguishes TEI from XML is how specialized it is. From the examples that I saw in the slides, I saw that the elements in TEI were about things like dimensions of the page or deletions, or maybe a line was crossed out. Both XML and TEI are about structure, but TEI is just more specific to Encoding Texts and Digitizing tangible texts.
Although we havent been to the library yet, the slides gave me a good idea of things to look out for that i wouldnt have even thought to do. This would include: obtaining the dimension, looking at the color used to write/type, is the text written or typed, are there errors, is there anything written in margins, etc.

XML and TEI seem pretty similar at a glance. On slide 4, it says the following:
"XML defines a syntax for text encoding. It is a method for distinguishing our markup from the content that we are marking up."
"The TEI provides the specifics of the actual encoding language. It translates our concepts into XML, and provides a controlled vocabulary that we use in marking up the text."
So XML defines the syntax, and the TEI defines the coding language. What I am confused about is what their actual purpose is in relation to each other. Is the XML in service of the TEI? Or does the TEI serve the XML? Or do they both supplement something else? Other slides imply that the TEI is the end goal and is what everything else has been leading up to, but it is ultimately unclear.
For reproducing and modeling as discussed in slide 8, I think that reproducing a text is just presenting it in a new form, perhaps organized in a way unlike before. An example of this would be using only general elements like h1 and p in HTML in order to organize the text on a webpage. This is done so that we might look at the text in a new light or from a different perspective. Modeling text is marking it up in such a way that more clearly conveys a new meaning or adds new context. An example of this would be identifying individual ingredients in a recipe using more specific elements and attributes like xsd:ID.

TEI and XML work together well in the markup of documents. Where XML is used to define the syntax TEI more or less translates concepts to XML. TEI uses a broader vocabulary than XML leading to the format being more useful in describing information. Both TEI and XML are related through humanities making what is encountered with TEI will have some sort of familiarity to the XML content.
From these slides I learned how in depth TEI is. The vast vocabulary used in the markup for documents can be very useful in the way of gathering information as well as describing it. I have learned that the TEI format is a very useful descriptive tool to use during markup.

The pictures really helped me wrap my brain around the concepts talked about here. For a second I did not know what was going on, but once there were images that showed the difference between the languages I was able to understand. TEI seems to just be a more complex and in depth version of XML. I initially though TEI was just an organization, but it is both a community and markup language. From what I am gathering TEI already has schemas built into it, however they have loose rules and strict rules that can vary depending on the document?

The TEI seams to be similar to XML. They are used in conjunction to relay a deeper overall meaning. The main use of the TEI is to allow for a more in-depth description or analysis of a source document. Whereas HTML may have one tag per paragraph or description, TEI may have three. From my understanding, the TEI is a digital language that is meant to build upon the base of XML to allow for deeper markup, notation, and exploration.

The syntax of TEI is very similar to XML, which make sense as TEI is build on XML, with XML defining the syntax and TEI defines the markup specifics on top. Since XML only provide the syntax, we can go as broad as we want with the tag naming, the disadvantage is that it can only present facts about a document's appearance. To go in-depth on a document's structure and content, we need to mark it with special/controlled vocabularies, which TEI provides.
In the author's quote in "The DH Universe", I think the term reproducing means presenting a document in different forms with no new information added or conveyed, like presenting the same map but with different color scheme; The term modeling means to show new context, ideas, or other unconsidered assumptions/information via markings, like reproducing the map, then add more useful marks and symbols on it. The author basically said there is more to markup—such as marking useful information—than simply presenting how a document is or should be shown.

XML and TEI is very alike in the way they analyze text. However, I did realize that TEI does go more in depth than normal XML. I think that TEI seems to be more of a extended branch of XML. TEI builds on XML essentially. Also, in XML we're able to go as far as we want with tagging, but with TEI it's a more controlled in depth way to code.

From my understanding, TEI is a bit more complex than XML and is more used for more descriptive markup while XML defines syntax. TEI has a more in depth and controlled vocabulary for the markup. Both XML and TEI aim to organize and categorize humanities related documents for us to examine and decode.

TEI is XML, and XML is a standard general Markup Language, which means that xml is a markup language and its syntax can be customized. For example, you can define syntax where tags (or elements) are like [v id:id1] instead of <v id="id1">``</v>. In XML (and HTML), elements are separated by angle brackets: <body>. Every tag in XML must be paired with an explicit closing tag: </body>. So far we haven't talked about the structure of the document (document type or schema). XML itself does not impose restrictions on document structure.

One aspect that I learned about TEI when it comes to it's main functionality, is that acts and behaves a lot like XML. Both languages are the foundations for all external document outputs. Those outputs being Websites, Printing/PDF, Mods/RDF, and most of all mapping. The difference between the two is that XML is very loose in terms of its vocabulary of syntax, thereby it has less restrictions. On the other hand, TEI has more restrictions and has a specific vocabulary of syntax, like that of HTML.
Overall, by looking over the tutorial, I feel like my understanding of representing text in markup has definitely expanded. I thought it was really fascinating to learn the REAL purpose of both XML and TEI, which I never really could quite understand in the past. For example, the wide selection of outputs that can be created or the distinct elements that can be associated in each document (such as <speaker>).

XML and TEI are similar and go hand in hand in some cases, but XML is much broader and deals more with the metadata, but TEI seems to more in-depth and specific markup. One thing i learned about TEI is that there seems to be more options when it comes to marking a document and the vocabulary used to markup documents.

From what I gathered, TEI is a markup language that is specifically used for the way we use XML in class. I would say XML has a much less focused application while TEI is specifically built to organize documents in the same manner that we do in class.
When the slides mention reproducing vs modelling I think it means we aren't making a document better and putting it back on the web. Rather we're sort of reorganizing it to point out aspects of the document that are already there.

Through looking a bit further, I found that TEI draws from a set list of elements unlike XML. This makes XML seem a bit more versatile in it's application of documents, but less consistent between authors and the same types of texts.
I do like the comparisons to HTML made through this and from the TEI and HTML slide. From the example here, neither HTML nor TEI reproduces a source document, as both would be simplifying the document by selectively choosing information. Knowing where a new paragraph starts in relation to the page or the size of the indent is not explicitly needed, although it might be shown in the structure. TEI does do a better job at modelling by adding information through structure, where HTML might lose it through the lumping of tags.

From what I have experienced so far, i have seen the differences between TEI, XML, and HTML is the objective of them. Here is a simple breakdown in my eyes:
TEI- used for choosing selective information and used as a markup language much like XML. Same main objective fo organize documents.
XML- much like TEI, XML has many similarities and is used as a markup language in order to organize and analyze documents and important information.
HTML- different from the first two, this language is used to create websites using different codes in order to create flowing pages much like the one we are using now.
After reviewing these languages and looking through the slides, I think that the most similar thing we do in class is remodeling. We do this when we take a code and go back to edit it and create simpler attributes, etc in order to make a more precise code that could later be associated with a schema.

I have come to learn that TEI is a more developed version of XML or an extension of what we do with XML. XML creates basic structures and it is how data is stored, transported, and defined. TEI produces structure as well but it seems that it is more limited with how it can organize documents.

TEI is a lot like XML, but what I learned is that TEI is much more descriptive than XML. XML focuses more on the actual content of documents, TEI does the same thing but also includes visual discription of the physical copy of the document we are marking up. TEI can also describe any edits made into the original copy, like side notes and markouts. When we take a physical, undigitalized document, we are basicly unearthing its unwritten details and organizing it for future readers to interpret in their own perposes.

TEI and XML are similar in their use of elements. I think TEI could be used to better describe what you are seeing. So closely related to the material on page and what it's made out of. Like what type of paper, maybe drawings on the paper. As compared to something like HTML which doesn't have to be as descriptive. It's just simpler which is why many TEI elements can exist in one HTML element. Because the goal of HTML isn't to be sustainable. TEI can be used to digitalize documents that weren't available before.

After thoroughly reading the slides, I've realised there are many similarities between TEI and XML. They seems similar when using them to document the text files. However, TEI touches more details in depth when XML is used more to do framework of text documentation. Because I was more focused reading about the TEI and XML, I didn't realise HTML also can be used to document text files. Previously, I thought HTML is often used to create websites pairing with CSS files. Additionally, I didn't know about that we can expend so far with one model to many outputs using different markup languages with their own characteristics for different objectives.

From what I can tell, TEI looks pretty similar to XML, at least in the way I've been using it. I did take notice of the part that mentioned turning our observations into formal information. I've only been doing that in the use of comments in XML so far, but maybe there's more to be done in TEI?
As I understand it, TEI is a specialized type of XML used for certain documents, so maybe that's why we've been learning Relax NG before this. Perhaps TEI is like a Relax NG document in the way that it will force certain conscriptions on an XML document so it's regulated somewhat. At least, that's my guess.


add required_ruby_version

The use of safe-navigation operator (&.) in this library (in alive.rb) requires Ruby >= 2.3.0 - this can be made explicit using required_ruby_version.

Alive.rb doesn't work and should be deleted. I'm fine bumping the required ruby version to 2.2 though as that's the latest supported by Ruby Core.

Sorry I missed this when filing #21. Ruby dependency is now defined in the gemspec.


[UI] Merge the info in issue/pr for extra space

Just a UI recommendation to merge the common things assigned to issue/pr like lables in on one lineers.

Example: mmarif added ui server critical label(s) 45 seconds ago

Duplicated of #834


Working with images with different width and height

i.e. an image would be 740x320 instead of 256x256
Any suggestions??
I do not want to pad the input.

same question...

How did you solve the problem?


Footer fixed on the bottom always

This PR renames hugo.toml to config.toml to fix the Hugo build issue and ensure correct configuration loading. It also updates the configuration file with proper baseURL, languageCode, and title settings. Additionally, template references to .Site.LanguageCode were fixed to resolve rendering errors, improving the overall site structure and build process.

@abinjustinkumaravel the DCO check is failing. The Linux Foundation has a rule that each commit must sign the Developer Certificate of Origin (DCO). In general that says that you are allowed to do the commit (legal text could be found here).
To fix this afterwards for you commits you need to do the following steps (copied from DCO check Details):

Ensure you have a local copy of your branch by checking out the pull request locally via command line.
In your local branch, run: git rebase HEAD~1 --signoff
Force push your changes to overwrite the branch: git push --force-with-lease origin footer-fixed-on-bottom

Once that is done all checks should be green.

@hendrikebbers  Should I work for netlify green checks ?

@abinjustinkumaravel I added some comments to the changes. Can you please check?

@abinjustinkumaravel I added some comments to the changes. Can you please check?

I will check it and update you soon.


Add a problem matcher for zig

The GCC matcher (provided by the official C++ package) seems just about right, as far as I can tell. It might be nice to have a custom one for zig.

I am attempting to implement this.

I have this working in https://github.com/Swoogan/vscode-zig/tree/problems
However, any build issues that you have are duplicated between the compile from "build on save" and the manual compile. I don't see an easy way of de-duplicating the problems. But I see these as being two opposing use-cases. I have opened #27 to make it possible to separate these two workflows.

Fixed by #50. Sorry about that @Swoogan


Add triggering condition to failure reaction for on-demand command

Signed-off-by: jorturfer<EMAIL_ADDRESS>
After merged, the new workflow,  all the comment on PRs are reacted with 👎 always that e2e are not successfully passed, including when they should not be executed.
[This is an example](Fixes #)
The workflow only should react to authorized comments
Checklist

[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[x] Tests have been added
[x] A PR is opened to update our Helm chart (repo) (if applicable, ie. when deployment manifests are modified)
[x] A PR is opened to update the documentation on (repo) (if applicable)
[x] Changelog has been updated

/run-e2e cron*

Sorry, I couldn't not try it xD

/run-e2e cron*


FIX: Update name change from resin to balena to scripts

Can one of the admins verify this patch?

@resin-jenkins ok to test

@michelecoduttiinnovatrieste did you delete you fork? I think that's why this can't be merged

@michelecoduttiinnovatrieste did you delete you fork? I think that's why this can't be merged
Yes, sorry.


year/month dropdown crashes

Describe the bug
https://reactdatepicker.com/#example-year-dropdown
https://reactdatepicker.com/#example-month-dropdown
Error: Minified React error #290; visit https://reactjs.org/docs/error-decoder.html?invariant=290&args[]=options for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

To Reproduce
Steps to reproduce the behavior:

open dropdown

Desktop (please complete the following information):

OS: windows
Browser firefox 74

This should be fixed with #2132 merged. We will release a new version shortly.


Upgrading a Brown Tile may be rotating other tiles by accident?? (Can't Replicate)

This ended up being same issue as later issue # 212. -- Resolved


String out of bounds Error when applying mappings

Parse error from source of: net/minecraft/client/renderer/EntityRenderer after 492ms, err=java.lang.StringIndexOutOfBoundsException: Range [78655, 78655) out of bounds for length 78644
java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
java.base/java.lang.String.checkBoundsBeginEnd(String.java:4914)
java.base/java.lang.String.substring(String.java:2876)
org.openrewrite.java.isolated.ReloadableJava17ParserVisitor.convert(ReloadableJava17ParserVisitor.java:1667)
org.openrewrite.java.isolated.ReloadableJava17ParserVisitor.visitAssignment(ReloadableJava17ParserVisitor.java:195)
org.openrewrite.java.isolated.ReloadableJava17ParserVisitor.visitAssignment(ReloadableJava17ParserVisitor.java:73)
com.sun.tools.javac.tree.JCTree$JCAssign.accept(JCTree.java:2070)
com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92)
com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:503)
com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1611)
...
here's the java class and my mappings
New folder.zip
should have somethin to do with the method description ig, its too long and inorder to fix we probably have to parse another list for the busted part and then treat them as one

This doesn't happen when applying the mappings. Opening the class without mapping applied will show this message. That being said you can ignore this. We expect these sorts of problems with obfuscated code. So when the AST parser fails you should use the "Fields & Methods" tab on the right.
What is likely happening is the AST parser is incrementing a cursor offset that doesn't line up with the actual source string being parsed. The discrepancy down the line leads to the cursor extending beyond the length of the string by 4 characters. This is a problem upstream with the parser library we're using.


feat: button style engine migration

#164  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @kylemcd and the rest of your teammates on  Graphite


Support cuda architecture sm70 and sm75

The existing code only runs on sm80 (A100). This PR adds support for sm70 (V100) and sm75 (T4).
The code passes the unit tests (tests/test_bmm.py, tests/test_linear_kernel.py) and end-to-end tests (smoothquant_opt_real_int8_demo.ipynb)
V100, OPT-6.7B
Model size: 12700.031MB
FP16 accuracy: 0.798, per-sample latency: 105.986ms
Model size: 6555.157MB
SmoothQuant INT8 accuracy: 0.796, per-sample latency: 192.265ms

The slow speed is due to the lack of int8 tensor core on V100
T4, OPT-6.7B
Model size: 12700.031MB
FP16 accuracy: 0.798, per-sample latency: 296.497ms
Model size: 6555.157MB
SmoothQuant INT8 accuracy: 0.796, per-sample latency: 225.479ms

@Guangxuan-Xiao Any chance to review and merge this?


Flux integration

Happy to help with providing deployed model endpoint

You're free to update the imagine command with your own models from replicate or huggingface


Update index.html

This change does not appear to include an image.

can you fix this @zquestz You’re creating a file in a project you don’t have write access to. Submitting a change will create the file in a new branch in your fork so I can upload the image

please, can I know why the pull request was close thanks @zquestz

You have 2 open... Same content

This was a dupe

oh ok due is somehow confusing the pull request, please is it ok now ??


TypeError during discovery

Running in Docker with host networking and I get this error during discovery:
><EMAIL_ADDRESS>start /usr/src/app
> node app.js

Starting discovery.
Hub discovered: Living Room at <IP_ADDRESS>.
/usr/src/app/node_modules/harmonyhubjs-client/lib/login/hub.js:59
if (response.identity && response.identity !== undefined) {
^

TypeError: Cannot read property 'identity' of undefined
at Client.<anonymous> (/usr/src/app/node_modules/harmonyhubjs-client/lib/login/hub.js:59:19)
at emitOne (events.js:77:13)
at Client.emit (events.js:169:7)
at Client._handleStanza (/usr/src/app/node_modules/harmonyhubjs-client/node_modules/node-xmpp-client/lib/Client.js:227:12)
at Client.onStanza (/usr/src/app/node_modules/harmonyhubjs-client/node_modules/node-xmpp-client/lib/Client.js:221:8)
at emitOne (events.js:77:13)
at Connection.emit (events.js:169:7)
at Connection.onStanza (/usr/src/app/node_modules/harmonyhubjs-client/node_modules/node-xmpp-client/node_modules/node-xmpp-core/lib/Connection.js:377:10)
at StreamParser.<anonymous> (/usr/src/app/node_modules/harmonyhubjs-client/node_modules/node-xmpp-client/node_modules/node-xmpp-core/lib/Connection.js:231:10)
at emitOne (events.js:77:13)

npm info<EMAIL_ADDRESS>Failed to exec start script

be sure you rm -Rf node_modules and npm install  again.

Sorry, I'm not sure how to do that within docker since the container stops as soon as I start it.  I tried to delete the container and start from scratch but I get the same error.

Hmm. I'm pretty unaware about anything related to Docker, lol. Maybe when the container was built it didn't get its modules updated? Seems like they need to be built from scratch every time. But I have no idea how any of this works, lol.

I added the rm command to the dockerfile and tested and it fixed the issue for me.  Created a PR, thanks!


New logo/icon proposal

Good day sir. I am a graphic designer and i am interested in designing a logo for your good project. I will be doing it as a gift for free. I just need your permission first before I begin my design. Hoping for your positive feedback. Thanks

Hi Mansya! You are more than welcome to give it a try. Thanks for your help!

HI, sir, I have designed it. How ? do you like it ? if yes please tell me which one you like.

hi sir. how about this offer. don't you want to continue?

Hi Mansya. Thanks for your work. We unfortunately don't think we will add this icon to our repository. After thinking about it we came to the conclusion that a logo for this repository doesn't add a lot of value. Thanks for your work!


Add documentation for init method

Cannot seem to figure out or find documentation for keyName or key required to initialize the eventHubs. I asked Microsoft about what these are and they could not answer either.
eventHubs.init({
    hubNamespace: eventHubsNamespace,
    hubName: eventHubsHubName,
    keyName: eventHubsKeyName,
    key: eventHubsKey
});

You can find those in the portal when you provision your event hubs instance. Ideally, you would use the SAS token instead of using the master key.


build: add mempool node crate

This change is

Codecov Report
Attention: Patch coverage is 0% with 4 lines in your changes are missing coverage. Please review.

Project coverage is 36.84%. Comparing base (46ea308) to head (a1a0555).

Files
Patch %
Lines

crates/mempool_node/src/main.rs
0.00%
4 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #33      +/-   ##
==========================================
- Coverage   41.17%   36.84%   -4.34%
==========================================
  Files           3        4       +1
  Lines          34       38       +4
  Branches       34       38       +4
==========================================
  Hits           14       14
- Misses         20       24       +4

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


Docker initialization error

ERROR 1364 (HY000) at line 1: Field 'plantrec_apikey' doesn't have a default value

Set plantrec_apikey to allow NULL value in migrations/AppModel and MigrationUpgrade::upgradeTo3dot7
plantrec_apikey VARCHAR(512) NULL


Security issue - .sql files world-readable

UMASK added to /backup.sh which sets file permissions to 660.


Upgrade to ELK 5.x for monitoring

Upgrade to the latest ELK 5.x stack
Move dashboard to the new visualization format

Not to be merged yet - this needs more work.

Will address #33


Unable to set kittenScientists.engine.tradeManager.settings.tradeBlackcoin.trigger

Describe the Feature
kittenScientists.engine.tradeManager.settings.tradeBlackcoin.trigger is used to determine when to convert relics to blackcoin (if enabled).
It's currently getting set to a hard coded value of 10000 with no way to change it (other then console).
https://github.com/kitten-science/kitten-scientists/blob/5ab8947d9e7f8b02db32583210a38449bb163a20/packages/userscript/source/settings/TradeSettings.ts#L75
Unless I'm missing something, it should be set as a configurable trigger value via the standard "lightning bolt" system on the "Trade Blackcoin" line.

Save file isn't really needed, but it's too large to paste below.  Here's a save file where relic generation is active:
Kittens Game - Run 18 - Year 3670 - Spring, day 44.txt
Your Savegame
No response

Thanks!


dns/dnscrypt-proxy: rename label in templating

Closes #2490
No version bump due to #2518

merged, thanks!


Private key authentication not working

Hello, I generated new SSH keys from my laptop using ssh-keygen. I added it to my Pi using ssh-copy-id and tested it correctly from my computer.
I transferred the private key onto my phone, selected private key as my authentication method, and selected the private key file which I placed in /storage/emulated/0/Documents/op3t
The app says: "SSH authentication failed. Please check your credentials."
Here is an except from the log:
13:36:35.625 [AsyncTask #32] INFO  d.e.rpicheck.ssh.impl.RaspiQuery - Using private/public key authentication, keyfile: '/storage/emulated/0/Documents/op3t'
13:36:35.939 [AsyncTask #32] ERROR net.schmizz.concurrent.Promise - <<authenticated>> woke to: net.schmizz.sshj.userauth.UserAuthException: Problem getting private key from PKCS8KeyFile{resource=[PrivateKeyFileResource] /storage/emulated/0/Documents/op3t}
13:36:35.945 [AsyncTask #32] INFO  d.e.rpicheck.ssh.impl.RaspiQuery - Authentication failed.
net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
	at net.schmizz.sshj.SSHClient.auth(SSHClient.java:231) ~[na:0.0]
	at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:346) ~[na:0.0]
	at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:365) ~[na:0.0]
	at de.eidottermihi.rpicheck.ssh.impl.RaspiQuery.connectWithPubKeyAuth(RaspiQuery.java:789) ~[na:0.0]
	at de.eidottermihi.rpicheck.activity.SSHQueryTask.doInBackground(SSHQueryTask.java:93) ~[na:0.0]
	at de.eidottermihi.rpicheck.activity.SSHQueryTask.doInBackground(SSHQueryTask.java:52) ~[na:0.0]
	at android.os.AsyncTask$2.call(AsyncTask.java:333) ~[na:0.0]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:0.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) ~[na:0.0]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) ~[na:0.0]
	at java.lang.Thread.run(Thread.java:764) ~[na:0.0]
Caused by: net.schmizz.sshj.userauth.UserAuthException: Problem getting private key from PKCS8KeyFile{resource=[PrivateKeyFileResource] /storage/emulated/0/Documents/op3t}
	at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putSig(KeyedAuthMethod.java:61) ~[na:0.0]
	at net.schmizz.sshj.userauth.method.AuthPublickey.sendSignedReq(AuthPublickey.java:74) ~[na:0.0]
	at net.schmizz.sshj.userauth.method.AuthPublickey.handle(AuthPublickey.java:45) ~[na:0.0]
	at net.schmizz.sshj.userauth.UserAuthImpl.handle(UserAuthImpl.java:142) ~[na:0.0]
	at net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:500) ~[na:0.0]
	at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:102) ~[na:0.0]
	at net.schmizz.sshj.transport.Decoder.received(Decoder.java:170) ~[na:0.0]
	at net.schmizz.sshj.transport.Reader.run(Reader.java:59) ~[na:0.0]
Caused by: java.io.IOException: Could not read key pair from: [PrivateKeyFileResource] /storage/emulated/0/Documents/op3t
	at net.schmizz.sshj.userauth.keyprovider.PKCS8KeyFile.readKeyPair(PKCS8KeyFile.java:96) ~[na:0.0]
	at net.schmizz.sshj.userauth.keyprovider.BaseFileKeyProvider.getPrivate(BaseFileKeyProvider.java:75) ~[na:0.0]
	at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putSig(KeyedAuthMethod.java:59) ~[na:0.0]
	... 7 common frames omitted

The private key is plain text in the regular format, something like
-----BEGIN PRIVATE KEY-----
blahblahblahblahblahblah...
-----END PRIVATE KEY-----

Same issue.
I can use a terminal app on my phone -> PI, this works using the key's. when I try to use the same private key with this app -> pi it doesnt work. The key is added correctly to the PI.

Try to store the public key next to your private key on your phone. The public key file must have the same name as the private key file with ".pub" as suffix.
for your setup:

/storage/emulated/0/Documents/op3t (private key)
/storage/emulated/0/Documents/op3t.pub (publik key)

19:39:30.411 [AsyncTask #1] INFO  d.e.rpicheck.ssh.impl.RaspiQuery - Initialiazed new RaspiQuery for host <hostname_redacted> on port <port_redacted>
19:39:30.412 [AsyncTask #1] INFO  d.e.rpicheck.ssh.impl.RaspiQuery - Connecting to host <hostname_redacted> on port <port_redacted>
19:39:30.418 [AsyncTask #1] INFO  d.e.rpicheck.ssh.impl.RaspiQuery - Using no host key verification.
19:39:30.989 [AsyncTask #1] INFO  d.e.rpicheck.ssh.impl.RaspiQuery - Using private/public key authentication, keyfile: '/storage/emulated/0/.ssh/opt3'
19:39:31.122 [AsyncTask #1] INFO  d.e.rpicheck.ssh.impl.RaspiQuery - Authentication failed.
net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
at net.schmizz.sshj.SSHClient.auth(SSHClient.java:231) ~[na:0.0]
at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:346) ~[na:0.0]
at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:365) ~[na:0.0]
at de.eidottermihi.rpicheck.ssh.impl.RaspiQuery.connectWithPubKeyAuth(RaspiQuery.java:789) ~[na:0.0]
at de.eidottermihi.rpicheck.activity.SSHQueryTask.doInBackground(SSHQueryTask.java:93) ~[na:0.0]
at de.eidottermihi.rpicheck.activity.SSHQueryTask.doInBackground(SSHQueryTask.java:52) ~[na:0.0]
at android.os.AsyncTask$2.call(AsyncTask.java:333) ~[na:0.0]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:0.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) ~[na:0.0]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) ~[na:0.0]
at java.lang.Thread.run(Thread.java:764) ~[na:0.0]
Caused by: net.schmizz.sshj.userauth.UserAuthException: Problem getting public key from com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile@a5093e
at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putPubKey(KeyedAuthMethod.java:46) ~[na:0.0]
at net.schmizz.sshj.userauth.method.AuthPublickey.buildReq(AuthPublickey.java:62) ~[na:0.0]
at net.schmizz.sshj.userauth.method.AuthPublickey.buildReq(AuthPublickey.java:81) ~[na:0.0]
at net.schmizz.sshj.userauth.method.AbstractAuthMethod.request(AbstractAuthMethod.java:68) ~[na:0.0]
at net.schmizz.sshj.userauth.UserAuthImpl.authenticate(UserAuthImpl.java:72) ~[na:0.0]
at net.schmizz.sshj.SSHClient.auth(SSHClient.java:225) ~[na:0.0]
... 10 common frames omitted
Caused by: net.schmizz.sshj.common.Buffer$BufferException: Bad item length:<PHONE_NUMBER>
at net.schmizz.sshj.common.Buffer.readString(Buffer.java:397) ~[na:0.0]
at net.schmizz.sshj.common.Buffer.readString(Buffer.java:412) ~[na:0.0]
at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readUnencrypted(OpenSSHKeyV1KeyFile.java:190) ~[na:0.0]
at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readDecodedKeyPair(OpenSSHKeyV1KeyFile.java:107) ~[na:0.0]
at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readKeyPair(OpenSSHKeyV1KeyFile.java:79) ~[na:0.0]
at net.schmizz.sshj.userauth.keyprovider.BaseFileKeyProvider.getPublic(BaseFileKeyProvider.java:81) ~[na:0.0]
at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putPubKey(KeyedAuthMethod.java:44) ~[na:0.0]
... 15 common frames omitted
19:39:31.128 [AsyncTask #1] ERROR d.e.rpicheck.activity.SSHQueryTask - Could not authenticate on host '' and login ''. Check your login/password.
de.eidottermihi.rpicheck.ssh.impl.RaspiQueryException: Could not authenticate on host '' and login ''. Check your login/password.
at de.eidottermihi.rpicheck.ssh.impl.RaspiQuery.connectWithPubKeyAuth(RaspiQuery.java:792) ~[na:0.0]
at de.eidottermihi.rpicheck.activity.SSHQueryTask.doInBackground(SSHQueryTask.java:93) ~[na:0.0]
at de.eidottermihi.rpicheck.activity.SSHQueryTask.doInBackground(SSHQueryTask.java:52) ~[na:0.0]
at android.os.AsyncTask$2.call(AsyncTask.java:333) ~[na:0.0]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:0.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) ~[na:0.0]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) ~[na:0.0]
at java.lang.Thread.run(Thread.java:764) ~[na:0.0]
Caused by: net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
at net.schmizz.sshj.SSHClient.auth(SSHClient.java:231) ~[na:0.0]
at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:346) ~[na:0.0]
at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:365) ~[na:0.0]
at de.eidottermihi.rpicheck.ssh.impl.RaspiQuery.connectWithPubKeyAuth(RaspiQuery.java:789) ~[na:0.0]
... 7 common frames omitted
Caused by: net.schmizz.sshj.userauth.UserAuthException: Problem getting public key from com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile@a5093e
at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putPubKey(KeyedAuthMethod.java:46) ~[na:0.0]
at net.schmizz.sshj.userauth.method.AuthPublickey.buildReq(AuthPublickey.java:62) ~[na:0.0]
at net.schmizz.sshj.userauth.method.AuthPublickey.buildReq(AuthPublickey.java:81) ~[na:0.0]
at net.schmizz.sshj.userauth.method.AbstractAuthMethod.request(AbstractAuthMethod.java:68) ~[na:0.0]
at net.schmizz.sshj.userauth.UserAuthImpl.authenticate(UserAuthImpl.java:72) ~[na:0.0]
at net.schmizz.sshj.SSHClient.auth(SSHClient.java:225) ~[na:0.0]
... 10 common frames omitted
Caused by: net.schmizz.sshj.common.Buffer$BufferException: Bad item length:<PHONE_NUMBER>
at net.schmizz.sshj.common.Buffer.readString(Buffer.java:397) ~[na:0.0]
at net.schmizz.sshj.common.Buffer.readString(Buffer.java:412) ~[na:0.0]
at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readUnencrypted(OpenSSHKeyV1KeyFile.java:190) ~[na:0.0]
at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readDecodedKeyPair(OpenSSHKeyV1KeyFile.java:107) ~[na:0.0]
at com.hierynomus.sshj.userauth.keyprovider.OpenSSHKeyV1KeyFile.readKeyPair(OpenSSHKeyV1KeyFile.java:79) ~[na:0.0]
at net.schmizz.sshj.userauth.keyprovider.BaseFileKeyProvider.getPublic(BaseFileKeyProvider.java:81) ~[na:0.0]
at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putPubKey(KeyedAuthMethod.java:44) ~[na:0.0]
... 15 common frames omitted

ssh-keygen on Manjaro Linux. I just renamed the file op3t instead of the default id_rsa because my phone is a OnePlus 3T

I'm having the same issue. I generated the keys on my Mac with ssh-keygen and copied both id_rsa and id_rsa.pub to the same folder on my phone (S7 edge). When I select the private key and try to connect to my Pi, I get the SSH authentication failed error.
I can connect just fine from my Mac, and from another Ubuntu laptop where I added those same keys using ssh-add.
I used a SHA256 4096bit key.

This problem is affecting me as well which means that the app is basically useless at the moment. Is there any progress? I am happy to help and debug – just let me know what I can do

Same issue here. I use juice ssh app with a generated key and have no issues. Even tried generating an openssl key and that also results in inability to connect.
First time installing the app and will uninstall because it clearly is useless if I can't auth

Same issue here. Using JuieSSH

For me it works with an older SSH key but fails with a newer one, both of which are in ~/.ssh/authorized_keys, and of course, both of which work with other ssh clients. I haven't quite figured out what the difference is, whether there are any differences in terms of encryption algorithms used or so.

I wonder if OpenKeychain's API can be used for authentication instead..  Might be easier than fixing this software.  Plus would also give the option of using hardware keys.

Same problem here. Ssh keys were generated from the android device with Termux and copied with ssh-copy-id.

I suspect this could be some file permission issue. I don't know how https://github.com/hierynomus/sshj handles ssh key files though.

I suspect this could be some file permission issue. I don't know how https://github.com/hierynomus/sshj handles ssh key files though.

No, it isn't. For me it works with one key but doesn't work with another (a newer one), which have both identical permissions. The difference seems to be that they use different encryption algorithms, and the app is unable to handle one of them.

I think I have found the solution to the problem.
#204

Thanks @ksz16
Unfortunately though, this did not work for me. Following your suggestion, I tried to convert my existing private key to a PEM private key (see https://unix.stackexchange.com/questions/638043/how-to-convert-rfc4716-private-keys-to-pem-private-keys).
I still get the same error in raspicheck however. (SSH authentication failed).
Has someone else tried converting an existing key?

Sorry, my fault. I accidently used the wrong key file.
I can now indeed confirm that the solution/workaround suggested by @ksz16 in #204 works perfectly.
All you have to do is:
ssh-keygen -p -f /foldername/keyfilename -m PEM

@kareliot, glad to hear it's working for you too. I came across this solution by accident. I needed to convert a key from OpenSSH to Dropbear (to do this you first need to change the key format to PEM). And then I remembered about the private key issues on RasPi Check. I decided to use the PEM key. And surprisingly it worked.
I think sharing knowledge is very important. I often use hints and solutions that others share online. So I'm glad it helped you and I hope it helps others as well.

closing this, solution described in #204 (pinned).


Add group_size 7 and fix compat with Yi 1.5 34b

Allow users to compile for group_size 7 and have it compatible with Yi 1.0/1.5 34B models.
Fix https://github.com/flashinfer-ai/flashinfer/issues/181
I did not modify the CI script to include group_size 7 by default as it would increase the compile time to even longer than it already is. Users that want Yi-34B compat can opt to compile only group_size 7 via env var FLASHINFER_GROUP_SIZES (fastest, maybe 10-15 minutes) or add 7 to the existing 1,4,6,8 for full compat with other model (super slow compile, measured in hours).
Yi 1.5 is a great model and this will help those engines (sglang) that uses flashinfer to deploy this model.

[x] Tested with Sglang + Yi 1.5 34B

@Qubitium  Do you test correctness of Yi-model? I tried this method before, and found BatchPrefill kernel does not return correct outputs. I also fixed BatchPrefill kernel in #223 .

@xuzhenqi  You are right. There are output instability when we use temperature=0.7 coupled with sglang:
Traceback (most recent call last):
  File "/root/miniconda3/lib/python3.11/site-packages/sglang/srt/managers/router/model.py", line 187, in exposed_step
    self.forward_step()
  File "/root/miniconda3/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/lib/python3.11/site-packages/sglang/srt/managers/router/model.py", line 202, in forward_step
    self.forward_fill_batch(new_batch)
  File "/root/miniconda3/lib/python3.11/site-packages/sglang/srt/managers/router/model.py", line 424, in forward_fill_batch
    next_token_ids, _ = batch.sample(logits)
                        ^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/lib/python3.11/site-packages/sglang/srt/managers/router/infer_batch.py", line 552, in sample
    sampled_index = torch.multinomial(probs_sort, num_samples=1)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: probability tensor contains either `inf`, `nan` or element < 0

Now we will compile and test your #223 PR instead.


Query: Unify Include pipeline and CorrelatedCollectionOptimization pipeline

Both have a lot of things in common - CorrelatedCollectionOptimization is a superset of Include, apart from a few aspects (AnonymousObject vs MaterializedAnonymousObject, ability to use DISTINCT in the inner query, fixup for include, more orderings needed for CCs).
They should be unified - this would allow us to remove a lot of duplicated code and improve queries for some scenarios (Correlated collections in conjunction with include)

Also consider the scenario described here: https://github.com/aspnet/EntityFrameworkCore/issues/11341


MockVM and Casper Address are incompatible

Creating addresses in the test environment causes errors when switching between backends:
error[E0599]: no variant or associated item named `new` found for enum `odra::types::Address` in the current scope
  --> src/erc721token.rs:99:47
   |
99 |         assert_eq!(erc721.balance_of(Address::new(b"Krzysztof")), U256::from(0));
   |                                               ^^^ variant or associated item not found in `Address`

https://github.com/odradev/odra/blob/c5ad96be61c5f46780944349bd9d5c78488a0514/mock-vm/types/src/address.rs#L17

That is fine. You should use test_env::get_account for new accounts.

Imo it is not the biggest problem, but it is not fine either. It would be better to replace new with From trait implementation,

new interface is already removed.


[Bug]: uniquetav still listed, even though i have no mods installed

Operating System
Windows 10
BG3 Mod Manager Version
<IP_ADDRESS>
BG3 Game Version
Most recent.
Bug Summary
unique_tav acts as if it's still in my mod folder, even though there are no .paks in there and i can't delete the mod (since it doesn't exist) through the BGMM ui. it doesn't matter what i do. i uninstalled BG3MM. i wiped my mods folder. no matter what i do, it shows up under inactive. and then, in-game, i can 'enable' it. (i can enable it in the BG3MM ui also.) and it works? except uTav is broken so it doesn't work. but it seems to be interfering with kaz's uTav, even though it technically doesn't exist. not sure how i would even go about fixing this.
Links

https://wiki.bg3.community/Tutorials/Mod-Use/How-to-remove-mods


Support Spring Boot 2.3.x with a reactive MongoClient

Is your feature request related to a problem? Please describe.
I've upgrade a Spring Boot 2.2.x reactive project to Spring Boot 2.3 and Shedlock cannot be used anymore.
Spring Boot 2.3 only supports Mongo 4.x, and the current com.mongodb.reactivestreams.client.MongoClient can't be used to get a database to initialize the MongoLockProvider since it doesn't expect a com.mongodb.reactivestreams.client.MongoDatabase
Describe the solution you'd like
Added support for Mongo 4.x with a reactive MongoClient

Hi, thanks for feedback. Reactive Mongo client is not supported. Feel free to provide a PR. It should be straightforward to create a new LockProvider by copying current Mongo LockProvider and change it to use the reactive driver.

@lukas-krecan no problem, I'll prepare it along next week

Released as 4.10.1


InternalAuditModifiedCask: audit renamed Casks

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew tests with your changes locally?

Refs:

https://github.com/caskroom/homebrew-cask/pull/39391
https://travis-ci.org/caskroom/homebrew-cask/builds/284505240#L552

Allows _audit_modified_casks  to check Casks that have been renamed.

Nice catch, @commitay!


Cache invalidation

CATEGORY
Choose one

[ ] Bug Fix
[X] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[ ] Build / Development Environment
[ ] Documentation

SUMMARY

This PR implements cache invalidation for charts (after https://github.com/apache/incubator-superset/pull/7032), in two places:
(1) In the frontend, every time a POST is done by SupersetClient to get chart data, we invalidate the cache. This happens when the user clicks "force refresh" in a dashboard, or clicks "run query" in the explore view. When this happens, we extract the chart id (slice_id) and delete all stored responses that reference that chart — this would include, eg, a cached response of the chart with extra filters from a dashboard.
(2) In the backend, we use a similar strategy. Unfortunately, we can't iterate over all the cached keys like in the frontend, to find all related cached responses. So we compute the key that would be generated if a GET request was made, and invalidate it.

TEST PLAN

I've tested manually, by modifying charts and ensuring that dashboards refresh correctly:

Create chart in explore view, browser does a POST request.
Reload chart, browser does GET and caches the response.
Reload chart, browser reuses cached response.
Reload chart after cache expiration, browser does conditional response.
Click "Run Query". Browser does a POST, cache is invalidated for that chart. Server-side cache is also invalidated.

Similarly for dashboards. Before, if you clicked force refresh on a dashboard it would performa a POST and show the new data. But reloading the dashboard would show the old charts, since they were still cached in the browser.
I tried adding Cypress integration tests, but for some reason I get an error when writing to the Cache API (it works fine in Chrome) from an integration test:
TypeError: Failed to execute 'put' on 'Cache': parameter 2 is not of type 'Response'.
    at eval (webpack-internal:///./node_modules/@superset-ui/connection/esm/callApi/callApi.js:17)

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[X] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS

👀 @DiggidyDave @datability-io @khtruong

Codecov Report

Merging #7319 into lyftga will increase coverage by 0.08%.
The diff coverage is 62.5%.

@@            Coverage Diff             @@
##           lyftga    #7319      +/-   ##
==========================================
+ Coverage   64.58%   64.67%   +0.08%
==========================================
  Files         425      426       +1
  Lines       20884    20925      +41
  Branches     2297     2305       +8
==========================================
+ Hits        13488    13533      +45
+ Misses       7270     7266       -4
  Partials      126      126

Impacted Files
Coverage Δ

superset/utils/decorators.py
87.93% <100%> (+0.89%)
:arrow_up:

superset/assets/src/chart/chartAction.js
46.8% <11.11%> (-2.44%)
:arrow_down:

superset/views/core.py
74.55% <76.47%> (-0.02%)
:arrow_down:

...rset/assets/src/explore/reducers/exploreReducer.js
31.57% <0%> (-4.14%)
:arrow_down:

superset/assets/src/chart/Chart.jsx
12.5% <0%> (-0.66%)
:arrow_down:

superset/assets/src/explore/controls.jsx
42.06% <0%> (-0.34%)
:arrow_down:

...ts/src/explore/components/ExploreViewContainer.jsx
33.79% <0%> (-0.25%)
:arrow_down:

superset/assets/src/chart/ChartRenderer.jsx
7.57% <0%> (ø)
:arrow_up:

...rset/assets/src/dashboard/components/Dashboard.jsx
89.28% <0%> (ø)
:arrow_up:

...et/assets/src/explore/components/controls/index.js
100% <0%> (ø)
:arrow_up:

... and 7 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5dab983...ae93936. Read the comment docs.

I tried adding Cypress integration tests, but for some reason I get an error when writing to the Cache API (it works fine in Chrome) from an integration test:
Instead of end-to-end UI test for this, can we add some real unit tests and just mock the relevant storage/cache APIs? I think this needs some pretty robust testing, I'm afraid it is pretty tightly coupled to how URLs are structured and other things that could someday change and silently break this feature in an undiscoverable, hard-to-debug way.

@DiggidyDave I'll do that.

For cypress test, you can stubbing response to bypass real ajax call (and avoid hitting TypeError)

Cypress is for end to end UX testing, though.  This is definitely much more suitable for fast, crisp unit tests.  e2e ux tests should be rare.

w.r.t. my concerns about coupling this with URL structure etc: will this be affected by issues @mistercrunch raised over here? Just wanted to make sure.


Go get sub folder with SSH

Page is unclear, I don't seem to be able to go get a subfolder from a private repo using SSH.  can you please clear up if this is possible and any work arounds?
Thanks

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

ID: 069d650f-9948-2492-86d2-a5423ce043fb
Version Independent ID: 9c95f2fb-44be-5dbb-be51-0c498ed692d2
Content: Go get support - Azure Repos
Content Source: docs/repos/git/go-get.md
Product: devops
Technology: devops-code-git
GitHub Login: @vijayma
Microsoft Alias: vijayma

@JaeTLDR - thanks for your question. While we look into specifics about SSH and go get, consider these resources for troubleshooting and possible workarounds:

Azure DevOps Services
Azure DevOps Support Bot
Azure DevOps on Stack Overflow

Thanks @TimShererWithAquent  I ended up swapping to the HTTP version as my testing showed ssh was not compatible, would be good to keep this open for others if they run into the same issues.


Linear equation Calculator

Fixes Issue🛠

Closes #124
Description👨💻

Added a linear equation in two variables calculator.
Type of change📄

[x] New feature (non-breaking change which adds functionality)

This has been tested✅

Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷
https://github.com/Rakesh9100/CalcDiverse/assets/133582773/2f5ebb0e-6c05-4064-97de-1bb2323acc3e

Pls don't do any changes in main index.html file except just adding your calculator at the end @bhavya-anand19

Pls don't do any changes in main index.html file except just adding your calculator at the end @bhavya-anand19

ok

Please have a look now. @Rakesh9100

No, its not fixed. Still too many changes are visible. Check this @bhavya-anand19

I have removed all the extra changes. @Rakesh9100

Good job and UI is really nice ✨ @bhavya-anand19
Congrats on getting your PR merged to this repo under SWOC S4 🎉🎉 @

Good job and UI is really nice ✨ @bhavya-anand19
Congrats on getting your PR merged to this repo under SWOC S4 🎉🎉 @bhavya-anand19

Good job and UI is really nice ✨ @bhavya-anand19
Congrats on getting your PR merged to this repo under SWOC S4 🎉🎉 @bhavya-anand19

Thank you


null performance handling

bug - if performance value is null, application crashes

This is trickier than it first appears. At present, there is kind of a solution whereby nulls are replaced with zeros, however this is not great if your goal is to minimise a performance criteria.
Something needs to flag when a performance value is a certain predefined number (not null), and then discount it.

Need to make sure this is covered for designs that are not cluster representatives


[Test-Proxy] Some headers not auto-splitting, causing recording mismatches

@Mohit-Chakraborty is seeing matching failures when converting containerregistry to use the test-proxy. While he has unblocked himself by ignoring this specific header during matching, it still highlights a problem.
Right here we create an entry that will matched against when running in playback mode.
The key issue here is that ASP.NET is treating the header value as string[]{ "application/vnd.oci.image.manifest.v1+json, application/json" } instead of what I would actually expect, which would be to automatically split by , and result in string[]{ "application/vnd.oci.image.manifest.v1+json", "application/json" }.
Given that specific input string, the headers just don't split consistently. Because of that, the test proxy is simply storing that value as the 0th index in the header values array. I believe we probably record on .NET 6.0 which is the form with the space in it. If we had recorded in .NET 4.6.1, this problem would simply be reversed.
This issue covers the investigation to understand why we aren't getting the expected values array.
If it is a bug in ASP.NET in general, we will need to re-factor how we treat headers across the board to one where we explicitly look at the joined raw value.

Oh. I don't think this is a bug. , definitely doesn't auto-split, in which case this is just expected behavior because we're passing two different values. Going to find the LoC in asp.net code and drop a reference. This is probably going to end up a wont fix unless I understand something different.

I am going to close this issue as  won't fix, I don't believe this is an issue with the test-proxy. We don't split up that header value as discussed above, and we're simply sending different values across the framework values. I don't believe that we should be applying logic to detect

oh that space is immaterial because it is in the Accept header, you can ignore if it's there or not there

@JoshLove-msft @Mohit-Chakraborty feel free to challenge my understanding of the problem above!

Thanks @scbedd for the investigation.
Could you explain what you mean by this -

we're simply sending different values across the different .NET frameworks.

Should we try to standardize on the format? What would the recommendation be for writing tests targeting different .NET frameworks? Perhaps have a way to keep separate test session records?

We intentionally normalize the Accept header to handle the case of different formats. It seems this is just one more format that we need to handle when normalizing the headers.

@JoshLove-msft this won't be normalized right? Headers are auto split based on ;, NOT ,. This is a single header value.

Hey @Mohit-Chakraborty , laying out the exact details of the differences.
So when this test runs on .NET 5.0/6.0, you send along this value for the Accept header: application/vnd.oci.image.manifest.v1+json, application/json
On the failing .net 4.6.1, this same test sends this value for Accept header: "application/vnd.oci.image.manifest.v1+json,application/json"
Notice that there isn't a space there?
For test authors, it's really what you have in your recording. It looks like you MADE the recording on .NET 6.0, which is why the space is present.

@JoshLove-msft this won't be normalized right? Headers are auto split based on ;, NOT ,. This is a single header value.
EDIT: oh you're talking about .NET side. nevermind.

I know they are not being normalized now, but I don't understand why we wouldn't normalize them. I thought comma separated values are supported - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept

My guess is that the code here - https://github.com/Azure/azure-sdk-tools/blob/main/tools/test-proxy/Azure.Sdk.Tools.TestProxy/Common/RecordMatcher.cs#L255 doesn't work anymore now that we are after the transport layer. The "normalization" that occurs in this method still needs to happen but are starting point is no longer an array with separate content types, but rather a comma-delimited list of content-types.

@JoshLove-msft even if it did this header is a single value, and that normalization wouldn't do anything anyway. Accept special cases on ,. Most headers are on ;.

The normalization is specifically for Accept and Content-Type - https://github.com/Azure/azure-sdk-tools/blob/f46fb45cf9603d3d705ca832ef8c0e562bf7c307/tools/test-proxy/Azure.Sdk.Tools.TestProxy/Common/RecordMatcher.cs#L24-L25

For context, the SDK code is -
            if (accept != null)
            {
                request.Headers.Add("accept", accept);
            }
            request.Headers.Add("Accept", "application/json");

@JoshLove-msft even if it did this header is a single value, and that normalization wouldn't do anything anyway. Accept special cases on ,. Most headers are on ;.

Yes, I agree the normalization method is currently not doing anything because it expects the header values to be in separate elements of an array. The method then joins these elements into a comma separated string. The problem is that we are starting off with a comma separated string as the only element of the array, but we still need to do the normalization part that adds the correct whitespace.

Right, because it's not two header values. It's a single header value.

Accept",

I doubt it will make a difference but any reason there is different casing used?

Accept",

I doubt it will make a difference but any reason there is different casing used?

That gets unified. But, otherwise it is odd, and a bug in CodeGen.


Release Google.Cloud.Audit version 2.3.0

Changes in this release:
No API surface changes; just dependency updates.

Created release for Google.Cloud.Audit-2.3.0


fix the conflict of the unsupported object and the exception support

no raiseme is declared if unsupported is generated, see this example:
memory > xprint
[] > def-1
  [args...] > unsupported
  [args...] > xunsupported
  memory > bogusForceDataize
  memory > xbogusForceDataize
  memory > xhack
  seq > @
    xhack.write
      []
        memory > xcheck
        seq > @
          xcheck.write
            [xa xb]
              memory > xc
              seq > @
                (((unsupported)).apply raiseme)
                  xc.write ((xa).add (xb))
                  bogusForceDataize.write (((xprint)).apply raiseme ((xc)))
                  (((unsupported)).apply raiseme (TRUE))

raiseme is not generated anymore, so this bug is not directly reproducible. Some code with unsupported compiles with EO, so maybe this bug is gone.


Please upgrade to eslint 0.21.0

Done. Version 0.12.0 has been published.

a little mistake: the git tag is called v0.21.0

Oh! Thanks for spotting that. It has been corrected.


Calculator uses WinUI 2.1 framework, which is not available in OS image

A team member will update this issue with more details soon.

This is your friendly Microsoft Issue Bot. I created this issue automatically as requested by a team member.


chore: Enable codeql action

This action runs GitHub's industry-leading semantic code analysis engine,
CodeQL, against a repository's source code to find security vulnerabilities.
https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql
https://github.com/ossf/scorecard/blob/main/docs/checks.md#sast
Signed-off-by: naveen<EMAIL_ADDRESS>

Interesting PR but I am not sure on the benefits, since MM has some special cases due to how it is run / setup.
Anyway, would approve this if the current warnigns / errors will get fixed too. Otherwise its just noise that nobody looks at.
Did you look at the warnings (https://github.com/MichMich/MagicMirror/pull/2865/files) and have an idea on how to fix it @naveensrinivasan ?

Interesting PR but I am not sure on the benefits, since MM has some special cases due to how it is run / setup.
Anyway, would approve this if the current warnigns / errors will get fixed too. Otherwise its just noise that nobody looks at.
Did you look at the warnings (https://github.com/MichMich/MagicMirror/pull/2865/files) and have an idea on how to fix it @naveensrinivasan ?

TBH, I don't know Javascript. Also, those warnings provide fixes as suggestions. Some of them could be false positives and so can ignore them and they won't show up.
To answer your question. You can ignore the warnings if you think it is incorrect and they won't show up again.

I appreciate your contribution but my guess is this will create too much confusion for new contributors. To be honest, I don't even know exactly how MagicMirror² benefits from this.

Sounds good. I will close the PR.


Marketplace v2.0

This ticket tracks the marketplace v2.0 initial module development.
This is not intended to cover the entire feature, just the progress of the module making it into the sdk.
Methods remaning to implement:

[ ] buyoutAuction
[x] buyDirectListing
[x] getActiveBids
[x] closeAuctionListing
[x] removeListing (converted into two separate method, cancelDirectListing and cancelAuctionListing

Some questions I need answered (cc @nkrishang @jakeloo)

When a user decides they want to "buyout" an auction, are they required to buy the entire quantity of tokens for sale? E.g. there is quantity = 10 of a particular 1155 on an auction. If I decide I want to "buyout" the auction (based on the buyout price), am I required to buy all 10? Or can I buyout only a subset?
What are the sequence of calls we should make when cancelling a direct listing, such that no offers are accepted? Can a direct listing be cancelled?
Assuming an auction does not have a winning bid can the lister cancel the auction and get their asset returned to them?
Assuming an auction does have a winning bid and the seller is happy with the current winning bid, can they close the auction and accept the current winning bid? If so, what sequence of calls need to be made?
When an auction has ended and there is a winning bid, what are the sequence of tx's needed in order to distribute the payment to the seller and distribute the assets to the buyer? Can this be done in a single call, or should each side of the listing (buyer & seller) come to the marketplace to close their side of the deal (and receive their assets)?

I'll keep updating this list with questions as I wrap up the initial implementation on the sdk side.

As of right now, our sdk marketplace interface contains a removeListing method.
I think this should be two distinct methods:

removeDirectListing -> depending on how the closing of a direct mechanism works, this method is more explicit and clearly communicates that you can't use this on an auction (because I'm not yet sure if you can actually remove an auction)
closeAuction -> Closes an auction. Still unsure how this will work until questions 2-4 above are answered
cancelAuction -> This can only be called if an auction has not yet started and should completely cancel the listing and return the sellers assets to them.

@jakeloo the PR is ready to go, outside of the methods listed at the top of this ticket.
The two things we're waiting for:

Krishang to answer some questions about auction closing procedures
Setting up subgraph so that we can supply methods like getActiveBids and getActiveOffers

When a user decides they want to "buyout" an auction, are they required to buy the entire quantity of tokens for sale? E.g. there is quantity = 10 of a particular 1155 on an auction. If I decide I want to "buyout" the auction (based on the buyout price), am I required to buy all 10? Or can I buyout only a subset?

For auctions, there's no way to buy a partial amount of tokens put up for auction -- regardless of whether we're discussing a buyout, or a regular bid.

What are the sequence of calls we should make when cancelling a direct listing, such that no offers are accepted? Can a direct listing be cancelled?

We consider a direct listing effectively 'cancelled' when the quantity of tokens listed in the listing is 0. So, to cancel a direct listing, one must call upateLisitng with _quantityToList  set to 0.

Assuming an auction does not have a winning bid can the lister cancel the auction and get their asset returned to them?

There's a bug in the contract that prevents the auction creator to have their asset returned to them, in the case you've described. I've opened up an issue in the contracts repo. Thanks for pointing it out 👍

Assuming an auction does have a winning bid and the seller is happy with the current winning bid, can they close the auction and accept the current winning bid? If so, what sequence of calls need to be made?

No, the auction creator must wait until the auction's closing to close the auction. Bidder's are permitted to outbid the current winning bid until the closing of the auction window.

When an auction has ended and there is a winning bid, what are the sequence of tx's needed in order to distribute the payment to the seller and distribute the assets to the buyer? Can this be done in a single call, or should each side of the listing (buyer & seller) come to the marketplace to close their side of the deal (and receive their assets)?

The auction needs to be closed (1) once for the winning bidder, which distributes the auctioned items to the bidder (call closeAuction with the winning bidder's address as _closeFor) and (2) once for the auction creator, which distributes the winning bid to the auction creator (call closeAuction with the auction creator's address as _closeFor)

@nkrishang thanks for the answers. I still have a problem with this condition.

There's a bug in the contract that prevents the auction creator to have their asset returned to them, in the case you've described. I've opened up an issue in the contracts repo. Thanks for pointing it out 👍

(Everything below this comment assumes the listing has no winning bid)
With the way the condition is checking the end time, the seller can only receive their assets after the end time. But if someone accidentally creates an auction and wants to pull it, IMO they should be able to so they can preserve their asset.
There's tons of cases where the seller may want to cancel the auction before the end time:

They misconfigured the listing and would like to cancel + relist (there are things they can update with the updateListing function, but they can't change the asset they listed, which is 100% possible. For example someone lists token #1, but they meant to list #2).
They decided they don't want to sell the asset anymore, and there are 0 active
etc

Imo, the targetListing.endTime < block.timestamp portion of the condition on line 320 should be removed.

@atbe I think the case you describe is for the frontend or SDK to handle, and not the contract.
The toCancel check is an example where the contract must operate optimistically on the assumption that an auction was created intentionally, and not by mistake. Another example of operating optimistically on an assumption is creating packs in our Pack contract. One can create packs by mistake; redeeming the assets that the packs wrap requires the pack creator to open the packs one by one.
Otherwise, if someone creates a listing that lasts 24 hours, their asset is locked away for 24 hours with the chance of being bid on which essentially forfeits the asset to the winning bidder (once the listing ends).

From the contract's perspective, this behaviour is intended. For the thirdweb dashboard, this means conveying the finality of an auction (that it cannot be canceled after it has started); for the SDK, this means making the call to create an auction explicit (e.g. marketplace.createAuction(...)); for thirdweb at large, this means educating the users about the finality of blockchain transactions and smart contract logic.

But what exactly is the motivation around restricting cancellations until after the end time? I don't see any reason why a lister can't cancel a listing if there are no bids.

The main rationale is here.
For the contract, given an explicit start and end time for the auction, it's acceptable to place a bid at any moment in that time window. This is because the contract does not anticipate any bidding strategy, or take a stance on when bids should be placed.
Here's a thought experiment: an auction window is between 12:00pm and 1:00pm, and the first bid is going to be made at 12:59pm. It's not up to the contract to decide at 12:58pm that most of the auction window is over and no bids have been made yet, so it's acceptable to let the creator cancel the auction since no bids will be made at all. We know this isn't true, because the first bid will land a minute later, at 12:59pm. That's why the contract does not permit the auction creator to cancel the auction after it has started and before it has ended.

Here's a thought experiment: an auction window is between 12:00pm and 1:00pm, and the first bid is going to be made at 12:59pm. It's not up to the contract to decide at 12:58pm that most of the auction window is over and no bids have been made yet, so it's acceptable to let the creator cancel the auction since no bids will be made at all. We know this isn't true, because the first bid will land a minute later, at 12:59pm. That's why the contract does not permit the auction creator to cancel the auction after it has started and before it has ended.

This seems like an extreme case. Nonetheless, I digress. If we hear users requesting that they'd like the ability to cancel before the end time, we can deal with it then. Thanks for the feedback.

Yep 👍 Also with the new architecture we're working towards, we'll be able to let users toggle between the kinds of commitments they want on auctions (i.e. in general, we'll be able to respond to user feedback on things like these much faster, without us having to stick to a single spec of a higher level concept like "Marketplace").

Sounds good.
Btw @nkrishang  with this default value https://github.com/nftlabs/nftlabs-protocols/blob/main/contracts/marketplace/Marketplace.sol#L144 someone who creates an auction might have an auction that goes on forever, and in combination with the closing conditions, an auction could end up locking up an asset forever accidentally.
I don't see a max time duration on the auctions, so this seems risky @nkrishang

Yep, adding a max time duration might turn out to be necessary. However, the concern with adding a 'max time duration' is that it re-introduces the issue of auctions being vulnerable to being sniped by bots via last minute bids.
We aim to prevent this kind of sniping via the time and bid buffer, with the assumption that there's a ceiling to the willingness to bid on an auction. Since a winning bidder must lock up their bid amount in the marketplace, the auction is bound to have this implicit ceiling. So, for now, the prevention of the 'locking up of assets forever' is the job of the time and bid buffers.
Another rationale of depending on this 'ceiling' created by auction buffers is that if there's a bidder willing to pay more for the auction, they should be able to pay more, and the payoff for the auction creator for waiting more is, in the end, a larger payout at auction closing.
Rationales / assumptions may be debated. The main issue with a max time duration is still that auctions can be sniped by bots via last minute bids.
See this section in the design doc -

Every auction listing obeys two 'buffers' to make it a fair auction:

Time buffer: this is measured in seconds (e.g. 15 minutes or 900 seconds). If a winning bid is made within the buffer of the auction closing (e.g. 15 minutes within the auction closing), the auction's closing time is increased by the buffer to prevent buyers from making last minute winning bids, and to give time to other buyers to make a higher bid if they wish to.

Bid buffer: this is a percentage (e.g. 5%). A new bid is considered to be a winning bid only if its bid amount is at least the bid buffer (e.g. 5%) greater than the previous winning bid. This prevents buyers from making very slightly higher bids to win the auctioned items.

So, for now, the prevention of the 'locking up of assets forever' is the job of the time and bid buffers.

Not necessarily. The "max auction time" I'm suggesting is independent of the time buffer.
If someone passes in UInt256Max to the startTime parameter, their asset is essentially locked away forever, regardless of the buffers. Or if they pass UInt256Max to the endTime, the same situation occurs.
Without a proper way to cancel an auction that was accidentally created with such a startTime value, the asset is essentially burned.
I disagree in the idea that frontends (like console) are expected to warn the user in the event of such a provided configuration, because this assumes that the caller is using some frontend that verifies the parameters. Someone could easily call these methods in the SDK, which does not warn of such a value because it assumes you know what you're doing, and will inevitably result in some locked up assets.
I don't think we should enforce a hard limit at the contract level, but somewhere in the stack there should be a configurable "maximum auction duration" that can protect listers from falling into this trap.

@jakeloo IMO, the marketplace branch is ready to merge.
I've added convenience methods like getListing & buyoutListing that dynamically determine the listing type.
I've also completed the fetching of the asset field and all tests are passing. We're ready for prime time.


[Impeller] Images are aligned and animated the opposite of Skia

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
import 'package:flutter/material.dart';

void main() async {
  runApp(
    MaterialApp(
      home: App(),
    ),
  );
}

class App extends StatefulWidget {
  const App();

  @override
  State<App> createState() => AppState();
}

class AppState extends State<App> with SingleTickerProviderStateMixin {
  late AnimationController _controller;
  double _rainY = 0;

  @override
  void initState() {
    super.initState();

    _controller = AnimationController(
      vsync: this,
      duration: const Duration(seconds: 1),
    );

    _controller.repeat();
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.grey[800],
      child: Stack(
        fit: StackFit.expand,
        children: <Widget>[
          Positioned.fill(
            child: AnimatedBuilder(
              animation: _controller,
              builder: (_, __) {
                _rainY += 0.03;

                return Image.network(
                  'https://img.freepik.com/free-vector/rainfall-drops-black-background_1017-33594.jpg',
                  repeat: ImageRepeat.repeat,
                  fit: BoxFit.contain,
                  alignment: Alignment(0, _rainY),
                );
              },
            ),
          ),
        ],
      ),
    );
  }
}

Expected results
Images should align/animate the same way they do in Skia.
Actual results
Images align/animate totally differently in Impeller. It causes major issues with our commercial app. Please fix and cherry pick into stable.

Skia aligns/animates one way
Impeller aligns/animates the opposite way

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.10.2, on macOS 13.3.1 22E772610a darwin-arm64, locale en-US)
    • Flutter version 3.10.2 on channel stable at /Users/james/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9cd3d0d9ff (28 hours ago), 2023-05-23 20:57:28 -0700
    • Engine revision 90fa3ae28f
    • Dart version 3.0.2
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/james/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.12.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.78.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.64.0

[✓] Connected device (3 available)
    • Apollo (mobile) • 00008110-0004752E3AB8801E • ios            • iOS 16.2 20C65
    • macOS (desktop) • macos                     • darwin-arm64   • macOS 13.3.1 22E772610a darwin-arm64
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 113.0.5672.126
    ! Error: James’s Apple Watch has not finished loading development services. Please select a different device, or wait for the device to load development services and try
      again. (code 8)

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Hi @stx, I can reproduce this on the stable branch but not on the master branch, can you confirm if this is the case for you as well?

@danagbemava-nc Yep, fixed in master! Not sure where the PR for the fix is, but would be great to get it in the next stable hotfix.

Thanks for confirming the fix