e_sqlite3.dll doesn't get loaded correctly

I'm working on a VS extension which uses Microsoft.Data.SQLite. I was using version 2.0.0, which depends on SQLitePCL.raw and I had to downgrade it to version 1.1.1 because e_sqlite3.dll doesn't get loaded correctly.

Stack Trace
An error occurred: System.TypeInitializationException: The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: Unable to load DLL 'e_sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number()
   at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number()
   at SQLitePCL.raw.SetProvider(ISQLite3Provider imp)
   at SQLitePCL.Batteries_V2.Init()
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.Data.Sqlite.Utilities.BundleInitializer.Initialize()
   at Microsoft.Data.Sqlite.SqliteConnection..cctor()
   --- End of inner exception stack trace ---
   at Microsoft.Data.Sqlite.SqliteConnection..ctor(String connectionString)

When debugging the extension, to find the cause of the issue, I looked at the Modules window and found out that the e_sqlite3 provider was being loaded from a Roslyn VS extension folder. In that folder there are two versions of e_sqlite3.dll, in subdirectories (x86 and x64). I tried copying the x86 version to the Roslyn VS extension folder and I didn't get the error, because DllImport found the assembly in the same folder as the one where the provider assembly is located.
Why isn't e_sqlite3.dll being loaded? Is it supposed to be loaded from the x86 folder?
Any help would be appreciated.

I'm not sure what's going on here.  It may have something to do with the fact that your situation is a VS extension, but I am not at all familiar with that context.
I'm guessing that a VS extension is a .NET Framework project?
Yes, for .NET Framework, the init code for SQLitePCL.raw tries to load the DLL from x86 or x64, depending on the architecture detected at runtime.  But its ability to find those directories could be an issue when coding something like a VS extension.

Yes, a VS extension is a .NET Framework project.
Where does SQLitePCL.raw look for the x86 and x64 folders?

Take a look at the code in sqlite3_pinvoke.cs.
More specifically, try this:
Before doing anything else with SQLitePCL.raw, set SQLitePCL.Settings.BaseDirectoryForDynamicLoadNativeLibrary to the full path of the directory where x86 and x64 ended up in your situation.

I started to get similar issues as well.
Am using Xamarin for Android and only "error" i see, or correctly said, last log is see is this:
11-29 12:46:26.215 D/Mono: DllImport searching in: 'e_sqlite3' ('libe_sqlite3.so'). 11-29 12:46:26.215 D/Mono: Searching for 'sqlite3_errmsg'.
After those 2 lines i get no response in app at all, it just hangs /freezes. Only when i hit in Debugger Pause-button manually, i get popup for selecting SQLite.cs cause it cannot be found.
Have no idea where it is located, is at least not any of classes in my project so i gotta be something internal.
PS. Generally I'm no .NET dev and have no clue of Xamarin  and how it does it thing. So if additional info is needed , it would be helpful if given step-by-step instructions. I got this project only cause the base code has Android Java similarities, anything else... im lost!

Not sure whether this is related, but we've run into issues when upgrading from v1.1.8 to v1.1.9.  Our scenario was when running our set of unit tests using Visual Studio for Mac that make use of sqlite and the SQLitePCLRaw.bundle_green package.  The test project targets .NET 4.5.  For v1.1.8 the libe_sqlite3.dylib was copied to the bin\Debug folder when compiling the test project.  However, for v1.1.9 the libe_sqlite3.dylib is not copied and all our db tests then start failing.  This is only an issue on the Mac for us.  On Windows the e_sqlite3.dll is loaded successfully from the x86/x64 folders.  Downgrading back to v1.1.8 solves this issue for us.

When calling SQLitePCL.Settings.BaseDirectoryForDynamicLoadNativeLibrary I am getting:
System.TypeLoadException: Could not load type 'SQLitePCL.Settings' from assembly 'SQLitePCLRaw.provider.e_sqlite3, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=9c301db686d0bd12'.
   at ReverseEngineer20.EfCoreReverseEngineer.SetFolder()
   at EFCorePowerTools.Handlers.ReverseEngineerHandler.<ReverseEngineerCodeFirst>d__2.MoveNext() in C:\Code\SqlCeToolbox\src\GUI\EFCorePowerTools\Handlers\ReverseEngineerHandler.cs:line 55

I am using these SQLite packages
  <package id="SQLitePCLRaw.bundle_green" version="1.1.8" targetFramework="net461" />
  <package id="SQLitePCLRaw.core" version="1.1.8" targetFramework="net461" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.linux" version="1.1.8" targetFramework="net461" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.osx" version="1.1.8" targetFramework="net461" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.v110_xp" version="1.1.8" targetFramework="net461" />
  <package id="SQLitePCLRaw.provider.e_sqlite3.net45" version="1.1.8" targetFramework="net461" />

SQLitePCL.raw pre-release version 1.1.10-pre20180223200113 has been pushed to nuget.  From here forward, SQLitePCL.raw assemblies will include a properly updated AssemblyVersion.  Testing feedback would be appreciated.

Version 1.1.10 is now on nuget.org

@ericsink Finally I am able to confirm that using the following package works as expected in my Visual Studio extension:
 <package id="Microsoft.Data.Sqlite" version="2.1.0-rc1-final" targetFramework="net461" />
 <package id="SQLitePCLRaw.bundle_green" version="1.1.10" targetFramework="net461" />


add newly-available non-galarian forms to SwSh national dex

With the release of Pokemon HOME new non-galarian forms are transferable to the game, namely
A-raichu
A-vulpix
A-ninetales
A-diglett
A-dugtrio
A-meowth
A-persian
ponyta
rapidash
weezing
corsola
zigzagoon
linoone
darumaka
darmanitan
stunfisk

thank you! we will definitely do this.


#9; Facebook fields are not being requested from Graph API properly.

Fixes #9 by dynamically reading necessary fields from "fieldMap" in the waterlock configuration file, and appending them to the Graph API request.

Coverage decreased (-1.8%) to 47.857% when pulling 5f8b3157a005bf9a1ef591d11fa240aea2f9b414 on nhodges:master into 0dc13f9ac73fce7b4b14d0ae42c2c132721f5e84 on waterlock:master.


Node types page

In GitLab by @franzi233 on Aug 18, 2021, 15:26
What are Gateways, Observers, Validators...?

In GitLab by @franzi233 on Aug 18, 2021, 15:26
assigned to @franzi233


InvalidChangeBatch - CNAME error. Works from awscli

I created 2 ingress routes as follows:
annotations:
   external-dns.alpha.kubernetes.io/target: foo.example.com
   kubernetes.io/ingress.class: nginx
spec:
  rules:
    - host: foo.example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: s1
              servicePort: http

external-dns created an "A" record for this as expected.
However, following that, when I deploy this ingress:
annotations:
   external-dns.alpha.kubernetes.io/target: bar.foo.example.com
   kubernetes.io/ingress.class: nginx
spec:
  rules:
    - host: bar.foo.example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: s2
              servicePort: http

I see this error in external-dns logs:
time="2018-07-09T03:24:16Z" level=info msg="Desired change: CREATE bar.foo.example.com CNAME"
time="2018-07-09T03:24:16Z" level=info msg="Desired change: CREATE bar.foo.example.com TXT"
time="2018-07-09T03:24:16Z" level=error msg="InvalidChangeBatch: RRSet of type CNAME with DNS name bar.foo.example.com. is not permitted as it creates a CNAME or alias loop in the zone.\n\tstatus code: 400, request id: ..."

But when I tried to create the same using awscli/gui, it works. change.json used for cli:
{
	"Changes": [{
		"Action": "CREATE",
		"ResourceRecordSet": {
			"Name": "bar.foo.example.com",
			"Type": "CNAME",
			"TTL": 1,
			"ResourceRecords": [{
				"Value": "foo.example.com"
			}]
		}
	}]
}

Is there anyway to see the change sent by external-dns? I tried changing the loglevel to 'debug' but that doesn't help.
Thanks

Nevermind, incorrect target was causing the loop. Closing.

Hey...can you tell me what you mean by "incorrect target"? I am getting this error and can't seem to make it work no matter what I do. I am sure I am being dumb.

OOOH...that annotation should point at the ELB....Got it. (I think)

Yup, it should point at an existing hostname.
From their faq: https://github.com/kubernetes-incubator/external-dns/blob/master/docs/faq.md
Note that if you set the target to a hostname, then a CNAME record will be created.
In this case, the hostname specified in the Ingress object's annotation must already exist.
 (i.e. you have a Service resource for your Ingress Controller with the
external-dns.alpha.kubernetes.io/hostname annotation set to the same value.)


