Non-Square Image Resizer Tool

Hi,
A feature that I've been waiting for as part of the AndroidAssetStudio is to be able to resize non-square assets. It doesn't necessarily have to be icons and it doesn't need such features as trimming and changing colors but it would be nice to be able to define the target width and height and download all the dpi-specific versions.
Is something like this a possibility in the future?
Thanks.

Duplicate of #9


Unnecessary padding between tag union payload and discriminant

In a non-recursive tag union layout, the discriminant deliberately comes after the payload in memory. This is to allow it to be placed in what might otherwise become padding. According to roc glue, this optimization is not currently taking place. Given the following glue platform:
platform "test-platform"
    requires {} { main : _ }
    exposes []
    packages {}
    imports []
    provides [mainForHost]

mainForHost : [A U16 U8, B]
mainForHost = main

The following shape is emitted by the glue platform for mainForHost:
(TagUnion (NonRecursive {discriminantOffset: 4, discriminantSize: 1, ...))

Ideally discriminantOffset should equal 3, as that byte is now unnecessarily used as padding. This bug does not break anything, but it is a missed optimization.

My guess for this issue is that we are representing the union as {payload: {u16, u8}, tag: u8}. This leads to extra padding and is not what we want. We want {u16, u8, u8} where the last u8 in the struct is the tag.


describe parallel writes during an insert

@Amruta-Ranade the sequence diagrams (and accompanying .mmd files using mermaid) show how an insert is parallelized in detail.  @bdarnell please check for accuracy again :)

1.x and future 2.0 is described below.
connection from east and west are shown to show the concept of gateway and when the leaserholder is not the gateway
connection from west is when gateway happened to be the leaseholder and the raft leader which is the best case
what is now described is when leaseholder is not the raft leader (which could not happen but only for momentary) as it would be similar to the east connecting to west
mermaid sequence code can be cut/paste at https://mermaidjs.github.io/mermaid-live-editor/
examples show insert, but other DMLs (update and delete) would go through the same process

Below is 1.x behavior.

%% mmdc -i insert_singleton_ideal_west_1.x.mmd -o insert_singleton_ideal_west_1.x.png
sequenceDiagram
    participant Client West
    participant Node1
    participant Node2
    participant Node3
    participant Client East
    Client West->>+Node1: insert int x (1,'A')
Note Over Node1,Node3: Client connects to any node
Note Right of Node1: node1 is range leaseholder and raft leader
    Node1->>Node1:put /t/primary/1/val/'A'
    Node1->>-Node1:sync to disk
    par parallel to raft followers
        Node1->>+Node2: 1) put /t/primary/1/val/'A'
        Node2->>-Node2:sync to disk
    and parallel to raft followers
        Node1->>+Node3: 2) put /t/primary/1/val/'A'
        Node3->>-Node3:sync to disk
    end
Note Over Node1,Node3: done when NAJORITY of the followers and leader complete sync to disk
Node1->>Client West: commit

%% mmdc -i insert_singleton_ideal_east_1.x.mmd -o insert_singleton_ideal_east_1.x.png
sequenceDiagram
    participant Client West
    participant Node1
    participant Node2
    participant Node3
    participant Client East
    Client East->>+Node3: insert int x (1,'A')
Note Over Node1,Node3: Client connects to any node
Note Right of Node1: node1 is range leaseholder and raft leader
    Node3->>+Node1:put /t/primary/1/val/'A'
    deactivate Node3
    Node1->>-Node1:sync to disk
    par parallel to raft followers
        Node1->>+Node2: 1) put /t/primary/1/val/'A'
        Node2->>-Node2:sync to disk
    and parallel to raft followers
        Node1->>+Node3: 2) put /t/primary/1/val/'A'
        Node3->>-Node3:sync to disk
    end
Note Over Node1,Node3: done when MAJORITY of the followers and leader complete sync to disk
Node3->>Client East: commit

Below is 2.0 behavior.
The write to leaderholder/raft leader is parallel with the followers that should improve performance.

%% mmdc -i insert_singleton_ideal_west_2.x.mmd -o insert_singleton_ideal_west_2.x.png
sequenceDiagram
    participant Client West
    participant Node1
    participant Node2
    participant Node3
    participant Client East
    Client West->>+Node1: insert int x (1,'A')
Note Over Node1,Node3: Client connects to any node
Note Right of Node1: node1 is range leaseholder and raft leader
    Node1->>Node1:put /t/primary/1/val/'A'
    par parallel write to raft leader (New in 2.0)
        Node1->>-Node1:sync to disk
    and parallel to raft followers
        Node1->>+Node2: 1) put /t/primary/1/val/'A'
        Node2->>-Node2:sync to disk
    and parallel to raft followers
        Node1->>+Node3: 2) put /t/primary/1/val/'A'
        Node3->>-Node3:sync to disk
    end
Note Over Node1,Node3: done when NAJORITY of the followers and leader complete sync to disk
Node1->>Client West: commit

%% mmdc -i insert_singleton_ideal_east_2.x.mmd -o insert_singleton_ideal_east_2.x.png
sequenceDiagram
    participant Client West
    participant Node1
    participant Node2
    participant Node3
    participant Client East
    Client East->>+Node3: insert int x (1,'A')
Note Over Node1,Node3: Client connects to any node
Note Right of Node1: node1 is range leaseholder and raft leader
    Node3->>+Node1:put /t/primary/1/val/'A'
    deactivate Node3
    par parallel write to raft leader (New in 2.0)
        Node1->>-Node1:sync to disk
    and parallel to raft followers
        Node1->>+Node2: 1) put /t/primary/1/val/'A'
        Node2->>-Node2:sync to disk
    and parallel to raft followers
        Node1->>+Node3: 2) put /t/primary/1/val/'A'
        Node3->>-Node3:sync to disk
    end
Note Over Node1,Node3: done when MAJORITY of the followers and leader complete sync to disk
Node3->>Client East: commit

These are mostly accurate, but in the second and fourth cases, the fact that you've omitted the RPC responses creates the impression that the sync on node3 is responsible for sending the final OK to the client.
I've updated the second diagram with responses:
sequenceDiagram
    participant Client West
    participant Node1
    participant Node2
    participant Node3
    participant Client East
    Client East->>+Node3: insert int x (1,'A')
Note Over Node1,Node3: Client connects to any node
Note Right of Node1: node1 is range leaseholder and raft leader
    Node3->>+Node1:put /t/primary/1/val/'A'
    deactivate Node3
    Node1->>Node1:sync to disk
    par parallel to raft followers
        Node1->>+Node2: 1) put /t/primary/1/val/'A'
        Node2->>Node2:sync to disk
        Node2->>-Node1: ok
    and parallel to raft followers
        Node1->>+Node3: 2) put /t/primary/1/val/'A'
        Node3->>Node3:sync to disk
        Node3->>-Node1: ok
    end
Note Over Node1,Node3: done when MAJORITY of the followers and leader complete sync to disk
Node1->>-Node3: put ok
Node3->>Client East: ok

@bdarnell Good suggestions.  I make the changes to the others.  @Amruta-Ranade I can provide an outline for the page.

Completed the changes on the diagrams to show return, corrected typo on insert DML
Archive.zip

@robert-s-lee, is this essential for 2.0 or can we plan this work for post-release?

Having the doc in 2.0 would be beneficial.  Two specific areas:  1) highlight the potential performance improvements possible as outlined in https://github.com/cockroachdb/cockroach/pull/19229  2) gateway connecting to the leaseholder for the reading and writing.  Would additional outline in addition to the sequence diagrams help?

Closing in favor of Closing in favor of #3873.


Feature Request: Event for "down" when already on the last item

Checklist

[X] I have read through the manual page (man fzf)
[X] I have searched through the existing issues
[ ] For bug reports, I have checked if the bug is reproducible in the latest version of fzf

Output of fzf --version
0.56.3 (add1aec)
OS

[X] Linux
[X] macOS
[X] Windows
[ ] Etc.

Shell

[ ] bash
[ ] zsh
[ ] fish

Problem / Steps to reproduce
It would be great to have an event similar to backward-eof, but for pressing down when already on the last item of the list. My use case is using the up arrow to trigger fzf on my shell history, so if I press down, I'd like to call the abort action. I've been searching the docs for a while now and don't see a way to currently do this.

pressing down when already on the last item of the list.

Assign the transform[^1] action to the down key paired with a condition that may work depending on your layout.
reverse layout
abort if FZF_MATCH_COUNT and FZF_POS are equal; otherwise, down.
seq 3 |  fzf --layout=reverse \
  --bind 'down:transform:((FZF_MATCH_COUNT == FZF_POS)) && echo abort || echo down'

normal layout
abort if FZF_POS is one or smaller; otherwise, down.
seq 3 |  fzf --layout=default  \
  --bind 'down:transform:((FZF_POS <= 1)) && echo abort || echo down'

[^1]: fzf/CHANGELOG.md 0.45.0
[^2]: fzf/CHANGELOG.md 0.46.0

Thanks, I misunderstood what "transform states" meant for transform, makes more sense now.
I'm working on some elvish shell integrations, here is the solution when it is set as your shell:
--bind 'down:transform:if (<= $E:FZF_POS 1) { print abort } else { print down }'


Hyperlinks in Annotations

Is is possible to make lead text for annotations an active URL link?

Yes, this shouldn't be an issue. We can support a selection of html tags, like link, bold, italic.

Here is another potential idea.  It is a 3D viewer that the Smithsonian
created to view their objects in 3D.  Here is an example:
https://3d-api.si.edu/voyager/3d_package:341c96cd-f967-4540-8ed1-d3fc56d31f12
I set this up a few years ago with a 3D model of Starry Night, but I think
it needs to be done with a sculpture like She-Goat
https://tms.moma.org/#/detail/81670.
https://github.com/Smithsonian/dpo-voyager
Just a thought.
Steve
Steven MOORE
Developer & Database Administrator
Department of Information Technology
Change is Modern. Discover something new every day at MoMA
http://moma.org/.
The Museum of Modern Art
11 West 53 Street
New York, NY 10019
212.708.9706
813.240.0587
On Tue, Dec 6, 2022 at 8:16 AM Jamie Cope @.***> wrote:

