Complete substrait support for ParquetExec round trip

@devinjdangelo says
I looked into the example and the physical plan substrait producer/consumer code. Unfortunately for physical plans, the subtrait consumer and producer are only implemented for ParquetExec and even then they are not fully implemented, so I do not believe any practical example will execute without further development.
Here is an example which makes it further than the above but panics on the roundtrip assertion:
use datafusion::prelude::*;
use std::collections::HashMap;
use datafusion::error::Result;
use datafusion_substrait::physical_plan;
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<()>{
    // Create a plan that scans table 't'
    let ctx = SessionContext::new();
    let testdata = datafusion::test_util::parquet_test_data();
    ctx.register_parquet(
        "alltypes_plain",
        &format!("{testdata}/alltypes_plain.parquet"),
        ParquetReadOptions::default(),
    )
    .await?;
    let df = ctx
        .sql(
            "SELECT * from alltypes_plain",
        )
        .await?;

    let physical_plan = df.create_physical_plan().await?;

    // Convert the plan into a substrait (protobuf) Rel
    let mut extension_info= (vec![], HashMap::new());
    let substrait_plan = physical_plan::producer::to_substrait_rel(physical_plan.as_ref(), &mut extension_info)?;

    // Decode bytes from somewhere (over network, etc.) back to ExecutionPlan
    let physical_round_trip = physical_plan::consumer::from_substrait_rel(
        &ctx, &substrait_plan, &HashMap::new()
    ).await?;
    assert_eq!(format!("{:?}", physical_plan), format!("{:?}", physical_round_trip));
    Ok(())
}

And here is the panic output:
thread 'main' panicked at datafusion/substrait/src/lib.rs:37:2:
assertion `left == right` failed
  left: "ParquetExec { pushdown_filters: None, reorder_filters: None, enable_page_index: None, enable_bloom_filter: None, base_config: object_store_url=ObjectStoreUrl { url: Url { scheme: \"file\", cannot_be_a_base: false, username: \"\", password: None, host: None, port: None, path: \"/\", query: None, fragment: None } }, statistics=Statistics { num_rows: Exact(8), total_byte_size: Exact(671), column_statistics: [ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }] }, file_groups={1 group: [[home/dev/arrow-datafusion/parquet-testing/data/alltypes_plain.parquet]]}, projection=[id, bool_col, tinyint_col, smallint_col, int_col, bigint_col, float_col, double_col, date_string_col, string_col, timestamp_col], projected_statistics: Statistics { num_rows: Exact(8), total_byte_size: Absent, column_statistics: [ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }, ColumnStatistics { null_count: Absent, max_value: Absent, min_value: Absent, distinct_count: Absent }] }, projected_schema: Schema { fields: [Field { name: \"id\", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"bool_col\", data_type: Boolean, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"tinyint_col\", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"smallint_col\", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"int_col\", data_type: Int32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"bigint_col\", data_type: Int64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"float_col\", data_type: Float32, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"double_col\", data_type: Float64, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"date_string_col\", data_type: Binary, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"string_col\", data_type: Binary, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"timestamp_col\", data_type: Timestamp(Nanosecond, None), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }], metadata: {} }, projected_output_ordering: [], metrics: ExecutionPlanMetricsSet { inner: Mutex { data: MetricsSet { metrics: [Metric { value: Count { name: \"num_predicate_creation_errors\", count: Count { value: 0 } }, labels: [], partition: None }] } } }, predicate: None, pruning_predicate: None, page_pruning_predicate: None, metadata_size_hint: None, parquet_file_reader_factory: None }"
 right: "ParquetExec { pushdown_filters: None, reorder_filters: None, enable_page_index: None, enable_bloom_filter: None, base_config: object_store_url=ObjectStoreUrl { url: Url { scheme: \"file\", cannot_be_a_base: false, username: \"\", password: None, host: None, port: None, path: \"/\", query: None, fragment: None } }, statistics=Statistics { num_rows: Absent, total_byte_size: Absent, column_statistics: [] }, file_groups={1 group: [[home/dev/arrow-datafusion/parquet-testing/data/alltypes_plain.parquet]]}, projected_statistics: Statistics { num_rows: Absent, total_byte_size: Absent, column_statistics: [] }, projected_schema: Schema { fields: [], metadata: {} }, projected_output_ordering: [], metrics: ExecutionPlanMetricsSet { inner: Mutex { data: MetricsSet { metrics: [Metric { value: Count { name: \"num_predicate_creation_errors\", count: Count { value: 0 } }, labels: [], partition: None }] } } }, predicate: None, pruning_predicate: None, page_pruning_predicate: None, metadata_size_hint: None, parquet_file_reader_factory: None }"
stack backtrace:
...

You can see that the round trip lost many details about the ParquetExec such as projected_schema and projected_statistics.
I think if we want to include a user facing example of a physical plan substrait roundtrip, we will need to cut a ticket to complete the implementation of ParquetExec to substrait first.
It looks like #5176 built the initial framework for serializing physical plans, but it hasn't been picked up since then.
Originally posted by @devinjdangelo in https://github.com/apache/arrow-datafusion/issues/9299#issuecomment-1958303415

I added to the substrait support epic: https://github.com/apache/datafusion/issues/5173


noticed dougfinke domain is expired

I thought this might be a way to contact @dfinke , to tell him the example under hyperlniks reveals that his dougfinke domain is expiring.
Just attempting to help.
-e

Thanks! I will update


Sign In button visible after being logged in

After logging in the Sign In button still visible. I don't know if this is intentional but I find it a bit confusing.

Closing because related with issue #17316


Update async rendering for React 16

Increased minimum React version

react and react-dom peer dependencies changed to ^16.8.1

Improvements to async rendering

Support for hooks
Eliminate client-side prepare step
Eliminate __IS_PREPARE__ context, whose only purpose was during client-side prepare.
Replace custom React tree traversal with renderToStaticMarkup

Flow type improvements

prepared and split now have more precise flow types

Breaking change with prepared HOC
Prepared components now only call the effectFn once, regardless of how many times it is rendered. To restore the old behavior, add unique effectId props.

const PreparedComponent = prepared(effectFn)(SomeComponent);

// effectFn called only once
const app1 = (

    <PreparedComponent />
    <PreparedComponent />
    <PreparedComponent />

);

// effectFn called for each rendered PreparedComponent
const app2 = (

    <PreparedComponent effectId="1" />
    <PreparedComponent effectId="2" />
    <PreparedComponent effectId="3" />

);

!merge


added BLOG_POSTS_LIST_TRUNCWORDS_COUNT setting to archive, author, tag,

and category view
This commit adds the BLOG_POSTS_LIST_TRUNCWORDS_COUNT setting to the context of the views for the blog entrie's views for achrive, auhor, tags and categories.

Nice, thanks! :)


Add game and junit tests to AP

This PR aims to add the long needed game tests to AP. It's still a draft.
We will use the Testing Framework from CC to accomplish this
The framework is implemented, and I started to work on the first tests

Checklist
[ ] - Testing

[ ] - Add JUnit tests for common AP functions
[ ] - Add game tests

[ ] - Mod Integrations
[ ] - Peripherals
[ ] - Turtles
[ ] - Pocket Computers (?) Not sure if that's easily possible

[ ] - Documentation

I will mark this as high priority. I will work on this asap since we really need tests for AP

I've implemented (copied) the needed stuff from the test source sets, but there is currently another issue with hamcrest and junit I need to work on
I'm going to fix this asap. For now there are the cc tests in AP for testing purposes

I fixed everything that need to be fixed (I think)
The game tests are now ready to be created

We're on a good run.
I've added the first game tests using an ingame script. I will see if I can run the functions via the kotlin script like CC does it with the APIs like turtle.*. But I doubt that this is easily possible with peripherals
We just now need to add the game tests itself. I will also write a documentation for that

Had another error in my thinking. gradle build already executes test and runGameTestServer, I'll change it later

I think there is nothing left to do in terms of the framework. Now we just need to create the tests. There is a me bridge tests to test something a bit more complex and the environment detector which currently just tests one function.
I've created a documentation markdown file located in docs/CREATING_TESTS.md. It explains the basics, how to run and write tests. But it needs some more love with examples and code.
If someone wants to create tests, feel free to do so😅  Would speed things up
For non collaborators, you could create a PR which targets the feat/tests branch. But I am not too sure how well this goes

by the way why is chunky turtle not possible to test?
I think the test cases are:

load when server start:

place turtle to (edge of/far away in) the world
restart server
check if the turtle id exists, and/or check if the chunk is loaded

unload chunk when moving/destroyed:

place turtle to far away in the world
make the turtle move across the border, or destroy the turtle
check if the back chunk is unloaded

load chunk when moving:

place turtle to far away in the world
make the turtle move across the border
check if the front/side chunk is loaded

I do not know if that's possible to do with the current test framework.

Okay you are right, not very complicated

I currently just tend to merge this, even unfinished. Imo testing is important, especially with all the new changes. But I don't have the time to implement ALL of that.
I will change my to-do list a bit and sort it by priority. Something which is annoying to test by hand should have the highest prio and vice versa


Add theme-color meta tag and apply selection of theme

By applying this commit, theme color users selected on settings is applied to the theme-color tag. When users install the web page, color of status bar is synchronized to the theme color.

Thank you! I wasn't aware that this was a thing! Where I left the comment, I'm wondering if it might be easier to just use the background color directly from the theme instead of getting it from the document's styles? We could use the same logic from useSystemBackground() I think.

Add getBackgroundColor(theme: ThemeName) to get the background color
Replace the updateSystemBackground(theme) on line 16 with SystemUI.setBackgroundColorAsync(getBackgroundColor(themeName))
Use getBackgroundColor(themeName) to get the background color inside of updateDocument() rather than getting it from the computed style.

Sorry, just looking at how we could simplify the rest of the code here as well, not just your changes! I could be off too. Really appreciate this!

@haileyok Thank you for your suggestions! I've updated the implementation (e7e3fd0). Please review it.


pass parameter to "dotnet test" execution