improve readability of "Use fewer LANGUAGE pragmas"?

Hi there! Just want to open a discussion about the  "Use fewer LANGUAGE pragmas" message:
It currently looks like:
Warning: Use fewer LANGUAGE pragmas
Found:
  {-# LANGUAGE LambdaCase, TypeApplications, NamedFieldPuns,
    LambdaCase, ScopedTypeVariables, DataKinds #-}
Perhaps:
  {-# LANGUAGE LambdaCase, TypeApplications, NamedFieldPuns,
    ScopedTypeVariables, DataKinds #-}

This might be easy for some refactoring tools to process, but I feel as a human being I care more about "which one is spurious" and unfortunately this info is hard to see from the output - I have to read through two lists to spot the difference (not to mention the situation becomes worse when you have a long list of LANGUAGE pragmas), any idea about how this can be improved?

Thanks to @yairchu it now says which extensions are unused as notes. Hopefully that makes it clear.

Thanks! Really appreciate it!


Investigate max_masked_sites_per_sample equal to 0

The max_masked_sites_per_sample  (and mean_masked_sites_per_sample ) from a TreeInfo object obtained from the latest ts is 0. Something is wrong.

This is due to a bug introduced in utils.py after the sample metadata was expanded to include QC, path, and mutations (see match_path_ts).
This can be fixed simply by modifying this to the snippet below.
if "sc2ts" in md:
    qc = md["sc2ts"]["qc"]

Ah great. Can you open a PR to fix, so we don't forget? No need for tests or anything (it doesn't interact with #207, so I can just merge quickly)


Fix cache directory for partial datasets for split-descriptive-statistics runner

fixes https://github.com/huggingface/datasets-server/issues/1831
fix glob pattern: preserve 'partial' in a split dir name

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (7b48de5) 81.30% compared to head (7146ce0) 92.64%.
Report is 9 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #2062       +/-   ##
===========================================
+ Coverage   81.30%   92.64%   +11.34%
===========================================
  Files           9       83       +74
  Lines         444     6134     +5690
===========================================
+ Hits          361     5683     +5322
- Misses         83      451      +368

Flag
Coverage Δ

services_search
?

services_worker
92.64% <100.00%> (?)

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

Files
Coverage Δ

...worker/job_runners/split/descriptive_statistics.py
94.82% <100.00%> (ø)

...nners/split/opt_in_out_urls_scan_from_streaming.py
94.89% <100.00%> (ø)

...s/job_runners/split/test_descriptive_statistics.py
98.20% <ø> (ø)

... and 89 files with indirect coverage changes

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

@severo they all either have it or not and i take the first one just to get this value. the same is done in duckdb-index worker actually


Right-click -> rename opens file

Describe the bug
Right-clicking to rename a file opens the file
To Reproduce
Steps to reproduce the behaviour:

Go to any folder with files
Right-click
Click rename
See the window for the file being opened

Expected behaviour
Allow renaming the file
Screenshots
n/a
Desktop (please complete the following information):

OS Version: Win 10 Version 10.0.18363 Build 18363
App version: [v<IP_ADDRESS>]

Additional context
n/a

in list view and "double tap to rename files" disabled? if so, that's the problem, see in: #651

Ah, apologies, my mistake

This issue should be resolved with #2142.


Lag/flickering when typing too fast

Here's a recording. Here's my settings
local path = require('fzf-lua.path')
local fzf = require('fzf-lua')

fzf.setup({
  winopts = {
    height = 0.85, -- window height
    width = 0.80, -- window width
    row = 0.35, -- window row position (0=top, 1=bottom)
    col = 0.50, -- window col position (0=left, 1=right)
    hl = {
      normal = 'TelescopePromptNormal',
      border = 'TelescopeBorder',
      cursor = 'Cursor', -- cursor highlight (grep/LSP matches)
      cursorline = 'CursorLine', -- cursor line
      search = 'Search', -- search matches (ctags)
      -- title       = 'Normal',        -- preview border title (file/buffer)
    },
  },
  fzf_colors = {
    ['fg'] = { 'fg', 'CursorLine' },
    ['bg'] = { 'bg', 'Normal' },
    ['hl'] = { 'fg', 'Comment' },
    ['fg+'] = { 'fg', 'Normal' },
    ['bg+'] = { 'bg', 'CursorLine' },
    ['hl+'] = { 'fg', 'Statement' },
    ['info'] = { 'fg', 'PreProc' },
    ['prompt'] = { 'fg', 'Conditional' },
    ['pointer'] = { 'fg', 'Exception' },
    ['marker'] = { 'fg', 'Keyword' },
    ['spinner'] = { 'fg', 'Label' },
    ['header'] = { 'fg', 'Comment' },
    ['gutter'] = { 'bg', 'Normal' },
    ['border'] = { 'bg', 'Normal' },
  },
  keymap = {
    builtin = {
      ['<C-d>'] = 'preview-page-down',
      ['<C-u>'] = 'preview-page-up',
    },
  },
  files = {
    git_icons = false,
    multiprocess = true,
  },
  git = {
    files = {
      cmd = 'git ls-files --exclude-standard --cached --others --deduplicate',
      git_icons = false,
      file_icons = false,
      multiprocess = true,
    },
  },
  grep = {
    rg_opts = string.format('%s %s', fzf.config.globals.grep.rg_opts, '--hidden -g "!.git"'),
    git_icons = false,
    multiprocess = true,
  },
  file_icon_padding = '',
})

https://user-images.githubusercontent.com/10972027/146738044-9683d8ec-7390-4888-abd4-610e4d43bfe2.mov

The video shows a part I have very little control over, fzf is already spawned and the results are all in, let’s try the below and see what causes this:

What is your Fzf version?
What is your neovim version?
Can you try with global_resume = false (was recently added)?
Can you try with files instead of git_files?
Can you try doing the same in the shell with fzf (just run git ls-files|fzf)?
Can you try the above step inside a neovim term (:new | term)?
Can you run a quick test with skim (need to add fzf_bin = 'sk' after installation)?

fzf: 0.28.0
neovim: 0.6.0
@ibhagwan There seems to be not much of a problem after adding in the global_resume = false and it kinda feels a bit more snappy compared to my screen recording.
Thanks. I tried the other steps but I couldn't reproduce the issue anymore. Although I get this weird behavior when the text is too long. It doesn't happen when fzf_bin = 'sk' and also doesn't happen when running fzf in my terminal

I see what’s happening, I suspected global_resume because it adds a callback that saves your typed query so you can continue where you left of with :FzfLua resume, it’s was the only code executed when you’re typing in the original video.
The reason it’s not happening in the terminal or with sk is because they don’t have the change:execute event set.
We definitely found the issue, I’ll have a fix for it in a couple of hours when I get on the computer.

I have a solution for this which is to read the typed query from the terminal buffer (instead of fzf firing the change: event), what I'm struggling is how to detect the input was changed in the terminal buffer as some events are firing in the neovim terminal, https://github.com/neovim/neovim/issues/5018
I thought about imap as well but it doesn't have a way of capturing all keystrokes.
I'm very close to a proper solution but this will require a bit more digging.

Turns out that this is not that easy to do with neovim, I'm still not sure how to get this data without using fzf's change event, for now I just added another option global_resume_query that you can set to false to disable the use of the change event which will give you the snappy typing behavior you wanted.
With global_resume=true and global_resume_query=false you will still be able to call resume and get the last window you were working without the last typed query.
Note that in regards to the second issue I've seen here which is fzf getting messed up when the query is too long, this seems to be an fzf issue, not much I can do about that other than opening an issue upstream (btw, skim seems to not have this issue).
The below is from fzf in the terminal, outside of neovim:

Thanks. I don't really use the global resume feature so I think I'm good with disabling it.
For fzf, it doesn't happen in my terminal for some reason.
https://user-images.githubusercontent.com/10972027/146874319-85ee3977-d07c-4c47-844f-672a85c406de.mov
I want to use skim but it sometimes has different results than fzf. And also the author claims that it is not as fast as fzf on large codebases.
FZF

Skim

For fzf, it doesn't happen in my terminal for some reason.

The reason it doesn't happen for you is because it only happens with --info=inline, in the screenshot you're running the default (which is, not surprisingly, --info=default), try with --info=inline.
You can change the default in fzf-lua to avoid the bug under fzf_opts:
require'fzf-lua'.setup {
  fzf_opts = {
          ['--info'] = 'default',
  }
}

I want to use skim but it sometimes has different results than fzf. And also the author claims that it is not as fast as fzf on large codebases.

It's possible the default search case senstivity is different with skim, try adding one of the below to fzf_opts (from man sk):
       --case=[smart,respect,ignore]
              To ignore case on matching or not. (default smart)

I've played around using the --case but I still don't get the same results to fzf.
I really like how it looks like when using skim since there isn't much padding around when used inside neovim

vs FZF

Anyway, thanks for the prompt response! Really appreciate it.

FYI, the issue you accidelntally discovered was submitted upstream.
https://github.com/junegunn/fzf/issues/2692

FYI, this is now fixed, I had to use two different methods to get the typed query but it works very well now and even works for skim even though it doesn't have support for the fzf change event.
When global_resume_query = true the option --print-query will be added to the fzf command line arguments which prints the query as first line when the user selects an item.
That alone did not solve saving the query on abort (when pressing <C-c> or <Esc>) so I created a terminal mapping for the fzf-lua buffer which retreieves the query from the first line of the buffer when either is pressed.
Now you should have both snappy typing and resume support :-)

FYI, I just tested fzf 0.29.0 - it solves the long query overflow issue.

@ibhagwan You are the best maintainer I encountered in 2021! Thanks for making this beast that powers up NeoVim!

Ty @nyngwang  <3


Rename this repo. openwhisk-client-python

By convention all OpenWhisk clients, by agreement, will use the same naming convention/prefix.

@mrutkows, actually this repo isn't needed as the Python CLI is backed up in the openwhisk repo.

@dubeejw in the long run we will use this repo and remove the duplicate from the main repo. (Should we remove it now?)

@dubeejw @csantanapr we have been discussing taking the CLIs out of core openwhisk and keeping them in separate project repos. as the correct organization.  We already have an issue trying to extend the CLI and would rather have the API frameworks as separable entities.

remove the duplicate from the main repo. (Should we remove it now?)
Let's remove, and the suffering will make the go CLI pickup what you are missing.

leave wskadmin alone, it's self contained.

leave wskadmin alone, it's self contained (did that long ago).

👍  I forgot it was self contained

"What we do with wskadmin?, maybe we can have a script to git clone the python client into core. then wskadmin can reference to it." @csantanapr
So this is viable (and same for Go?)?

Related to https://github.com/openwhisk/openwhisk/issues/1902

renamed.


Add per provider config:

What does this PR implement/change/remove?
There exists some config that cannot be shared across all providers. For example, the port for ipmitool is generally 623 but is generally 16992 for intelAMT, cipher suites for ipmitool, or TLS certificates. Allowing per-provider config enables customizing this type of data.
This introduces a * breaking change * to bmclib.NewClient. It no longer takes in a port. The ports for each provider have a default defined and each one can be overridden with a functional option. WithIpmitoolPort, for example.
I think fundamentally the behavior from the consumer side doesn't change. Consumers will still use With functions to specify per provider config. This change just organizes it differently under the hood.
Checklist

[ ] Tests added
[ ] Similar commits squashed

The HW vendor this change applies to (if applicable)
The HW model number, product name this change applies to (if applicable)
The BMC firmware and/or BIOS versions that this change applies to (if applicable)
What version of tooling - vendor specific or opensource does this change depend on (if applicable)
Description for changelog/release notes

Thanks for all the fixes and changes here 👍 This does make passing parameters to individual providers easier and succinct. The README requires some updating based on these changes, apart from that I've left a few comments, nothing major.

Thanks, @joelrebel. Could you point me to the needed changes in the README.md, please? I'm not finding anything specific.

Thanks, @joelrebel. Could you point me to the needed changes in the README.md, please? I'm not finding anything specific.

sure, in the README we have examples with bmclib.NewClient() that currently accept a port as a parameter, which is not required anymore right?

Thanks, @joelrebel. Could you point me to the needed changes in the README.md, please? I'm not finding anything specific.

sure, in the README we have examples with bmclib.NewClient() that currently accept a port as a parameter, which is not required anymore right?

Ahh, yes. thank you. I have updated the readme.


Need help related to gsoc project

Hi everyone actually I'm interested in this project idea Curate set of p5.js examples for 1.0 release how I get know about these projects. I have some question related to this project

Are you guys giving me an curating an artist list?
how to get contact with them?
also have some question here. someone please help me.

Hi @17bcs029, thanks for your interest. As the project list entry mentions, "This project would involve identifying and curating an artist list, finding their contact information, reaching out to them for existing examples or inviting them to make new ones, gathering and standardizing the files, and adding them to the p5.js website."
So you would be making the list yourself with help from your mentor. You could also use the forum or social media as a way to solicit suggestions. You would then need to find their contact info online somehow, and invite them to submit examples. The availability of contact info may limit your choices in curation. We have some contact info for past and present Processing Foundation Fellows and Google Summer of Code students that you could also make use of. Let's continue this discussion on the forum.

Thanks, @lmccart for your response. I also have some question related to this project. can you please take a look at forum?


[c][java] Implement Decimal types support

Partial fix for https://github.com/mono/Embeddinator-4000/issues/406

Build failed

Build failed

@tritao Why is it partial only? What is not supported a.t.m.?


⚠ Bofrost.be has degraded performance

In 29f881d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1825 ms

Resolved: Bofrost.be performance has improved in f2e1abd after 6 minutes.


Use StaticInternalSwiftSyntaxParser

Background
Sourcery depends on lib_internalSwiftSyntaxParser to use SwiftSyntax, but since this is deployed as a dynamic library by default, it becomes problematic when it comes to distributing the sourcery binary.
I happened to notice last week that SwiftLint recently released 0.47.0-rc.1, that also depends on SwiftSyntax and I happened to notice that they're using a static library version of lib_internalSwiftSyntaxParser - https://github.com/keith/StaticInternalSwiftSyntaxParser.
We're currently evaluating integrating Sourcery into our project, and we currently use Mint as our primary way of integrating Swift tooling. I believe its important for us to be able to lock the versions of the tools that we use for consistency, which is why I'm hesitant to use Homebrew, and I'd ideally want to avoid using another system that we're not already using so instead I thought it might be worth seeing if its possible to leverage StaticInternalSwiftSyntaxParser so that using Mint doesn't have any downsides 🙂
Changes
While I'll mark this PR as ready for review, I don't think we're quite there yet but I want to use what I have so far to get a conversation going. I'll leave more comments inline about specifics, but other than that, I understand that Sourcery is quite a big ecosystem (SourceryFramework, distributed by CocoaPods etc) so I'm sure there is also something else I have probably missed 😄
Thanks again for such a cool tool though!

Following some discussion in #1038, there are some other things to think about related to this change.

SwiftLint also bumped to using SwiftSyntax in realm/SwiftLint#3901 (and realm/SwiftLint#3907), should we follow that direction? I guess so? But shall I do that here or elsewhere?
If we do bump to 5.6, tooling for building the binary will require Xcode 13.3+. Is that ok? Are there any other dependencies that would have a problem with this? Should we provide backwards compatibility?

@liamnichols this is such a great work 🙇
I don't think we need backward compatibility, we can bump SwiftSyntax version if it doesn't require api changes (most of the time it doesn't)

I would prefer to use the correct version of SwiftSyntax. But I'm not 100% if the local toolchain is the problem. I use Sourcery via Mint. That means: if you work with Xcode 13.2.1 and use Sourcery via Mint, then you will build a version of Sourcery in Swift 5.5.2. If you do the same thing with Xcode 13.3, then you will build it on Swift 5.6. I think in both cases you need a different version of SwiftSyntax. That means we need a flexible solution to add the correct version of SwiftSyntax.

@AF-cgi this only happens because Mint is not supported, rPath should be pointing to the library I bundled with the tool otherwise you are going to crash sooner or later.
The changes @liamnichols did here mean we are no longer dynamically linking but bundling the library as any other dependency, which will mean it will work regardless of what Xcode version you use even in Mint config

When using swift build --package-path XXX --configuration release with Xcode 13.2.1, I get the following warning:
ld: warning: dylib (/Applications/Xcode_13.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/lib_InternalSwiftSyntaxParser.dylib) was built for newer macOS version (10.14.6) than being linked (10.12)
https://github.com/Cyberbeni/install-swift-tool/runs/5650524281?check_suite_focus=true#step:4:177

When using swift build --package-path XXX --configuration release with Xcode 13.2.1, I get the following warning: ld: warning: dylib (/Applications/Xcode_13.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/lib_InternalSwiftSyntaxParser.dylib) was built for newer macOS version (10.14.6) than being linked (10.12)
https://github.com/Cyberbeni/install-swift-tool/runs/5650524281?check_suite_focus=true#step:4:177
edit: I assume it is trying to link the dylib from Xcode because the binaryTarget specification requires Swift 5.6 to work properly (Updating the swift-syntax package to 0.50600.1 should allow building with Xcode 13.2.1). Still should update platforms to .macOS("10.14.6") or higher in Package.swift.

Ah yes, I had seen this too I think. I agree though, we should update Package.swift to match the minimum deployment target of lib_InternalSwiftSyntaxParser since I assume it wouldn't work on macOS 10.12 anyway (although I haven't/can't test).
For reference, the dlyb in Xcode 13.2.1:
$ otool -l /Applications/Xcode-13.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/lib_InternalSwiftSyntaxParser.dylib | grep minos -B 4 -A 4
Load command 8
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform 1
    minos 10.14.6
      sdk 12.1
   ntools 1
     tool 3
  version 711.0
--
Load command 9
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform 1
    minos 11.0
      sdk 12.1
   ntools 1
     tool 3
  version 711.0

And in 13.3:
$ otool -l /Applications/Xcode-13.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/lib_InternalSwiftSyntaxParser.dylib | grep minos -B 4 -A 4
Load command 8
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform 1
    minos 10.14.6
      sdk 12.3
   ntools 1
     tool 3
  version 762.0
--
Load command 9
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform 1
    minos 11.0
      sdk 12.3
   ntools 1
     tool 3
  version 762.0

The minos remains 10.14.6 (or 11.0 for arm64).
I can update this in the Package.swift, but I guess its only something minor.

edit2: // swift-tools-version:5.3 should also be updated to 5.5 (Xcode 13.0 is required to build even without the linking issues) -- or 5.6 if updating swift-syntax package doesn't allow linking correctly with Xcode 13.0-13.2.1

Good shout 👍

Thanks for merging @krzysztofzablocki! One thing that I think I forgot to mention is that when you next to release to Homebrew, I think we'll need to remove this line manually:
https://github.com/Homebrew/homebrew-core/blob/71ed492e4ed7e55ebc5a77af8794067b5f21f037/Formula/sourcery.rb#L23
Other than that, it should be all good 👍


Not possible to get Crossref API Key - This tool is no longer available

https://www.crossref.org/deprecated/
any suggestion for substitution of Crossref?

Crossref as a whole isn't deprecated, that page is seemingly a place where Crossref documents various aspects of its overall service that have been deprecated.
Was there some aspect of our code that made you observe a deprecation notice?

From here: https://api.crossref.org/swagger-ui/index.html. Look like they dont provide the api key any more but instead just use https protocol. So how can I set up the crossref api in the settings? I tried to process 42 pdfs. Do I need to get these api?


[feature]Spconv Voxelization

Motivation
spconv voxelization
Modification
include spconv voxelization
BC-breaking (Optional)
Does the modification introduce changes that break the back-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases and performance
origin points shape (126891, 4)
expected:
voxels (36787, 30, 4)
coors (36787, 3)
hard voxelization on cpu time(ms): 58.62259864807129
Voxelization(voxel_size=[0.1, 0.1, 0.1], point_cloud_range=[-50, -50, -3, 50, 50, 1], max_num_points=30, max_voxels=(40000, 40000))
voxels (36787, 30, 4)
coors (36787, 3)
dynamic voxelization on cpu time(ms): 3.253459930419922
Voxelization(voxel_size=[0.1, 0.1, 0.1], point_cloud_range=[-50, -50, -3, 50, 50, 1], max_num_points=-1, max_voxels=(40000, 40000))
coors (126891, 3)
points (126891, 4)
hard voxelization on gpu time(ms): 3250.900983810425
Voxelization(voxel_size=[0.1, 0.1, 0.1], point_cloud_range=[-50, -50, -3, 50, 50, 1], max_num_points=30, max_voxels=(40000, 40000))
voxels (36787, 3)
coors (36787, 30, 4)
>>>>>>>>>>>>>>>>>>stream:0
dynamic voxelization on gpu time(ms): 0.6043910980224609
Voxelization(voxel_size=[0.1, 0.1, 0.1], point_cloud_range=[-50, -50, -3, 50, 50, 1], max_num_points=-1, max_voxels=(40000, 40000))
coors (126891, 3)
spconv voxelization time(ms): 12.284517288208008
voxels shape  (36787, 30, 4)
num_points_per_voxel [1 1 1 ... 5 1 1]
coors (36787, 3)
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

How to coverge codes with test case ?  @Tai-Wang @THU17cyz
mmdet3d/ops/spconv/utils/__init__.py#L14-L15
Added lines #L14 - L15 were not covered by tests

the implementation of voxelization is in mmdet3d.core.voxelization

This PR will not be merged as the implementation already duplicates that in mmdet3d.core.voxelization. Feel free to create an issue first for discussion if you want to add or enhance the voxel generator for some purpose.


feat: add module system

OMAP can now be started via a config system.
More informations can be found in the README.

@NiklasMerz all fixed :)


Error: Request failed with status code 401

I have tried both GatsbyJS and NextJS boilerplate also. The same thing happening, 401 error! I want to use Storyblok as my go-to Headless CMS for all the clients, But now I am feeling hopeless about it!

Pls, help @spences10 @onefriendaday @jonsuh @fgiuliani @saijim

I have pointed out the issue. The space server location was "US". It causing the issue. The "EU" server working fine!
If you want to select the US server. You do have to specify the "us" region specifically in the gatsby-config.js file.
options: {
        accessToken: process.env.GATSBY_STORYBLOK_ACCESS_TOKEN,
        ....
        ....
        region: 'us'  // <<------------------ Add this line
      }

I have pointed out the issue. The space server location was "US". It causing the issue. The "EU" server working fine!
If you want to select the US server. You do have to specify the "us" region specifically in the gatsby-config.js file.
options: {
accessToken: process.env.GATSBY_STORYBLOK_ACCESS_TOKEN,
....
....
region: 'us'  // <<------------------ Add this line
}

@raqibjs took me 5 days of digging around and if you hadn't of posted this I would have been lost for who knows how much longer.  The docs are still not updated to remedy this error or perhaps I'm just missing something.  In any case thanks!


Micro-tuning

We can implement the tuning file support thanks to the surge tuning library.
https://github.com/surge-synthesizer/tuning-library
This library is able to accept one or a pair of .scl and .kbm, and it can output and array of MIDI note frequencies to match these settings. The advantage of this particular library is the MIT license.
As LV2 is concerned, an example of manifest can be taken from rncbc's synthv1.lv2.
Parameters are as follows:

tuning : on/off
reference note : 69
reference pitch : 440.0
scale file
keymap file

A script to generate tuning tables of the Railsback curve for pianos
railsback.tar.gz

X: midi key
Y: detune in cents


UDP support?

Any plans on adding UDP support, or open to the suggestion for using :gen_udp or meh/elixir-socket for UDP support?

I think not, grpc is based on HTTP2 for the moment.


check if added class name if not empty #423

Sorry Jens but I couldn't merge it as it's only edited in dist files. I've fixed the issue in release 4.9.3


Updated community page with reference to Zulip

Whoops. Looks like there are some stray commits in this PR.


Fix Static File Serving in Kitura

Serving static files should not assume that Packages directory exist, Packages directory is a build time artifact. The executable can be deployed without Packages directory.
Proposed design:

Use Bundle.main().pathForResource. (Should be future-proof, SPM may provide Resource management in the future)
Use Makefile to copy the resources to the .build directory
Use Copy Files build phase in Xcode
Use customFixXcode target in Makefile to add the build phase in 3.
For deployment - copy Resources directory to the location of the executable.

The produced executable depends on dynamic libraries produced by SPM. These dynamic libraries, for example libHTTPParser.dylib are produced in the .build directory.
The location of the build directory can be changed by providing --build-path flag. This means that one cannot assume that the result executable runs in the original sources directory (of the repository, the directory that contains Package.swift), or in .build directory inside the original sources directory.
[To check which libraries an executable depends on:] (http://stackoverflow.com/a/1058872/6028420)

On macOS: otool -L <executable>

Example output:
vadime-mac:KituraExecDir vadime$ otool -L KituraSample
KituraSample:
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1338.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1237.0.0)
	/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork (compatibility version 1.0.0, current version 796.0.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1338.0.0)
	/Users/vadime/KituraBuild/release/libCHTTPParser.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 8.0.0)
	@rpath/libswiftCore.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libswiftCoreGraphics.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libswiftDarwin.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libswiftDispatch.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libswiftFoundation.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libswiftIOKit.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libswiftObjectiveC.dylib (compatibility version 0.0.0, current version 0.0.0)