Yes, this shouldn't be an issue. We can support a selection of html tags,
like link, bold, italic.
—
Reply to this email directly, view it on GitHub
https://github.com/Smithsonian/dpo-voyager/issues/176#issuecomment-1339365364,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGCHVT6FJAEGHJDSKO7VJ3WL44C3ANCNFSM6AAAAAASQTTA5Q
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Deleted my previous comment.  Internally, we have a discussion going around about a "Tech Showcase" - something we do about once a year.  Among ML, AI, and other examples, I suggested to my colleagues that we try this project, meaning show it to a group of other museum staff so that they know this exists for potential use cases.  Steve

Added this feature in v0.24.0. through support for bold, italic, and link HTML tags in annotations.


Error 0xc000007b

Hello,
No matter what's i'm doing (Compile Myself, or using any release version), i've the following error :

Any idea ?
Thanks

hi,
this application designed to run on 64-bit operating system and need 64 bit libraries (OpenSSL).

It's seems i'm having all requierement ?

Same with lastest version, any help ?

Fixed, wish you the best, and have a nice day.
Thanks.

How did you fix this @benda95280? Having the same issue.

@benda95280 could you share your fix?


MobFoxInlineVideoAd.h properties

Hi there,
when I'm compiling my Xcode project with your SDK, Xcode warns me since there are a few properties with missing attributes.
@property WebViewJavascriptBridge* bridge;
@property NSString* longitude;
@property NSString* latitude;
@property NSString* demo_gender; //"m/f"
@property NSString* demo_age;
@property NSString* s_subid;
@property NSString* sub_name;
@property NSString* sub_domain;
@property NSString* sub_storeurl;
@property NSString* v_dur_min;
@property NSString* v_dur_max;
@property NSString* r_floor;
@property BOOL autoplay;
@property BOOL skip;
I'm not using ARC and the compiler tells that assign is assumed as attribute. However, for NSString it should be copy as far as I know (http://stackoverflow.com/questions/387959/nsstring-property-copy-or-retain).
I'm unsure about the WebViewJavaScriptBridge.

Hi,
Can you please post the warnings you're getting? I'll happily fix it.
Thanks

Is that sufficient?

Yes, thanks. I'll try to upload a fix tomorrow.

WebViewJavascriptBridge* bridge made private as it should be. Fixed the others and pushed.
Should also appear in the MobFox control panel in about 30 minutes or so.


Draft full scan skipping

Summary of the changes (Less than 80 chars)
Draft for limiting scan for hasNextPage
Closes #2934

if IncludeTotalCount - run as before
If lastEdge is null - do not execute Count. lastEdge?.Index < totalCount - 1 will always false
If lastEdge exists - Take only slice + 1 after lastEdge.Index to check next page

TODOs:

What is the next page? Does it (first or last) ?? default?

Have you looked at pascal changes?

https://github.com/ChilliCream/hotchocolate/pull/3727

@michaelstaib Hmm. no...
Pascal is doing complete rework for v12. I am trying to fix fullscans when totalCount is disabled for... v11 i guess?
Should i do something for it or just wait v12?
More context:
I am using CockroachDB and tried to enable sql.defaults.disallow_full_table_scans.enabled https://www.cockroachlabs.com/docs/v20.2/cluster-settings. I surprised that HC with disabled total count is still querying it)
An exception occurred while iterating over the results of a query for context type 'Redacted.DbContext'.
Npgsql.PostgresException (0x80004005): P0003: query `SELECT COUNT(*)::INT
FROM redacted AS m` contains a full table/index scan which is explicitly disallowed
   at Npgsql.Internal.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|208_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) in Npgsql.dll:token 0x6000a03+0x49e
   at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) in Npgsql.dll:token 0x6000474+0x780
   at Npgsql.NpgsqlDataReader.NextResult() in Npgsql.dll:token 0x6000472+0x32
   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) in Npgsql.dll:token 0x60002ca+0x35e
   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) in Npgsql.dll:token 0x60002ca+0x19
   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior) in Npgsql.dll:token 0x60002c6+0x16
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) in Npgsql.dll:token 0x60002c4+0x0
   at System.Data.Common.DbCommand.ExecuteReader() in System.Data.Common.dll:token 0x60015c6+0x0
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) in Microsoft.EntityFrameworkCore.Relational.dll:token 0x6000444+0xab
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.Enumerator.InitializeReader(Enumerator enumerator) in Microsoft.EntityFrameworkCore.Relational.dll:token 0x6001a6d+0x86
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.Enumerator.<>c.<MoveNext>b__18_0(DbContext _, Enumerator enumerator) in Microsoft.EntityFrameworkCore.Relational.dll:token 0x6001e5d+0x0
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) in Npgsql.EntityFrameworkCore.PostgreSQL.dll:token 0x60002b7+0x0
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.Enumerator.MoveNext() in Microsoft.EntityFrameworkCore.Relational.dll:token 0x6001a6c+0x45
  Exception data:
    Severity: ERROR
    SqlState: P0003
    MessageText: query `SELECT COUNT(*)::INT
FROM redacted AS m` contains a full table/index scan which is explicitly disallowed
    Hint: try overriding the `disallow_full_table_scans` cluster/session setting
    File: conn_executor_exec.go
    Line: 956
    Routine: makeExecPlan

@sergeyshaykhullin actually no ... we did a full rework for 12 but he also did some work for 11. Let's have pascal a look.
@PascalSenn can you handle this one? I do not want to step you on the toe :)

@sergeyshaykhullin  that is correct, we do not want to break the interfaces for 11. But the only thing we really break are the protected members of the pagination handlers, as these are not needed anymore.
You could use the the cursor pagination provider also with 11:
https://github.com/ChilliCream/hotchocolate/blob/8613be59101274648a033c42f779e030ffbaca9b/src/HotChocolate/Core/src/Types.CursorPagination/QueryableCursorPagingHandler.cs
The extension methods for IQueryable should already be available in  the lastest perview of v11 and will end up in 11.3 :)
You can define a custom pagination handler and register it on the schema

@PascalSenn Thanks! I will try


adb-sync doesn't copy files properly if names are same on local and remote

I think this is due to self.both isn't processed for PerformCopies.  I have a file with two lines that have the same length, where I comment out one line, and uncomment out another.  Then I toggle this, and the file isn't copied.  If I change the length of the lines, then src_only picks up the change.
This is with "adb-sync --delete --force ...".  I also applied the "--times" fix in another issue, added --times, and fresh synced the content, but that still doesn't fix this issue on subsequent copies.
This self.both list seems to be created if the path on local matches the path on the remote, the stats aren't compared.  But a copy is still needed if the modstamp differs.    I only see self.both uses in overwrites and deletions, and not in the copy step.  PerformCopies only walks the self_only list.
This means that the content on device is not correct, and doesn't reflect any mods that were made to the source directory.  The modstamp, filesize, etc can all be different by adb-sync doesn't seem to check those.  Please tell me I'm misreading something here, and that this important utility has been broken for all these years.
BuildFileLists
    this creates List[Tuple[path, stats]]

def DiffLists(...)
    if a_item[0] == b_item[0]:  <- seems to only compare the path portion of the tuple from BuildFileLists, should this be comparing a_item[1] == b_item[1], and same on two calls below
      both.append((a_item[0], a_item[1], b_item[1]))
      a_revlist.pop()
      b_revlist.pop()
    elif a_item[0] < b_item[0]:
      a_only.append(a_item)
      a_revlist.pop()
    elif a_item[0] > b_item[0]:
      b_only.append(b_item)
      b_revlist.pop()
    else:

def PerformCopies(self) -> None:
    """Perform all copying necessary for the file sync operation."""
    for i in [0, 1]:
      if self.src_to_dst[i]:
        for name, s in self.src_only[i]: <- this is only walking the src_only list build from DiffLists, self.both is ignored

The following code could handle it, but skips if the file sizes match.  But the content may be different (modstamps differ) even if the file size is the same.  I'm assuming file padding is ignored from st_size.  My understanding of overwrites is that they were meant to handle folders <-> files.
def PerformOverwrites(self) -> None:

     for name, localstat, remotestat in self.both:  <- okay this walks the both list
      if stat.S_ISDIR(localstat.st_mode) and stat.S_ISDIR(remotestat.st_mode):
        # A dir is a dir is a dir.
        continue
      elif stat.S_ISDIR(localstat.st_mode) or stat.S_ISDIR(remotestat.st_mode):
        # Dir vs file? Nothing to do here yet.
        pass
      else:
        # File vs file? Compare sizes.
        if localstat.st_size == remotestat.st_size:  <- this earlies out off file size
          continue

I'm trying this small change to DiffLists:
    if a_item[0] == b_item[0]:
      # if a.mtime is greater, then want in a_only to do the copy
      if a_item[1].st_mtime > b_item[1].st_mtime:
        a_only.append(a_item)
      else:
        both.append((a_item[0], a_item[1], b_item[1]))
      a_revlist.pop()
      b_revlist.pop()

Also seems like there's an "adb shell stat -c "%y" filename" command that might return more precise timings than "ls -al" which only shows timings to minutes.  But this would have to get called for each filename.  At least here the seconds are available.
2020-11-25 00:16:05.000000000

I rewrote the timestamp parsing to use microseconds by cropping the nanos returned by ls -ll, and also using the UTC timestamp returned.   I stoped using --times since it only sets low resolution timings via "adb touch" and it's slow, and the "adb push" uses to emulate copy already preserves modstamps.
Then I added the modstamp tests on non-directories mentioned above, and fixed the "both" logic to skip copies off a newer modstamp.  This all finally got adb-sync to sync files properly to the device.

Looks like "adb push" if you pull the cable to the device in the middle of any push leaves a partial file with the current modstamp set as well.   This means you have a partial copy of the file on the device, and since adb sync only checks modstamps, then it breaks our builds.  This was on macOS which from what I understand emulates the file transfer protocol Android uses.

Looks like "adb push" if you pull the cable to the device in the middle of any push leaves a partial file with the current modstamp set as well.   This means you have a partial copy of the file on the device, and since adb sync only checks modstamps, then it breaks our builds.  This was on macOS which from what I understand emulates the file transfer protocol Android uses.

We ended up dumping adb-sync except for excruciatingly slow deletes that are done one file at a time even if all the files under a folder are deleted.   The general idea is as follows, and this is crazy fast and more safe than adb-sync.
	# First use "adb sync" to copy newer files to the device.
	"adb push --sync folder/* /sdcard/Android/data/com.appdomain/files/"

	# Now use python script "adb-sync" to delete files not present in current build.  no-clobber so that it doesn't copy any files.  Strip this python script down to just handling deletes.
	"adb-sync --delete --no-clobber folder/ "/sdcard/Android/data/com.appdomain/files/"