Description
I want to run a .net core NUnit test with the vstest.console.
This is working fine but I want to pass to the "dotnet test" execution a parameter, in my case "--no-build"
How I can parse this parameter to the dotnet execution? I have not found the right runsettings variable
Steps to reproduce
vstest.console.exe " "project.json"  /UseVsixExtensions:true /Settings:settings.runsettings
Expected behavior
["C:\Program Files\dotnet\dotnet.exe" test "project.json" --port 55307 --no-build]
Actual behavior
["C:\Program Files\dotnet\dotnet.exe" test "project.json" --port 55307 ]
Environment
windows 7
project.json

{
"version": "1.0.0-*",
"dependencies": {
"NUnit": "3.5.0",
"dotnet-test-nunit": "3.4.0-beta-3"
},
"testRunner": "nunit",
"frameworks": {
"netcoreapp1.0": {
"imports": "portable-net45+win8",
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-*",
"type": "platform"
}
}
}
}
}`

@aumanjoa the support for passing arguments to adapters through vstest.console is supported only for csproj based test projects.
For project.json based test projects, please use the dotnet test command (that ships with dotnet-cli preview2) for this feature.

@codito many thanks for the answere. you can close my question

@codito I'm using a csrpoj based project. How can I pass a command line argument to dotnet test and somehow read the value in my tests?


DLS-10103 Update to Play 3.0

Could you make remove deprecated 'IntegrationTest' scope with 'ItTest'?
There's no IntegrationTest scope here.

Could you make remove deprecated 'IntegrationTest' scope with 'ItTest'?

There's no IntegrationTest scope here.

You are right. Jonathan already addressed that in Feb, my bad. In that case MEEERGE ;)


I hope to support ogg and ape two more format

I hope to support ogg and ape more two format in the future version~

Any news about APE? Maybe anybody to face a iOS library to decoding that format?

Any news about APE? Maybe anybody to face a iOS library to decoding that format?

Not at the moment, I personally don't see much benefits in supporting ape (most of my files are in flac)

sure, most of my files (in flac), too. Just interesting anybody tried to investigate how decode APE to PCM (for iOS) I found BASS library.


LVM is now supported for RHEL in Azure

LVM is now fully supported for RHEL on Microsoft Azure. The following paragraph could be rewritten or removed as it is no longer accurate.
"When you install the Linux operating system, we recommend that you use standard partitions rather than Logical Volume Manager (LVM), which is often the default for many installations. This practice will avoid LVM name conflicts with cloned virtual machines, particularly if you ever need to attach an operating system disk to another identical virtual machine for troubleshooting. LVM or RAID may be used on data disks."

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

ID: 48bab424-986d-9922-ec2d-942508081367
Version Independent ID: 6e9b3ebd-0571-357e-0fde-ef434a728a24
Content: Create and upload a Red Hat Enterprise Linux VHD for use in Azure
Content Source: articles/virtual-machines/linux/redhat-create-upload-vhd.md
Service: virtual-machines-linux
GitHub Login: @szarkos
Microsoft Alias: szark

Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

I don't actually think the statement is inaccurate just because a certain VM image uses LVM on its OS disk. It wasn't intended to be RHEL specific or even about "support," but rather as a general recommendation. If it helps I can add "in general, we recommend ..."? That way it's a little more open ended.

Would something like the following make more sense?
"Logical Volume Manager (LVM) may be used on either the OS disk or data disks in Azure. However, in general it is recommended to use standard partitions on the OS disk rather than LVM.  This practice will avoid...."
What might also help is to know what's driving this issue - i.e. is it confusion about the wording, or confusion about the support implications and whether LVM on the OS disk is a supportable configuration on Azure?

Thanks for your prompt response. Your suggested change looks good. That first sentence is the main thing to get across (ie, Red Hat now supports LVM for OS disks as well as data disks in Azure). If anyone from Red Hat has any further suggestions, I'll send them your way. Thanks again.

#please-close


Tsqa-- switch to using build that exist

Now that trafficserver support exposing what features it has through traffic_layout we don't need to build ATS for every run of TSQA (yay!). Once the support is merged into apache/trafficserver-qa#5 we can merge this in and start running tests against TS_ROOTs that already exist. This changes the command from make test to something like make test TSQA_ATS_ROOT=~/workspace/trafficserver/ (or wherever your env is).
Single tests can still be run, but tsqa will still require the TSQA_ATS_ROOT environment variable, so a one-liner to do that would look like: TSQA_ATS_ROOT=~/workspace/trafficserver/ nosetests tests/test_example.py

FreeBSD build successful! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/1135/ for details.

Linux build successful! See https://ci.trafficserver.apache.org/job/Github-Linux/1029/ for details.

@zwoop Hopefully all labelled correctly?

/cc @dragon512


Innacurate line drawing

For some reason when i input data to the graph for something like a weeks worth of stock data the line chart does not accurateley draw and will have a value that is higher than a previous value show lower on the line graph...has anyone else run into this issue?

Yeah facing the same issuse

Facing the same issue. Any update on this?

I noticed the same thing. My current entry is smaller than the previous one, but the chart shows it as larger.
I've posted an example image below.

Perhaps this is because the data is not yet meaningful enough?


Improve error message if driver binary not available

This change provide more information which exact binary for particular driver is missing in PATH

LGTM

Thanks @kad !


Use forward refs instead of Class Based components for resume templates.

Doc: Forward Refs: https://react.dev/reference/react/forwardRef

working on it.


JetPack -> Modifiers -> Other: Modifier.placeholderShimmer(     placeholderState: PlaceholderState,     shape: Shape,     color: Color )

Doc: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier#(androidx.compose.ui.Modifier).placeholderShimmer(androidx.wear.compose.material.PlaceholderState,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color)
Modifier to draw a placeholder shimmer over a component.

This Modifier is for Android Wear (smartwatches)


Starting from zsh causes hyprctl issue: `HYPRLAND_INSTANCE_SIGNATURE not set!```, but starting from bash works fine

Hyprland Version
0.30.0-1
Bug or Regression?
Bug
Description
Starting Hyprland from zsh causes error:
HYPRLAND_INSTANCE_SIGNATURE not set! (is hyprland running?)

Interactive Zsh runs inside tmux, but I assume that .zprofile should trigger first?
Starting from bash works fine (logging in and running Hyprland)
It's most likely error in .zshrc configuration, but if anyone saw this before and has any advice that would be really appreciated.
How to reproduce

have zsh with tmux installed
.zshrc:

command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] \
&& [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ] && exec tmux

add to .zprofile:

[[ $(tty) = /dev/tty1 ]] && exec Hyprland

login to tty1

see https://github.com/hyprwm/Hyprland/issues/3134

Thank you, but still don't understand what causes initialization started from tmux to fail. Here is the current behavior on zsh (z4h). What assumptions Hyprland makes about the underlying environment?


DHCPv4 Options additions are not replicated from Origin to Replica

Is your feature request related to a problem? Please describe.
DHCPv4 options are not replicated.
Origin
dhcpv4:
options:
- 6 ips <IP_ADDRESS>,<IP_ADDRESS>
Replica
dhcpv4:
options: []
Describe the solution you'd like*
Origin
dhcpv4:
options:
- 6 ips <IP_ADDRESS>,<IP_ADDRESS>
Replica
dhcpv4:
options:
- 6 ips <IP_ADDRESS>,<IP_ADDRESS>
Describe alternatives you've considered
manually add?
Anything else?
seeking clarification if current solution is supposed to sync or not and if not can it be added?

@stlouey Thank you for the request.
Where can you set these options in the web UI?
I can not find any fields for DHCP options.
If it is not available in the web UI and the API, adguardhome-sync can not read/write the values.


chore(deps): update caddy docker tag to v2.6.4

Fix stuck Renovate branch.

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend available
Frontend available
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

Not a priority.  At least right now.


Adding Norway

From twitter by @StanZhelyazkov
any chance of adding Norway to https://azurespeed.co? Thanks!

I (a Swede) would also like this. Both Norway West and Norway East.
From Sweden, the lowest latency we can get is ~35 ms to West Europe but I have my hopes set on Norway East.


Collapsable nav

Mobile Nav has started still need to create the mobile nav menu component and it should be done!

Looks good @Wimsy113 , the nav collapses well when the link text would be too large to fit on the screen.
Do we want to consider using white instead of black for the hamburger menu?  It would match the color on the logo text, and also the color used on the mobile mockups: https://drive.google.com/drive/folders/0B9qH0-lcjAW5TFV6cDZaU1cwNEk

Yup just getting started with this, a lot of what I was doing was playing around with it a bit, to make sure that everything works correctly, going to refactor as I go.


Feature/support older intel mac book pro with gcc 13

Type of Change
Initiated discussion https://github.com/intel/intel-extension-for-transformers/discussions/1081 to while trying to get this project to compile on a 2019 Intel-based MacBook Pro.
Currently segfaults when running inference on mistralai/Mistral-7B-v0.1 quantized as WeightOnlyQuantConfig(ggml=True)
feature or bug fix or documentation or others
API changed or not
Description
detail description
JIRA ticket: xxx
Expected Behavior & Potential Risk
the expected behavior that triggered by this PR
How has this PR been tested?
how to reproduce the test (including hardware information)

2019 Intel-based MacBook Pro 2.3 GHz 8-Core Intel Core i9 on macOS 13.5 (22G74) using brew install gcc (13.2.0), export CC=/usr/local/opt/gcc/bin/gcc-13, export CXX=/usr/local/opt/gcc/bin/g++-13 and building with pip install -v .

Dependency Change?
any library dependency introduced or removed

@nezda  @DDEle  any update about this PR?


Request for Source Code

Dear Authors,
I am highly intrigued by your proposed MRM concept, and I look forward to seeing the implementation in code! It has been some time since the conclusion of ICCV 2023, and I was wondering if you might consider releasing the source code soon? Additionally, if there are any preview or beta versions of the source code available, I would be very interested in accessing them. Thank you for your consideration!

Thanks for your attention on our work. I am recently preparing the journal version of this work, and plan to release source codes after the journal revision.
The main implementation of the core idea, i.e., relation masking, is very simple. You can firstly try to apply the element-wsie masking on attention maps to improve the pre-training of MAEs on your tasks.

Thanks for your attention on our work. We are recently preparing the journal version of this work, and plan to release source codes after the journal revision.

The main implementation of the core idea, i.e., relation masking, is very simple. You can firstly try to apply the element-wsie masking on attention maps to improve the pre-training of MAEs on your tasks.


Error for material css

Error in running.

install using npm install
jspm install
npm run serve

Page is blank with error in console.
[IMG]http://i66.tinypic.com/vglz5u.png[/IMG]

The same :(

Apparently switching the branch did the trick 👍

Switching the branch did the trick 👍


Type is missing for chrome.tabs.remove method

Google search terms
jest-chrome tabs.remove
Describe the bug
The types for chrome.tabs is missing the remove property.
How do we reproduce?
Write chrome.tabs.remove in a typescript jest test after installing this library according to the readme
Expected behavior
Typescript should not produce an error when using chrome.tabs.remove
Screenshots

Please complete the following information:

Library Version: @0.7.2
Operating System: MacOS 11.6
Browser: Chrome 98.0.4758.109 (Official Build) (x86_64)
Node Version: v14.19.0

Additional Info
Sure enough, there is no  exported move mock in the types file

seems like the line is missing.
it declared in the comment
https://github.com/extend-chrome/jest-chrome/blob/52865e980f4e206d3efb9ee6e6f225f3c6830ec6/src/jest-chrome.d.ts#L9349


downport (string templates with MESSAGE)

the corresponding abaplint issue is https://github.com/abaplint/abaplint/issues/286


fix(versions): update Activiti/activiti-cloud-full-chart-security versions

UpdateBot pushed helm dependency: activiti-cloud-full-example to: 7.1.412

UpdateBot commands:
updatebot push-version --kind helm activiti-cloud-full-example 7.1.412


[Editor] Fix few telemetry issues with the new alt text flow (bug 1915434)

/botio integrationtest


Trigger an event when toggling between code view and wysiwyg view?

Is there a way to save the contents when the user toggles into code view, and when they toggle back to wysiwyg?

Hmm.. currently, It is impossible.
I'll add a code view toggle event.

Very cool! Thank you.

The 2.30.0 version has been updated.
If this issue has not been resolved, please reopen this issue.
Thank you.


Implementation of ICub device

Cleaned PR starting from https://github.com/robotology-playground/wearables/pull/16.
For the moment I am leaving the original commits, in case we may prefere to squash them.

Why not using the RemoteControlBoardRemapper? This would mean that here a controlled joint list should appear, and 1) in this way you avoid handling individual control boards and 2) it would allow to stream only a subset of joint measurements instead of all joints.

If I understood well, the RemoteControlBoardRemapper will identify all the control boards present without the need to explicitly state the control board names in the config file?

Since this can be used for generalized joints, I would call it m_position.

Done

Since this can be used for generalized joints, I would call it m_position.

Done

SensorPtr

Done

Why not using the RemoteControlBoardRemapper? This would mean that here a controlled joint list should appear, and 1) in this way you avoid handling individual control boards and 2) it would allow to stream only a subset of joint measurements instead of all joints.

If I understood well, the RemoteControlBoardRemapper will identify all the control boards present without the need to explicitly state the control board names in the config file?

Following the discussion with @diegoferigo we can change to using RemoteControlBoardRemapper at a later stage and stick with remote_controlboard for the time being.

I did a mess with these comments, I forgot that this PR was open and instead of doing a review I  commented the file of the commit :sweat_smile: Anyway:

If I understood well, the RemoteControlBoardRemapper will identify all the control boards present without the need to explicitly state the control board names in the config file?

You avoid using the pair control board index + joint index in the control board. You just use the joint name. Simple clear.

Following the discussion with @diegoferigo we can change to using RemoteControlBoardRemapper at a later stage and stick with remote_controlboard for the time being.

Before the merge, possibly ;)

What is the status of this PR? I think it is going to get priority since the current master of human-dynamics-estimation is based on this branch

I pinged @lrapetti and @Yeshasvitvs  on few comments that haven't been addressed yet. If someone has the bandwidth, switching to the remote control board remapper would be amazin (I suspect that otherwise no one else will do it in the close future), but it is not a blocking feature.

All the checks are passed.

Following the discussion with @diegoferigo we can change to using RemoteControlBoardRemapper at a later stage and stick with remote_controlboard for the time being.

Before the merge, possibly ;)

This is the only change request still pending.
@Yeshasvitvs @diegoferigo, if you agree I would proceed with merging so that we can unlock other issues.
cc @traversaro @kouroshD

I think @diegoferigo is not responsive  on GitHub and he already expressed in person his ok with merging the PR, so if you need a quick feedback you may need to contact him via chat.

I'm off this week and I doubt I can do a last pass on this PR before my return. As said last time, if the remote control board remapper is postponed, this PR is good to go. Please open an issue to keep track of this task.
If there are any questions please be specific and point me to the code so thatI can have a look with the phone.

@lrapetti ok for me

I'm off this week and I doubt I can do a last pass on this PR before my return. As said last time, if the remote control board remapper is postponed, this PR is good to go. Please open an issue to keep track of this task.

issue opened at https://github.com/robotology/wearables/issues/49


Fix min/max Values

There is maybe a bug with the min/max Temperature Value (if Fahrenheit)

should be fixed with with v1.0.6


IServiceCollection' does not contain a definition for 'AddIdentityServer'

[X ] I read and understood how to enable logging

Issue / Steps to reproduce the problem
I am following this video https://channel9.msdn.com/Shows/MVP-Show/Episode-2-Germany-Part-III-IdentityServer4-in-Action
I am using VS 2017 and created ASP.NET Core 1.1 Web App.
I added Nuget Package for Identity server and
I can see the package reference was added in .csproj file

I am getting the following Error @ services.AddIdentityServer(); in ConfigureServices of startup.cs.
Severity	Code	Description	Project	File	Line	Suppression State
Error	CS1061	'IServiceCollection' does not contain a definition for 'AddIdentityServer' and no extension method 'AddIdentityServer' accepting a first argument of type 'IServiceCollection' could be found (are you missing a using directive or an assembly reference?)	IndentityServer	XXXX\IndentityServer\Startup.cs	60	Active
What am i missing or done wrong here?
Relevant parts of the log file
<log goes here>

This is the package that you need
<PackageReference Include="IdentityServer4" Version="1.5.0" />

Don't forget to dotnet restore and add this using Microsoft.Extensions.DependencyInjection; which you probably all did xD
If the information you provided above are all correct, this should be enough.
Try creating a separate new project and see if it works

I created a new project and verified that it is using 1.5 and has reference to DependencyInjection. Still same problem.
I have attached the sample project.
WebApplication2.zip

you wrote services.AddIdentitServer();
and it should be services.AddIdentityServer();
Intellisense told me that...

Here is the screenshot

In the project that you sent me everything is working fine for me

Same thing happened to me, try to unload the project and then reload it again, it should work, really weird...

Yes unloading and reloading the project worked

Thanks guys. Unload and load the project also work ok

Unload and ReLoad the project worked for me


Add bbpanzu's psych engine tutorial

Teaches most of Psych Engine's (Oct 2021) features in a manner that is easy to understand for beginners.

This tutorial is really great


Can't build facetimehd-firmware

Describe the bug
Upon trying nixos-rebuild switch --upgrade I get:
builder for '/nix/store/55p8yxb2xsbw067xd4bmxp7gc1id8dfw-osxupd10.11.5.dmg.drv' failed with exit code 1
cannot build derivation '/nix/store/3xn8vykqpsl1wijindxz8677djyc2hh1-facetimehd-firmware-1.43_4.drv': 1 dependencies couldn't be built

I can reproduce it with nix-shell:
bemeurer@aurora> nix-shell -p facetimehd-firmware                                                                                ~
warning: 'https://standard.cachix.org' does not appear to be a binary cache
these derivations will be built:
  /nix/store/55p8yxb2xsbw067xd4bmxp7gc1id8dfw-osxupd10.11.5.dmg.drv
  /nix/store/m011v5jsmcnfjlblif0zfaxd020l8nbz-unpack.drv
  /nix/store/3xn8vykqpsl1wijindxz8677djyc2hh1-facetimehd-firmware-1.43_4.drv
these paths will be fetched (0.05 MiB download, 0.28 MiB unpacked):
  /nix/store/s1xmwhxdszbcngf5lwl7263ynbv089z4-bash-interactive-4.4-p23-dev
copying path '/nix/store/s1xmwhxdszbcngf5lwl7263ynbv089z4-bash-interactive-4.4-p23-dev' from 'https://cache.nixos.org'...
building '/nix/store/m011v5jsmcnfjlblif0zfaxd020l8nbz-unpack.drv'...
building '/nix/store/55p8yxb2xsbw067xd4bmxp7gc1id8dfw-osxupd10.11.5.dmg.drv'...

trying https://support.apple.com/downloads/DL1877/en_US/osxupd10.11.5.dmg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
error: cannot download osxupd10.11.5.dmg from any mirror
builder for '/nix/store/55p8yxb2xsbw067xd4bmxp7gc1id8dfw-osxupd10.11.5.dmg.drv' failed with exit code 1
cannot build derivation '/nix/store/3xn8vykqpsl1wijindxz8677djyc2hh1-facetimehd-firmware-1.43_4.drv': 1 dependencies couldn't be built
error: build of '/nix/store/3xn8vykqpsl1wijindxz8677djyc2hh1-facetimehd-firmware-1.43_4.drv' failed

To Reproduce

nix-shell -p facetimehd-firmware

Expected behavior
The package builds
Metadata
 - system: `"x86_64-linux"`
 - host os: `Linux 5.3.7, NixOS, 19.09.891.80b42e630b2 (Loris)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3`
 - channels(root): `"nixos-19.09.941.27a5ddcf747"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