It was decided that the following design will be implemented:
Handling static resources will be source-location based.
Use #file directive to get the source location of the current source file, calculate the location of static resources based on their relative location in regard to the current source file.
Pros: Simple to the user
Cons: The assumption here is that the source directory (inside Packages directory of the executable) will remain at the same location after the build. Additional assumption is that the source location is accessible to the running executable, in particular it is on the same machine as the running executable and the process of the running executable has permissions to access the sources.

It was decided on a hybrid approach:
Handling static resources will be first working-directory based. If the resource does not exist on a path relative to the working directory, source-location based approach will be applied, see https://github.com/IBM-Swift/Kitura/issues/741#issuecomment-248541828.

Implemented as described in https://github.com/IBM-Swift/Kitura/issues/741#issuecomment-248584516.

reviewed when merged PR.


Can't download from youtube

$ youtube-dl https://www.youtube.com/watch?time_continue=25&v=wwa9UpVs0Qk
[1] 30298
asd@papai:~$ [generic] watch?time_continue=25: Requesting header
[redirect] Following redirect to https://www.youtube.com/
[generic] www.youtube: Requesting header
WARNING: Falling back on generic information extractor.
[generic] www.youtube: Downloading webpage
[generic] www.youtube: Extracting information
ERROR: Unsupported URL: https://www.youtube.com/
$$ youtube-dl --version
2017.09.15
[1]+  Fim da execução com status 1      youtube-dl https://www.youtube.com/watch?time_continue=25
youtube-dl --version
2017.09.15
[1]+  Fim da execução com status 1      youtube-dl https://www.youtube.com/watch?time_continue=25
Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.09.15. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2017.09.15