We ended up dumping adb-sync except for excruciatingly slow deletes that are done one file at a time even if all the files under a folder are deleted.   The general idea is as follows, and this is crazy fast and more safe than adb-sync.
	# First use "adb sync" to copy newer files to the device.
	"adb push --sync folder/* /sdcard/Android/data/com.appdomain/files/"

	# Now use python script "adb-sync" to delete files not present in current build.  no-clobber so that it doesn't copy any files.  Strip this python script down to just handling deletes.
	"adb-sync --delete --no-clobber folder/ "/sdcard/Android/data/com.appdomain/files/"


Segfault on Oppo Reno 3 with MediaTek 1000

Original https://github.com/mlcommons/mobile_app/issues/605

Per @freedomtan - no elegant solution found yet. Will disable neuron delegate for this device in the backend.

avoid using Neuron delegate for Oppo Reno 3 in https://github.com/mlcommons/mobile_app_open/pull/50


Only offer email fields for 'author's email field'?

How about this? Not sure whether it's in scope for form-designer or people are expected to roll their own solution?
def email_field_choices(form: forms.ModelForm | None, required: bool=True) -> list[tuple[str, str]]:
    if not form:
        return []
    email_fields = form.instance.fields.filter(type='email')
    choices = [] if required else [('', '--')]
    choices.extend([(_.name, _.title) for _ in email_fields])
    return choices

...