attribute: facetimehd-firmware

Duplicate of #71952


Fix integration tests based on the new adaptive template

Depends on https://github.com/wso2/carbon-identity-framework/pull/5243
Relates to https://github.com/wso2/product-is/issues/17544

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/7043440532

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/7043440532
Status: failure


[BUG]Get data when refresh true but not get after false

So i face again a issue store is working right now but now whenever i set refresh value true then it get data from fetcher not from roomdb and interesting thing is that its fetch data and store it but after set refresh false it not giving data

I fixed it maybe it my fault or store bug but i was using map to collect store data but it give me nothing so i changed map to collect and i got store data.


Converted github md links to relative links to html

cc @thockin @RichieEscarez @caesarxuchao

Once we commit this, we're basically live right?

LGTM, but let's coordinate commits

Merging to make progress.


How large GPU memory will it cost to train a CO-DETR model (Swin-L)?

Thanks for the great work. Only the memory of CO-deformable-DETR is mentioned in the paper, so I wonder how large gpu memory it will cost for training a CO-DETR (Swin-L)? Is 24 GB memory capable of it?

Or CO-DETR (R50)? I only have GPUs with 24 GB memory. Thanks.

It is sufficient to train a SwinL Co-DETR with 24GB GPUs. Please refer to this link for more details.

