Tor repo doesn't support architecture 'armhf' (32bit ARM) - need to compile from source?

This is a possible issue for all newly set up Tor nodes:
$ sudo apt update

Hit:5 https://deb.torproject.org/torproject.org buster InRelease

N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'https://deb.torproject.org/torproject.org buster InRelease' doesn't support architecture 'armhf'

Reported in RaspiBolt: https://github.com/Stadicus/RaspiBolt/issues/656
If this remains to be an issue there are two obvious solutions:

switch to a 64bit base image (https://github.com/rootzoll/raspiblitz/issues/1199 - aimed for v1.7)
compile Tor from source (can help to get around some issues with some ISP censorship since can be downloaded from github)

Methods to compile Tor from source:

https://t.me/RaspiBlitzFAQ/168
https://tor.stackexchange.com/questions/75/how-can-i-install-tor-from-the-source-code-in-the-git-repositorysudo apt-get install -y git build-essential automake libevent-dev libssl-dev zlib1g-dev

# git clone https://git.torproject.org/tor.git
git clone https://github.com/torproject/tor

cd tor
./autogen.sh

./configure --disable-asciidoc

make
make install

https://github.com/openoms/joininbox/blob/4042dde809eb9cba5a3e1c2941dc414eb93251b6/build_joininbox.sh#L343

https://2019.www.torproject.org/docs/debian#source
 # https://2019.www.torproject.org/docs/debian#source
 echo "# running on armv6l - need to compile Tor from source"
 apt install -y build-essential fakeroot devscripts
 apt build-dep -y tor deb.torproject.org-keyring
 mkdir ~/debian-packages; cd ~/debian-packages
 apt source tor
 cd tor-*
 debuild -rfakeroot -uc -us
 cd ..
 dpkg -i tor_*.deb
 # setup Tor in the backgound
 # TODO - test if remains in the background after the Tor service is started
 tor &

I just tested a recover/update with the v1.6.1 image (where Tor gets installed) and it was working - so I pushed this to v1.7 where we anyway consider to test the 64-bit image. @openoms do you see anything pressing for the v1.6.2 release?

@rootzoll can you check the version of tor that was installed? I can image that apt install tor still work even though https://deb.torproject.org/torproject.org no longer hosts armhf packages because Debian/Raspbian itself also hosts an older version.
I currently have this running:
dpkg -l tor
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version                Architecture Description
+++-==============-======================-============-===================================
ii  tor            <IP_ADDRESS>-1~d10.buster+1 armhf        anonymizing overlay network for TCP

Running apt-cache show tor shows that the Duster repo contains <IP_ADDRESS>-1. While this version does include support for security issues (I assume) it will be different regarding features and configurations settings that 0.4+ .

Yes it seems to fallback to a <IP_ADDRESS> ..
admin@raspberrypi:~ $ dpkg -l tor
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-===================================
ii  tor            <IP_ADDRESS>-1   armhf        anonymizing overlay network for TCP

@openoms is there a specific feature/settings that we want/need from tor 0.4.X ? Or could we live with 0.3.5?

Not sure of the feature differences, but generally it is strongly recommended to run the latest version.

I've run test compilation with this simple script (from https://2019.www.torproject.org/docs/debian#source):
$ cat tor.sh
apt install -y build-essential fakeroot devscripts
apt build-dep -y tor deb.torproject.org-keyring
mkdir ~/debian-packages; cd ~/debian-packages
apt source tor
cd tor-*
debuild -rfakeroot -uc -us

on a RPi4 4GB:
$ sudo time tor.sh

...

real	18m56.093s
user	36m8.960s
sys	3m45.892s

Then upgraded Tor successfully (the node is up and running):
root@raspberrypi:~# dpkg -l tor
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version                Architecture Description
+++-==============-======================-============-===================================
ii  tor            <IP_ADDRESS>-1~d10.buster+1 armhf        anonymizing overlay network for TCP

root@raspberrypi:~/debian-packages# dpkg -i tor_*.deb
(Reading database ... 102579 files and directories currently installed.)
Preparing to unpack tor_<IP_ADDRESS>-1~d10.buster+1_armhf.deb ...
Unpacking tor (<IP_ADDRESS>-1~d10.buster+1) over (<IP_ADDRESS>-1~d10.buster+1) ...
Setting up tor (<IP_ADDRESS>-1~d10.buster+1) ...
Something or somebody made /var/log/tor disappear.
Creating one for you again.
Processing triggers for systemd (241-7~deb10u4+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...

root@raspberrypi:~/debian-packages# dpkg -l tor
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version                Architecture Description
+++-==============-======================-============-===================================
ii  tor            <IP_ADDRESS>-1~d10.buster+1 armhf        anonymizing overlay network for TCP

Question is if we should take up with the 36 mins build time or maybe should ship the tor_*.debs on the SDcard (compile in the build_sdcard.sh) even if it is not active by default?

Maybe as Tor <IP_ADDRESS>-1 is working ok on v1.6.1 and I am not aware of any critical issues with running the older version we might keep it for v1.6.2 (so don't need to change the build_sdcard.sh and no long wait on install).
Could offer an optional Tor update in the UPDATE menu which builds from source.
My node had no issues while building and then changing to the new version can be done on the fly too, will just restart Tor afterwards.
Can even even test if it makes any difference if the build is done from the SSD vs the SDcard.

I merged the PR 1769 and for the next v1.6.2 release sd card image I will run once manually the update so that the self buil packages will already we on the sd card. Putting on final testing for RC1.

Testing with RC1 & RC2 look fine on the Tor side. So closing this issue for 1.6.2 release.

I just installed 1.7 and then ran sudo apt update and I get:
admin@raspberrypi:~ $ sudo apt update
Hit:1 http://archive.raspberrypi.org/debian buster InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian-security buster/updates InRelease
Hit:4 http://deb.debian.org/debian buster-updates InRelease
Hit:5 https://deb.torproject.org/torproject.org buster InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
13 packages can be upgraded. Run 'apt list --upgradable' to see them.
N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'https://deb.torproject.org/torproject.org buster InRelease' doesn't support architecture 'armhf'

I am running aarch64:
admin@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.17-v8+ #1403 SMP PREEMPT Mon Feb 22 11:37:54 GMT 2021 aarch64 GNU/Linux

And Tor is installed as version <IP_ADDRESS> from the Tor repo:
admin@raspberrypi:~ $ dpkg -l tor
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version                Architecture Description
+++-==============-======================-============-===================================
ii  tor            <IP_ADDRESS>-1~d10.buster+1 arm64        anonymizing overlay network for TCP

@openoms  Any ideas why this warning is still show and how to get rid of it?

Adding [arch=arm64] seems to help:
cat /etc/apt/sources.list
deb http://deb.debian.org/debian buster main contrib non-free
deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free
# Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
#deb-src http://deb.debian.org/debian buster main contrib non-free
#deb-src http://deb.debian.org/debian-security/ buster/updates main contrib non-free
#deb-src http://deb.debian.org/debian buster-updates main contrib non-free

deb [arch=arm64] https://deb.torproject.org/torproject.org buster main
deb-src [arch=arm64] https://deb.torproject.org/torproject.org buster main

Then I get no warnings.
admin@raspberrypi:~ $ sudo apt update
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://deb.debian.org/debian-security buster/updates InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 http://archive.raspberrypi.org/debian buster InRelease
Get:5 https://deb.torproject.org/torproject.org buster InRelease [3,524 B]
Get:6 https://deb.torproject.org/torproject.org buster/main Sources [1,250 B]
Get:7 https://deb.torproject.org/torproject.org buster/main arm64 Packages [2,392 B]
Fetched 7,166 B in 2s (3,530 B/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

On a fresh 1.7.1 image I did:
sudo apt-get purge ".*:armhf"
sudo dpkg --remove-architecture armhf
sudo apt update
sudo apt full-upgrade

raspiblitz is runing fine so far.

We now use 64bit baseimages by default .. because 32bit are not recommended because of large LND channels.db files etc. Closing issue.


Add codec parameter override to SDP filtering

Allow the caller to specify a semicolon-separated list of key=value
pairs of codec arguments passed directly to the preferred codec during
SDP filtering, to configure it.
This is a low-level interface for advanced use only, will no validation
checks whatsoever. This fixes #51 at least short term.

@eirikhollis how does that change look? I tested that the SDP offer message contains all arguments passed, provided that you are careful to pass the correct parameter name and valid values. This is a short-term low-level fix to allow configuring if you know what you're doing. I plan to add some higher level layer that simplifies this and doesn't force you to know the internals of SDP, but for now I think that should sort you out.

Here's an example of SDP filtered message for OPUS, passing the extra parameters string "ptime=40;maxaveragebitrate=8000" :
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 maxaveragebitrate=8000;minptime=5;useinbandfec=1
a=ptime:40

Note that this only works with the one codec you select with PreferredAudioCodec, so this won't allow configuring multiple codecs in case you want to leave two choices to the receiver.

Looks good as an intermediate solution.
I think you can place the ptime in the fmtp attribute together with the other parameters, e.g.:
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=20; ptime=40; cbr=0; maxplaybackrate=48000; sprop-maxcapturerate=48000; maxaveragebitrate=16000; stereo=0; sprop-stereo=0; useinbandfec=1

The RFC says no:

The OPTIONAL media type parameters "ptime" and "maxptime" are mapped to "a=ptime" and "a=maxptime" attributes, respectively, in the SDP.

In any case the SDP message is generated by Google's code. The filtering I do is:

Parse the string message into in-memory data structures (Google)
Filter on the data structures <- my code
Re-generate a new string message from the data structures (Google)

So I don't generate the strings myself, I use the same code that generated the SDP message in the first place, only I feed it with different inputs.

Sounds awesome. Looking forward to testing it


Feature request: machine-readable/parseable output

Hi! This seems like a really cool project that could end up being a really nice replacement for pip :)
One thing I'd personally really like to see in this is either to have the ability to have full parseable output when running in a subprocess. Let me explain:
I have a project called chaiNNer which offers a bit of python environment management built-in, namely installing dependencies automatically. Part of this functionality is reporting to the user the progress of the installation in a nice UI form. However, since pip hides all progress bars when inside a subprocess (thanks to rich, its progress bar library), I first had to implement a jank way of parsing the found wheel (with regex), canceling the install, downloading the wheel manually from pypi, and then installing it from the wheel file -- then I switched part of this implementation into just outputting json to stdout in a fork of pip I now bundle with the program.
Neither of these were ideal solutions, and while the pip team was somewhat open to merging my PR of json download output, due to the difficult nature of writing tests for that and realizing it wasn't worth polluting pip with my one-off feature that didn't match anything else, I decided to scrap that idea and just use my fork myself.
I think it would be really great if you could design uv with machine-readable information in mind from the early stages.
Specifically, I would essentially like to have a --json mode, where all outputs to the console are written as json strings so that they can be easily parsed to data objects in whichever language is running uv in a subprocess. Important information such as what package is currently being downloaded, the total size, the current download percentage (or size), would be the most useful bits of information to have.
Is this something the uv team would be willing to implement at some point? I did notice that at its current stage, it doesn't appear to even report download progress to the console, so maybe this is something that would have to come way down the line.
Thank you for your time.

Thanks for your feedback and excitement about the project!
Always showing download progress is slow :) but we do want to do it sometimes e.g. #1209
We support an --output-format json in Ruff, I imagine we'll consider supporting something similar here but it may take some significant work.

Haha funnily enough pytorch is the sole reason I want to display download progress at all, so I definitely agree with that linked issue 😄
Glad to hear you're open to it. I look forward to seeing the progress on this project :)

(this is very much intended to be a drive-by comment from me)
FWIW, pip's got a --report flag that provides installation-related reports: https://pip.pypa.io/en/stable/reference/installation-report/ -- you might want to consider building off of that. :)

@pradyunsg that does look interesting, but after a little investigation it looks like the report gets output after it's done doing what it usually does. So while it does output the wheel url in a nicely parseable format, it does so after it would even matter, which is unfortunate. and it doesn't change the way download progress is logged.


Associations of FRQs & place.com

Problem 1: Arrays/Arraylists
The arraylists FRQ focused on me creating a program that sums elements that determines the value of each poker hand.
This problem involved tackling a series of challenges related to arrays, particularly focusing on summing elements and analyzing the uniqueness of sums in a two-dimensional array context. The principles that I used to solve this problem all hinged on working with arrays, which are ubiquitous in our team's project. Here is an example:
@ManyToMany(fetch = EAGER)
private Collection<PersonRole> roles = new ArrayList<>();

This line of code is part of the Person class and it sets up a way to keep track of different roles a person can have, using an ArrayList. The @ManyToMany annotation indicates that each Person can have many roles, and each PersonRole can be associated with many Person objects. The fetch = EAGER part means that whenever a Person object is retrieved from the database, all its associated PersonRole objects are also loaded immediately into memory. The roles variable is initialized as a new ArrayList, which is a type of collection that allows for dynamic arrays that can grow as needed. This setup is crucial for managing user permissions and roles within an application, allowing for a flexible and dynamic assignment of roles to different users.
Problem 2: Classes
I had to make a HiddenWord class, which I disguised it as PokerHand in order for the user to guess which poker hand they were being dealt when being randomly assigned five cards. This task was about putting together information and actions in one neat class setup. Making a good class was really important for our team's project to work well. Here's an example:
@Entity
public class Channel {

    @Id @GeneratedValue
    @Column(name = "channel_id")
    private Long Id;
    private String name;
    private String desc;
    private String creator;

    public Long getId() {
        return Id;
    }

    public void setId(Long id) {
        Id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

The Channel class in this block of code is an example of a POJO, which can be designed for use in a project like  ours (PLACE.com, a Discord replica). It encapsulates properties such as a channel's ID, name, description, and creator, along with corresponding getter and setter methods for manipulating these properties. POJOs were also used in our Messages.java file which took into account of the user, time stamp, and channel ID. This class structure is similar to what's required in the FRQ question for creating a HiddenWord class, where you define properties and methods (like getHint) specific to the functionality of a guessing game. Both scenarios utilize the principles of object-oriented programming to manage data and behavior, highlighting how POJOs can be great to fit the needs of different applications, from managing communication channels to implementing game logic. By doing this, everything is starting to click and I'm really understanding why POJOs are so applicable and useful.
Problem 3: 2D Arrays
FRQ 3 asked about 2D arrays and sparse arrays. The FRQ's context a some google searches helped me learn that sparse arrays are used to basically manipulate stored data in any given array.
In PLACE, we didn't have 2D arrays or sparse arrays, as we had barbaric ways of storing data :), since we don't have any utilization of 2D arrays, I figured I could talk about how we could use 2D arrays (The Veracious V's suggested I do this, and we could definitely do this for PLACE).
We could use 2D arrays to manage a grid-like structure of messages or information. Imagine a bulletin board or a dashboard where each cell in the 2D array represents a specific slot that can hold a message or a piece of data. This setup could be particularly useful for organizing messages by categories or priorities, with one dimension of the array representing different categories like announcements, reminders, alerts, and the other dimension representing priority levels or time slots. Users could navigate through this arrangement to post new messages, update existing ones, or retrieve information based on its categorization and importance. Using 2D arrays and sparse arrays not only makes the data management better but also takes advantage of the spatial organization for quick access and updates, making user experience with PLACE far better.
Learning about this, I talked to Orlando, Shreyas, Shivansh, and Mati, and we all came to a consenseus that we should approach this for the next trimester portion of our project. Its cool and funny to see how an FRQ from collegeboard completely questioned and humbled the approach of our project's backend infrastructure.
Since I was curious, I decided to ask ChatGPT how we would implement 2D arrays and sparse arrays, it came up with this, along with an example:
public class BulletinBoard {
    private final String[][] board;
    private final int categories = 3;
    private final int priorities = 3;

    public BulletinBoard() {
        this.board = new String[categories][priorities];
    }

    // Method to post a message
    public void postMessage(int category, int priority, String message) {
        if (category < categories && priority < priorities) {
            board[category][priority] = message;
        } else {
            System.out.println("Invalid category or priority");
        }
    }

    // Method to get a message
    public String getMessage(int category, int priority) {
        if (category < categories && priority < priorities) {
            return board[category][priority];
        } else {
            return "Invalid category or priority";
        }
    }

    // Method to display the bulletin board
    public void displayBoard() {
        for (int i = 0; i < categories; i++) {
            for (int j = 0; j < priorities; j++) {
                System.out.println("Category: " + i + ", Priority: " + j + ", Message: " + board[i][j]);
            }
        }
    }
}

AND here is the example provided:
public class Main {
    public static void main(String[] args) {
        BulletinBoard bulletinBoard = new BulletinBoard();

        // Posting messages
        bulletinBoard.postMessage(0, 0, "Meeting at 10 AM");
        bulletinBoard.postMessage(1, 1, "Submit reports by Friday");
        bulletinBoard.postMessage(2, 2, "System maintenance this weekend");

        // Displaying the bulletin board
        bulletinBoard.displayBoard();

        // Retrieving a specific message
        String message = bulletinBoard.getMessage(0, 0);
        System.out.println("Retrieved Message: " + message);
    }
}

Problem 4: Methods and Control Structures
This question was mainly about using interfaces, especially how to work with methods and rules for organizing code. Even though interfaces aren't a separate question type on the AP test anymore, they're still important here. We had to make an interface called NumberGroup for a set of numbers and write a method to check if a number is part of the set (using true and false, a lot of students did this as a solution). In part b, for the Range class, we implemented this check method and used if statements to see if a number falls within a certain range. Then, in the MultipleGroups class, we used loops to go through different NumberGroups to find if a number is in any of them. So, this whole question was about using interfaces, making classes, writing methods, and using if statements and loops in Java.
Here is an examples of methods and control structures being used in our team project:
package com.nighthawk.spring_portfolio.mvc.person;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

/*
Extends the JpaRepository interface from Spring Data JPA.
-- Java Persistent API (JPA) - Hibernate: map, store, update and retrieve database
-- JpaRepository defines standard CRUD methods
-- Via JPA the developer can retrieve database from relational databases to Java objects and vice versa.
 */
public interface PersonJpaRepository extends JpaRepository<Person, Long> {
    Person findByEmail(String email);

    List<Person> findAllByOrderByNameAsc();

    // JPA query, findBy does JPA magic with "Name", "Containing", "Or", "Email", "IgnoreCase"
    List<Person> findByNameContainingIgnoreCaseOrEmailContainingIgnoreCase(String name, String email);

    /* Custom JPA query articles, there are articles that show custom SQL as well
       https://springframework.guru/spring-data-jpa-query/
       https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods
    */
    Person findByEmailAndPassword(String email, String password);

    // Custom JPA query
    @Query(
            value = "SELECT * FROM Person p WHERE p.name LIKE ?1 or p.email LIKE ?1",
            nativeQuery = true)
    List<Person> findByLikeTermNative(String term);
    /*
      https://www.baeldung.com/spring-data-jpa-query
    */
}

This code snippet is for a PersonJpaRepository in our project PLACE, a user to channel platform, and it's a part of how the application talks to the database to manage user information. It uses Spring Data JPA, a tool that helps easily access and manipulate database content without needing to write complex SQL queries. For example, it can find a person by their email, sort all people by name, or search for people by name or email regardless of case sensitivity. This is similar to the FRQ question about writing a method or control structure because both involve creating specific instructions to perform tasks—like retrieving or organizing data in this repository, or generating hints based on guesses in the FRQ's guessing game. Essentially, it's about writing code that tells the computer how to accomplish a particular job, whether that's managing user data in PLACE.com or solving a problem in the FRQ.
Reflecting on the FRQs and Tri 2 Part of our Project.
By doing these four FRQs and realizing how the code are group had built for our project was related, made me understand why we studied certain concepts in class and had student lessons on them. It also made me realize which parts of computing theory I lacked understanding and needed more practice in.
The FRQ on classes was better than the rest of the FRQs for me, since our student lesson was on the introduction on POJOs and how they should be formatted. When working with Orlando on the channel creation aspect of our project, we incorporated many POJOs for things like username, channelID, description, etc. When doing this FRQ about my concept of poker, I recalled how we used POJOs not only in Channels.java but also in other parts of our project like Messages.java. This made it easier for me to understand classes, helping me complete the FRQ.
The FRQs on 2D arrays and methods/control structures/interfaces were on the harder side. The main problem was that our project never utilized SparseArrays/2D arrays, which meant I had no idea what it looked like (even though I should have known). This made the third FRQ difficult for me, as I even asked Orlando and we both tried to look for any trace of us using 2D arrays in our FRQ. Additionally, I also combined all my code for the methods FRQ to develop a sorting method in order to determine if a number belonged or didn't belong, this could have been done better if I had written blocks of code one by one like the FRQ had asked.
Clearly, I have a lot more to learn and lot more to practice, especially for the FRQs I struggled in. But I'm interested, and willing to put in the work for next trimester. As a student in trimester 2, I lacked to show many concepts that we learned in class, and I was also not able to perform simple tasks like deploying a backend repository. However, despite the FRQs having the purpose of stressing or frustrating students, I actually found them fun and sort of entertaining, they indirectly helped me link all the concepts we learned in class, and I was able to identify the code we had done in our projects instantly.
As Trimester 3 comes up, I think I'm going to consistently reference the four important FRQs when developing new features for PLACE. By being up to date, and knowing how each project aspect relates to what portion of the FRQ, I believe I will be much more prepared for the AP exam, and I hope, a better programmer.

Crossover Grading

Grader: Varaprasad Nibhanupudi

FRQ
Grade
Comments

1
0.88/0;9
Doesn't answer the exact questions, but covers more of what is intended close, just really a different class name. For FRQs in the future, remember to answer the actual FRQs

2
0.83/0.9
Demonstrated a poker hand guessing. Similar in idea to what is required (guessing game) but doesn't fully show understanding of the Collegeboard requirements for stringbuilding. Hence, lower score given.

3
0.9/0.9
Did everything as intended, included a little reflection

4
0.9/0.9
Did everything as intended, included a little reflection

Association
3.7/4
Did extra integration, looking for ways to add 2D arrays into their project, used ChatGPT to visualize a possible solution that may be integrated


Add option to choose pane when drawing lines etc.

Some notes:

options: src/Leaflet.LineraMeasurement.js:5
draw polyline: src/Leaflet.LineraMeasurement.js:380
draw multipolyline: src/Leaflet.LineraMeasurement.js:393
check where poup with distance is being drawn

Thank you; please submit a pull request with the update if you have solved this.


added call to endpoint for updating a resource

push for new content to be translated, also set up content to the correct format required by the Transifex API
{content: <content of the file in escaped json>}

As in our case, when we want to update just a few strings, the nasty thing is that you have to PUT the whole resource. Otherwise all the strings not present in the body will be deleted. (What is actually expected of the PUT requests)
Benedikt has solved this by fetching the resource first, merging the changes, and sending the resource back. I believe there are some race-conditions (D'oh - I seem to overuse this phrase recently ;) ), but so far it works in our case, when there is just one person working with admin panel.
I'm not sure, but what do you think about adding some notes about this to the README?

...or maybe yet another helper-function to just add/update some of the strings of a given resource?
The implementation could then be refined much easier, than when it's implemented in the client apps. Of course, assuming that it is relatively common use-case to jut add/update a few strings.
The API does not have a way to PATCH the resource, as far as I could see :(

unfortunately as you saw there is no way to patch, it's either all or nothing. I wanted the client to be as close to the api as possible.
so yes, definitely worth to add the note in the README as of now for the said method and I'll open another PR to add a further method to do it conservatively. how does it sound?


generated js code location

When using several components on 1 page, the generated js code is placed in between the components. This causes issue e.g. in combination with masonry (see https://masonry.desandro.com) where content in between components disturbs the page layout.
Suggestion is to add an option where the generated js code can be placed at the bottom of the generated HTML, typically in a custom-js block OR (maybe easier) within the template root element surrounding the component template, and not below that root element.

Interesting! Yeah, I can see how that might cause some issues.  I made a quick PR to just test out how this might work with https://github.com/adamghill/django-unicorn/pull/387. I think I might put this behind a setting because I'm a little worried it is going to break something I haven't tested, yet. But, it does seem to work with some simple tests I've done so far. I'll let you know how the rest of my testing goes!


Things to fix for v1.3

[x] Reorganise code to abstract away error messages in Messages class
[x] Refactor magic constants in AddTaskCommandTest.java, DeleteTaskCommandTest.java and other as indicated in pull request feedback for v1.2
[ ] Update user guide for v1.2/v1.3 (Tasks)
[x] Fix consistency of code comments
[ ] Add unit testing for JsonAdaptedLink
[x] Standardise argument format (add-link currently uses module index and add-task, add-module uses module-code, goto uses module code without prefix)
[x] Fix bug where module code allowed to have spaces
[x] Make module case-insensitive
[x] Add and implement getModuleUsingModuleCode(ModuleCode moduleCode, boolean isFiltered) in Model interface
[x] Rename contact to person
[ ] Implement ModuleContact association class
[x] Other feedback in pull requests for v1.2

This is mostly done except for perhaps the JsonAdaptedLink tests, which may be implemented in v1.4.

This is mostly done, pending merge.


svelte / html icon wrong

I think this used to work, I also didn't change font (using FIraCode), the filetype is detected correctly but html has svelte icon and svelte has ?

Seems like issue with your font.

I tried to reinstall patched font, but it doesn't make much sense if the svelte icon is displayed for .html files, does it?

I don't think it's svelte icon. Looks like html icon to me (on mobile).


[MINOR] refactor: Calling lock() method outside try block to avoid unnecessary errors

What changes were proposed in this pull request?
Calling lock() method outside try block to avoid unnecessary errors
Why are the changes needed?
In general, the lock() method should be placed outside the try block. The reason is that if the lock() method throws an exception, it indicates that the lock was not acquired, so there is no need to attempt to release it in the finally block. If the lock() method is placed within the try block and it throws an exception, the finally block will still be executed and attempt to release a lock that was never acquired, leading to errors.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Existing UTs.

@zuston Rust CI still is unstable.

Is it a best practice for the lock? Any other projects follow the rule?

The Java documentation, however, leaves lock() outside the try block in the ReentrantLock example. The reason for this is that an unchecked exception in lock() should not lead to unlock() incorrectly being called.

You can refer to Java Doc.
It is described in:
https://stackoverflow.com/a/10868476.


[CI][Dev] Add shell script linter

Describe the enhancement requested
Candidate:

ShellCheck

https://github.com/koalaman/shellcheck
https://github.com/koalaman/shellcheck-precommit

Component(s)
Continuous Integration, Developer Tools

This sounds like a good to me. I'm very bad at writing shell scripts and I would appreciate this.

I've introduced shellcheck and shfmt to apache/arrow-go by https://github.com/apache/arrow-go/commit/d486377db4f25b0c38a2a16715c6c7d6d36745b8#diff-63a9c44a44acf85fea213a857769990937107cf072831e1a26808cfde9d096b9 .
I'll do the same thing to apache/arrow after we completed the apache/arrow-go migration.

I still think this would be a good idea. Also cc @assignUser

Issue resolved by pull request 44724
https://github.com/apache/arrow/pull/44724

Thanks, now I suppose we should go and fix all problematic scripts in the codebase?

Yes. Let's track it in #44748.


expose expiration in RxOAuthManager

Hello, will you consider exposing oauthStore.expiresAt (or at least the oauthStore.tokenExpired() function) via a class member in RxOAuthManager? I know that the class already handles expiration internally, but for a specific purpose of my application, I need the expiration time. Or is there a specific reason why expiresAt should not be exposed by RxOAuthManager?

Hello, yep it should not be a problem. You can create a PR for that :) im not sure when I will have time to implement it


make AutoUpdateRSA immune to ASLR

using CreateToolhelp32Snapshot and Module32First to get the tibia main module address, close to where the RSA key is located, even after ASLR has moved it.
as of writing, it is tested successfully on Windows 7 x64, ASLR enabled (and removing adrRSA in config.ini), on versions:
1090
960
860
1 caveat: its pretty CPU intensive to search for the RSA key, it takes about 2 minutes
on my Intel Core i7 6700HQ running at 3.5GHz, using about 100% cpu of 1 core
credits to samle code at  http://wiki.robotz.com/index.php/Process_List_and_Locate_VB6

i don't really understand how the static adrRSA from config.ini can be valid when ASLR is supposed to move everything around though ???  im so confused

Don't worry. Blackd Proxy probably converts it to the final address before using it.

http://blackdtools.com/blackdproxy.php

OS - Supports WIN 95,98,2000,2003,ME,SE,XP,VISTA,WINDOWS 7

CreateToolhelp32Snapshot was introduced in Windows 2000.. this wont work in 95/98/ME, sorry :p


ResolutionTooDeepError after running pip install

Describe the bug
I tried installing requirements after initializing a reflex folder but it takes a long  time to find a compatible version of some requirements (platformdirs) . throws the below
To Reproduce
Steps to reproduce the behavior:

run reflex init
run python -m pip install -r requirements.txt

Expected behavior
Second command should run successfully
_INFO: pip is looking at multiple versions of platformdirs to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pipdeptree to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of jinja2 to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of httpcore to determine which version is compatible with other requirements. This could take a while.
Collecting httpcore==1.*
  Using cached httpcore-1.0.1-py3-none-any.whl (76 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
ERROR: Exception:
Traceback (most recent call last):
  File "/home/eliasderby/Desktop/python/oss/chatapp/venv/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 165, in exc_logging_wrapper
    status = run_func(*args)
  File "/home/eliasderby/Desktop/python/oss/chatapp/venv/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
    return func(self, options, args)
  File "/home/eliasderby/Desktop/python/oss/chatapp/venv/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 339, in run
    requirement_set = resolver.resolve(
  File "/home/eliasderby/Desktop/python/oss/chatapp/venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 94, in resolve
    result = self._result = resolver.resolve(
  File "/home/eliasderby/Desktop/python/oss/chatapp/venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/eliasderby/Desktop/python/oss/chatapp/venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 392, in resolve
    raise ResolutionTooDeep(max_rounds)
pip._vendor.resolvelib.resolvers.ResolutionTooDeep: 2000000_

Screenshots
If applicable, add screenshots to help explain your problem.
Specifics (please complete the following information):

Python Version: 3.10.12 & 3.8
Reflex Version: 0.3.8
OS: PopOS/Ubuntu
Browser (Optional):

Additional context
Add any other context about the problem here.

What is your Pip version (pip -V)?
I had a similar issue, pip install reflex took over 90 minutes and eventually crashed with a ResolutionTooDeep exception.
Then I upgraded pip from version 23.0.1 to 23.3.2 (within the venv, run pip install -U pip) and after that, the installation of reflex ran through smoothly.
Hope that helps.

What is your Pip version (pip -V)?
I had a similar issue, pip install reflex took over 90 minutes and eventually crashed with a ResolutionTooDeep exception.
Then I upgraded pip from version 23.0.1 to 23.3.2 (within the venv, run pip install -U pip) and after that, the installation of reflex ran through smoothly.
Hope that helps.

my pip version was 22.0.2 , I upgraded it as you recommended above and it works @chrisgeli
should I close this issue as won't fix ?  @ElijahAhianyo


[SPARK-15643][DOC][ML] Add breaking changes to ML migration guide

This PR adds the breaking changes from SPARK-14810 to the migration guide.
How was this patch tested?
Built docs locally.

Test build #61303 has started for PR 13924 at commit 28e0412.

Test build #61303 has finished for PR 13924 at commit 28e0412.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61303/
Test PASSed.

I just merged https://github.com/apache/spark/pull/13378

@yanboliang @jkbradley @mengxr updated.

Test build #61408 has started for PR 13924 at commit 6ef09a3.

Test build #61408 has finished for PR 13924 at commit 6ef09a3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61408/
Test PASSed.

Merged build finished. Test PASSed.

Done with review pass.  Thanks for the PR!

Test build #61464 has started for PR 13924 at commit ac49f31.

Test build #61464 has finished for PR 13924 at commit ac49f31.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

The changes look good, so just the Python item remains.  Thanks!

@jkbradley updated Python example assuming #13997 will get merged - refer https://github.com/apache/spark/pull/13924#discussion_r69083602.

Test build #61545 has started for PR 13924 at commit c2ce7cd.

Test build #61546 has started for PR 13924 at commit 919bfe9.

Test build #61545 has finished for PR 13924 at commit c2ce7cd.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61545/
Test PASSed.

Test build #61546 has finished for PR 13924 at commit 919bfe9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61546/
Test PASSed.

LGTM
Merging with master and branch-2.0 now that https://github.com/apache/spark/pull/13997 has been merged
Thank you!


Try to make dates into links

This is probably not the right way. I couldn't get a local server to load the etherpads correctly in the amount of time I felt like spending on this.
Ironically, the very reason I want the dates to be links is that the embedded etherpads have connection errors in the site more often than not, and I have much better luck with etherpads when they aren't stuffed into a different frame.
It's entirely possible that the entire site and I are allergic to one another.

Looks great, thanks! :D


Delegate explainer tooltip

use a tool tip or alert on the bottom
Copy: Enter the address to delegate your vote to. Click "Self" to assign yourself.

On the Treasury component, there's a similar info message being used below the main component.

Yes, lets use this same patter, this is the alert pattern I was referencing.
Nice to have, only if its already coded up; this info message/alert will go away after the first action/instance has been taken.

Closed as of #301


Is there a way to have a tool return image bytes?

First, thanks for claudette. It's very elegant.
toolslm doesn't appear to map the "bytes" type to anything, which I guess makes sense.
However, that means I'm having a hard time using the toolloop if I include my image returning function.

def get_image_of_puppy() -> bytes:
            "Returns an image of a puppy"
            image: Path = Path("puppy.jpg")
            return image.read_bytes()

tools = [get_image_of_puppy]

chat = Chat(model, tools=tools)
r = chat.toolloop("Describe the puppy image")
print(contents(r))

Error:
Traceback (most recent call last):
  File "/Users/taytay/projects/llm-browser-driver/src/llm_browser_driver/playground/./test_claude.py", line 28, in <module>
    r = chat.toolloop("Describe the puppy image")
  File "/Users/taytay/projects/llm-browser-driver/.venv/lib/python3.10/site-packages/claudette/toolloop.py", line 23, in toolloop
    r = self(pr, **kwargs)
  File "/Users/taytay/projects/llm-browser-driver/.venv/lib/python3.10/site-packages/claudette/core.py", line 200, in __call__
    if self.tools: kw['tools'] = [get_schema(o) for o in self.tools]
  File "/Users/taytay/projects/llm-browser-driver/.venv/lib/python3.10/site-packages/claudette/core.py", line 200, in <listcomp>
    if self.tools: kw['tools'] = [get_schema(o) for o in self.tools]
  File "/Users/taytay/projects/llm-browser-driver/.venv/lib/python3.10/site-packages/toolslm/funccall.py", line 43, in get_schema
    if ret.anno is not empty: desc += f'\n\nReturns:\n- type: {_types(ret.anno)[0]}'
  File "/Users/taytay/projects/llm-browser-driver/.venv/lib/python3.10/site-packages/toolslm/funccall.py", line 20, in _types
    else: return tmap[t], None
KeyError: <class 'bytes'>

Which of course comes from:
# %% ../01_funccall.ipynb 11
def _types(t:type)->tuple[str,Optional[str]]:
    "Tuple of json schema type name and (if appropriate) array item name."
    if t is empty: raise TypeError('Missing type')
    tmap = {int:"integer", float:"number", str:"string", bool:"boolean", list:"array", dict:"object"}
    if getattr(t, '__origin__', None) in  (list,tuple): return "array", tmap.get(t.__args__[0], "object")
    else: return tmap[t], None

I tried returning a dict of the image type, but claude complains there were too many input tokens. I need to get the image to get sent as a group of bytes back into the chat so its machinery kicks in and converts it to an image that Claude understands:
def img_msg(data:bytes)->dict:
    "Convert image `data` into an encoded `dict`"
    img = base64.b64encode(data).decode("utf-8")
    mtype = mimetypes.types_map['.'+imghdr.what(None, h=data)]
    r = dict(type="base64", media_type=mtype, data=img)
    return {"type": "image", "source": r}

I could probably hack it together, but I keep feeling like I'm missing something obvious?

Are there any examples in the Anthropic docs of a tool returning something that's not a string? If so, please provide a link and we'll try to get it working. Or alternatively, if you're able to show an example that works with the plain Anthropic class, link to a gist or repo so we can see what's needed.

I think this is the example from their docs that covers returning an image:
https://docs.anthropic.com/en/docs/build-with-claude/tool-use#example-of-tool-result-with-images
Excerpt

  "role": "user",
  "content": [
    {
      "type": "tool_result",
      "tool_use_id": "toolu_01A09q90qw90lq917835lq9",
      "content": [
        {"type": "text", "text": "15 degrees"},
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRg...",
          }
        }
      ]
    }
  ]
}

I'll try to hack on this more too when I get a chance and will let you know if I find a good way.

Okay - got it working. (Thanks to @patch for making this easy!)
Feel free to make this more elegant! :)

import inspect
import logging
import os

os.environ["ANTHROPIC_LOG"] = "debug"

from pathlib import Path
from typing import Optional

import claudette.core
import toolslm.funccall
from claudette import Chat, contents
from claudette.core import ToolUseBlock, _mk_ns, abc, img_msg
from fastcore.utils import patch_to

empty = inspect.Parameter.empty

@patch_to(toolslm.funccall)
def _types(t: type) -> tuple[str, Optional[str]]:
    "Tuple of json schema type name and (if appropriate) array item name."
    if t is empty:
        raise TypeError("Missing type")
    tmap = {
        int: "integer",
        float: "number",
        str: "string",
        bool: "boolean",
        list: "array",
        dict: "object",
        # Bytes is assumed to be an image for now
        # We could likely add a better type to indicate this
        bytes: {
            "type": "object",
            "properties": {
                "type": {"type": "string", "enum": ["image"]},
                "source": {
                    "type": "object",
                    "properties": {
                        "type": {"type": "string", "enum": ["base64"]},
                        "media_type": {"type": "string"},
                        "data": {"type": "string"},
                    },
                    "required": ["type", "media_type", "data"],
                },
            },
        },
    }
    if getattr(t, "__origin__", None) in (list, tuple):
        return "array", tmap.get(t.__args__[0], "object")
    else:
        return tmap[t], None

@patch_to(claudette.core)
def call_func(fc: ToolUseBlock, ns: Optional[abc.Mapping] = None, obj: Optional = None):
    "Call the function in the tool response `tr`, using namespace `ns`."
    if ns is None:
        ns = globals()
    if not isinstance(ns, abc.Mapping):
        ns = _mk_ns(*ns)
    func = getattr(obj, fc.name, None)
    if not func:
        func = ns[fc.name]
    res = func(**fc.input)
    if isinstance(res, bytes):
        # If the result is bytes, assume it's an image
        return dict(type="tool_result", tool_use_id=fc.id, content=[img_msg(res)])
    return dict(type="tool_result", tool_use_id=fc.id, content=str(res))

def get_image_of_puppy() -> bytes:
    "Returns an image of a puppy"
    image: Path = Path("samples/puppy.jpeg")
    return image.read_bytes()

def get_object_and_properties() -> dict:
    "Returns a dict with a couple of integer properties called x and y"
    return {"x": 1, "y": 2}

def get_str() -> str:
    "Returns a random string"
    return "foo!"

if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)

    tools = [get_image_of_puppy, get_object_and_properties, get_str]

    chat = Chat("claude-3-5-sonnet-20240620", tools=tools)
    r = chat.toolloop(
        "Tell me what tools you have access to please, and what you expect each of them to return to you. Then, examine and describe the puppy"
    )
    print(contents(r))

Full gist of response here:
https://gist.github.com/Taytay/7191d5f5722d3ed8c000a938e11b26cd


How I will be able to create Area filled Map (Bangladesh District)

Hi
I cannot create an area (BD District) filled map in Power BI. It allows me to create only the State (Bangladesh Division) wise Map. Would anyone be able to help me create one? I have Area (district) wise lat & Long and Name.
For Example :
Country Name: Bangladesh
State/Division: Chittagong
Area/District: Noakhali  (My target is to create the report at this level)
District Latitude: 22.866161311137
District Longitude: 91.0965583767411
Thanks
Yeasin Arafat

Thanks for your comment, @yeasinredoy. This issue has been assigned to the doc author for review.

Thanks for your comment, @yeasinredoy.
This looks like a support request or product question rather than documentation feedback.
You might find a solution in the Power BI Community. If not, try our support page.


Issue triage process

Should there be an issue triage process?   E.g., do all design proposals come to the TSC, or do the maintainers of each repo have their own issue triage process?
Are issues discussed in a meeting or merely in github?  Or slack?

I think a Github issue should be opened for a design proposal and then it can be discussed in the TSC for feedback, acceptance, or rejection.  Design changes can have impacts across repos, so I think these type of changes make sense to have TSC level visibility and guidance.


Split up packages into different modules

Now that we have a consistent set of rules, namely
Terminal depends on Runtime
Foundation depends on Terminal + Runtime
it would be best to break things up into three modules to enforce we don't accidentally add a class in the future which breaks them.
(Or is there some Java 9 jigsaw thing we can do?)

After doing multiplatform, I'm glad I didn't do this. It would have been a pain to handle multiplatform declarations for several modules...
It might be worth writing a Gradle plugin someday where I can declare rules for which packages shouldn't access other packages, where the plugin then fails at build time, but that's outside the scope of this issue and this project.


fix: test newest RPC

I'm assuming that @leighmcculloch is out for the rest of the weekend. So this is a way to kick off building quickstart for use in the CLI's CI.

Thanks, I've pushed these same changes into the #632 PR. PRs have to come from a non-fork to get an image built and deployed to dockerhub. For forks the image is still built and you can download it from the GitHub Action Artifacts, but it won't be pushed to dockerhub.


Cannot unmarshal str into resource.Quantity

I am trying to unmarshal CR with type PersistentVolumeClaimSpec struct and go the following error (for both YAML and JSON):
cannot unmarshal !!str `2Gi` into resource.Quantity

for
yaml.Unmarshal(str)

where yaml is "gopkg.in/yaml.v2" and str is either YAML or JSON:
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
metadata:
  name: "default-volumeclaimtemplate"
spec:
  defaults:
    templates:
      volumeClaimTemplate: default-volumeclaim-template
  templates:
    volumeClaimTemplates:
      - name: default-volumeclaim-template
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 2Gi

or
{
  "apiVersion": "clickhouse.altinity.com/v1",
  "kind": "ClickHouseInstallation",
  "metadata": {
    "name": "default-volumeclaimtemplate"
  },
  "spec": {
    "defaults":{
      "templates": {
        "volumeClaimTemplate": "default-volumeclaim-template"
      }
    },
    "templates": {
      "volumeClaimTemplates": [
        {
          "name": "default-volumeclaim-template",
          "spec": {
            "accessModes": [
              "ReadWriteOnce"
            ],
            "resources": {
              "requests": {
                "storage": "2Gi"
              }
            }
          }
        }
      ]
    }
  }
}

Any ideas how to solve? Thanks in advance!

I ended up solving this by switching to github.com/ghodss/yaml

@etsuo that repo is kinda dead, please use the fork - https://github.com/kubernetes-sigs/yaml

@dims and @etsuo - thank you very much, it did indeed helped!
As kubernetes-sigs/yaml is a more fresh form from ghodss/yaml I've used https://github.com/kubernetes-sigs/yaml and it works!

/close
great! thanks.


custom interpolation

I have tried to extend the BaseFormatter for vue-i18n, but (I think) it is not possible. Therefore I copied most of the code and adapted it with a damn simple solution. I also realized not only {{username}} is not working, but also { username } is not working with the default formatter.
Still not sure if the package/folder of the custom formatter is the perfect place for that.
Also updated some parts where the interpolation was not working/added correctly.

Please make sure the below checklist is followed for Pull Requests.

[ ] Travis tests are green

[x] Tests are added where necessary

[x] Documentation is added/updated where necessary

[x] Coding Rules & Commit Guidelines as per our CONTRIBUTING.md document are followed

closes #171

No that change is not needed indeed. Just wanted to upgrade Vue i18n and thought might by good idea to update Vue too. Obviously not 😁

I commit directly to your branch.
Let's wait Travis


uv pip takes ~8x as long as regular pip install with Python 3.13

In our CI setup, we noticed uv pip taking very long to install our package, compared to uv pip, on Pyhton 3.13. While normally uv pip is way faster.

uv pip: ~4 min (log 1, log 2)
pip: 31 seconds (log)

Almost all time is in the "Prepared packages" step.
What probably matters, is that with setup-python we cache pip dependencies. But that doesn't work for uv right?
Can we either cache uv, or can something be sped up in the uv preparing packages step to speed this process up?
Edit: An uncached pip install on Python 3.13 also takes quire long, because Pandas is build from scratch.

https://github.com/actions/setup-python/issues/822

Yeah, you can save the uv cache. I recommend something like this: https://docs.astral.sh/uv/guides/integration/github/#caching

Thanks for the docs!

Maybe you can enable the GitHub Discussions, in many repos it's a nice place to ask questions!


Datetimes

Coverage remained the same at 94.531% when pulling 684bc6470b102f8c1303fa5a307ea50ebc30bf46 on datetimes into c1c1cae474a8cdc34a26f4555be4a44c3caf542f on master.

Coverage remained the same at 94.531% when pulling 684bc6470b102f8c1303fa5a307ea50ebc30bf46 on datetimes into c1c1cae474a8cdc34a26f4555be4a44c3caf542f on master.


Altai backend methods

#12 Add required methods. Test locally that AltAIBackend build with this KNP version.

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


README update

please merge this as i update readme many contributors are new in open source so i add some basic code how to start with open source

Thanks @singhanshika311 for the pr, but this has already been added to CONTRIBUTING.md


fix: Ensure that TestPoliciesPrinter_PrintCRDs uses a function-under-test which returns a deterministic output.

What type of PR is this?
/kind flake

What this PR does / why we need it:
fix: Ensure that TestPoliciesPrinter_PrintCRDs uses a function-under-test which
returns a deterministic output.
The current function being used does not sort the output, which results in a
difference in ordering across individual test runs.
Does this PR introduce a user-facing change?:

NONE

Thanks @gauravkghildiyal!
/lgtm


:book: images for pos_pin and scan_ref added

Images for AppStore

https://github.com/it-projects-llc/pos-addons/pull/1023


When Coming from a killed state to foreground state how do i get the list of notifications that occurred when the app was in killed state.

Hi @evollu
is there any way to achive this ... i looked a bit in the android code but coudn't find much or might have missed .. i can start on creating a function for this if its not implemented.

In notification callback, you can call .getAllNotifications, does this work for you?

Are you talking about FCM.on(Notification) callback .. i tried notif.getAllNotifications(), but that method doesn't exists.


fix(behavior_path_planner): reduce obj indices call in lane change

Description
Before performing collision check on the related objects, the dynamic objects are categorized into 3 different location; current lanes, target lanes, and others.
Current implementation employs different function to categorize these, however, due to the necessity of comparing against current/target lanes, the time to categorize the object indices also increases.
This PR aims to compute all three categories within one function. Hence, saving computation time.
Related links
Tests performed

Open planning_simulator and add RTCManagerPanel.
Set lane_change_right and lane_change_left to manual mode.
Test lane change scenario.
Publish constant twist as follow

ros2 topic pub /simulation/input/initialtwist geometry_msgs/msg/TwistStamped "{twist:
{linear: {x: 10.0}}}" -r 100`

Echo the following topic

ros2 topic hz /planning/path_candidate/lane_change

Notes for reviewers

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.
[ ] The PR has been properly tested.
[ ] The PR has been reviewed by the code owners.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.
[ ] The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

Note: 8hz when performing the test on the real vehicle.


Add Django models

While I'm not sure it's a great idea to let people write things in the DB using Django, there's no harm in exposing our 2 tables as django models, so that people can easily add custom procrastinate monitoring to their Django projects.
So one model per table, and disable the save & delete methods (for now) as well as the manager update & delete. That should do the job, as a first approach.

Done by #906


Add mock names for error messages

Closes #28.
Closes #35.
Also changes make-mock to mock and makes it accept optional keyword
arguments.

Coverage increased (+0.07%) to 96.386% when pulling 0661ab57a664591bc0c70c5f4a4168ae3fb51ae4 on 28-named-mocks into 3ad5c06af20028da998adaf0cf92ee5ee920e70f on master.


Deselection takes long in Power Spectrum plot for UNCD

The UNCD surface has more than 160 measurements.
When opening the Power Spectrum plot, the deselection and selection of all datasets in the plot
takes much time in the browser.
Interestingly, another plot like Slope Distribution is quite fast in comparison. The Slope Distribution plot has
2 datasets per topography while the power spectrum plot has 3. Maybe there is some threshold about 350 datasets
after which it becomes slow for some reason?

The main issue we have right now that there is too much data that is transferred to the JS frontend. We need to reduce the amount of data. PR #720 acomplishes this and things should get faster once merged.
However, I understand that @tdbjacobs likes chartjunk PSDs that show every single data point but that is not feasible technically. We could still decide to be able to download the full data set.


Out of the box support for deploying TensorFlow models

Support deploying TensorFlow models directly from the clipper_admin tool, similarly to the way we support deploying PySpark models directly by calling Clipper.deploy_pyspark_model.

+1


Missing groupBySchema SVG errors

Azure Data Studio Version: main
OS Version: linux

Steps to Reproduce:

Open ADS and connect to server.
Hover over

Expected: No errors
Actual:  Errors in below screenshot.  I assume this is likely breaking the inline command button for enable/disable group by schema.  The issue appears to be a mismatch in casing of the file and reference to the file in the source.

Here's what the OE toolbar looks like on Linux with and without this fix.

and

Closing as the fix is in the release


does this alter how composer clear-cache works ?

I noticed that after running composer clear-cache, if I run composer install it has to download a lot of json files sure but it doesn't appear to actually re-download any of the packages ?? as if they are still cached because of this package. Does this package add an additional layer of cache that composer clear-cache does not remove?

It's not a joke, working solution is:
composer global remove hirak/prestissimo

It's not a joke, working solution is:
composer global remove hirak/prestissimo

This package was certainly good for many years but with Composer 2 it's not needed anymore and there's really no reason why anyone should not be using Composer 2 at this point


Create Documentation about Logging

Create a tutorial on how to get at the following logs

Android Logs
Web Logs
Sync Endpoint Logs

@wbrunette  can i work on this issue

@siva224513 the issue has been assigned to you

https://docs.google.com/document/d/16Tim2BqLDrz84AGnB3xRmzByN1k0cj2QeK-31zICG4Q/edit?usp=sharing
I'm currently completing tutorials for Android logs and web logs, and I'm now working on creating a tutorial about sync endpoint logs. Please review it and let me know if any changes are needed.


Include "resource", "resource_view / (quickchart)" and "showcase" details in "print" command

Currently the details of resources are not shown in the print command for a dataset. This mirrors the data model of HDX/CKAN - resources, resource_views and showcases are their own sort of thing and have links to datasets rather than being part of a dataset.
Perhaps include these features using a --verbose flag, which we are using elsewhere, and embed them as keys inside a dataset. Alternative would be to have flags for each one.
Once we've got "print" cracked we can think about whether other commands should be aware of these elements

Completed with d58c7991075025031204175cf4b322f323a77e56


Docs

Codecov Report

Merging #4 (2f48714) into main (5745fa4) will decrease coverage by 3.51%.
The diff coverage is 80.95%.

@@            Coverage Diff             @@
##             main       #4      +/-   ##
==========================================
- Coverage   82.69%   79.18%   -3.52%
==========================================
  Files           8        8
  Lines         260      269       +9
  Branches       52       57       +5
==========================================
- Hits          215      213       -2
- Misses         26       34       +8
- Partials       19       22       +3

Flag
Coverage Δ

unittests
79.18% <80.95%> (-3.52%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

torchsample/_sample.py
70.83% <50.00%> (-6.44%)
:arrow_down:

torchsample/coord.py
73.98% <100.00%> (-4.83%)
:arrow_down:

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 5745fa4...2f48714. Read the comment docs.


[PIL-1125] [ND] updated test libraries and fixed accessibility report

This changes were covered as part of PIL-1111.
Closing this PR.


QML: Declare and use QmlSystem class from C++, not from QML

Issue and Motivation
Currently, the QmlSystem class is being declared from the QML side of the program, causing a problem with https://github.com/avme/avme-wallet/blob/main/src/main-gui.cpp#L40, where it is referencing to an empty class (QmlSystem declared in C++ is not the same as declared with qmlRegisterType), causing a Segmentation Fault.
As we are in the final touches for the modularized system, we noticed a flaw as we need access to the QQmlApplicationEngine to clear the cache of the desired screen. Unfortunately, it is impossible to set a pointer to the QQmlApplicationEngine declared in the C++ side from the QML side, without using really messy code.
As QmlSystem should be accessible by the whole program, it doesn't make sense to declare it as a qmlRegisterType.
See video for more information:
https://user-images.githubusercontent.com/32653934/132332751-ca20e784-eb2b-4a08-a988-9ef341023626.mp4
Solution
The solution is go back to use engine.rootContext()->setContextProperty("qmlSystem", &qmlsystem);
Where is it possible to feed a class created in C++, where we would be giving a pointer to the engine itself. See attached video.
https://user-images.githubusercontent.com/32653934/132332879-b11f98a4-527c-4e33-b83e-51f8702029bf.mp4
@Jean-Lessa, I would like your opinion over this, as we have previously discussed the idea of using qmlRegisterType vs. setContextProperty.

Hmm, so that's why it was segfaulting when I tried...
I guess there's not much we can do anyway besides reverting to using engine.rootContext()->setContextProperty(). I did ask around for guidance and someone on Reddit told me this was "deprecated and slow" and that I should use qmlRegisterType instead. I dunno how far those claims go though. Personally I didn't feel any speed difference at the time, and whether it's "deprecated" or not may not really matter given I don't see us migrating to Qt 6 and beyond (at least not in the near future, that's gonna depend on Bitcoin's depends system anyway).
If this makes DApp live-editing work as it should (as it does in the video with the imported custom button change), then it's definitely solving the problem and I think it's valid. So feel free to merge and close it then.


OmniOutliner 5.2

Core URL changed from 10.11 to 10.12 for the OmniOutliner 5.2 update

After making all changes to the cask:

[ ] brew cask audit --download {{cask_file}} is error-free.
[ ] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Please complete the steps in the PR template next time.


ROX-25287: Replace yarn with npm for ui builds and package mgmt

Description
Removes yarn and replaces it with npm as the solution for package management in the ACS UI.
Why?
The move to konflux requires us to be able to build the UI hermetically using Cachi2 which is used to prefetch our dependency list. We also need to be able to prefetch our dependencies in upstream builds using Cachi2's predicursor Cachito. The trouble arises in that Cachito support npm or yarn v1, while Cachi2 supports npm or yarn v3.
This would give us two paths for full support in the UI:

Maintain yarn v1 and yarn v3 lock files simultaneously
Ditch yarn altogether in favor of npm

Since npm is the default package manager in the front end ecosystem and widely supported across tools, and the first path, well, isn't, this PR implements the latter.
Methodology
Aside from the first step done in another PR, each step below should roughly correspond to one commit in this PR.

Remove Lerna to simplify the UI build into a single package and single list of dependencies https://github.com/stackrox/stackrox/pull/11928
Remove unneeded @testing-library/react-hooks dependency and pull autoprefixer as a transitive dependency only
Convert yarn.lock to a v1 package-lock.json using https://github.com/imsnif/synp with the command synp -s yarn.lock. Move the previous yarn overrides to the resolutions section of package.json. Delete yarn.lock.
Convert the v1 pacakge-lock to v3 with npm i --lockfile-version 3 --package-lock-only
Add explicit overrides for all broken peer dependencies. (Broken dependency warnings in yarn v1 are errors in npm.) These are almost entirely due to react peers that request react v16 | v17.
npm install to automatically add any transitive dependencies that npm detects as missing to the package-lock.json
Update our package registry from yarnpkg.com to npmjs.com
Replace all usage of yarn that is not related to konflux. This includes scripts, GHA references, documentation, env vars, etc.
Remove reliance on yarn in konflux related files
Add a line to the CHANGELOG
Update .ossls.yml config (WIP - requires the ossls tool update in GHA to work)

Dependency change analysis
The fully resolved node_modules directory was traversed and dependencies were reported via yarn and via npm. The output of each was compared with difft to get a view of what has actually changed. The changes are as follows:
Many dependencies were removed due to having a minor or patch version that was satisfied by a compatible version in the tree. These are not explicitly listed below.
Additions
All dependency additions are due to our root level dependencies on mocha-multi-reporters and mocha-junit-reporter, which bring in mocha as a peer dependency. All other additions follow from this initial add.
+<EMAIL_ADDRESS>(mocha-multi-reporters, mocha-junit-reporter peer from ROOT)
  +<EMAIL_ADDRESS>(mocha peer)
  +<EMAIL_ADDRESS>(mocha peer)
  +<EMAIL_ADDRESS>(mocha peer)
  +<EMAIL_ADDRESS>(mocha peer)
  +<EMAIL_ADDRESS>(mocha peer)
  +<EMAIL_ADDRESS>(mocha peer)
    +<EMAIL_ADDRESS><-<EMAIL_ADDRESS>(yargs-unparser req)

Changes
Only two top level dependency versions were changed, and only at the patch version level. This is due to a declared dependency on the patch version or higher by the new mocha dependency. Note that these deps have a large number of modules that require them, so the change radius is large. These are dev time deps though, and the version bump is small, so the actual impact should be minimal.
=<EMAIL_ADDRESS>-><EMAIL_ADDRESS>(patch bump due to mocha req on ^4.3.5)
=<EMAIL_ADDRESS>-><EMAIL_ADDRESS>(patch bump due to mocha req on ^6.0.2)

Removals
The following modules have been removed, either as a nested dependency or removed at the top level. They do not have an alternative version anywhere in the node_modules tree.
Dropped due to the only parent dependency being removed:
-<EMAIL_ADDRESS>   (dropped since @testing-library/react-hooks was dropped)

Dropped due to a long dependency chain being satisfied through another path:
-<EMAIL_ADDRESS><-<EMAIL_ADDRESS>   (satisfied with lower version dep in the tree)
-<EMAIL_ADDRESS><-<EMAIL_ADDRESS>   (satisfied with lower version dep in the tree)

The reasoning for the following removals is still unclear
-<EMAIL_ADDRESS>   (babel-plugin-macros change ?)
-<EMAIL_ADDRESS>   (babel-plugin-macros change ?)
-<EMAIL_ADDRESS><-<EMAIL_ADDRESS>   (babel-plugin-macros change ?)

-<EMAIL_ADDRESS> (babel-plugin-macros change ? likely due to cosmiconfig change)

-<EMAIL_ADDRESS>   ( required deeply from npm-run-all, react-scripts ? )
-<EMAIL_ADDRESS> ( required deeply from npm-run-all, react-scripts ? )

-<EMAIL_ADDRESS> (required deeply from tailwindcss, react-scripts ?)
-<EMAIL_ADDRESS> (required deeply from tailwindcss, react-scripts ?)

Notes / Todos

We will lose the oss license scanning with this change until https://github.com/stackrox/ossls/pull/49 is merged to ossls and part of the GHA pipeline, and the config in .ossls.yml is updated.
The build succeeds in konflux, but other errors fail the main container pipeline. Need to investigate whether these are transient errors or actual problems.
Verify react-adjacent CSS imports in *.css still work as expected

Packages we can likely remove after investigation:

npm-run-all

User-facing documentation
(must be 2 items and both must be checked)

[ ] CHANGELOG is updated
[ ] Documentation is not needed

Testing

[ ] inspected CI results

Automated testing

[ ] contributed no automated tests

The build process and existing tests cover this change.
How I validated my change
Verify npm dependency caching in CI by inspecting GHA output in debug mode:
##[debug]Cache Paths:
##[debug]["../../../github/home/.npm","../../../github/home/.cache/Cypress"]
##[debug]Archive Path: /__w/_temp/bf05d825-bccf-42d8-91f7-3b54498814eb/cache.tzst
/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /__w/stackrox/stackrox --files-from manifest.txt --use-compress-program zstdmt
/usr/bin/tar -tf /__w/_temp/bf05d825-bccf-42d8-91f7-3b54498814eb/cache.tzst -P --use-compress-program unzstd
../../../github/home/.npm/
../../../github/home/.npm/_cacache/
../../../github/home/.npm/_cacache/tmp/
../../../github/home/.npm/_cacache/index-v5/
../../../github/home/.npm/_cacache/index-v5/e2/
../../../github/home/.npm/_cacache/index-v5/e2/b6/
../../../github/home/.npm/_cacache/index-v5/e2/b6/fadba77ee9bc54b6dfbe9ca7a3007e8ae23e97cd6dfb5843f57100b044c1
...

Verify junit output is correctly included on all UI related test runs.
Verify make targets at top level and ui/ level are working as expected.
Verify dev workflow with shell variables is working as expected.
TODO - Smoke test generated image
TODO - Figure out why some konflux pipelines are failing

/test gke-ui-e2e-tests

The recent build-source failure after 40 minutes with 502 in https://console.redhat.com/preview/application-pipeline/workspaces/rh-acs/applications/acs/pipelineruns/main-build-lhbq8 looks like a flake. You can try re-running the Konflux build by adding /retest comment on this PR. If the failure does not go away (maybe after a couple of times), we should report it to #konflux-users.

/retest

Are the 502's on this step fairly common? I've seen this a lot of times on this PR specifically without success, but I don't recall seeing it on other konflux PRs.
https://console.redhat.com/preview/application-pipeline/workspaces/rh-acs/applications/acs/pipelineruns/main-build-h8hhp/logs?task=build-source-image
Let me try another /retest and if that fails as well I can report it.

I have a suspicion that the major increase to source image size is causing the konflux pipeline failures. I've reached out on the #konflux-users channel for more help.

/retest

/retest

/retest main-build

/test main-build

Hi David
We landed https://github.com/stackrox/stackrox/pull/12389 which adds multi-arch builds to main. It would be helpful if you could rebase this https://github.com/stackrox/stackrox/pull/11967 so that we can validate how npm builds behave in multi-arch.
I guess, you'd need to rebase due to .tekton/main-build.yaml conflicts anyway. I think, the one is about timeouts which should be relatively straightforward to resolve.

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest


Nuke type concept

For later, but I think we can nuke the type concept in the cache. The calling module can basically handle type segmentation by using multiple cache instances.
I think once the type convention is gone this can basically be a protobuf-powered sharded one-to-many 32-bit unsigned int cache. Not sure how generically useful that is though : )
cc @springmeyer

znope, this module now houses some important carmen-specific algorithms.


Incorrect Az Cli command for add workload profile

The example in "Add profiles" says to use the command 'az containerapp env workload-profile set'
This should be 'add' and not 'set'.

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

ID: aa31b07f-e029-84da-4390-071cddebd0ee
Version Independent ID: 67b8a1e7-c45b-8ffa-3551-02c9c5cbb285
Content: Create a workload profiles environment with the Azure CLI
Content Source: articles/container-apps/workload-profiles-manage-cli.md
Service: container-apps
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

@StevenDenman
Thanks for your feedback! We will investigate and update as appropriate.

@StevenDenman Thanks for sharing your feedback and reporting this issue. I've created a PR that updates the CLI commands, per: https://learn.microsoft.com/en-us/cli/azure/containerapp/env/workload-profile?view=azure-cli-latest
Once the PR is approved and merged, the changes should reflect on the doc accordingly.
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


docs: fix typo in firestore example

Description
The classState UserInformationState is missing 'r' in UserInformationState
Related Issues
None
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[ ] All existing and new tests are passing.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (melos run analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

@googlebot I signed it!

Thanks!


Installation of virtual switch failed (L1133)

[Enter feedback here]
The script to deploy eflow expects to find a switch with an exact name (Default Switch). I went through the whole process of creating a Windows Server VM, run all the commands to deploy a Virtual switch, picked a different name and voila, need to start again.

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

ID: 64575e7c-664c-4d6b-a440-24c91e93def5
Version Independent ID: 17d9481c-a75b-bbfd-1f9a-76fc3d6b2930
Content: Quickstart to create an Azure IoT Edge device on Windows
Content Source: articles/iot-edge/quickstart.md
Service: iot-edge
GitHub Login: @PatAltimore
Microsoft Alias: patricka

@lucarv
Thanks for the feedback! We are currently investigating and will update you shortly.

Hello @lucarv Thank you for reporting the issue to us. We have reviewed the AzureEFLOW.psm1 filw which is responsible for deploying the VM. As you pointed out, the script uses "Default Switch" as default Vnet name.
There is an option to provide alternate Virtual Switch name when you use the command "Deply-Eflow" through the parameter vswitchName. We highly appreciate it if you can test the deployment using the command Deploy-Eflow -vswitchName <EflowSwitch> and let us know if this succeeds.
You can find more information on the command parameters in the link Deploy-Eflow
Best regards,
Leela

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.
Please also do visit Microsoft Q&A the home for technical questions and answers at Microsoft.


🐛 Event handler types are broken

Describe the bug
Every time I try to attach an event handler to a Sveltestrap component, TypeScript throws this weird error:
Argument of type 'string' is not assignable to parameter of type 'never'.

The actual event handler works fine, this is purely a type issue.
How to reproduce
<Input on:input={(e) => console.log(e)} />
<!--      ^^^^^ Error is here          -->

I think we have two options:

We can explicitly define all input event types

export interface InputEvents {
  blur: Event;
  click: MouseEvent;
  change: Event;
  focus: Event;
  input: Event;
  keydown: KeyboardEvent;
  keypress: KeyboardEvent;
  keyup: KeyboardEvent;
  mousedown: MouseEvent;
  mouseup: MouseEvent;
  ...
}

We just include all input events

export interface InputEvents {
  [key: string]: Event;
}

Since these event types exist on standard HTML elements (where they seem to work fine) I'd think it should be possible to just import those types?

As mentioned in Issues channel on Slack, I found that ListGroupItems also gives a TS error when attempting to use the on:click event. The event handler still works correctly and seems to be a type issue as well.


Implement TileMap patterns palette

Implements a pattern palette to store and paint TileMap patterns. See it in action:
https://user-images.githubusercontent.com/6093119/136066875-749c4e4b-ea6c-41ab-819f-e9042fcc14d1.mp4
It's useful when you have structures made of a set of small tiles that you would like to move around.

I gave it a try to check whether it resolves #50097, and it doesn't. Seems like it's just a way to save current tile clipboard for later. Still a cool feature, useful for some complex patterns.


Added SQL tutorial at w3schools

Hacktoberfest notes:

due to volume of submissions, we may not be able to review PRs that do not pass tests and do not have informative titles.
please read our contributing guidelines
be sure to check the output of Travis-CI for linter errors
if this is your first open source contribution, make sure it's not your last!

What does this PR do?
Add Resource
For resources
Description
Pretty informative interactive course for beginners in SQL
Why is this valuable (or not)?
This course allows you to learn all the basics of the language and practice in one place.
How do we know it's really free?
You can check any section of course to ensure. You only have to pay for the possibility of obtaining a course certificate.
For book lists, is it a book? For course lists, is it a course? etc.
Interactive course
Checklist:

[x] Not a duplicate
[x] Included author(s) if appropriate
[x] Lists are in alphabetical order
[x] Needed indications added (PDF, access notes, under construction)

Pleas make the suggested change


Error when performing unit conversion in new pyam

Some bug in the new production will not allow the conversion of units to a unit already found in the dataframe. It's fine if there isn't such a unit.
Here's an example:
import pyam
import pandas as pd
# construct df
_mc = "model_c"
_sa = "scen_a"
_sb = "scen_b"
_eco2 = "Emissions|CO2"
_gtc = "Gt C/yr"
_ech4 = "Emissions|CH4"
_mtch4 = "Mt CH4/yr"
_msrvu = ["model", "scenario", "region", "variable", "unit"]
simple_df = pd.DataFrame(
    [
        [_mc, 1, "World", _eco2, _gtc, 0, 1000, 5000],
        [_mc, _sb, "World", _eco2, _gtc, 1, 1000, 5000],
        [_mc, _sa, "World", _ech4, _mtch4, 0, 300, 500],
        [_mc, _sb, "World", _ech4, _mtch4, 1, 300, 500],
    ],
    columns=_msrvu + [2010, 2030, 2050],
)
simple_df = pyam.IamDataFrame(simple_df)
# convert units
simple_df.convert_unit(to=_gtc, current=_mtch4, factor=28)
# That fails. However, the following does not since it does not have the pre-existing unit
simple_df.filter(variable=_ech4).convert_unit(to=_gtc, current=_mtch4, factor=28)

Thanks for identifying this bug @Rlamboll!


Doesn't work with internal keyboard

I'm sure I have changed the modifier setting to "No Action", but it still doesn't work on my internal keyboard. All hacks including "Other keys" have no effect.
But PCKeyboardHack works fine with my wireless keyboard which is recognized as "USB Receiver".
Any idea on how to fix this?

@zodiacg do you have any success this your hackintosh and remapping? I've got same problem here.

@keeprock In the VoodooPS2Controller.kext I used, I could remap the capslock key to hyper key by modifying a plist file. I couldn't remember correctly as it was years ago, and I'm using Linux instead of hackintosh now. You can check your VoodooPS2Controller.kext and have a try.


Tap on the application icon after having pressed back to put it in background restarts it

Steps to reproduce

launch the application
wait that the application is launched
press back to put the application in background
tap on the application icon to put it in foreground.

The application is restarted (splash screen ...) instead of restoring the last opened activity

Fixed on develop


umask as env variable

Enhancement Type
Improve an existing feature
Describe the enhancement
For a project I'm doing i need more restrictive file permissions in the data directory. (750)
umask is already in the /start file and it would be nice to have it as an environment variable.
-umask 0002
+umask "${UMASK:=0002}"

Great idea. A PR would be glad accepted if you want to submit that.


Using wasmtime-api with wasmtime-wasi and wasmtime-interface-types

Hi there, awesome work you are doing here guys!
However, I have a small question: is wasmtime-api compatible with crates such as wasmtime-wasi or wasmtime-interface-types in any way?
Right now, it seems that for it to work the wasmtime_api crate will have to explicitly support WASI via a flag in the configuration or something for the Instance to create its handle via the function provided as an alternative by the wasmtime-wasi crate. Even in this case, it looks like it would be a much better idea to include a completely optional wasi_config: Option<WasiConfig> field in the configuration for the engine, that will include pre-opened dirs, etc.
Including WASI support seems pretty straighforward, if doing it this way and not trying to engineer a more generic solution like guys at Wasmer did here.
What do you think?

So, as far as I can see, the binary code for wasmtime includes all the necessary parts for both of those things. Why not include all of them into wasmtime-api and then use it in the binary instead of having specific code for WASI module initialization, etc?

It is a possibility. The embedding API (wasmtime_api) was mostly shaped by wasm-c-api. It does not stop us to include wasi and interface-types. We are working to bring these three concepts closer, see e.g. https://github.com/bytecodealliance/wasmtime/pull/364, https://github.com/bytecodealliance/wasmtime/pull/540 or https://github.com/bytecodealliance/wasmtime/pull/509 , which will influence further design for the API.
As you mentioned above, at this moment a user/embedder can put all pieces together, e.g. by following the src/bin/wasmtime.rs example. Is your question simply about the reducing amount of the boiler place code developers have to write?

Mostly - yes. I think it might be better for you, guys, to dictate such things by API crates for the sake of other developers doing it in less than efficient ways. Also, such a crate being in a good state will allow the ecosystem to build up quicker around Wasmtime, attracting more developers, but I am starting to speculate.

The long-term vision going forward is that general users should use the wasmtime crate (what used to be wasmtime-api) and the API there is pretty complete as-is and is being refined in https://github.com/bytecodealliance/wasmtime/issues/708. We'd like to add WASI support there and plan to support interface types there as well so I'm going to close this in favor of those issues.


Test Documentation

Hi all,
I was wondering where we should document our testing practices. In particular I think that we should document how we are using pytest; for example, our naming conventions for fixtures ect.

This sounds good. Explicit pointers in the docs to conftest.py can show how to instantiate classes with "typical" values, and the test_*.py show how to use the classes on top of the tute notebooks.

I think that this belongs in CONTRIBUTING.md does anyone have any other thoughts. Here is a draft paragraph:

Tests
When adding features or extending functionality, robustness is important. To verify that your code is robust, please implement thorough unit tests obey the FIRST and AAAC principles. FIRST stands for fast, independent, repeatable, self-validating and thorough whereas AAAC represents arrange, act, assert and clean-up. The simplest way to implement tests is using pytest.fixtures, which are stored in tests/conftest.py. This covers the arrange and clean-up phases of a test. Moreover,  fixtures are cached making them fast and (circumstantially) independent. Please test each public method.
What do you think?
Regards
Jordan.

Covered in CONTRIBUTING.md


please add support  for windows

Can you explain that? zig-args is platform agnostic and uses zig stdlibrary features only.


angular.equals cannot compare some objects with circular references

Do you want to request a feature or report a bug?
bug
What is the current behavior?
var a = {};
a.a = a;
angular.equals(a, angular.copy(a));
//Throws: Uncaught RangeError: Maximum call stack size exceeded

https://plnkr.co/edit/GWPdEXjZju6flBAUl4VW?p=preview
What is the expected behavior?
angular.equals(a, angular.copy(a)) returns true
What is the motivation / use case for changing the behavior?
For me this is coming up when a user wants to edit a model. First I make a copy of the model so that any changes can be canceled. Then when the user tries to save their changes I compare the copy with the original to see if anything actually needs to be saved.
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
Tested with Angular 1.5 in Chrome

Duplicate of https://github.com/angular/angular.js/issues/14512


Unable to update CLI

🐞 Bug report
Command (mark with an x)

- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [x] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Is this a regression?

 Yes, the previous version in which this bug was not present was: ....
I don't think so
Description
 A clear and concise description of the problem...
I've been away from angular for a while so i decide do update my CLI. the thing is, it actually updates but when i check the version it shows the old one. And when i build my app, it builds an angular 4 app.

🔬 Minimal Reproduction

🔥 Exception or Error

🌍 Your Environment

@angular/cli: 1.3.2
node: 10.16.0
os: win32 x64

Anything else relevant?

I have tried uninstalling NPM & node, cleared cache but still to no avail

Hello, we reviewed this issue and determined that it doesn't fall into the bug report or feature request category. This issue tracker is not suitable for support requests, please repost your issue on StackOverflow using tag angular-cli.
If you are wondering why we don't resolve support issues via the issue tracker, please check out this explanation.


Fuzz: Fix ModularImageToDecodedRect crop and add checks

See #347.

FTR, I'm not entirely sure this is the right fix, but the situation is that decoded is an image of 773x369 and the requested rect is Rect(0,256, 128x128) which is OOB.

The code this is fixing was introduced in #205  which is not in v0.5.x branch, removing label.


Node.js version needs to be updated

Either revert to 6.x LTS or move to the newer 8.x  release.

@fuzziebrain Resolved in your pull request #240?

Resolved

Just tried a fresh install on CentOS 7.2 using this update and get a loop of this:
gyp WARN EACCES user "root" does not have permission to access the dev dir "/usr/lib/node_modules/oracledb/.node-gyp/8.9.0" gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/oracledb/.node-gyp"

Issue tracked here:  #243


Remove validation for Capacity. Add default for ExternalID

Remove validation for Capacity as it got moved from Spec to Status.
Also fix breakage from ExternalID validation: Default ExternalID to node name when not specified.

@bgrant0607 @dchen1107

LGTM.

nit: Also update api/v1beta*/types with a comment on default for ExternalID?

Yes, please document the default behavior in the description tags on the ExternalID fields in pkg/api/v1beta*/types.go

Updated API documentation.

Thanks. We can regenerate the swagger later. LGTM.