class Form(models.Model):
    CONFIG_OPTIONS = [
        ...
                        "author_email_field",
                        forms.ChoiceField(
                            required=False,
                            choices=email_field_choices(form, required=False)

merged #40

Thanks!


Backport lwaftr_starfruit v2.9 changes to lwaftr

lwAFTR v2.8 log:
$ git log --no-merges --pretty=format:"%h %s" v2.8..v2.9

b7f876e v2.9 changelog
38f6a74 Default headroom in Lua, not C
8d91975 Bump packet headroom to 64 bytes.
b4c0fb9 Adapt virtio to use packet.shift for its headers
8d8f245 Add assertions in packet.lua
08df8af Refactor packet headroom mechanism
a58c4d2 lwaftr is resilient to changes in p.data
cbc8882 Bring length back to beginning of struct packet
1927541 Indirect access to packet data
fe12a0e Fix assumptions that packet == packet.data
69a29ad virtio-net driver: Use direct descriptors
45e346d Disable backpressure on intel driver
df8e83c vhost-user: Support operation without MRG_RXBUF.
10901b8 vhost_user: Fix & comment "feature cache"
d3939dc Add some headroom before a packet's data.
ea865e9 virtio-net driver: Use C header files
c784e19 Cleanup of lwaftrctl script
None commits were present in the lwaftr branch, except two:
df8e83c vhost-user: Support operation without MRG_RXBUF.
10901b8 vhost_user: Fix & comment "feature cache"
All the rest need to be backported. This PR includes the commits present in #371 and #372.

bare-metal benchmark:
snabb1
sudo numactl -m 0 taskset -c 1 ./snabb lwaftr run --conf lwaftr.conf --v4 02:00.0 --v6 02:00.1

snabb2
$ sudo numactl -m 0 taskset -c 1 ./snabb lwaftr loadtest -D 1 -b 10e9 -s 0.2e9 from-inet-0550.pcap "NIC 0" "NIC 1" 02:00.0 from-b4-0550.pcap "NIC 1" "NIC 0" 02:00.1

Applying 8.800000 Gbps of load.
  NIC 0:
    TX 1999997 packets (1.999997 MPPS),<PHONE_NUMBER> bytes (8.799987 Gbps)
    RX 1999997 packets (1.999997 MPPS),<PHONE_NUMBER> bytes (9.439986 Gbps)
    Loss: 0 packets (0.000000%)
  NIC 1:
    TX 1999997 packets (1.999997 MPPS),<PHONE_NUMBER> bytes (8.799987 Gbps)
    RX 1999997 packets (1.999997 MPPS),<PHONE_NUMBER> bytes (8.159988 Gbps)
    Loss: 0 packets (0.000000%)
Applying 9.000000 Gbps of load.
  NIC 0:
    TX 2045418 packets (2.045418 MPPS),<PHONE_NUMBER> bytes (8.999839 Gbps)
    RX 2037006 packets (2.037006 MPPS),<PHONE_NUMBER> bytes (9.614668 Gbps)
    Loss: 8412 packets (0.411261%)
  NIC 1:
    TX 2045418 packets (2.045418 MPPS),<PHONE_NUMBER> bytes (8.999839 Gbps)
    RX 2045418 packets (2.045418 MPPS),<PHONE_NUMBER> bytes (8.345305 Gbps)
    Loss: 0 packets (0.000000%)
Applying 9.200000 Gbps of load.
  NIC 0:
    TX 2090880 packets (2.090880 MPPS),<PHONE_NUMBER> bytes (9.199872 Gbps)
    RX 2036875 packets (2.036875 MPPS),<PHONE_NUMBER> bytes (9.614050 Gbps)
    Loss: 54005 packets (2.582884%)
  NIC 1:
    TX 2090880 packets (2.090880 MPPS),<PHONE_NUMBER> bytes (9.199872 Gbps)
    RX 2090880 packets (2.090880 MPPS),<PHONE_NUMBER> bytes (8.530790 Gbps)
    Loss: 0 packets (0.000000%)

Virtualized:
Applying 8.800000 Gbps of load.
  NIC 0:
    TX 1999998 packets (1.999998 MPPS),<PHONE_NUMBER> bytes (8.799991 Gbps)
    RX 1993987 packets (1.993987 MPPS),<PHONE_NUMBER> bytes (9.411619 Gbps)
    Loss: 6011 packets (0.300550%)
  NIC 1:
    TX 1999998 packets (1.999998 MPPS),<PHONE_NUMBER> bytes (8.799991 Gbps)
    RX 1994077 packets (1.994077 MPPS),<PHONE_NUMBER> bytes (8.135834 Gbps)
    Loss: 5921 packets (0.296050%)
Applying 9.000000 Gbps of load.
  NIC 0:
    TX 2045431 packets (2.045431 MPPS),<PHONE_NUMBER> bytes (8.999896 Gbps)
    RX 2036819 packets (2.036819 MPPS),<PHONE_NUMBER> bytes (9.613786 Gbps)
    Loss: 8612 packets (0.421036%)
  NIC 1:
    TX 2045431 packets (2.045431 MPPS),<PHONE_NUMBER> bytes (8.999896 Gbps)
    RX 2043141 packets (2.043141 MPPS),<PHONE_NUMBER> bytes (8.336015 Gbps)
    Loss: 2290 packets (0.111957%)
Applying 9.200000 Gbps of load.
  NIC 0:
    TX 2090850 packets (2.090850 MPPS),<PHONE_NUMBER> bytes (9.199740 Gbps)
    RX 2036242 packets (2.036242 MPPS),<PHONE_NUMBER> bytes (9.611062 Gbps)
    Loss: 54608 packets (2.611761%)
  NIC 1:
    TX 2090850 packets (2.090850 MPPS),<PHONE_NUMBER> bytes (9.199740 Gbps)
    RX 2080684 packets (2.080684 MPPS),<PHONE_NUMBER> bytes (8.489191 Gbps)
    Loss: 10166 packets (0.486214%)

lgtm.  thank you!


Remove 'data' prefix from attributes

Remove the 'data' prefix from custom attributes.

@ilanbiala per your request...

Doesn't this go against HTML validation standards?  data- is supposed to be included anytime you have a custom attribute not defined by W3C

@trainerbill The angular style guide that I personally refer back too (and I think it's been mentioned before in a previous issue) never even references using data-. I'm not familiar with how it plans into validation standards though.
https://github.com/johnpapa/angular-styleguide

ng-submit kind of custom attribute is probably not valid by W3C, but the data-ng-submit is valid. I'm not sure what reasons did @ilanbiala had about removing it

Personally, Im going to keep data- prefixes in my apps due to W3C validation tests and also to avoid future browser implementations that might create conflicts with ng- attrs which I'm pretty sure there won't be any but, from my point of view it's safer and since it is defined in the [HTML5 spec] (http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes) why not keep it? :D

yeah I'm not sure why we removed it, need to wait for Ilan's response here

Data- was just to comply with XHTML IIRC. HTML5 allows all kinds of custom attributes if I'm not mistaken and syntax highlighters will work with either one. data- also just adds extra characters and makes everything longer. Anyway Some Angular HTML sometimes doesn't pass through W3C (and we know that isn't what necessarily makes a page better), so I don't see why we should try to conform more towards it.

HTML5 is also strict about the attributes type and it would prefer a data-* over plain custom.
Since AngularJS normalizes those attribute names I don't think it's worth any hassle to remove the data-* version that we have.
Unless there's a strong argument in removing data-* I think we can close this PR.

@lirantal I don't really care, but we shouldn't be inconsistent and I see no reason to do data- when almost no one does.

I haven't seen a strong argument towards removing data-* attributes so I'm not 100% convinced about removing it.

LGTM :-D
:+1:


Sentinelhub=3.0.0b1 is slow when downloading images

Hi, I'm trying out the new Sentinelhub version (sentinelhub==3.0.0b1 conda-forge package, installed in py37_v9) for my pipeline collecting Sentinel 2 L1C images for 100 fields. However, I found the new version really slow compared to the older version (sentinelhub==2.6.0 PIP package installed in py37_v8) which I previously used, as shown in the table below.

Fields
dask worker processes
dask worker threads
Conda env
max_threads
Time

100
1
20
py37_v8
default= os.cpu_count()*5=200
13min 51.0s

100
20
1
py37_v8
default= os.cpu_count()*5=200
4min 56.8s

100
1
20
py37_v9
200
35min 46.2s

100
20
1
py37_v9
200
42min 36.9s

100
1
20
py37_v9
32
31 min

100
20
1
py37_v9
32
41min 30.7s

100
1
20
py37_v9
10
52min 16.7s

NOTE:

No cache was used in the runs as the cache folder was deleted between runs.
My pipeline is executed on a dask cluster, and the columns dask worker processes and dask worker threads refer to the configuration of the dask cluster, see https://distributed.dask.org/en/latest/worker.html#thread-pool for more details.
The runs with py37_v9 use an OAuth client, as sentinelhub==3.0.0b1 offers the use of an OAuth client and prompts a warning if you are not using it.
The max_threads is the argument giving to get_data(), see https://sentinelhub-py.readthedocs.io/en/latest/data_request.html#sentinelhub.data_request.DataRequest.get_data. For the runs with py37_v8, the argument was not provided, thus, the default number of threads were used. The Conda environment  py37_v8 contains Python  3.7 where the default max_threads from ThreadPoolExecutor is os.cpu_count*5 as seen here: https://github.com/python/cpython/blob/3.7/Lib/concurrent/futures/thread.py#L127. This results in max_threads=200, as our machine has 40 hyperthreaded cores.

Question: Do you have any idea why 3.0.0b1 is so much slower?

Yes, in 3.0.0b1 we tried to implement a "smart" rate limit algorithm that would collect information about policy buckets and try to predict when to make next request according to current bucket capacities and estimated frequency of downloads. This way we wanted to avoid hitting rate limit on service too often. However, it turned out the algorithm was too careful and in some cases significantly slowing down the download process.
Now in 3.0.0 we completely simplified the algorithm. The new version now only checks it the rate limit on the service has been hit and waits the recommended amount of time. This way it does not slow down the download process at all but also hits the rate limit much more often.
Our plan is now to wait for a few months to see if the new algorithm works well and if the service is being hit by too many rate-limited requests. According to that, we might further adjust the algorithm.
Thanks for this nice benchmark. It was very helpful when trying to debug the old version of the algorithm. I'm closing this issue for now, but feel free to re-open if you experience any problems with the new version.


Cannot read property 'length' of undefined

Doesn't handle an empty stream
https://runkit.com/embed/jcavy8bpimzw

This shall be fixed with latest version 4.1.0.


CHEBI:44597 structure

Dear ChEBI curators,
Could you please add a structure to CHEBI:44597?
Many thanks for your help,
Nevila Hyka-Nouspikel
 alltrans4oxoretinol.pdf

Now done!
Best regards,
Gareth


Call to undefined method Sygmaa\Grids\GridsShortcuts::field()

There is an error that makes this package unusable - Call to undefined method Sygmaa\Grids\GridsShortcuts::field(). I copied code from readme and double-checked it for typos.

Thank you. I'm working on new features and I forgot to update the documentation. I do it now.


Can't locate the data for spill.json. Am I missing something here?

Hi @rainitesh,
this data is not included in the repository. It is example data, too big and not necessary.
You can get it from here: http://apps.socib.es/Leaflet.TimeDimension/examples/data/spill.json


Exec to git for dirtiness detection to avoid slow Worktree.Status() calls

This is an old ticket from before go-git got moved over but the underlying problem seems to endure: https://github.com/src-d/go-git/issues/844
This change cuts the latencies around version detection from ~30ish secs to 1 second on large repos.

Heh: https://github.com/pulumi/pulumi/pull/1319

Love it, thank you!


White line appears in Animated Sprite 3D

Godot version
3.4.4 stable
System information
Windows 10
Issue description
Dear,
A white line (sometime grey) appears at the edge of a picture (animated sprite 3d). It appears on F5 or F6 debug. It also appears on win executable...

Note: when I try to resize the window, it seems to vanish and appear again according to the window size...
The config I have changed from a default settings are:

Thanks a lot
Regards,
Riad
Steps to reproduce
I used AnimatedSprite3D and added some animation

Minimal reproduction project
No response

I wanted to add that there's "Alpha Cut" parameter under Flags of the AnimatedSprite3D Inspector. When I put this parameter to disable it seems to fix definitely the problem BUT it will produce a weird image as a result (edge of any content in the picture will look very sharp)

This is caused by floating-point precision errors in the UV mapping, since the texture is being upscaled (it's not displayed at 1:1 size). Try disabling Repeat on the texture's import options. If that doesn't work, add a transparent 1-pixel border around the sprite's edges in an image editor.

Thanks a million Calinou!
Disabling Import>Flags>Repeat makes it work as intended...


Extract ContextKeyService from KeybindingsService

Fixes #5614

Coverage increased (+0.01%) to 62.509% when pulling 38e0840fb48f9f9b0537dbfd2e1e9e2ff7b3fb37 on keybindings-service into 7f15980aaa768b05e10f09bc42dbb29a22c8b7dc on master.


Is possible multilingual English and Spanish

Is possible prompt and output in English or Spanish?

support multilingual, you can set prompt


chore(config): ignore I100 of flake8

Description

Since we sort imports using isort and pre-commit, there is no need to check this.
https://github.com/PyCQA/flake8-import-order
I'd like to disable this because it sometimes raises false positives.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

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

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

[ ] The PR follows the pull request guidelines.

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

[ ] There are no open discussions or they are tracked via tickets.

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

@kenji-miyake what if we use the pep8 configuration for checking imports? It does not enforce order, only groups:
https://github.com/PyCQA/flake8-import-order#styles=

pep8 - style that only enforces groups without enforcing the order within the groups

@esteve It worked as well. But I'm not sure which is better. :thinking:
https://github.com/ament/ament_lint/blob/ebd524bb9973d5ec1dc48a670ce54f958a5a0243/ament_flake8/ament_flake8/configuration/ament_flake8.ini
Do you think changing to pep8 is better? If so, I'll change so.


copr: cast invalid utf8 string to real bug

Signed-off-by: guo-shaoge<EMAIL_ADDRESS>
What problem does this PR solve?
Issue Number: close #TiDB issue 23322
Problem Summary: When cast bytes to real, we first cast bytes to utf8, so it will return ERROR when bytes are not valid utf8 string.
What is changed and how it works?
What's Changed: Just like bytes to int, we first get valid utf8 prefix from bytes, then convert it to float.
Related changes

Need to cherry-pick to the release branch

Check List
Tests

Unit test: test_bytes_to_f64_invalid_utf8()

Side effects: no
Release note

copr cast invalid utf8 string to real bug fix

@skyzh PTAL

@lzmhhh123 PTAL

/merge

@AilinKid

/test

/test

/label needs-cherry-pick-4.0
/label needs-cherry-pick-5.0


Ingestion module/project setup

Description
Issue Link: https://github.com/orgs/OpenBCca/projects/3/views/5?pane=issue&itemId=52736950
Summary of change

Setup up a scrapy project to start working on crawlers
Wrote an initial readme with setup instructions

Type of Change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

[ ] Unit Test
[ ] Integration Test
[ ] E2E Test

Checklist:
Before you submit your pull request, please make sure you have completed the following:

[ ] I have read the CONTRIBUTING document.
[ ] I have checked that my code adheres to the code style of this project.
[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[ ] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] New and existing unit tests pass locally with my changes.
[ ] Any dependent changes have been merged and published in downstream modules.

Screenshots (if applicable)
screenshot of the new folders

Include any relevant screenshots or screen recordings demonstrating your changes.
Additional Notes
Add any other notes about the pull request here.

looks like most of the code is scrappy specific. i don't have enough background in the tool to comment.


Feature/tclune/#81 compute coords locally

Updated fv3.j to include the new control flag for using the new and improved coordinate calculations in dycore.

I can confirm this along with https://github.com/GEOS-ESM/GFDL_atmos_cubed_sphere/pull/83 is zero-diff.
cc: @wmputman

I had to do a merge here. so I'll do one more test to make sure all is zero-diff.

Now that fvdycore geos/v2.7.0 is out, we can release this.


Memory monitoring measurement

Adding eventlog parse logics for memory monitoring.

/gcbrun

We can split the change to 2 PRs, we first merge the eventlog parsing logic, and wait for it to deploy to the service. And then merge the measuring logic PR, so the image test can pass here.

/gcbrun

We can split the change to 2 PRs, we first merge the eventlog parsing logic, and wait for it to deploy to the service. And then merge the measuring logic PR, so the image test can pass here.

Looks like confidential space VMs failed to start due to unknown COS event type errors returned by VerifyAttestation if we add measuring logics to this PR.
Done.

/gcbrun

/gcbrun

/gcbrun

/gcbrun


Release v0.1.4

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/73442
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.4 -m "<description of version>" 83606f65414814ec0650493f53c654a11ab48b36
git push origin v0.1.4


[feature] Web hook drive strategy + Decouple api clients

Addresses: https://github.com/restarone/violet_rails/issues/682
Api Keys:
https://user-images.githubusercontent.com/50227291/196992417-ab91ed2e-1514-4abf-9954-d44123542583.mov
Webhook:
https://user-images.githubusercontent.com/50227291/196992487-4c3c9593-4cb6-4b8c-8f7b-c6e22d9385a2.mov
The webhook's payload can be accessed as parameters[:request]['body'] in external api client.
Eg: https://github.com/restarone/violet_rails/pull/1167/files#diff-1aa9cadc4b4c76bf7ec3d7c0cf8d0da66be3ba87336bad4d32241c99d53aa6beR603-R623
    class ExternalApiModelExample
      def initialize(parameters)
        @external_api_client = parameters[:external_api_client]
        @request = parameters[:request]
      end

      def start
        if @request['body']['type'] == 'customer.created'
          @external_api_client.api_namespace.api_resources.create(
            properties: {
              request_body: @request["body"]
            }
          )
        end
      end

Custom webhook verification method:
https://user-images.githubusercontent.com/50227291/197921958-a06b85a8-7c7a-4e3b-afb9-889fe5c6e110.mov

@Pralish please see below for my feedback:

can you add the HTTP method in the generated documentation? I believe it should be POST

When stripe is selected, the label should be Webhook signing secret

Its not clear in the inline documentation what verification_method means. What exactly is it? I thought that verification method was the custom method definition that would be entered in the form

@kripananda-yadav to coordinate with @Pralish to create a permanent test case for this feature. I recommend creating an endpoint that takes a date range and exposes cars created between that range (https://violet-test.net/car-renderer)

@donrestarone , I have addressed your feedback.
Let me know what you think?

@Pralish could you fix the merge conflicts here when you get a chance?

@Pralish there is a test failure related to API access by category (CC @alis-khadka ) -- can you address it so @kripananda-yadav can start UAT?

@donrestarone , I have addressed your feedback.
Let me know what you think?

Inline docs look good! can you write up a GitHub issue that documents how to setup a web hook connection class? After release we can use that GitHub issue to update the docs: https://github.com/restarone/violet_rails/wiki/API:-Entities,-Form-Rendering,-Interfaces-and-Actions#automation-connecting-and-extracting-data-from-external-systemsapis

Acceptance Criteria:(In Progress)
When user creates   a endpoint or API External client and place drive strategy as webhook then it should be displayed under the web hook section of the Namespace.
User should not be able access the endpoint if it’s not enabled.
User should only access the endpoint if enabled.
User needs authorization key if “Required webhook verification ” is enabled.
Route should not exist if drive strategy id not webhook
When user tries to access the endpoint should return error response if webhook verification required and webhook verfication failed

@kripananda-yadav please save your UAT code so you could create a permanent external API connection for acceptance testing in the main testnet (violet-test.net) for future

@Pralish there is a test failure related to API access by category (CC @alis-khadka ) -- can you address it so @kripananda-yadav can start UAT?

@donrestarone Shall I add the following access for api_keys controller?

read access for api_keys only
full access for api_keys only
delete access for api_keys only

@alis-khadka @kripananda-yadav is this ready for UAT?

@alis-khadka @kripananda-yadav is this ready for UAT?

@donrestarone some code refactoring part is remaining. I will update in this thread after it is done. It should be done by today.

@Pralish It is ready for to take on as you said some change needs to be done on the ApiClients.

@alis-khadka When user has only the delete access for the API key, User is able to click the show button as of now there is no new data that is exposed but this case might raise problem.
https://user-images.githubusercontent.com/70195786/209466973-21744dc0-5988-47e6-b6ed-00f4664b0f7d.mov

@alis-khadka When user has only the delete access for the API key, User is able to click the show button as of now there is no new data that is exposed but this case might raise problem.
Screen.Recording.2022-12-25.at.5.40.24.PM.mov

It is a reasonable point but I think there should be a delete button in the show view of ApiKey.
@donrestarone What's you view on this? Shall I add a delete button in the show-view of Apikey or restrict the show-view if the user has only delete access?

@alis-khadka you need to do both. Restrict the show view + add a delete button if access is only for delete

@kripananda-yadav could you expand on your acceptance criteria for the stripe and custom web hook verification

Authentication using Both Stripe and custom
User needs authorization key if “Required webhook verification ” is enabled.
Route should not exist if drive strategy id is not webhook
When user tries to access the endpoint should return error response if webhook verification required and webhook verification failed
User needs authorization key if “Required webhook verification ” is enabled.
When user is able to access the endpoint the class method definition should be executed and result must be reflected as well in the expected portions.

you haven't covered:

returning a boolean by executing ruby in a custom web hook verification (access grant vs access denied responses)
when web hook secret is not provided in a custom web hook verification
using an API key for the web hook secret

@Pralish the API clients is leading to the Connections page, is that expected?

also, please use all caps for API in API Keys

@Pralish the API clients is leading to the Connections page, is that expected?

also, please use all caps for API in API Keys

Actually, the entity's model name is ExternalApiClient. On other pages, we are using the text 'External API Connection'. So, shall I change the text from 'create new External API Client' to 'create new External API Connection' ?

@Pralish

Model Definition is not executed when user access the endpoint which  is create in the External API client gets success as response.
The response code is 200 even if the authentication fails while accessing the Namespaces when user has enabled authentication and had entered invalid authentication token.

For the API created using External API client:

While accessing api using invalid authentication token response code is 400.
For authentication failure the response code should be 401.

@Pralish the Connection can return a response to the API caller right? Eg:
    class ExternalApiModelExample
      def initialize(parameters)
        @external_api_client = parameters[:external_api_client]
        @request = parameters[:request]
      end

      def start
        if @request['body']['type'] == 'customer.created'
          created_object = @external_api_client.api_namespace.api_resources.create(
            properties: {
              request_body: @request["body"]
            }
          )
          render json: created_object
        end
      end

@Pralish the Connection can return a response to the API caller right? Eg:
    class ExternalApiModelExample
      def initialize(parameters)
        @external_api_client = parameters[:external_api_client]
        @request = parameters[:request]
      end

      def start
        if @request['body']['type'] == 'customer.created'
          created_object = @external_api_client.api_namespace.api_resources.create(
            properties: {
              request_body: @request["body"]
            }
          )
          render json: created_object
        end
      end

@donrestarone , It cannot. Since  webhooks response should be fast and short, it only returns a status code and error message incase of error.
https://github.com/restarone/violet_rails/pull/1241/files#diff-65660574e19af12662666fdd223f31bc76086d728d8e56c6fa916591bafacc21R14-R19
Shall I update the code to return custom response?

@donrestarone , The ability to render customized response on webhook has been added.

@Pralish great. could you please update,

The short docs here (https://github.com/restarone/violet_rails/pull/1241#issue-1460830049)
The generated in-line doc on the app

to reflect sending a JSON response

@kripananda-yadav please add the JSON response criteria to your acceptance criteria, I suggest the following:

in cases without explicit return value, web hook returns 200 response for successful requests
if an explicit return value is defined, it returns a JSON response

@Pralish I did a UAT pass and found the following,

Driving a Connection via web hook is broken:

when the same class definition is called on-demand, it works:

UX bugs:

Drive interval is not needed when driven by web hook:

Fix name:

remove nav tab, link directly to page:

Need breadcrumb on (https://review-1241.violet-test.net/api_namespaces/25/external_api_clients/4):

@Pralish this is coming together well, some clarifications:

please use the following boilerplate class for the web hook connection:

class WebhookDrivenConnection
  def initialize(parameters)
    @external_api_client = parameters[:external_api_client]

    # rails request object accessable for webhook, https://api.rubyonrails.org/classes/ActionDispatch/Request.html
    @payload = parameters[:request]&.request_parameters
  end

  def start
    object = @external_api_client.api_namespace.api_resources.create(
      properties: {
        request_body: @payload
      }
    )
    # render the object as the response
    render json: { result: object }
  end
end

WebhookDrivenConnection

Ensure that the Connection button is where it always was (we simply want to remove the extra step in opening a nav drawer). It should link directly just like Actions does

@Pralish I tested the custom validator, and it works well:

Use ahoy visit:

2. If ahoy visitor token passed is valid run web hook:

I tested the migrations and noticed that the checkbox logic for the permissions should be changed, @Pralish please see below:

@Pralish @alis-khadka ⚠ dangerous migration
I created a connection to mimic existing data, and it was overwritten by the default value. This PR cannot be shipped until the migration is fixed and the following data corruption issue is resolved:


Quality Assurance: Popover spacing and hotkey fix.

Added the hotkey fix, Fixes #3010 #3352

Automated message from Dropbox CLA bot
@mahim97, it looks like you've already signed the Dropbox CLA. Thanks!

@showell Could you please review this, I have added the hotkey fix. Also tested it thoroughly on my machine. It would be great to see this PR getting merged.

Can you squash this all into one commit and write a commit message that explains the context of this fix (and follows our guidelines for commit messages)?

Hi @showell I squashed the commits, but I cant figure out why is the casper_tests failing. I made no changes in the files in the Traceback. These werent there some time before. Is it a new update that I need to take care of?

Try testing in a browser with the JS console open -- it looks like what's happening is a traceback is being thrown when doing something in the UI.

I caught the error, it was because of recent rename of data objects. I am sorry to have overlooked it.

Great, @mahim97 can you clean up your commit message?  Run git log or check out the Zulip commit message guidelines for details on what is normal: https://zulip.readthedocs.io/en/latest/version-control.html#commit-messages

Is this better @timabbott ?

BTW, yes, the commit message is better; the main thing I'd change is removing the "quality assurance" part :).

All taken care of.

@mahim97 Thanks for writing a descriptive commit message and for improving it. Could you please move the "Fixes" line at the end of your commit message to a line by itself? Also, in the middle paragraph, all the verbs should be in the same tense. Messages that are more consistent with our style and within each message make it easier for us in the future -- when someone's trying to solve a new problem, if commit messages are all in the same format, it's easier to skim them in logs and quickly understand what's happening. Here's what it should look like:
Fix alignment in drop-down menu.

Changed the format from list to table. Added styles in
zulip.css. Changed the class selector in jQuery to
keep the hotkeys intact.

Fixes: #3010.

Thanks!

@brainwane I made the required changes.

Thanks @mahim97! Now I step back and defer to the frontend experts to give you any further review, or merge it. :)

@mahim97 maybe it's worth redoing this using just CSS rather than switching to a table?  You can see a version of this for other popovers in https://github.com/zulip/zulip/pull/3787 and the gear menu...


Build failure on windows 7

Hi
Can you please check what's wrong with the build on Windows 7?
A noticeable message is ECONFLICT Unable to find suitable version for angular and below is some more details.
Thanks.
Jaehyeon

:dev:core:bowerInstall
bower jquery#2.0.3              cached git://github.com/jquery/jquery.git#2.0.3
bower jquery#2.0.3            validate 2.0.3 against git://github.com/jquery/jquery.git#2.0.3
bower angular-route#1.2.6       cached git://github.com/angular/bower-angular-route.git#1.2.6
bower angular-route#1.2.6     validate 1.2.6 against git://github.com/angular/bower-angular-route.git#1.2.6
bower angular#1.2.28            cached git://github.com/angular/bower-angular.git#1.2.28
bower angular#1.2.28          validate 1.2.28 against git://github.com/angular/bower-angular.git#1.2.28
bower angular-animate#1.2.6     cached git://github.com/angular/bower-angular-animate.git#1.2.6
bower angular-animate#1.2.6   validate 1.2.6 against git://github.com/angular/bower-angular-animate.git#1.2.6
bower angular-mocks#1.2.6       cached git://github.com/angular/bower-angular-mocks.git#1.2.6
bower angular-mocks#1.2.6     validate 1.2.6 against git://github.com/angular/bower-angular-mocks.git#1.2.6
bower d3#3.3.9                  cached git://github.com/mbostock/d3.git#3.3.9
bower d3#3.3.9                validate 3.3.9 against git://github.com/mbostock/d3.git#3.3.9
bower underscore#1.5.2          cached git://github.com/jashkenas/underscore.git#1.5.2
bower underscore#1.5.2        validate 1.5.2 against git://github.com/jashkenas/underscore.git#1.5.2
bower underscore.string#2.3.3   cached git://github.com/epeli/underscore.string.git#2.3.3
bower underscore.string#2.3.3 validate 2.3.3 against git://github.com/epeli/underscore.string.git#2.3.3
bower codemirror#4.7.0          cached git://github.com/marijnh/CodeMirror.git#4.7.0
bower codemirror#4.7.0        validate 4.7.0 against git://github.com/marijnh/CodeMirror.git#4.7.0
bower angular-bootstrap#0.12.0  cached git://github.com/angular-ui/bootstrap-bower.git#0.12.0
bower angular-bootstrap#0.12.0         validate 0.12.0 against git://github.com/angular-ui/bootstrap-bower.git#0.12.0
bower q#0.9.7                            cached git://github.com/kriskowal/q.git#0.9.7
bower q#0.9.7                          validate 0.9.7 against git://github.com/kriskowal/q.git#0.9.7
bower bootstrap#3.1.1                    cached git://github.com/twbs/bootstrap.git#3.1.1
bower bootstrap#3.1.1                  validate 3.1.1 against git://github.com/twbs/bootstrap.git#3.1.1
bower requirejs#2.1.11                   cached git://github.com/jrburke/requirejs-bower.git#2.1.11
bower requirejs#2.1.11                 validate 2.1.11 against git://github.com/jrburke/requirejs-bower.git#2.1.11
bower font-awesome#4.0.3                 cached git://github.com/FortAwesome/Font-Awesome.git#4.0.3
bower font-awesome#4.0.3               validate 4.0.3 against git://github.com/FortAwesome/Font-Awesome.git#4.0.3
bower big.js#~2.5.1                      cached git://github.com/MikeMcl/big.js.git#2.5.2
bower big.js#~2.5.1                    validate 2.5.2 against git://github.com/MikeMcl/big.js.git#~2.5.1
bower angular-datatables#0.2.0           cached git://github.com/l-lin/angular-datatables.git#0.2.0
bower angular-datatables#0.2.0         validate 0.2.0 against git://github.com/l-lin/angular-datatables.git#0.2.0
bower angular#1.2.6                      cached git://github.com/angular/bower-angular.git#1.2.6
bower angular#1.2.6                    validate 1.2.6 against git://github.com/angular/bower-angular.git#1.2.6
bower datatables#>=1.9.4                 cached git://github.com/DataTables/DataTables.git#1.10.4
bower datatables#>=1.9.4               validate 1.10.4 against git://github.com/DataTables/DataTables.git#>=1.9.4
:dev:core:bowerInstall FAILED
:build FAILED
BUILD FAILED

thanks for the report, we'll look into it.

actually all of our builds are broken like this.


Not working discord and tg

Not working anymore :(

Please give example and more detail

Please give example and more detail

hi can you see why this (or any other posts from this account) do not work
https://www.instagram.com/p/Cv-ZduDJeU2/

I’ve just come across this project and wanted to use it for Discord to embed reels and also have the same issue. They don’t embed… either it’s just a screenshot or it says the link isn’t available

https://www.instagram.com/p/CywDBrtxNW

I’ve just come across this project and wanted to use it for Discord to embed reels and also have the same issue. They don’t embed… either it’s just a screenshot or it says the link isn’t available

Can you send me the link for the first one?
2nd link: https://github.com/Wikidepia/InstaFix/issues/39#issuecomment-1786686806

There are temporary fix now, error like this will be less common.

https://www.instagram.com/reel/Cyld2QsBj0Q/
this one has error too

Would it be possible to add a preview on the actual https://www.ddinstagram.com/ website where you can input an URL and it shows you whether it'll unfurl or not? The error rate is quite high nowadays.

Also met this issue. We wrote a simple bot that replace instagram url with ddinstagram. Now it embeds videos from time to time. Example - link https://www.ddinstagram.com/reel/C0CstIny5IN/?igshid=MzRlODBiNWFlZA==

Stop working....

Stop working....

Please provide more information like screenshot and the link you tried to use

This ones aren't working
https://www.instagram.com/reel/CxMR9VJv2h3/?igshid=MzRlODBiNWFlZA==
https://www.ddinstagram.com/reel/Cxj5HRoxIYh/?igshid=MzRlODBiNWFlZA==
Seems it's working like a coinflip

After page reload it starts working. Strange. Does it need some time to fetch the video?

Stop working....

Please provide more information like screenshot and the link you tried to use

Choose any link and post to TG, it will not work;
https://www.instagram.com/reel/C0VMF6vh-At/?igshid=NzBmMjdhZWRiYQ==
https://www.ddinstagram.com/reel/C0nVGOlRWy7/?igshid=NzBmMjdhZWRiYQ==

Stop working....

Please provide more information like screenshot and the link you tried to use

Choose any link from instagram and post it to TG, it will not work; https://www.instagram.com/reel/C0VMF6vh-At/?igshid=NzBmMjdhZWRiYQ==
https://www.ddinstagram.com/reel/C0nVGOlRWy7/?igshid=NzBmMjdhZWRiYQ==

Works fine

Works fine

That is strange. I've been using the app for many months and it worked, I still have working links and videos in my Favorites in TG, but about a month ago all the new links stopped displaying videos.

I feel like it randomly work and not works depends on the days

Okay. Now it's clear to me what the issue is. The videos stopped working after the TG update in November when the citation system was introduced.
Now, when you insert a link, the video is displayed as a small icon on the right.
To make it appear full width, you need to insert a link and click on the left icon of the quote settings, then select "expand video", then when you send a message, the video will be full width.

Could this be an issue from ddinstagram's end (i.e: the website hosting it)? Because I ended up self hosting my own instance with its own domain, and it started embedding ig reels properly (on discord, didnt test telegram).
so while mydomain.com worked, ddinstagram didn't (tested with broken links).

tested with broken links

Which link did you try?

Originally I tried the following links using the ddinstagram website, which led to the 'Post not found error' (using the first link as the example):
https://www.instagram.com/reel/C1UuQBVLfyg/?igsh=MTc4MmM1YmI2Ng==
https://www.instagram.com/reel/C1R2UscrmCs/
(with ddinstagram.com)

after giving my bot a different endpoint (my self hosted instance), the same link from before embeds properly:
(with mywebsite.com)

Oh yeah, IG is blocking my server IP to certain endpoints, so self instances will work

is it working for you guys?
https://www.ddinstagram.com/reel/C72IqBIN1sc/?igsh=MzRlODBiNWFlZA==
https://www.d.ddinstagram.com/reel/C87fbBzqGfO/?igsh=MXFudWg1MjI4cTF5cA==


Log translated expressions pre-execution

Is it possible to log generated SQL prior to execution ? I have a few selects that I'm trying to refactor into the server-side, but I cannot diagnose where queries are going wrong as EF core throws during select list enumeration which ran fine on the client. I think some of the query cannot be translated, which is fair considering it's contents, but I need to see at least what it managed to translate so that I can refactor the code into client and serve-side selects. I normally manage to do this when the query executes successfully and the SQL is printed to screen, but when it throws mid enumeration, I get an exception about an inner lambda which is 3 levels deep., I end up going into a refactor-execute cycle trimming off bits of the select till it executes successfully which is not ideal.
My log level is info, do I have to go to trace? (I probably should have tested before posting)

Closing as debug takes care of it


Creating a singleton instance of Contentful

Description

Being able to instance a client and retrieve content from Contentful
Next PR would implement a generic output format after parsing CMS retrieved data no matter which provider is (Contentful, Strapim etc ...)

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@UlisesGascon , perhaps your feedback is useful here related to the alerts reported by socket.dev related to some dependencies running post-install scripts.

@SocketSecurity ignore<EMAIL_ADDRESS>@SocketSecurity ignore<EMAIL_ADDRESS>

Conclusion
Overall, both postscripts does not seem malicious or with known vulnerabilities (AFIK), but I will suggest to install them using --ignore-scripts flag in npm. But as this is a library that will be distributed, I am not sure if the end users will take care of this or not.

Thank you so much @UlisesGascon !

Conclusion
Overall, both postscripts does not seem malicious or with known vulnerabilities (AFIK), but I will suggest to install them using --ignore-scripts flag in npm. But as this is a library that will be distributed, I am not sure if the end users will take care of this or not.

Hi @UlisesGascon, thanks for your time and valuable info! One thing here: --ignore-scripts might be not optimal but as I mentioned to @inigomarquinez internally, running CI with --no-optional flag would be sufficient to ignore the dependency since contentful-cli defined as optional.

Not sure why, but I just realized that the package-lock.json is different on my machine.
Steps to reproduce:

(Optional) delete the node_modules
nvm use. In my case node v20.11.0 (npm v10.2.4)
npm i

And here is the discrepancy:

This is the result of you are running raw npm i. However in CI, optional deps should be ignored hence no contentful-cli in the lock file. You can repro by running the install with --no-optional flag.

changes

@matyasjay @inigomarquinez  we would implement the abstract type for the different providers instance on another PR. For the moment let's leave it as an any

Looks good to me so far! One thing I would add is the type infers from generics instead explicit any.
I'm thinking of something like:
 public async getEntry<T = Record<string, unknown>>(entryId: string) {
    return await this.getEntryHarmonized<T>(
      () => this.getClientInstance().getEntry<T>(entryId),
      // The following might not even needed if we can infer `T` from the return type
      ({ fields }: { fields: T }) => ({ data: fields }),
    );
  }

This requires typed client instances. The above example is a high level abstraction of what actually needed here. For now, I'd say we can merge this as is.

@matyasjay @inigomarquinez  we would implement the abstract type for the different providers instance on another PR. For the moment let's leave it as an any

how

@UlisesGascon At the beginning contentful-cli was part of the dependencies until I realized that it should be part of optionalDependencies, that's the fix: https://github.com/onebeyond/agnostic-cms-harmonizer/pull/5/commits/1cf98204789803c5ab30122345925d6db8b4c900

Not sure why, but I just realized that the package-lock.json is different on my machine.
Steps to reproduce:

(Optional) delete the node_modules
nvm use. In my case node v20.11.0 (npm v10.2.4)
npm i

And here is the discrepancy:

@UlisesGascon At the beginning contentful-cli was part of the dependencies until I realized that it should be part of optionalDependencies, that's the fix: https://github.com/onebeyond/agnostic-cms-harmonizer/pull/5/commits/1cf98204789803c5ab30122345925d6db8b4c900

@all-contributors please add @Bounteous17 for code,test,doc
@all-contributors please add @matyasjay for review
@all-contributors please add @UlisesGascon for review

@all-contributors please add @UlisesGascon for review

https://github.com/all-contributors please add @UlisesGascon for review

@all-contributors please add @UlisesGascon for review


Added the husky

fix: #87
https://github.com/user-attachments/assets/7f7344f6-52ba-4b63-a331-29d3f3f67415

@Ameerjafar , kindly push your changes to the develop branch after fetching the latest updates from the develop branch. This will ensure that the most recent changes are included. Thanks!

@Ameerjafar any update!


Add support for retrieving email address of authenticated Twitter User

Currently, SocialAuth does not support retrieving the email address of a Twitter user, as this is something that was not supported by Twitter until recently.
The way to retrieve a user's email address is documented here: https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-account-verify_credentials

I'd like to use this new feature. Can you release a new version to Maven?
The last release was in 2016!

v4.15 released, see commits:
https://github.com/3pillarlabs/socialauth/commits/master


problems with transparent gradients

Since the change by @GoalSmashers in https://github.com/GoalSmashers/clean-css/commit/7b3fb2f227e3566374e98174289cd1ca1870132e (Issue https://github.com/GoalSmashers/clean-css/issues/257), clean-css transforms rgba values with 0 opacity into transparent. This is causing a display issue with gradients in Safari and Firefox.
Take these two gradients:
linear-gradient(rgba(255,255,255,0), #fff);
linear-gradient(transparent, #fff);

The top one renders as you would expect, with a smooth ramp up to solid white. The bottom one renders with grey in it. I think this is because Safari and Firefox are interpreting transparent as rgba(0,0,0,0) and fading from black to white.
Open http://codepen.io/cvn/pen/ozewK in the latest Safari or Firefox to see the problem.
Due to this display issue, I think this optimization needs to be tweaked. Some ideas: turn it off by default, limit it to transforming rgba(0,0,0,0), limit it to to color values not in gradients, or add a Safari/Firefox compatibility mode that's enabled by default.

@cvn Cheers for this! Had this issue w/ Safari 9.0.1 but not w/ latest Chrome. Adjusted and works great.


Evernote for Android Intent manager

Create a library to manage the intents used to create note, view note, search notes, and more from the Evernote for Android app.  Additionally create an install helper for the app.

https://github.com/evernote/android-intent


sdfmt: support for --offset and --length

clang-format supports only reformatting part of a file, by specifying --offset and --length pairs on the commandline (see https://clang.llvm.org/docs/ClangFormat.html). I use this in my editor by selecting a few lines, and then only reformatting the selected lines, rather than the whole file. Very useful for not combining code changes (with correct formatting) with formatting fixes in other parts of the file.

Just like #262 I don't have the bandwidth to make this happen but would assist. I think the right path forward here would be to leverage the skipFormat feature (triggered by sdfmt on/off style comments) to tell sdfmt to not format anythign outside of the the range. This is however likely to surface bug in that feature, which is not well tested at this time.


Seems to cause graphics lag in third-person mode and with Bibliocraft armor stands

This is a very weird issue which I am having trouble nailing down. A few things i've tried are shown here, but the gist of the issue is that I'm currently trying to update the mods to an only 1.7.10 world and I'm running into ID limits. Adding NotEnoughIDs seems to solve the problem, but after this there are issues after adding mods which were previously causing ID issues.
Specifically, upon adding new mods while using NotEnoughIDs, when in third-person mod or viewing armor stands with non-standard models, such as Terrasteel or Power Armor, I drop to 2-3FPS and the game is basically unplayable. This doesn't happen with just NotEnoughIDs installed. I have Optifine installed, which is the only global graphics mod I can think of that might be related.
Where do I start to find an issue like this? Initially, per the Reddit thread, I though the problem was MineChem as the issue only occurred after updating that - however I have now noticed that upon updating Metallurgy the same issue occurs, which seems to indicate that it's not related to those mods. I can provide any data needed but I have no idea where to begin.

@gjsmo , idk why this happens(


meltanolabs-target-postgres v0.0.8 and meltano v3 are conflicting

13:07:35  The conflict is caused by:
13:07:35      meltano[psycopg2] 3.0.0 depends on sqlalchemy<3.0.0 and >=2.0.19
13:07:35      meltanolabs-target-postgres 0.0.8 depends on sqlalchemy<2
13:07:35
13:07:35  To fix this you could try to:
13:07:35  1. loosen the range of package versions you've specified
13:07:35  2. remove package versions to allow pip attempt to solve the dependency conflict
13:07:35

I am trying to setup a docker container with meltano and target-postgres. Should I be using pipx inside docker ?

@silverbullet1 I think you're probably trying to install Meltano and this tap in the same virtual environment. That's not normally expected to work. Running meltano install if your project is in the container should work.
Can you confirm?

Yes, thanks. I was trying to install them as a part of requirements.txt


Tweaks on the CNF definition

A CNF never facilitates a network function, but always implements it.
Closes #44

It makes sense that a CNF (cloud native network function) would always implement a network function

@CsatariGergely please update and fix the conflict


Specify which fields to return for the JSON API

What's the problem this feature will solve?
Currently the json API returns package info together with ALL releases and links, while the latter can be retrieved from simple API and are not useful for most use cases.
By specifying fields, we can exclude releases to reduce the response size
Describe the solution you'd like
Follow the RESTful convention, add a query parameter fields to the JSON API endpoint:
/pypi/{package}/{version}/json?fields={comma separated list of fields}
Additional context

The limiting factor on Warehouse's side is less the response size and more the cache rate. The more personalized the responses, the more likely it will hit the warehouse service and not just fastly, which would make it much more costly (more compute power). So I'm not sure it's really interesting on the warehouse side to pay a lot of compute power for fastly to gain some response size. Of course, I understand that it might be interesting on the client side, but I'm not sure it's really worth it.
Is there a specific reason why you want to limit response size on your side ?

I was trying to build a package resolver that is fed by the dependencies of all versions of a given package.
I didn't consider the server-side limitation and it makes sense to me.
Feel free to close the issue or if you want to leave it for others to chime in.


Install/Access Distro for All Users?

Hi, is it possible to install the Linux distro for all users on the machine? Currently as it is now a Windows Store app I believe this means it is installing specific to the user account, presumably in the User directory?
I jump between a couple of user accounts on my machine but need to access Ubuntu/bash from all of these and essentially it needs to be the same Linux system I am accessing. Is there a way to do this?
Thanks.

@Convincible - unfortunately there is currently no way to do this.  Each distro is per-user.

'Tis what I feared! Any chance of a way around this now or in future?

Nothing currently planned but never say never. Probably a good request for our user voice. Closing since question has been answered.

Any updates regarding this ? We thought about copy-on-login workaround.

Now that WSL is present on servers too, not being able to install it for all users makes it almost useless IMO. Any chance to have something like shared/default distro in the future?

I have an interesting scenario:
As a dev/devops
I would like to use WSL commands from my build scripts on a Server 2019 running my build agent
It is quite disappointing that a build script mixing Powershell, cmd and bash works on a Win10 client but not on a build server.

WSL is an incredibly important improvement that has been long overdue. But not being able to install and manage it globally in a multi-user environment is extremely frustating.
I desperately need a scenario where i can activate WSL for all users of a single machine, but optimally also be the only admin for that distro (all users just beeing normal users without root-access).

Workaround possible but it's highly DANGEROUS. Install any tarball with wsl --import command in a folder where every users have access to. Then import the registry in all users HKCU registry hive.

Please don't do what @Biswa96 is suggesting...

I badly need this! :(

@giuliov have you found a way to do this? I have the exact same scenario.

I think there is a way, but not something I would recommend: you need a well know user and launch the step(s) as that user. This will not work on a hosted agent scenario, only if you run agents on your hosts. I do not recommend as you have to manage credentials, issues with process logging and termination and so on.
I commented on this issue because the only solid solution can come from Product group.
If you have a mixed shell script scenario, explore using MinGW on Windows or Powershell Core on Linux. It is a sounder path with less headaches. It will have limitation (missing commands and modules) but is currently the best choice.

currently the LVM files are stored under C:\users\john_doe\appdata\local\packages\canonicalgroup.....
What would happen if we just move this canonical folder over to C:\programdata\packages ?

Concur.  Trying to use WSL as part of a TeamCity build step, which runs as a specific non-login user.  Annoying to have to reinstall a separate instance from the store.

Badly need this feature. My use case is I need to install WSL ubuntu on a server where several operations users logon to provide app support. A shared installation is what is needed, since i) costly on diskspace and time to have each support user install their own instance ii) custom built support scripts have to be copied/linked locally & sourced each time ... Dissapointing :(

+1

+1 as well

+1 as well

Doesn't seem to be a solution here, so:
+1

+1 as well

I have solved a similar problem in a VDI environment, although I'm not sure it would be exactly as OP describes it regarding accessing the same virtual Linux kernel.
Anyway, I used the "LxRunOffline" utility (its on github) to install the distros on the Administrator account, and then once a new user logs in and a profile is generated, a script runs that registers the already installed Linux distros into WSL. No Windows Store needed.
Works just fine for my case, but again I'm not sure about OP's exact scenario.

Please add the multi-user feature.

I have solved a similar problem in a VDI environment, although I'm not sure it would be exactly as OP describes it regarding accessing the same virtual Linux kernel.
Anyway, I used the "LxRunOffline" utility (its on github) to install the distros on the Administrator account, and then once a new user logs in and a profile is generated, a script runs that registers the already installed Linux distros into WSL. No Windows Store needed.
Works just fine for my case, but again I'm not sure about OP's exact scenario.

Hello @v1sper ,
Could it be possible to get the full procedure ?
Or should I assume that moving the Distro under Admin is sufficient, and that a general mechanism of profile-scripting take place automatically (in the Microsoft word... I doubt... since IT were not able to thnik about such a basic usecase) ? I will try but awaiting response.
Besides, and whatvere, thanks for this tips !
This is for a student who could require WSL2 for Data Science activities but for which I administrate his HighPerf-Laptop and all infrastructure devices 👍 :-)
Vince

I think I've managed to make same WSL¹  Ubuntu distro be used different users, but I still have an issue that two users can't access WSL simultaneously. When one of them is logged in and another user runs wsl it gives this error:

The requested operation cannot be performed on a file with a user-mapped section open.

Here's what I did:

Install LxRunOffline (for both users).
Find out the directory in which the current distro is installed.
I personally moved it elsewhere as well where both users could access it without permission issues, but this is probably optional.
In the other user's CMD use LxRunOffline register command to register the above directory as a distro for this user.

That should allow both users to use the same distro. But alas both users aren't able to use it simultaneously. When one of them is logged in and another user runs wsl it gives this error:

The requested operation cannot be performed on a file with a user-mapped section open.

Note: I'm (still) using WSL 1. Not sure if this'll work (and my problem will be solved) in WSL2..

Imo since dealing with the permissions issues created by Plan9 or 9P/Lx mess it is easier to use sshfs than \wsl$ which is only exposed to the one user running WSL.
https://github.com/billziss-gh/sshfs-win/releases
https://github.com/billziss-gh/winfsp/releases
As a normal user you can then run this.
net use X: \\sshfs\user@<IP_ADDRESS>!2222

And as admin run this if you need a symlink type thing going on.
mklink /d C:\Users\user\Documents\git-projects X:\git-projects

Of course setting up additional users and ssh access in your distro is pretty simple and I am not going to lay that out. This method also has the added benefit of working symlinks appearing in your Windows filesystem.. where as WSL$ would have ignored that outright.
There is also a potential of hanging up your system should the ssh session ever be broken. I have seen sshfs cause Windows to go unresponsive - so I'd only do this in very local situations - not remotely. SSHFS is a bad idea remotely or where latency is an issue.

Running wsl for multiple users is so important.!!
In may case for security reasons I'm working as a unprivileged user. Now I should mount a virtual disk to the linux distro on wsl.
The command wsl --mount  is only working as privileged user. So when I run powershell (as Administrator) I cannot mount  because the ws linux distro is not available for the administrator user.
No way to work as non privileged user.
To add the user to administrator group ist no option.

For security reasons, I run as a normal user most of the time. It's frustrating to have to manage two different instances linux, one for mounting disks and using usb pass-through, and one for everything else.

Don't know if anyone's found a solution to this but I use runas to open cmd as the user with the distros installed.
ex:
runas /user:<user> "%SystemRoot%\system32\cmd.exe"
enter your pw
wsl -l -v (if you have multiple distros)
wsl -d
just put the runas command into a batch file

 runas /user:domain\user "%SystemRoot%\system32\cmd.exe"

Unfortunately, this command doesn't seem to exist in Windows 10 Home

Why is this not a top priority?

Please re-open.  This is a much needed and requested capability.  What is the bottleneck here?

Tbh I think the solution is to setup a specific user just for a WSL instance under a single account and then from there initiate that instance and let it run in the background. You can then ssh into that WSL session flawlessly. Some of the use cases mentioned in this thread really veer off from what the OP wanted, but even in those cases - it would do those users a world of good to actually learn Linux, how to connect it to domain, and setup multiple user accounts in the singular WSL2 instance. Many things can be accomplished with a little bit of effort and proper ssh configuration. You can even setup shares across UNC (SMB) and mklink's.
Otherwise every user can have their separate instances and use up more space than what is really needed as it currently is. I get users might want Microsoft to "do it for them" but A) Windows isn't unix based, get a mac if you want that and B) You can actually do it yourself with some effort - aka scripting and testing.

The issue becomes one of user context.  If you manage endpoints using configmgmt tooling, such as puppet, ansible, etc. it is not possible to provision WSL to users of that box.  The SYSTEM account context isn't going to help per user. There is a reason why there are multiple scopes of management, ie HKU vs HKLM.   There are many use cases where per user is just the wrong approach.  While I agree people articulated their needs differently and some can use hackish workarounds or other approaches to mitigate this shortcoming, the underlying premise of not giving choice on install is just not tenable for many use cases. As such I requested a revisit to this capability.

The issue becomes one of user context. If you manage endpoints using configmgmt tooling, such as puppet, ansible, etc. it is not possible to provision WSL to users of that box. The SYSTEM account context isn't going to help per user. There is a reason why there are multiple scopes of management, ie HKU vs HKLM. There are many use cases where per user is just the wrong approach. While I agree people articulated their needs differently and some can use hackish workarounds or other approaches to mitigate this shortcoming, the underlying premise of not giving choice on install is just not tenable for many use cases. As such I requested a revisit to this capability.

Still not clear on what you are wanting, reprovision an existing WSL, or a new one? Again you are talking about MS paradigms that don't really translate at all under Linux. Need to understand both and yea create a "hackish" workaround or maybe even just use hyperv and provisioning/mounting scripts instead and drop the idea of WSL altogether - it really isn't that necessary and you can still build your own method for integrating and mounting files back and forth.

A new WSL.  Want to activate WSL for whoever the user is of a single machine.
As someone else mentioned:
I would like to use WSL commands from my build scripts as NetworkService or the localAdmin and have it apply to whoever uses the node (1 person, but unknown) at build time, only at delivery time (which isnt relevant)

to import image from other user make sure you have access to the vhdx disk image and them import it using wsl --import-in-place  command.
wsl --import-in-place Ubuntu C:\<your-path>\ubuntu\ext4.vhdx

This is very old, and I'm sorry to notify everyone in this thread, but I would really like to understand the use case behind the original request.  What would having a system-wide WSL2 instance offer you?

Ability to deploy to all users of the system.  This is a must for enterprise usage.  Installations exclusive to users profile are a broken model for many orgs.  Users never deploy their own software.

Users never deploy their own software.

I work for the most paranoid and security-conscious company that I have ever heard of that is not a government contractor (and I know for a fact that we are more security conscious than some of those) and we allow users to install their own software in certain situations.
Are you saying "never" as in "they won't" or "they can't"?

How is allowing an end user to install software in an enterprise "safe" or manageable?  Who is responsible for keeping that software updated against vulnerabilities?   Who in IT knows jabroni.exe is in his appdata?  How is the source of that package validated from the source and sha256 verified?  Delegating this responsibility to an end user means these things wont happen.   Enabling uncurated store access, and having no insight into what lives in user profiles is untenable.
Software is deployed in nearly all enterprises by way of a service account or a service running as LocalSystem not by the end user.

How is allowing an end user to install software in an enterprise "safe" or manageable? Who is responsible for keeping that software updated against vulnerabilities? Who in IT knows jabroni.exe is in his appdata? How is the source of that package validated from the source and sha256 verified? Delegating this responsibility to an end user means these things wont happen. Enabling uncurated store access, and having no insight into what lives in user profiles is untenable.
Software is deployed in nearly all enterprises by way of a service account or a service running as LocalSystem not by the end user.

nearly all enterprises

ROFL!  you have no idea, do you

How is allowing an end user to install software in an enterprise "safe" or manageable?

firewalls to prevent lateral movement, sysmon to detect abnormal activity patterns, virus and malware scanning to handle those, and other stuff I'm sure I'm not aware of.
my enterprise (a Fortune 500 enterprise in the top fifth of that list) does not (and will not ever) have the manpower to whitelist all the good stuff and pack all that up behind some system where only automation has administrative rights.
They tried for a very long time, and all the king's horses and all the king's men could not keep things up to date.  installing software outside of that system was possible for some, but for most, the insecure versions which were already in the system were all you were allowed to install.  the packaging queue was too deep to catch up for the folks we hired to do that work.

Reality is not what it looks like on paper.  "Only approved software" looks fantastic on paper but is not realistic in any way.
If you are a large company and you intend to whitelist everything a developer can use, you will need as many people doing code reviews for 3rd party libraries as you have developers writing code using those libraries.
And if you don't have that many code reviewers working on that, you will only have versions which have known vulnerabilities available for use by your developers, because those were reviewed and approved at some point, and were later found to contain vulnerabilities.  But the developers can't update because newer fixed versions have not been whitelisted.
The job of an engineer of any variety is to understand what reality is and then to deal with that reality in their work.  The reality with these kinds of things is that 10,000 people could not code review npm package updates as fast as they come out, forget any other package ecosystems or tools.

This is an orthogonal argument. There are many ways @naikrovek to mitigate risk and allow things such as using artifactory.  We are not talking about that.  If that was the case, noone would patch OS, because all other lines of defense in depth would take care of it.
The point here is l, there is a real use case for enterprise deployment and use of Program Files/ProgramData vs Appdata, and it shouldn't be dictated.  This is not a new concept.
Lets face it, most folks who use UserApps have done it to circumvent them not having admin rights to Program Files.  Its a broken design to allow executables in appdata and MS themselves abused the notion when they locked it down.  It is preposterous of a design to have google chrome binaries installed in each users profile on a multi user pc. machine wide install is the way here.

This is an orthogonal argument.

You're right.

The point here is l, there is a real use case for enterprise deployment and use of Program Files/ProgramData vs Appdata, and it shouldn't be dictated. This is not a new concept.
Lets face it, most folks who use UserApps have done it to circumvent them not having admin rights to Program Files. Its a broken design to allow executables in appdata and MS themselves abused the notion when they locked it down.

Microsoft has long advised against machine-wide installation of software when it is not required, and the vast majority of end-user systems are multi-user systems with a single user.  If a user can install and update all of their software without requiring administrative permissions, malware that they install inadvertently is extremely limited in what it can accomplish.
Software that installs to the user profile does so by design, following practices recommended by Microsoft.  It is not done to evade anything, it is done so that administrative access to the local computer is not needed for day-to-day work, and is what Microsoft has recommended since Windows XP was released, if not before.  It may have been Windows 2000 which introduced this recommendation.
I don't understand what a machine-wide installation of WSL would offer you that a standalone Linux virtual machine would not also offer you.  I don't understand the need for a machine-wide WSL instance at all.  Is it only that WSL installs into user profiles that you dislike, or is there something that a machine-wide WSL instance would offer the end user that per-user installs do not?

It is preposterous of a design to have google chrome binaries installed in each users profile on a multi user pc. machine wide install is the way here.

Machine-wide Google Chrome installers exist, if you didn't know.  Most software used in the enterprise has machine-wide installers.  To my knowledge, WSL has never been intended as anything more than a per-user software development tool.