Thanks!


Python 2 and 3 compatibility

Fix the broken Python 3 support, and make sure that the code remains
compatible with Python 2.

This fixes issue #85 while remaining compatible with Python 2. It has been tested using Python 2.7.10 and Python 3.4.3.
But please, do take a close look before merging, as I have only tried to make the minimal amount of modifications in order to get the tests to run. There seems to be code paths that are not covered by the unit tests that might have been broken. I'll try to point the suspects out in the diff.

@FredrikAppelros - If the intention is to support both Python 2 and 3 within the same codebase (which I think is the right thing to aim for) then shouldn't you open this PR against master instead of python3-master? We won't need a separate branch for Python 3 if Python 2 compatibility is maintained.
FWIW, I am ready to test this PR and provide feedback if the library maintainers are on board with the direction.

I agree that the ideal solution would be to support both Python 2 and 3, and yes, eventually I would assume this to be merged into the master branch. But as the maintainers decided to create a separate python3-master, I based my fixes on that.
I leave it to the maintainers to merge the python3-master branch into master at their convenience.

First a "big thank you" to Fredrik for taking on python 3 support and especially to the maintainers for creating this library in the first place. I would like to use python 3 in my project and this library is keeping me from switching. Is there any movement concerning official python 3 support?
I see that there is a python 3 package in the ubuntu repositories. Is there any advantage to using vertica-python over that package?

Hello,
I have updated my python 3 compatibility patch for release 0.5.6 Debian package.
You can find it here: https://github.com/jbfavre/python-vertica/blob/master/debian/patches/fix_python3_compatibility.patch
Tests are OK for both python 2.7 & 3.5
I'll prepare a pull request against master. I think it's better to have only one branch

landed this PR for python 3 support: https://github.com/uber/vertica-python/pull/106


Secure passwords

Closes #11

Title :  Hash the password during login and signup
Name: Krishna Sharma K
Idenitfy yourself: SSOC Contributor

Describe the add-ons or changes you've made 📃
Give a clear description of what have you added or modifications made
I have done the following:

Created a file called encrypt.py in page/auth folder which contains two functions - secure_password and check_password. secure_password returns the hash of the password, which is done using argon2 hashing algorithm. The check_password function verifies whether the hashed password stored in the database and the password entered during login are the same.
Secured the passwords entered during signup using the secure_password function and checked the secured password against the repeat password before approving the signup request.
Enabled checking of the password entered during login with the password stored in the database to enable successful login.
Replaced the plaintext passwords in the database with the new hashed passwords for User, Admin and Super Admin as given in the README file.

Type of change ☑

What sort of change have you made:

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

How Has This Been Tested? ⚙

I throughly tested the changes by creating new users, and logging them in (See screenshot below).
Checklist: ☑

[x] My code follows the Contributing Guidelines & Code of Conduct of this project.
[x] This PR does not contain plagiarized content.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] My changes generate no new warnings.

Screenshots 📷

SignUp testing 👇

Login testing 👇

@krishnasharmak05 don't change db, revoke it. And you have hashing the password but on during login, you have to verifying the password using hash codes?

If I revoke the database, signups and logins will fail because the hashed passwords (checked against the user’s password field in the database) will be in the format $argon2id$..., while the database will contain plaintext passwords. What’s the purpose of hashing passwords if they’re stored in plaintext? If you have an alternative idea, @Avdhesh-Varshney , please share it so that I can implement it.

Yes, I’ve implemented and tested code that verifies user passwords during login. It uses hash codes stored in the database.


Use the atom-text-editor tag instead of the editor class.

In index.less: Use the atom-text-editor tag instead of the editor class.

Fixed by #10


Quality of inference severely changed after merge_and_unload

System Info
peft==0.5.0
transformers==4.34.0
accelerate==0.21.0
python==3.10.6
Who can help?
No response
Information

[ ] The official example scripts
[X] My own modified scripts

Tasks

[ ] An officially supported task in the examples folder
[X] My own task or dataset (give details below)

Reproduction
Hi all, this is my first time to raise an issue at github repo, so if i do something wrong, welcome to tell me, thx.
I have trained "meta-llama/Llama-2-7b-hf" by qlora with expanded vocabs and tying of embedding layer and lm_head layer. Note that besides qkv layer and mlp, I also employ lora layer on the embedding layer and lm_head. The resulting adapter_model.bin file is around 600 MB and works well when i use it to do the inference.
Here shows the rough code for how i do inference:
from transformers import  LlamaTokenizer, LlamaForCausalLM
from peft import PeftModel
import torch

tokenizer = LlamaTokenizer.from_pretrained(tokenizer_dir, use_fast=True)
base_model = LlamaForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf", device_map=device_map, torch_dtype=torch.bfloat16)
base_model.config.tie_word_embeddings = True
base_model.resize_token_embeddings(len(tokenizer))

embedding = torch.load(pt file storing some embedding vectors to initialize embedding layer for expanded vocabs)
weight = base_model.model.embed_tokens.weight.data
device = base_model.model.embed_tokens.weight.data.device
dtype = base_model.model.embed_tokens.weight.data.dtype
length = len(embedding)

for i in range(length):
     weight[32000+i] = embedding[i].type(dtype).to(device)

model = PeftModel.from_pretrained(base_model, lora_dir, device_map="auto", torch_dtype=torch.bfloat16)

prompt = "some text"

with torch.no_grad():
     inputs = tokenizer(prompt, return_tensors="pt")
     generation_output = model.generate(
     input_ids = inputs.input_ids.to("cuda"),
     max_new_tokens = max_new_tokens,
     no_repeat_ngram_size = no_repeat_ngram_size
            )
     res = tokenizer.decode(generation_output[0], skip_special_tokens=True)
     print("\nReply: ", res)

As aforementioned, the reply of model looks good and normal at this moment. However, after i  use merge_and_unload function to produce the merged file and save it, the inference of new merged model becomes weird and becomes totally chaos.
Here is the rough code I write for merging:
from transformers import  LlamaTokenizer, LlamaForCausalLM
from peft import PeftModel
import torch

tokenizer = LlamaTokenizer.from_pretrained(tokenizer_dir, use_fast=True)
base_model = LlamaForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf", device_map=device_map, torch_dtype=torch.bfloat16)
base_model.config.tie_word_embeddings = True
base_model.resize_token_embeddings(len(tokenizer))

embedding = torch.load(pt file storing some embedding vectors to initialize embedding layer for expanded vocabs)
weight = base_model.model.embed_tokens.weight.data
device = base_model.model.embed_tokens.weight.data.device
dtype = base_model.model.embed_tokens.weight.data.dtype
length = len(embedding)

for i in range(length):
     weight[32000+i] = embedding[i].type(dtype).to(device)

model = PeftModel.from_pretrained(base_model, lora_dir, device_map="auto", torch_dtype=torch.bfloat16)
merged_model = model.merge_and_unload()
merged_model.save_pretrained(output_dir)