Before submitting an issue make sure you have:

[ ] At least skimmed through the README, most notably the FAQ and BUGS sections
[ ] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2017.09.15
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.

$ youtube-dl -v https://www.youtube.com/watch?time_continue=25&v=wwa9UpVs0Qk
[1] 31375
asd@papai:~$ [debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'https://www.youtube.com/watch?time_continue=25']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.09.15
[debug] Python version 2.7.13 - Linux-4.9.0-3-amd64-x86_64-with-debian-9.1
[debug] exe versions: ffmpeg 3.2.7-1, ffprobe 3.2.7-1
[debug] Proxy map: {}
[generic] watch?time_continue=25: Requesting header
[redirect] Following redirect to https://www.youtube.com/
[generic] www.youtube: Requesting header
WARNING: Falling back on generic information extractor.
[generic] www.youtube: Downloading webpage
[generic] www.youtube: Extracting information
ERROR: Unsupported URL: https://www.youtube.com/
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 2116, in _real_extract
doc = compat_etree_fromstring(webpage.encode('utf-8'))
File "/usr/local/bin/youtube-dl/youtube_dl/compat.py", line 2539, in compat_etree_fromstring
doc = _XML(text, parser=etree.XMLParser(target=_TreeBuilder(element_factory=_element_factory)))
File "/usr/local/bin/youtube-dl/youtube_dl/compat.py", line 2528, in _XML
parser.feed(text)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1653, in feed
self._raiseerror(v)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1517, in _raiseerror
raise err
ParseError: syntax error: line 1, column 0
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 776, in extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 434, in extract
ie_result = self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 2964, in _real_extract
raise UnsupportedError(url)
UnsupportedError: Unsupported URL: https://www.youtube.com/
[1]+  Fim da execução com status 1      youtube-dl -v https://www.youtube.com/watch?time_continue=25