In the beginning I do this under the peft==0.3.~environment and it shows attributeerror: 'embedding' object has no attribute 'bias', but the error message disappear and no error happens again after i update to peft==0.5.0.
I have checked the size of model's bin file and didn't see manifest change between new model and Llama-2-7b-hf, the new model actually very slightly smaller than the original Llama-2. I also print model to check whether the embedding layer size is correct and whether config file is correct.
Model summary (before merging):
PeftModelForCausalLM(
  (base_model): LoraModel(
    (model): LlamaForCausalLM(
      (model): LlamaModel(
        (embed_tokens): Embedding(
          57621, 4096
          (lora_dropout): ModuleDict(
            (default): Dropout(p=0.05, inplace=False)
          )
          (lora_A): ModuleDict()
          (lora_B): ModuleDict()
          (lora_embedding_A): ParameterDict(  (default): Parameter containing: [torch.cuda.FloatTensor of size 64x59241 (GPU 0)])
          (lora_embedding_B): ParameterDict(  (default): Parameter containing: [torch.cuda.FloatTensor of size 4096x64 (GPU 0)])
        )
        (layers): ModuleList(
          (0-31): 32 x LlamaDecoderLayer(
            (self_attn): LlamaAttention(
              (q_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.05, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=64, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=64, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (k_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.05, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=64, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=64, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (v_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.05, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=64, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=64, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (o_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.05, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=64, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=64, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (rotary_emb): LlamaRotaryEmbedding()
            )
            (mlp): LlamaMLP(
              (gate_proj): Linear(
                in_features=4096, out_features=11008, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.05, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=64, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=64, out_features=11008, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (up_proj): Linear(
                in_features=4096, out_features=11008, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.05, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=64, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=64, out_features=11008, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (down_proj): Linear(
                in_features=11008, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.05, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=11008, out_features=64, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=64, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (act_fn): SiLUActivation()
            )
            (input_layernorm): LlamaRMSNorm()
            (post_attention_layernorm): LlamaRMSNorm()
          )
        )
        (norm): LlamaRMSNorm()
      )
      (lm_head): Linear(
        in_features=4096, out_features=59241, bias=False
        (lora_dropout): ModuleDict(
          (default): Dropout(p=0.05, inplace=False)
        )
        (lora_A): ModuleDict(
          (default): Linear(in_features=4096, out_features=64, bias=False)
        )
        (lora_B): ModuleDict(
          (default): Linear(in_features=64, out_features=57621, bias=False)
        )
        (lora_embedding_A): ParameterDict()
        (lora_embedding_B): ParameterDict()
      )
    )
  )
)

After merging, I do the inference with new model but now the outputs becomes something like "prompt脣銝餌����������", looks like maybe the merging process did not implemnt correctly? I saw the comment under #868 so i change the device map to cpu and do the merging again but the result is still the same. Anyone knows the reason and can help me? Thx.
Expected behavior
The model's output should be some normal sentence as it was before merging.

Thanks for reporting this issue and giving all the details. Could you please test something:
Could you please produce an output exactly before merging and one output exactly after merging, using the same input and checking if the output is the same? So something like:
with torch.no_grad():
    input = ...
    output_before = model.generate(...)
    ...
merged_model = model.merge_and_unload()
with torch.no_grad():
    input = ...
    output_after = merged_model.generate(...)
    ...
# compare before and after

This way, we can check if the merging process itself is responsible for the divergence or if it's something else.

Hi @BenjaminBossan, thanks for your reply soon and sorry for replying late,
I check again as you required, here is the code (Note that the model before merging is derived based on the same method I show above):
from transformers import  LlamaTokenizer, LlamaForCausalLM, BitsAndBytesConfig, GenerationConfig
from peft import PeftModel
import torch

# Here I write same process I showed before
model = PeftModel.from_pretrained(base_model, lora_dir, device_map="auto", torch_dtype=torch.bfloat16)

# for name, param in model.named_parameters():
#     print(name, param.device)

generation_config = GenerationConfig(
            do_sample = True,
            temperature = 0.6,
            top_p = 0.9,
            top_k = 50
        )

prompt = "A rainbow is an optical phenomenon that can occur under certain meteorological conditions."

with torch.no_grad():
     inputs = tokenizer(prompt, return_tensors="pt")
     generation_output = model.generate(
     input_ids = inputs.input_ids.to("cuda"),
     generation_config = generation_config,
     max_new_tokens = 200,
     no_repeat_ngram_size = 2
        )

     res = tokenizer.decode(generation_output[0], skip_special_tokens=True)
     print("\nReply of model before merging:: ", res)

# start merging
model = model.merge_and_unload()

with torch.no_grad():
     inputs = tokenizer(prompt, return_tensors="pt")
     generation_output = model.generate(
     input_ids = inputs.input_ids.to("cuda"),
     generation_config = generation_config,
     max_new_tokens = 200,
     no_repeat_ngram_size = 2
        )

     res = tokenizer.decode(generation_output[0], skip_special_tokens=True)
     print("\nReply of merged model: ", res)

Here is the result I get,
Reply of model before merging:  A rainbow is an optical phenomenon that can occur under certain meteorological conditions. It is a light reflection from clouds, which are shaped and colorful. Some rainbows are visible from the ground, and some are invisible.
There are many different ways to capture a rain bird, but the most popular technique is to use a camera and a long-term, as shown in the picture above.  You can also use other methods such as using a microphone, a solar lamp or a flashlight. In the photo above, you can see that the sun is shining through the clouds and the shadows are scattered. The shots are taken with a standard camera with the position of camera up and with an adjustment of 10 to 15 m. A few other techniques are using the camera in a position in which the water is in full light, or using some other lighting device such like a sun-light or an
electric electric lamp. If
Reply of merged model:  A rainbow is an optical phenomenon that can occur under certain meteorological conditions.瘙瘙
獬獬巂巂祏祏巂鴯鴯鶓鶓鴯巂惻惻巂壼壼巂睺睺巂獬瘙螫螫��窰窰������������������������������������螫巂澮澮
巂藶巂菰菰巂鶓巂鎣鎣巂巰巰巂螫睺���������������諴諴����������������������獬����������������������窰嘖嘖窰��
睺螫惻鴯繒繒鴯玕玕鴯桫
Looks like something really goes wrong after merging, I also check the device map of each layer, all model's layer before merging are distributed on 4 gpus I used, no layer is on meta device, do you know what is the problem? Thanks again for your replying.

I'm also having issues with merging - it looks like the model's outputs are changing pre and post merge. Here's a minimal deterministic (no generation/sampling) example:
from transformers import AutoModelForCausalLM, PreTrainedModel
import torch
from peft import (
    LoraConfig,
    get_peft_model,
)

model_name = "facebook/opt-125m"

model: PreTrainedModel = AutoModelForCausalLM.from_pretrained(
    model_name,
    device_map="cpu",
    torch_dtype=torch.float32,
)
model.requires_grad_(False)

@torch.no_grad()
def model_out(model):
    input_ids = torch.arange(10, device=model.device, dtype=torch.long).unsqueeze(0)
    output_logits = model(input_ids).logits
    return output_logits

def relative_diff(a, b):
    diff = torch.abs(a - b) / (torch.abs(a) + 1e-2)
    return diff.mean(), diff.max()

def absolute_diff(a, b):
    diff = torch.abs(a - b)
    return diff.mean(), diff.max()

def trainable_params(model):
    return [p for p in model.parameters() if p.requires_grad]

@torch.no_grad()
def init_trainable_params(model):
    ps = trainable_params(model)
    for p in ps:
        p[:] = 3

lora_config = LoraConfig(
    r=64,
    lora_alpha=16,
    target_modules=[
        "fc2",
    ],
    lora_dropout=0.0,
    bias="none",
    task_type="CAUSAL_LM",
    # layers_to_transform=4
)

pmodel = get_peft_model(model, lora_config)

# re-init the lora params so that they don't multiply
# to 0 and thus have an ffect on the output
init_trainable_params(pmodel)

plogits = model_out(pmodel)

unloaded = pmodel.merge_and_unload()

ulogits = model_out(unloaded)

print("rdiff", relative_diff(plogits, ulogits))
print("adiff", absolute_diff(plogits, ulogits))

Running this is giving me the output:
rdiff (tensor(0.1405), tensor(110.4522))
adiff (tensor(0.2044), tensor(2.6414))

I've tried this on:
peft==0.4.0 (also tried on latest github master with the same result)
transformers==4.34.1
accelerate==0.23.0

Dear all, I have solved this issue by myself and will record the solution here for people who faces the same issue like me.
My intuition was right, since I trained the model with tied embedding and there are lora layers beside embedding layer and lm_head, before merging, I need to make the embedding layers untie again so the lora layer beside lm_head can merge with lm_head correctly. After I untie the embedding layers and implement merge_and_unload again, the inference of merged model subsequently becomes normal like the one before merging. Since I didn't touch opt model before, I'm not sure the problem mentioned above is the same problem of mine or not, but I guess the issue of @jordan-benjamin can be solved by following this way as well.  Thank you guys for the help and replying.


When creating annotations, clicking outside of the editor box breaks the UI.

Create an annotation by dragging a box and typing into the editor. Before saving, click outside of the box. The box will go away and everything will be out of sync and behave strangely. The box will never show for that annotation, and future annotations will disappear on save. The error is: cannot read property x of null.

@rsinghal I think this affects the MOOC.


Include use of TS declare syntax

TS can use class fields with decorators without turning off useDefineForClassFields at the cost of losing inline initialisation.
See https://github.com/lit/lit.dev/pull/479 and https://github.com/lit/lit/issues/1985 for discussion.
Also clarified version, as es2020 or above will cause useDefineForClassFields to default to true, not just esnext. See https://github.com/microsoft/TypeScript/issues/45653

Requesting a review from @sorvell who wrote the current section.


Add Filter Original Language of the Manga in the Mangadex Settings

Describe your suggested feature
I'm aware that we can use the original language in the browse filtering, but I have to pick the original language filter every time I'm browsing for a new title when mainly I just read titles from Japanese and Korean original language. If this feature implemented, user doesn't have to do extra steps again if they have preferences for the original language filter.
The feature is available on mangadex and the original tachiyomi.

Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have updated the app to the newest version Latest.
[X] I have checked through the app settings for my feature.
[X] I will fill out all of the requested information in this form.

As of 2.11.0 you can set the filters how you want in the browse screen then save it, and set it as a default for every search


Docs: Removing duplicate customContextFile and customDebugFile

Found this super useful customContext and customDebug feature and noticed the docs were duplicated.

Thanks, could you please update your commit message to follow our convention: http://karma-runner.github.io/0.13/dev/git-commit-msg.html

Merged manually thanks :octocat:


Add default args to developer_center `run'

Fixed errors running sign from fastlane cause by not specifying force and cert_date.
For example I would previously get the following errors:
FATAL [2015-02-04 20:19:17.04]: wrong number of arguments (2 for 4..5)
FATAL [2015-02-04 20:19:17.04]: fastlane finished with errors
/Library/Ruby/Gems/2.0.0/gems/sigh-0.2.3/lib/sigh/developer_center.rb:172:in run': wrong number of arguments (2 for 4..5) (ArgumentError) 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/actions/sigh.rb:21:in run'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/fast_file.rb:81:in block (2 levels) in method_missing' 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/actions/actions_helper.rb:29:in execute_action'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/fast_file.rb:80:in block in method_missing' 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/fast_file.rb:79:in chdir'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/fast_file.rb:79:in method_missing' 	from (eval):27:in block (2 levels) in parse'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/runner.rb:18:in call' 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/runner.rb:18:in block in execute'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/runner.rb:12:in chdir' 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/runner.rb:12:in execute'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/lane_manager.rb:15:in block in cruise_lanes' 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/lane_manager.rb:14:in each'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/lib/fastlane/lane_manager.rb:14:in cruise_lanes' 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/bin/fastlane:31:in block (2 levels) in run'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in call' 	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in call'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:155:in run' 	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:421:in run_active_command'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:81:in run!' 	from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/delegates.rb:8:in run!'
from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/bin/fastlane:59:in run' 	from /Library/Ruby/Gems/2.0.0/gems/fastlane-0.1.7/bin/fastlane:63:in <top (required)>'
from /usr/bin/fastlane:23:in load' 	from /usr/bin/fastlane:23:in '

Thanks for providing a fix :+1: The new version is live.


feat(api): keys reworked

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


updates after fork

change references to gtmanfred/saltstack -> saltstack/salt-master
add .gitignore

Closing in favor of #2


spy.js (ligne 694) <système>

Hey all, i have a problem to use pdf.js, i work in apache and mozilla firefox 8, so when i want to test the example "web" or "hello" in my server i have this errors
An attempt was made to use an object that is not, or is no longer, usable
[Stopper sur une erreur] spy.responseText += spy.xhrRequest.responseText;   spy.js (ligne 694) <système>
An attempt was made to use an object that is not, or is no longer, usable
[Stopper sur une erreur] spy.responseText = spy.xhrRequest.responseText;  spy.js (ligne 741) <système>
but in chrom he work but she don't show the contenent in pdf
thanks you and sorry for my bad english

It's similar to http://groups.google.com/group/firebug/browse_thread/thread/4586f6f84c0adc65 . Try to disable, re-configure or update the firebug (or other extensions).

Thank you it's worked


Service in fault state

The WCF service after some time gets fault state (maybe some timeout?). So far I was unable to identify the cause of that.... Added some hint for user that WinGIN must be restarted in https://github.com/JiriVanek/WinGIN/commit/8c6a7e3db41a0d9a969724cac4e65a3edc841c20 but application still fails with unhanded exception

it looks like the service timed out. with keep alive actions the problem not occurs.... the keep alive action could be in future used for check if repository content changes (without download, just inform user that local repo is not up to date)...


Put tree status in the favicon of the build dashboard

It would be nice if the tab I have open with the build dashboard would display and update the tree status without having to switch to that tab.  Can we update the favicon to display that information and have it updated periodically?
cc @CaseyHillers

This seems like a dupe of https://github.com/flutter/flutter/issues/46175
I haven't seen the tree closed to verify the favicon is changing. I know the icon could be made more explicit. Maybe we could change it to a green and red circle instead of the Flutter logo.
\cc @codebird

Yep, that sounds like the same issue.  I think it's just a ux problem since the favicon is using different metaphors than the page.  The favicon is (blue text=good, red text=bad), page is (green bar=good, red bar=bad).
I recommend using the same metaphor some good state would look like this:

Bad state would be the same but red.

hahahahaha! I think they're fine... @CaseyHillers what do you think?

I did this, for the failure, but I think @gaaclarke's are better

Shoot, let me update the colors.  That red one looks off.   One sec.

There we go:

Thank you @gaaclarke ! These are great, I like the added detail in the Flutter logo

Hmmmm that's weird I'll check it out tomorrow.

@gaaclarke was the bar green or red when you switched tabs? I mean did it change when you switched tabs or it was already?

I wasn't paying attention, sorry

K will test it tomorrow.

I did a test on the Flutter dashboard in Chrome. It changed from red to green when the bar changed, while I was tabbed out.
@gaaclarke what browser are you using? Maybe it prevents background workers

I'm on chrome.  It could be that I switched tabs before the autorefresh?  Like if it refreshes every 3 minutes maybe I happened to notice quickly via email?

It is an animatedBuilder. And I guess I saw it updating in the background on localhost Chrome too. I'll still double check just to make sure.

(It just happened to me again, i'm pretty sure it's not updating.)

I realized this doesn't go to the green circle, but instead to the white, boxed logo. However, tree closures do go to the red circle.

(It just happened to me again, i'm pretty sure it's not updating.)

This is somewhat of a stretch, but do you have any chrome extensions that puts non-focussed tabs to sleep?

I realized this doesn't go to the green circle, but instead to the white, boxed logo. However, tree closures do go to the red circle.

The white boxed logo is just cache, it is no longer there.

When you comment on this thread I see the tab's description update, so it is updating that in the background.  So it seems to work elsewhere.

I can confirm the issue on Chrome Linux (102.0.5005.61) and Chrome ChromeOS (101.0.4951.72) both the bar and the favicon are not updating. Looks like AnimatedBuilder stops updating when the tab is inactive.

Hey, looks like this is good to close?


SQLite connection demands password

Describe the bug
SQLite connection demands password.
To Reproduce
Execute command 'Add New Connection' and choose SQLite. You can see askForPassword setting is true.

Also it forces vscode to prompt a password input dialog when testing connection (it accepts any password except an empty).

There is no need for a password for SQLite, that setting should be false by default.
Desktop:

SQLTools 0.21.0
VSCode 1.37.1
Dialect Used/Version: SQLite

I just came along to log this and saw it's already captured.
Firstly - thank you for the brilliant plugin! I love not having to leave vscode and have found it really useful - and I really like a lot of the design choices that have been made.
I was a bit confused by this one. I like the fact that we get to see a summary of the json schema when adding the connection - however it would be brilliant if we had the ability to amend parameters in the json such as the password prompt - because otherwise reviewing this json (for something we don't have the ability to change) seems redundant.
I guess allowing people to edit the json schema might offer a nice vehicle for giving people new features without having to think about ui elements too - so it may offer other positives...
(p.s. I realize there's probably a json file lying around somewhere that I should just go and edit!)

Is there a way to locally make this patch or best to wait for an update to roll out?

If you remove askForPassword from your settings file, it will be working fine.
Anyway, I plan to release it today or tomorrow.


Docs: remove logEvent parameter from Logger constructor setting

Expected Behaviour
The docs state that Logger's constructor accepts a logEvent parameter to control whether or not logger prints event. But when I try to do this I get an error. See screenshot.

Current Behaviour
Cannot pass logEvent into constructor of Logger.
Code snippet
const logger = new Logger({
  logEvent: true, // ERROR: Object literal may only specify known properties, and 'logEvent' does not exist in 'ConstructorOptions'
});

Steps to Reproduce

Reproduce code in code snippet above.
See error.

Possible Solution
No response
Powertools for AWS Lambda (TypeScript) version
latest
AWS Lambda function runtime
18.x
Packaging format used
npm
Execution logs
No response

Hi @bestickley, thank you for opening the issue.
The documentation is wrong and we'll use this issue to fix it.
The logEvent property should not be part of the constructor because even with enabled, it can only work when the Logger is used in conjunction with the injectLambdaContext Middy middleware or class method decorator.
This is because we can only log the event when the handler is wrapped by the decorator or middleware. If we allowed the setting in the constructor, this could make customers think that by simply enabling the option Logger will log the event, which is not the case.
We do have an environment variable, but that's mostly to disable the behavior without changing the code either in a dev environment or after deployment.
With this in mind I'm inclined to consider not a bug, not a feature request, but rather an action point to change the docs.

I don't quite understand what the process is to log the incoming event.
Idea is to surface it easily, ideally in the AWS console for debugging.
Could that please be documented too?

I agree @kaihendry , we can add a small section specifically for logging events.

Hi @kaihendry - we do have a section dedicated to this feature - which can be found here.
When enabled, the feature instructs the logger instance to emit one log at INFO level containing the payload of the event for that invocation. Given that this is a regular log, you'll be able to see it in the CloudWatch dashboard in all the same places where you already access logs (Log Groups, Tail, Insights, etc.).
Given that the Logger utility must have access to the function event for it to log it, the feature is available only when using the injectLambdaContext Middy middleware or @ injectLambdaContext class method decorator. This is also why - despite the inaccurate documentation - the setting is not available at the constructor level.

we do have a section dedicated to this feature - which can be found here.

I scanned the outline multiple times and missed it 😵💫


Original MmdMesh Object Fails isMmdSkinnedMesh Check After Creating MmdModel

After creating an MmdModel using this._mmdRuntime.createMmdModel(), the original mmdMesh object no longer passes the MmdMesh.isMmdSkinnedMesh() check. This behavior seems unintentional and affects the BpmxConverter:
console.log("is MMD mesh", MmdMesh.isMmdSkinnedMesh(mmdMesh));  // true

mmdModel = mmdRuntime.createMmdModel(mmdMesh);

console.log("is MMD mesh", MmdMesh.isMmdSkinnedMesh(mmdMesh));  // false

new BpmxConverter().convert(mmdMesh);  // Error: {model name} is not MmdMesh

That is the intended behavior: after running createMmdModel, the mmd metadata is removed from the mesh to save memory.
You can recover the metadata if you store the metadata somewhere else before running createMmdModel. However, if the model is not in rest pose (A pose), it may have unexpected behavior.
You can use this test code as a reference
https://github.com/noname0310/babylon-mmd/blob/main/src/Test/Scene/wasmMemoryTestScene.ts#L82-L102

When I try that, the operation succeeds, but the resulting file is significantly smaller, likely due to missing textures, as shown in the picture:

Sorry, there were a few things I didn't say.
The default option for the texture loader is to delete the buffer after loading, this is for memory savings but should be turned off when using converters.
You can turn it off with the following code
const pmxLoader = SceneLoader.GetPluginForExtension(".pmx") as PmxLoader;
const materialBuilder = pmxLoader.materialBuilder as MmdStandardMaterialBuilder;
materialBuilder.deleteTextureBufferAfterLoad = false;

Also, the pmx loader does not load parameters into babylon.js that are not used by babylon-mmd by default.
If you want to convert all data from pmx losslessly, use the following code
pmxLoader.preserveSerializationData = true;

You also need to check the conversion options in BpmxConverter.
For example, if the mesh you want to convert is a stage and not a humanoid, you may not need skinning data or morph data.
const arrayBuffer = bpmxConverter.convert(mesh, {
    includeSkinningData: false,
    includeMorphData: false
});

And the translucentMaterials and alphaEvaluateResults options are data that indicate how the mesh should be shaded.
If these are not filled in, a specific algorithm will be used at load time to determine whether the mesh is opaque or translucent.

/**
 * BPMX convert options
 */
export interface BpmxConvertOptions {
    /**
     * Include skinning data into BPMX data (default: true)
     */
    includeSkinningData?: boolean;

    /**
     * Include morph data into BPMX data (default: true)
     */
    includeMorphData?: boolean;

    /**
     * Array that stores weather the material is rendered as translucent in order of mmd materials metadata (default: [])
     */
    translucentMaterials?: boolean[];

    /**
     * Array that stores material alpha evaluation result in order of mmd materials metadata (default: [])
     */
    alphaEvaluateResults?: number[];
}

Determining whether a material is opaque or translucent is impossible for an algorithm to do perfectly, so pmx converter provides a Fix material feature that allows you to manually specify how the material should be rendered using the GUI.
Fully automating it may cause the rendering results to look strange. However, if you want to perform a fully automated conversion, you might want to write your code like this
const textureAlphaChecker = new TextureAlphaChecker(scene);
const pmxLoader = SceneLoader.GetPluginForExtension(".pmx") as PmxLoader;
pmxLoader.loggingEnabled = true;
pmxLoader.preserveSerializationData = true;
const materialBuilder = pmxLoader.materialBuilder as MmdStandardMaterialBuilder;
materialBuilder.deleteTextureBufferAfterLoad = false;
// Load as alpha evaluation to let the pmx loader determine the alphaEvaluateResults result.
materialBuilder.renderMethod = MmdStandardMaterialRenderMethod.AlphaEvaluation;

const mmdMesh = await SceneLoader.ImportMeshAsync(
    "", "your/model/path/", "model.pmx", scene
).then(result => result.meshes[0] as MmdMesh);

const translucentMaterials: boolean[] = new Array(materials.length).fill(false);
const alphaEvaluateResults: number[] = new Array(materials.length).fill(-1);

const meshes = mmdMesh.metadata.meshes;
const materials = mmdMesh.metadata.materials;
for (let i = 0; i < materials.length; ++i) {
    const material = materials[i] as MmdStandardMaterial;
    const diffuseTexture = material.diffuseTexture;

    if (material.alpha < 1) {
        translucentMaterials[i] = true;
    } else if (!diffuseTexture) {
        translucentMaterials[i] = false;
    } else {
        translucentMaterials[i] = true;
        const referencedMeshes = meshes.filter(m => m.material === material);
        for (const referencedMesh of referencedMeshes) {
            const isOpaque = await textureAlphaChecker.hasFragmentsOnlyOpaqueOnGeometry(diffuseTexture, referencedMesh, null);
            if (isOpaque) {
                translucentMaterials[i] = false;
                break;
            }
        }
    }

    alphaEvaluateResults[i] = material.transparencyMode ?? -1; // just fill with evaluated results
}

const arrayBuffer = bpmxConverter.convert(mesh, {
    includeSkinningData: true,
    includeMorphData: true,
    translucentMaterials: translucentMaterials,
    alphaEvaluateResults: alphaEvaluateResults
});

There's no documentation to explain this yet, so please feel free to ask questions if you don't make sense.


$_GET['code'] is not set. Please re-authenticate.

Hi, thanks for this package. I just have an issue, after following the steps and visited /youtube/callback i get this error "$_GET['code'] is not set. Please re-authenticate.".
Please do you know what I might have missed?
I'm using Laravel 5.5
Thanks.

Hi, I've figured this out, thanks.

hello how did you solved this issue?


Question about fd_flags_set.rs test

I'm implementing wasi for my own wasm interpreter. One thing in this test that has me confused is this bit of code starting on line 60:
    // Seek back to the start to ensure we're in append-only mode
    wasi::fd_seek(file_fd, 0, wasi::WHENCE_SET).expect("seeking file");

    assert_eq!(
        wasi::fd_write(
            file_fd,
            &[wasi::Ciovec {
                buf: data.as_ptr(),
                buf_len: data.len(),
            }],
        )
        .expect("writing to a file"),
        data.len(),
        "should write {} bytes",
        data.len(),
    );

    wasi::fd_seek(file_fd, 100, wasi::WHENCE_SET).expect("seeking file");

    assert_eq!(
        wasi::fd_read(
            file_fd,
            &[wasi::Iovec {
                buf: buffer.as_mut_ptr(),
                buf_len: buffer.len(),
            }]
        )
        .expect("reading file"),
        buffer.len(),
        "should read {} bytes",
        buffer.len()
    );

    assert_eq!(&data[..], &buffer[..]);

The first line seeks back to the start of the file. Then it writes 100 bytes to the file. Then it does a seek SET to position 100, which seems to be the position the fd should already be at, then attempts to read 100 bytes into a buffer. I don't understand how this could ever succeed. It seems like it should be seeking back to the beginning of the file, not setting the position to 100 again. If it was supposed to be a relative seek to the beginning, I would expect it to use CUR and -100 offset, but that's not what it's doing. I'd appreciate some help understanding this. Thanks!

I guess the act of writing this out helped me realize that the file is in append mode, so after the file writes another 100 bytes, it is 200 bytes long, making the seek 100 set the file pointer to the middle of the file.


[BUG]: PopOver does not dismiss on list item clicks

Description
I have a popover similar to what you see in the story for that component. The problem is that the menu does not disappear when I click a menu item in the list (also demonstrated in the aforementioned story.) I tried to use the active prop to control its open state but that leads to problems since I am trying to use the component in a parent component which itself is a list of cards. This is especially problematic for my use case because I am trying to show a modal when an item in the menu is clicked which leaves the popover component open and it overlays above the Modal. I realize I could adjust the z-index for the popover but I would not like to. Instead, if there was a prop that I could pass to the component to tell it to hide the popover when a child component is clicked, especially a typical case for popovers used to display menus, that would be great!
As an aside, when using the active prop the component ignores "outside clicks" which means I needed to pass a ref to the component, as well as use your useOutsideClick hook to wire things up myself. Not a huge deal but it would be nice if the component didn't ignore outside clicks when active is used. I could use onClose to sync the external state when that happens.
Steps to Reproduce
Here's a sample demonstrating the problem with showing a modal while the popover is still open.
import { useState } from "react";
import { Button, Modal, PopOver, Pop } from "@vimeo/iris/components";

export function Test() {
  const [showModal, setShowModal] = useState(false);
  return (
    <>
      <PopOver
        content={
          <Pop.List>
            <Pop.Item onClick={() => setShowModal(true)}>Item 1</Pop.Item>
          </Pop.List>
        }
      >
        <Button>Open popover</Button>
      </PopOver>
      <Modal
        active={showModal}
        content={
modal content!
} onClose={() => setShowModal(false)}
        size="sm"
      />
    </>
  );
}

Storybook Demonstration
No response
Version
0.128.0
What browsers are you seeing the problem on?
Firefox
Relevant log output
No response
Screenshots
No response

Ping. Anyone?

Hey @praneetloke .
We looked into this and will be adding a prop to dismiss the menu on click.
We will also explore calling the onClose prop even when you are controlling the active state of the PopOver. That seems like the correct way for the component to work.

Awesome, thank you!

Hey @praneetloke! Thanks for bringing this up. You should actually be able to control the active prop with an onClick on the list item. It's also encouraged that you use the Modal.minors to compose your modal content. I put together an example here in this draft pr.
See the deployed story here.
Is this the interaction you were looking for?

@juliewongbandue thank you for adding the example. I took a look. The suggested approach unfortunately would not work when there are multiple PopOver's on a page as part of some parent list component, say, for example, if you had a list of card components each composed of a PopOver component where one of the PopOver menu item should open a Modal.

Hmm, I'm afraid I don't understand what what you mean-- could you recreate this example in a story?

@juliewongbandue if you have more than one instance of the Test component from the issue description it should demonstrate what I am trying to describe. For example,
export function List() {
  return (
    <Test />
    <Test />
    <Test />
  );
}

Hey @praneetloke ! No worries! So to dismiss the outside click we actually have a useOutsideClick hook available that I've included in my example: https://github.com/vimeo/iris/blob/173-bug-popover/src/components/PopOver/PopOver.story.tsx#L106-L108

@juliewongbandue thank you for that. That seems to work for me. I noticed that the ref object wasn't passed to the PopOver component. Is that not strictly necessary? This is what I did:
export function MyComp() {
  const ref = useRef(null);
  useOutsideClick(ref, () => {
    // Do something...
  });

  return <PopOver forwardRef={ref} ...><Button icon={<DotsMenu />} /></PopOver>
}

Hey @praneetloke, no problem. It is necessary, the useOutsideClick hook needs the ref of the component that you want to click outside of: https://github.com/vimeo/iris/blob/main/src/utils/hooks/useOutsideClick.ts

@juliewongbandue sounds good. Thank you for your help with this!


Update ci.yaml

Codecov Report
Patch and project coverage have no change.

Comparison is base (97915e0) 97.25% compared to head (cce13dc) 97.25%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##           master      #11   +/-   ##
=======================================
  Coverage   97.25%   97.25%
=======================================
  Files          51       51
  Lines        3165     3165
  Branches      517      517
=======================================
  Hits         3078     3078
  Misses         54       54
  Partials       33       33

Flag
Coverage Δ

python-3.11
97.06% <ø> (-0.13%)
:arrow_down:

python-3.9
97.18% <ø> (+0.09%)
:arrow_up:

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

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


Feature/scala3

Hi, I'm interested in giving zio-temporal a try but I'm on Scala 3. Is this PR going to be merged and released soon?

@oridag Hi, I appreciate your interest in temporal!
Sure, I'm still working on Scala 3 support, I just paused to proceed with other projects.
If you want to give it a try, I'll switch back to this PR and complete it soon 😄

@oridag JFYI, I did the hardest work for Scala 3 implementation. Tests and examples are now working for Scala 3 🎉 .
There are still a few things that I need to implement and optimize, but I hope by the end of this week, it will be ready 😄
After that, I gonna start adding a website with documentation.

That's fantastic, thank you!
I'm going on a vacation for a couple of weeks and then there's something else that will require my attention for a while so no rush from my end. I hope I can get back to Temporal and give zio-temporal a try sometime in September.

Just a few enhancements left, I'll add them later in a separate PR.
Everything else seems to be working (finaaaaaalyyy)

Hey @vitaliihonta, just got around to implement the Temporal integration and am stating to look into zio-temporal so I'll probably have some questions...
One thing I'm worried about is that it looks like the workflow execution code will block waiting for the results of activities. I can see that activity execution can be made non-blocking but not the workflow execution. Am I right? Is this a limitation in Temporal?
Anyway, thanks for open sourcing this, it looks very nice!
I might have more questions down the line, is there a more appropriate to ask them? Perhaps start a zio-temporal channel on the zio server in Discord?

Hey @oridag! Sure, feel free to reach me out in Zio discord 🙂
Regarding blocking for activities result. I'll suggest to read the temporal documentation. The workflow implementation for JVM is kinda tricky. It relies on thread interruptions and interface proxies, so the workflow code is not executed  exactly in the way it's declared


Module 'Graphics.Vty' does not export 'mkVty'

Compiling on Ubuntu 22.04 on the latest master:
logandark@LoganDark-HP ~/tart (master)> cabal new-build
Build profile: -w ghc-8.8.4 -O1
In order, the following will be built (use -v for more details):
 - brick-0.69.1 (lib) (requires build)
 - tart-0.3 (exe:tart) (first run)
Starting     brick-0.69.1 (lib)
Building     brick-0.69.1 (lib)

Failed to build brick-0.69.1.
Build log (
/home/logandark/.cabal/logs/ghc-8.8.4/brick-0.69.1-0e0fda1e99d5552325b32d44e750e28f4175d5e2b6ed0dccc7d252e4f7b7e89f.log
):
Configuring library for brick-0.69.1..
Preprocessing library for brick-0.69.1..
Building library for brick-0.69.1..
[ 1 of 25] Compiling Brick.AttrMap    ( src/Brick/AttrMap.hs, dist/build/Brick/AttrMap.o )
[ 2 of 25] Compiling Brick.BChan      ( src/Brick/BChan.hs, dist/build/Brick/BChan.o )
[ 3 of 25] Compiling Brick.Types.TH   ( src/Brick/Types/TH.hs, dist/build/Brick/Types/TH.o )
[ 4 of 25] Compiling Brick.Types.Common ( src/Brick/Types/Common.hs, dist/build/Brick/Types/Common.o )
[ 5 of 25] Compiling Brick.Themes     ( src/Brick/Themes.hs, dist/build/Brick/Themes.o )
[ 6 of 25] Compiling Brick.Widgets.Border.Style ( src/Brick/Widgets/Border/Style.hs, dist/build/Brick/Widgets/Border/Style.o )
[ 7 of 25] Compiling Data.IMap        ( src/Data/IMap.hs, dist/build/Data/IMap.o )
[ 8 of 25] Compiling Brick.BorderMap  ( src/Brick/BorderMap.hs, dist/build/Brick/BorderMap.o )
[ 9 of 25] Compiling Brick.Types.Internal ( src/Brick/Types/Internal.hs, dist/build/Brick/Types/Internal.o )
[10 of 25] Compiling Brick.Util       ( src/Brick/Util.hs, dist/build/Brick/Util.o )
[11 of 25] Compiling Brick.Types      ( src/Brick/Types.hs, dist/build/Brick/Types.o )
[12 of 25] Compiling Brick.Widgets.Internal ( src/Brick/Widgets/Internal.hs, dist/build/Brick/Widgets/Internal.o )
[13 of 25] Compiling Brick.Widgets.Core ( src/Brick/Widgets/Core.hs, dist/build/Brick/Widgets/Core.o )
[14 of 25] Compiling Brick.Widgets.ProgressBar ( src/Brick/Widgets/ProgressBar.hs, dist/build/Brick/Widgets/ProgressBar.o )
[15 of 25] Compiling Brick.Widgets.Edit ( src/Brick/Widgets/Edit.hs, dist/build/Brick/Widgets/Edit.o )
[16 of 25] Compiling Brick.Widgets.Center ( src/Brick/Widgets/Center.hs, dist/build/Brick/Widgets/Center.o )
[17 of 25] Compiling Brick.Widgets.Border ( src/Brick/Widgets/Border.hs, dist/build/Brick/Widgets/Border.o )
[18 of 25] Compiling Brick.Widgets.Table ( src/Brick/Widgets/Table.hs, dist/build/Brick/Widgets/Table.o )
[19 of 25] Compiling Brick.Widgets.Dialog ( src/Brick/Widgets/Dialog.hs, dist/build/Brick/Widgets/Dialog.o )
[20 of 25] Compiling Brick.Focus      ( src/Brick/Focus.hs, dist/build/Brick/Focus.o )
[21 of 25] Compiling Brick.Main       ( src/Brick/Main.hs, dist/build/Brick/Main.o )

src/Brick/Main.hs:74:5: error:
    Module ‘Graphics.Vty’ does not export ‘mkVty’
   |
74 |   , mkVty
   |     ^^^^^
cabal: Failed to build brick-0.69.1 (which is required by exe:tart from
tart-0.3). See the build log above for details.

I've successfully compiled on Ubuntu before, so I'm not sure what could be the issue. Perhaps standard library changes, or third-party dependency changes?
I can't just update brick, as the 0.70 update presumably introduced breaking changes, judging by the latest master commit.
logandark@LoganDark-HP ~/tart (master)> ghc -V
The Glorious Glasgow Haskell Compilation System, version 8.8.4
logandark@LoganDark-HP ~/tart (master)> cabal -V
cabal-install version <IP_ADDRESS>
compiled using version <IP_ADDRESS> of the Cabal library

Thanks for the report. This is because tart requires vty < 6.0.

I've pushed a patch to master to set the upper bound and I also updated the latest release on Hackage to use the same bound. @LoganDark let me know if you run into anything else!

Seems to build fine now, thanks! <3


simplify entry point to speed up loading time

The python files refered in addon.xml won't get compiled to bytecode, so we have to keep addon.py short and simple to speed up loading times.

Codecov Report

Merging #144 into master will increase coverage by 0.27%.
The diff coverage is 96.15%.

@@            Coverage Diff            @@
##           master    #144      +/-   ##
=========================================
+ Coverage   73.62%   73.9%   +0.27%
=========================================
  Files          20      21       +1
  Lines        1274    1276       +2
  Branches      245     244       -1
=========================================
+ Hits          938     943       +5
+ Misses        225     224       -1
+ Partials      111     109       -2

Impacted Files
Coverage Δ

addon.py
100% <100%> (+15.38%)
:arrow_up:

lib/api.py
95.65% <95.65%> (ø)

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 861bdea...d9cb607. Read the comment docs.


Alter the library methods to propagate an implicit ExecutionContext

For the old discussion please see #342.
I have decided to separate the execution contexts by the relation of the single tasks. Normally you use a special execution context to separate a group of same tasks to let it run on dedicated thread pool. So for Silhouette we have the following different tasks:

external HTTP requests (Gravatar requests, social provider requests)
IO operations (database operations, accessing the file system (dev/random))
internal operations (authenticator related actions or asynchronous callback execution)

All external HTTP requests can now use a single execution context which will be propagated through the HTTPLayer implementation. The DAO, service, repository and generator traits will not propagate an execution context through its methods. The execution context should be handled by the user through constructor injection. The DelegableAuthInfoRepository or the SecureRandomIDGenerator follows this pattern. For the Silhouette internal operations I've decided to propagate the execution context through the Environment as suggested by @rfranco.
What do you think @joaoraf and @rfranco?

@akkie i'm with doubt about AuthenticatorService maybe that should extends ExecutionContextProvider.
Anyway it looks good to go! :+1:

The idea with the AuthenticatorService was that it should be executed with the execution context passed to the Environment. In the Silhouette trait this may be true, but in the controller a user is able to pass a different execution context. I'm unsure about the right approach here. Should all authenticator methods use the same execution context?

It depends. If some authentication method, say oauth2 with Google,
represents for example 90% of the cases, you might want to isolate it from
the others.
Em Ter, 26 de mai de 2015 06:08, Christian Kaps<EMAIL_ADDRESS>escreveu:

The idea with the AuthenticatorService was that it should be executed
with the execution context passed to the Environment. In the Silhouette
trait this may be true, but in the controller a user is able to pass a
different execution context. I'm unsure about the right approach here.
Should all authenticator methods use the same execution context?
—
Reply to this email directly or view it on GitHub
https://github.com/mohiva/play-silhouette/pull/360#issuecomment-105457613
.

@joaoraf I think you have misinterpreted my question. An authenticator has nothing to do with the provider.

Sorry, I had just woken up! Please disregard it.
Em Ter, 26 de mai de 2015 10:46, Christian Kaps<EMAIL_ADDRESS>escreveu:

@joaoraf https://github.com/joaoraf I think you have misinterpreted my
question. An authenticator has nothing to do with the provider.
—
Reply to this email directly or view it on GitHub
https://github.com/mohiva/play-silhouette/pull/360#issuecomment-105529156
.

I've updated the AuthenticatorService, BasicAuthProvider and CredentialsProvider to use the ExecutionContextProvider.

@joaoraf Do you have any suggestions. Otherwise I would merge it.

Nope. Please go ahead. Can't wait to have this settled down to stop using
my fork.
Again, thanks to all contributors for the very useful library.
Em Ter, 26 de mai de 2015 15:50, Christian Kaps<EMAIL_ADDRESS>escreveu:

@joaoraf https://github.com/joaoraf Do you have any suggestions.
Otherwise I would merge it.
—
Reply to this email directly or view it on GitHub
https://github.com/mohiva/play-silhouette/pull/360#issuecomment-105632604
.

Thanks @rfranco and @joaoraf. I really appreciate your help on this issue. :+1:


Add in CustomModelData int's for Knot.

This permits custom models for textures on Vanilla Clients. I will attach a pastebin that contains the ID's matched to their respective items for the sake of organization.
https://pastebin.com/raw/5dt8f6VB

dear gavin, when stealing others code please consider making it actually work, it seems coding may not be for you, maybe stick to what you know, aka grooming friends [https://imgur.com/a/Z7tyaVr] https://imgur.com/a/Z7tyaVr

love alex

bump on this