https://github.com/rg3/youtube-dl#video-url-contains-an-ampersand-and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command


Strange adapter behavior (wrong endpoint) with belongsTo

I would expect the code below to call /api/v1/products/portfolio/card/:card_id when I do this.store.findRecord('card', card_id) and then call /api/v1/sizes/:size_id when I do {{card.size}}.
But instead when I do {{card.size}} it calls /api/v1/products/portfolio/card/:size_id.
Explicitly creating an adapter for size and specifying it's namespace has no effect.
This all worked correctly until I updated from active-model-adapter 1.13.3 to 2.1.1 and ember/ember-data from 1.13.x to 2.4.x.

Adapters:
// application.js
import ActiveModelAdapter from 'active-model-adapter';
import config from './../config/environment';

export default ActiveModelAdapter.extend({
  namespace: 'api/v1',
  host: config.host
});

// card.js
import ApplicationAdapter from './application';

export default ApplicationAdapter.extend({
  namespace: 'api/v1/products/portfolio'
});

Models:
// card.js
import DS from 'ember-data';

export default DS.Model.extend({
  size: DS.belongsTo('size', {async: true}),
});

// size.js
// (no reference to card)

Hey, is there an example payload for the card available? Like something you would get back from teh server? I have an idea of where this bug is coming from and the payload might confirm it.

yep just a sec

Looks like I actually have the size embedded AND async in this example (I'm just the lowly front-end guy!) but we're using it as async in this app. This is stripped down so let me know if you'd like the full payload, I can do that too.
{
  "card": {
    "id": 1563,
    "product_id": 2544,
    "size_id": 2930,
    "product_attributes": {
      "id": 2544,
      "product_id": 2544,
      "productable_type": "Products::Card",
      "created_at": "2015-07-24T01:00:33.625Z",
      "updated_at": "2016-03-18T18:08:07.568Z",
    },
    "size": {
      "id": 2930,
      "product_id": 2544,
      "created_at": "2015-07-24T04:03:10.125Z",
      "updated_at": "2015-08-22T03:46:36.535Z"
    }
  }
}

btw, verified that this behavior disappears when I downgrade back to 1.13.3 (ember/ember-data are still upgraded)
I'll see if I can pinpoint a release where it starts.

It starts @2.1.0

Since the size seems to be embedded in card, I don't understand why an API call is made at all? In your payload you have a size_id and an embedded size. A call to /api/v1/products/portfolio/card/:size_id seems odd, can you post your serializer definitions as well?
I've created a basic ember-twiddle trying to reproduce the issue you're having, with no luck yet. Can you update so it demonstrates the issue/bug? Thanks!

Closing due to inactivity. Please feel free to reopen if this issue is still presenting itself.


Work around bad traffic accounting in trackers

Traffic accounting in bittorrent trackers is a hacky mess and has a tendency to break.
One series of events that has been observed to cause issues is this:

peer_id=1, event=started, downloaded=0
peer_id=1, event="", downloaded=5
peer_id=1, event=completed, downloaded=10
a day of no internet connectivity while the client continues to run
peer_id=1, event="", downloaded=10

Some trackers seem to interpret event 5 as a new download, with 10 bytes downloaded, causing a total of 20 bytes downloaded across two downloads.I don't know why they would do that, as opposed to rejecting the announce since, if the previous session has timed out, there is no matching event=started announce, but it's the only explanation I could come up with for behavior I have observed, where a multi-hour internet outage resulted in doubled download stats.
We should probably stop retrying announces after a while and consider the session closed. The next announce, then, would be a new event=started announce, with downloaded=0. This will cause us to under-report some downloaded, but only the amount between the last successful announce and last failed announce. This will generally be much less than what we can over-report, namely the entire torrent.
We might also want to immediately stop and then start a torrent that has finished downloading, to ensure a fresh session with downloaded=0.

From the UNIT3D tracker: https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/7d85d161d3f0fc98788ab9171830c99c74f945fb/app/Jobs/ProcessBasicAnnounceRequest.php#L66-L94
Which suggests to me that this can in fact happen, if there is no "history record". Do history records get deleted after a while?

Reading the code, I don't see why history records would get deleted. But I also don't see how that announce code handles the case of a user downloading the same torrent multiple times.


Add ADRF and make the thumbnail view async

Fixes

First step of #2789 by @sarayourfriend
Description

This is the first step to convert the image proxy route to async. It converts the overall view to async. I've split this into a separate PR because (a) it is complex enough on its own and (b) converting the actual image_proxy.get function is blocked on sharing the aiohttp client session (for which I'll have another PR up later today, it's already finished I just forgot to push it last night :facepalm:).
So this PR only converts the view side of things to async. It does this by abstracting the thumbnails route in a slightly different way than it was before, which allows the audio and image views to ignore most of the safe-sync-in-async compatibility issues. To make that interplay a little easier, I decided to refactor image_proxy.get to use two MRO objects for the input, rather than the one-by-one parameter definitions. Now that I'm writing this, I'm realising that I could have avoided the changes to image_proxy.get itself by creating a new response definition for get_image_proxy_media_info and then using asdict to spread that into image_proxy.get. If y'all want me to make that change, I think it's a fine one to simplify the overall PR. On the other hand, I think the new API is also a bit cleaner, if potentially too abstract. Let me know what y'all think because I'm two minds about it.
Testing Instructions

Checkout the PR and run just build web to get the new dependencies. Also keep in mind that this PR depends on #3011.
Run just api/up and make various search requests, thumbnail, and related requests. Generally: exercise the image and audio media views and their various routes. Everything should essentially work as it did before. The existing API integration tests should also continue to work, along will all unit tests. This change should be generally totally transparent and not result in any observable differences on the consumer side, which is why I didn't add any new tests for this: the existing tests already cover the media view and should continue to work without changes. The only tests I changed were to use pook a little more fluidly and to accommodate the changes to the image_proxy.get function's interface.
Checklist

[x] My pull request has a descriptive title (not a vague title likeUpdate index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[x] I added or updated tests for the changes I made (if applicable).
[x] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.
[N/A] I ran the DAG documentation generator (if applicable).

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

I did notice a lack of static files in my local server, but it could just be my setup

I also had this and also assumed it was my local. Clearly a bad assumption from me, apologies. I'll have a fix up soon.

@dhruvkb Can you run just build web and try again? I've done that locally and the static files are working. Only thing I can think is that maybe one of the dependency changes caused a side-effect?

@AetherUnbound I updated the dataclass names to simplify them and make the request config role clearer.


Remove support for clear_depth

By removing support for the clear_depth argument of renderer.render(), the scope of that functions is reduced to rendering a scene, either on a fresh canvas, or (with clear_color off) rendering it over an existing rendered scene. The particular use-case that is dropped, is that of merging two scenes, but his use-case was somewhat artificial anyway. The dropping of this arg also excludes other techniques, but any such techniques should be solved using blenders anyway.
The advantage of removing this arg (and use-case) is that the blender's internal state can be refreshed on each draw (except for the main color buffer and pick buffer). This means that buffers can be re-used, which reduced the memory consumption.
In fact, in this PR the WeightedPlusFragmentBlender is updated to re-use the depth buffer instead of creating a secondary depth buffer. More optimization may be possible.
Todo: the comments about memory usage in _blender.py should be updated: both #212 and this PR affect these. Need to update in last PR to merge.

I've come to understand that the workflow for pygfx will be to select an appropriate blending strategy for the visual result you are trying to achieve, so I guess we would need to document that.
I could also imagine (later) creating an API where users can configure the blending strategy themselves, in addition to having all these presets available to them.


Calling update_subscription results in 'No such customer' exception

I am doing the following
customer = Stripe::Customer.create(email<EMAIL_ADDRESS>                                   card: StripeMock.generate_card_token(last4: '9191'))
Stripe::Plan.create(id: 'abc', amount: 123, interval: 'month', currency: 'usd', name: 'test1')
customer.update_subscription(plan: 'abc')

The update_subscription call is throwing the exception:
Stripe::InvalidRequestError: No such customer: test_cus_3/subscription
Calling update_subscription on a customer works well with the stripe-ruby SDK.

So this issue is not quite resolved, updating a subscription.plan via the stripe docs way still results in a weird error.
docs:
subscription = Stripe::Subscription.retrieve({SUBSCRIPTION_ID})
subscription.plan = {PLAN_ID}
subscription.save

my code:
      stripe_sub = user.subscription.stripe_self
      stripe_sub.plan = plan_id
      stripe_sub.save

error:
Stripe::InvalidRequestError:
No such customer: test_cus_3/subscriptions/test_su_4

Having same issue https://github.com/rebelidealist/stripe-ruby-mock/issues/142#issuecomment-230622814

The doc has this thing mentioned in here:
https://stripe.com/docs/billing/subscriptions/canceling-pausing#reactivating-canceled-subscriptions
If the cancellation has already been processed and the subscription is no longer active, a new subscription is needed for the customer. Keep in mind that Stripe immediately starts your customer’s subscription under a new billing cycle, so this action results in a new charge. You can override this behavior using the trial_end parameter so the customer isn’t immediately billed (e.g., to maintain the old billing cycle).


Recommended way to shuffle intra and inter archives?

 In my case each archive is a pickle file containing a list of samples, but it could be a tar or something else.
I want to shuffle between archives (inter) and within archives (intra). My current way of doing it is below. Is there a more canonical solution?
from torchdata.dataloader2 import DataLoader2, adapter
from torchdata.datapipes.iter import IterDataPipe, FileLister, IterableWrapper
from pathlib import Path

import pickle

# Create archives
root = Path("/tmp/dataset/")
with open(root / "1.pkl", "wb") as f:
    pickle.dump(list(range(10)), f)
with open(root / "2.pkl", "wb") as f:
    pickle.dump(list(range(10, 20)), f)

class PickleLoaderDataPipe(IterDataPipe):
    def __init__(self, source_datapipe):
        self.source_datapipe = source_datapipe

    def __iter__(self):
        for path in self.source_datapipe:
            with open(path, "rb") as f:
                yield pickle.load(f)  # <- this is a list

class ConcaterIterable(IterDataPipe):
    # Same as unbatch(), kinda
    def __init__(self, source_datapipe):
        self.source_datapipe = source_datapipe

    def __iter__(self):
        for iterable in self.source_datapipe:
            yield from iterable

def intra_archive_shuffle(archive_content):
    return IterableWrapper(archive_content).shuffle()

dp = FileLister(str(root), masks=["*.pkl"])
dp = dp.shuffle()  # inter-archive shuffling
dp = PickleLoaderDataPipe(dp)
dp = dp.map(intra_archive_shuffle)
dp = ConcaterIterable(dp)  # Note: unbatch doesn't work because it's a datapipe of datapipes

print(list(dp))

Also, I don't know if this is normal or if there is a problem with DataLoader2, but if I call shuffle().set_shuffle(False) (like we do in torchvision), then the datapipe doesn't get properly shuffled: only the intra-archive shuffling happens:
# same as before, just calling `.set_shuffle(False)` to avoid shuffling by default

def intra_archive_shuffle(archive_content):
    return IterableWrapper(archive_content).shuffle().set_shuffle(False)

dp = FileLister(str(root), masks=["*.pkl"])
dp = dp.shuffle().set_shuffle(False)
dp = PickleLoaderDataPipe(dp)
dp = dp.map(intra_archive_shuffle)
dp = ConcaterIterable(dp)  # Note: unbatch doesn't work because it's a datapipe of datapipes

#print(list(dp))
dl = DataLoader2(dp, datapipe_adapter_fn=adapter.Shuffle())
print(list(dl))

The result will only ever be:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

or
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

OK so regarding the use of shuffle().set_shuffle(False) in the message above, the problem comes from traverse():
traverse(dp)
{ConcaterIterable: {MapperIterDataPipe: {PickleLoaderDataPipe: {ShufflerIterDataPipe: {FileListerIterDataPipe: {IterableWrapperIterDataPipe: {}}}}}}}

The intra-archive shufflers are "hidden" by the MapperIterDataPipe, and so they are not re-activated by the adapter.
There's probably nothing traverse() can do here... Or maybe there is? @VitalyFedyunin would you like me to open a more specific issue to keep track of this particular issue?
I wonder what it means w.r.t. to users code though.  A few outstanding questions on my side:

Do we need to tell users to never create datapipes in a call to map()?
Are there other blind spots like this one?
Going back to my initial question from this post, since my snippet doesn't actually work: What is a good canonical way to shuffle intra and inter archives? 😅

Do we need to tell users to never create datapipes in a call to map()?

The problem is more general in that it applies to any kind of wrapper that generates a datapipe, not just to a Mapper. For example the solution below still has the exact same problem because the Shuffler instances are hidden within the PickleLoaderDataPipe:
class PickleLoaderDataPipe(IterDataPipe):
    def __init__(self, source_datapipe):
        self.source_datapipe = source_datapipe

    def __iter__(self):
        for path in self.source_datapipe:
            with open(path, "rb") as f:
                yield IterableWrapper(pickle.load(f)).shuffle().set_shuffle(False)  # <- shuffling won't work

What is a good canonical way to shuffle intra and inter archives?

I think the best way is to use in_batch_shuffle. Though we need to add further randomness control to it if we want it to be enabled/disabled.
cc: @ejguan

The problem is more general in that it applies to any kind of wrapper that generates a datapipe, not just to a Mapper. For example the solution below still has the exact same problem because the Shuffler instances are hidden within the PickleLoaderDataPipe:

I feel like this is not solvable by traverse function. I think we should DataPipe as a static graph of operations. The PickleLoader adds DataPipe in the runtime, which makes torchdata no way to track the DAG.

I think question here is how big is the pickled data. If it fits memory nicely (I presume it just have too, due to the Pickle nature) the best case would be to shuffle list using standard python functions:
import random
def intra_archive_shuffle(archive_content):
    random.shuffle(archive_content)
    return archive_content

Also in_batch_shuffle does exactly this so it is preferable way. Note: It is not sensitive to shuffle enables/disables, let us know if it is the issue.
If in other case (let say you are using tar or any other stream unpacks), it is better to yield item by item and use multiple instances of the shuffle:
dp = FileLister(str(root), masks=["*.pkl"])
dp = dp.shuffle().set_shuffle(False)
dp = PickleLoaderDataPipe(dp)
dp = dp.shuffle() # yes again, play with buffer size here

Also:
Now I can see where DataPipes of DataPipes is comming from, and want to note that it is anti-pattern for DP graphs and we should include linter for it.

Thanks a lot everyone for your input!

dp = dp.shuffle() # yes again, play with buffer size here

Ah that's a great idea, if we set buffer_size=archive_size it should do what I want to do (shuffling is a tiny bit different but it doesn't matter, it's actually better). However, we would need to know the size of the archives, which might be tricky / cumbersome in general?
Looks like in_batch_shuffle would be a good alternative, however I do need the ability to disable shuffling because the same code-path would be used for the training sets (shuffle enabled) and the tests sets (shuffle disabled).

Looks like in_batch_shuffle would be a good alternative, however I do need the ability to disable shuffling because the same code-path would be used for the training sets (shuffle enabled) and the tests sets (shuffle disabled).

Yeah. This is one of TODOs on top of my lists. I need to align in_batch_shuffle with shuffle in terms of API.


feat(service): add part-of, instance selector labels and appProtocol

Welcome to Cryostat! 👋
Before contributing, make sure you have:

[x] Read the contributing guidelines
[x] Linked a relevant issue which this PR resolves
[x] Linked any other relevant issues, PR's, or documentation, if any
[x] Resolved all conflicts, if any
[x] Rebased your branch PR on top of the latest upstream main branch
[x] Attached at least one of the following labels to the PR: [chore, ci, docs, feat, fix, test]
[x] Signed all commits: git commit -S -m "YOUR_COMMIT_MESSAGE"

Fixes: #
See https://github.com/cryostatio/cryostat-helm/pull/211
Related to https://github.com/cryostatio/cryostat-openshift-console-plugin/issues/2
Description of the change:
This change adds allows the users to provide...
Motivation for the change:
This change is helpful because users may want to...
How to manually test:

Insert steps here...
...

/build_test

This PR + https://github.com/cryostatio/cryostat-openshift-console-plugin/issues/2 leads to this situation. The Cryostat Service is correctly identified, but the Agent proxy service is, too. That proxy has the same component: cryostat label on it - @ebaron does anything depend on that as a selector at this point, or can we change it?

/build_test

@ebaron does anything depend on that as a selector at this point, or can we change it?

Nothing relies on this, so renaming should be fine.

I wonder if I can still do this -

/build_test


useChangeLocale does not support searchParams

useChangeLocale removes searchParams from the url.
Version tested: 0.8.0

Thanks, I released 0.8.1 which contains #93

Storing searchParams after changing the language by useChangeLocale stopped working.
I implemented all the changes from the release 1.0.0 description.
Next: 13.5.3
next-international: 1.0.1


feat(yaml): make csi-controller a deployment and disable hostNetwork

Changes:

Remove hostNetwork: true
Make csi-controller a Deployment instead of a StatefulSet

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 5.72%. Comparing base (f3e9cd0) to head (efb53ce).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #286       +/-   ##
===========================================
- Coverage    23.50%   5.72%   -17.78%
===========================================
  Files           12      11        -1
  Lines         3008    2427      -581
===========================================
- Hits           707     139      -568
+ Misses        2288    2279        -9
+ Partials        13       9        -4

Flag
Coverage Δ

bddtests
?

unittests
5.72% <ø> (ø)

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

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


How to get hexadecimal modbus rtu message data

impl tokio_modbus::server::Service for Service {
    type Request = SlaveRequest<'static>;
    type Future = future::Ready<Result<Response, Exception>>;

    fn call(&self, req: Self::Request) -> Self::Future {
        match req.request {
            Request::ReadInputRegisters(_addr, cnt) => {
                let mut registers = vec![0; cnt.into()];
                registers[2] = 0x77;
                future::ready(Ok(Response::ReadInputRegisters(registers)))
            }
            Request::ReadHoldingRegisters(_, _) => {
                future::ready(Err(Exception::IllegalDataAddress))
            }
            _ => unimplemented!(),
        }
    }
}

It doesn't seem to get the full byte message in this example

Is this a question or is this a bug report? Please provide a working, reproducible example.

Is this a question or is this a bug report? Please provide a working, reproducible example.

Hi, want to use for logging full messages to the database


Add JPSS satellite, sectors, and Individual VIIRS Bands products

Couple quick changes but otherwise looks good!

Merged. Thanks!


Register MIMShapes default

Fixes #51

I'm merging this pull request, so I can send a pull request for my new commits @mkutmon


"You cannot use tokens without wrapping the component with StyleProvider" when using variants in react-native

Hi,
first of all, i love this library! This is exactly what i was looking for from an API perspective.
I have the following text component:
import React from "react"
import { Text as RNText } from "react-native"
import { styled } from "@gluestack-style/react"
import { TextProps } from "./text.props"
import { translate } from "../../services/i18n"

const StyledText = styled(
  RNText,
  {
    variants: {
      variant: {
        body: {
          fontSize: "$3",
        },
      },
    },
  },
  {
    componentName: "Text",
  } as const,
)
type StyledTextProps = React.ComponentProps<typeof StyledText>

export function Text(props: TextProps & StyledTextProps): JSX.Element {
  const {
    tx,
    text,
    children,
    txOptions,
    sx = {},
    variant = "body",
    ...rest
  } = props

  const i18nText = tx && translate(tx, txOptions)
  const content = text || i18nText || children

  return (
    <StyledText variant={variant} sx={sx} {...rest}>
      {content}
    </StyledText>
  )
}

However, when i use it i get

removing the token "$3" gets rid of the error, but this makes the variants api practically unusable for me. My entire app is wrapped in StyledProvider, so not sure what I'm doing wrong.
Thank you

Hey @harrisrobin, You need to wrap your App with StyledProvider and pass the config to use tokens and aliases. You can check out here.

Hey @harrisrobin, You need to wrap your App with StyledProvider and pass the config to use tokens and aliases. You can check out here.

ah sorry for not being clear. i have wrapped the app with the StyledProvider and passed the config already.
despite that i get this error in my expo app.
will put up a reproduction repo shortly

Thanks @harrisrobin, That'll help to debug the issue.

hey @ankit-tailor , while trying to debug ran into another issue I am able to reproduce. I have not yet put my finger on what's causing this but here's something that breaks in my expo/expo-router project:
Steps to reproduce:

wrap react-native's Text component in styled and import it.
i get the following:

You can try it by running the following project. To get past the issue, simply replace StyledText with RNText on line 85 of text.tsx.
It seems to be that wrapping Text in styled is causing this issue. What's interesting is when using expo's dev client, this issue doesn't always manifest and when i build a project on expo without using the dev client, i get the following error:
❌ Metro encountered an error:
src/components/profile-footer/profile-footer.tsx: /Users/expo/workingdir/build/src/components/profile-footer/profile-footer.tsx: You cannot use tokens without wrapping the component with StyledProvider. Please wrap the component with a StyledProvider and pass theme config.

I'm not yet sure how all of this relates, all i know is that gluestack-styles will regularly throw an error when i try to build my project without expo's dev client and the only thing i've been able to reliably reproduce locally is the above.
Will keep digging, for now working in the dev client seems to work fine.

This is still an issue for me, the problem is i am not able to always reproduce it but in my expo-router react-native app i keep getting this error and the bundle fails:

I may have to move away from gluestack unfortunately but I'm hoping to figure this out before i have to do that.


Rename DispatcherServlet to WebService

For naming consistency, DispatcherServlet will be renamed to WebService. Extending classes (e.g. MathServlet) will also be renamed to follow this convention.

This is done.


MM-40908 Go to threads view when switching a team if that was the last view

Summary

I added a localStorage setter/getter to save previousViewedType. This type includes channels and threads.
lastChannelPath for center_channel is decided based on this type.
Ticket Link

Fixes https://github.com/mattermost/mattermost-server/issues/19977
Screenshots

https://user-images.githubusercontent.com/59413880/166143266-4be7018b-7ec3-4032-824d-ffb3553d07c1.mov
Release Note

NONE

Hello @kyeongsoosoo,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

LGTM! Thanks @kyeongsoosoo!

Thanks, @Willyfrog. I didn't fully understand the role of penultimate channel.
I added penultimateViewedType. This storage value is updated when penultimateChannel is updated.

@Willyfrog any feedback?
@kyeongsoosoo I also opened this ticket today that is very related: https://mattermost.atlassian.net/browse/MM-44169
Would you be keen on adding that to this PR or taking it afterwards?

@koox00 heads up about this change, as it migth be useful as well for the future global drafts section.

@esethna I would like to work on that related isssue. Would it better to open a new PR?

@kyeongsoosoo sure, feel free to do so. I'll open a github issue and you can comment there so I can assign it to you

@kyeongsoosoo please comment here and I'll assign you! https://github.com/mattermost/mattermost-server/issues/20207

@esethna Don't those two tickets want the opposite thing? This one wants it so that the Threads view is treated like a channel view that's remembered when switching back to a team, and the other one wants it so that Threads is treated as a view that exists across teams.
Having both will also lead to some weird navigation situations that pull the user towards Threads view if they're switching teams. If you have two teams, you could end up in a situation like:

While viewing Team A, view Threads
Switch to Team B. You'll end up in Threads.
Switch to Town Square
Switch to Team A. You'll end up back in Threads.
Switch back to Team B. You'll end up in Threads again.

@hmhealey yes that could be a possible outcome. I don't see these tickets as conflicting by any means, especially given the way people use team switching and the threads view in real world scenarios. Given the feedback we've received I think these two tix will be beneficial to the overall UX of Threads, but if that's not the case we can always iterate.
The ideal solution is a cross-team threads view, but we're not quite there yet.

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

/cherry-pick release-7.0

Cherry pick is scheduled.


o sistema não está convertendo para modelagem lógica corretamente

Describe the bug
A clear and concise description of what the bug is.
Steps to reproduce

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

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Softwares version (please complete the following information):

OS: [e.g. iOS10]
Browser: [e.g. Firefox 79.0, Opera 69.2]

Additional context
Add any other context about the problem here.

Duplicated from #190


@MiskTest should default environment to TESTING

i'm going to try and fix the tests/comments so we can land this


Javadocs site's version selector is incorrect

For example the current spanner docs:
https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/spanner/package-summary.html
The version selector shows 0.98-alpha

It shows the same for bigtable

This is the BOM version number, which is intended behavior.


The same net's definition is listed twice

This module:
module top (out);
        output wire [7:0] out;

        reg signed [7:0] r = (1'h0);

        assign out = r;
endmodule

Produces this Module that has the "r" net listed twice (see the ------------------ lines):
|uhdmtopModules:
\_module_inst: work@top (work@top), file:/usr/home/yuri/nn-trainer/verilog-parser/reg-const.sv, line:1:1, endln:7:10
  |vpiName:work@top
  |vpiDefName:work@top
  |vpiTop:1
  |vpiNet:
---------------------------------- the first time ----------------------------------
  \_logic_net: (work@top.r), line:4:19, endln:4:29
    |vpiParent:
    \_module_inst: work@top (work@top), file:/usr/home/yuri/nn-trainer/verilog-parser/reg-const.sv, line:1:1, endln:7:10
    |vpiTypespec:
    \_logic_typespec: , line:4:2, endln:4:18
      |vpiRange:
      \_range: , line:4:13, endln:4:18
        |vpiLeftRange:
        \_constant: , line:4:14, endln:4:15
          |vpiParent:
          \_range: , line:4:13, endln:4:18
          |vpiDecompile:7
          |vpiSize:64
          |UINT:7
          |vpiConstType:9
        |vpiRightRange:
        \_constant: , line:4:16, endln:4:17
          |vpiParent:
          \_range: , line:4:13, endln:4:18
          |vpiDecompile:0
          |vpiSize:64
          |UINT:0
          |vpiConstType:9
      |vpiSigned:1
    |vpiName:r
<EMAIL_ADDRESS>    |vpiNetType:48
    |vpiSigned:1
  |vpiNet:
  \_logic_net: (work@top.out), line:1:13, endln:1:16
    |vpiParent:
    \_module_inst: work@top (work@top), file:/usr/home/yuri/nn-trainer/verilog-parser/reg-const.sv, line:1:1, endln:7:10
    |vpiTypespec:
    \_logic_typespec: , line:2:9, endln:2:19
      |vpiRange:
      \_range: , line:2:14, endln:2:19
        |vpiLeftRange:
        \_constant: , line:2:15, endln:2:16
          |vpiParent:
          \_range: , line:2:14, endln:2:19
          |vpiDecompile:7
          |vpiSize:64
          |UINT:7
          |vpiConstType:9
        |vpiRightRange:
        \_constant: , line:2:17, endln:2:18
          |vpiParent:
          \_range: , line:2:14, endln:2:19
          |vpiDecompile:0
          |vpiSize:64
          |UINT:0
          |vpiConstType:9
    |vpiName:out
<EMAIL_ADDRESS>    |vpiNetType:1
  |vpiTopModule:1
  |vpiPort:
  \_port: (out), line:1:13, endln:1:16
    |vpiParent:
    \_module_inst: work@top (work@top), file:/usr/home/yuri/nn-trainer/verilog-parser/reg-const.sv, line:1:1, endln:7:10
    |vpiName:out
    |vpiDirection:2
    |vpiLowConn:
    \_ref_obj: (work@top.out), line:1:13, endln:1:16
      |vpiName:out
<EMAIL_ADDRESS>      |vpiActual:
      \_logic_net: (work@top.out), line:1:13, endln:1:16
    |vpiTypedef:
    \_logic_typespec: , line:2:9, endln:2:19
      |vpiRange:
      \_range: , line:2:14, endln:2:19
        |vpiParent:
        \_port: (out), line:1:13, endln:1:16
        |vpiLeftRange:
        \_constant: , line:2:15, endln:2:16
          |vpiParent:
          \_range: , line:2:14, endln:2:19
          |vpiDecompile:7
          |vpiSize:64
          |UINT:7
          |vpiConstType:9
        |vpiRightRange:
        \_constant: , line:2:17, endln:2:18
          |vpiParent:
          \_range: , line:2:14, endln:2:19
          |vpiDecompile:0
          |vpiSize:64
          |UINT:0
          |vpiConstType:9
  |vpiContAssign:
  \_cont_assign: , line:4:19, endln:4:20
    |vpiNetDeclAssign:1
    |vpiRhs:
    \_constant: , line:4:24, endln:4:28
      |vpiParent:
      \_cont_assign: , line:4:19, endln:4:20
      |vpiDecompile:1'h0
      |vpiSize:8
      |HEX:0
      |vpiConstType:5
    |vpiLhs:
---------------------------------- the second time ----------------------------------
    \_logic_net: (r), line:4:19, endln:4:29
      |vpiParent:
      \_cont_assign: , line:4:19, endln:4:20
      |vpiTypespec:
      \_logic_typespec: , line:4:2, endln:4:18
        |vpiParent:
        \_logic_net: (r), line:4:19, endln:4:29
        |vpiRange:
        \_range: , line:4:13, endln:4:18
          |vpiParent:
          \_logic_typespec: , line:4:2, endln:4:18
          |vpiLeftRange:
          \_constant: , line:4:14, endln:4:15
            |vpiParent:
            \_range: , line:4:13, endln:4:18
            |vpiDecompile:7
            |vpiSize:64
            |UINT:7
            |vpiConstType:9
          |vpiRightRange:
          \_constant: , line:4:16, endln:4:17
            |vpiParent:
            \_range: , line:4:13, endln:4:18
            |vpiDecompile:0
            |vpiSize:64
            |UINT:0
            |vpiConstType:9
        |vpiSigned:1
      |vpiName:r
      |vpiNetType:48
      |vpiSigned:1
  |vpiContAssign:
  \_cont_assign: , line:6:9, endln:6:16

It looks like ref_obj should be used under the Assign operator instead of duplicating the whole net definition.
Version: 1.56
clang-15
FreeBSD 13.2

Expressions are uniquified (Cloned) for the same reason you have to traverse all the instances to make sure you don't alias objects that should not be aliased. The cloning is brute force hence the "duplication"

But in this case it seems like it should be aliased. These 2 is the same net. As long as the name is the same - this is the same net.

There is no aliasing mechanism in the cloning. As said above it is brute force.
It is not a problem for most applications, including Synthesis. What is the problem you face?
You can create your own symbol table.