Chart wont launch from VSCode (i.e. freezes indefinitely) , but creating webview window works fine

Hello - I am having issue launching Chart() from VSCode.  No error, just freezes.
Py code (that works):
import webview
webview.create_window('', 'https://www.google.com')
webview.start()
Jupyter output from within VSCode (window launches fine):
15:38:56.057 [info] Process Execution: ~\anaconda3\python.exe c:\Users<username>.vscode\extensions\ms-toolsai.jupyter-2023.7.1002162226-win32-x64\pythonFiles\normalizeSelection.py
15:38:56.172 [info] Generated code for 1 =  with 4 lines
15:38:56.179 [info] Kernel acknowledged execution of cell 21 @<PHONE_NUMBER>176
15:39:11.626 [info] End cell 21 execution @<PHONE_NUMBER>621, started @<PHONE_NUMBER>176, elapsed time = 15.445s
Py code using lightweight_charts (that does not run):
import yfinance as yf
df = yf.Ticker("aapl").history(start="2020-06-02", end="2020-06-07", interval="1d")
df = df.reset_index().rename(columns = {"Date": "time", "Open": "open", "High": "high", "Low": "low", "Close": "close", "Volume": "volume"})
import pandas as pd
from lightweight_charts import Chart
chart = Chart()  # <------ chokes heres
chart.set(df)
chart.show(block=False)
Jupyter output from within VSCode (window does not launch):
15:42:02.847 [info] Process Execution: ~\anaconda3\python.exe c:\Users<username>.vscode\extensions\ms-toolsai.jupyter-2023.7.1002162226-win32-x64\pythonFiles\normalizeSelection.py
15:42:02.951 [info] Generated code for 2 =  with 6 lines
15:42:02.967 [info] Kernel acknowledged execution of cell 22 @<PHONE_NUMBER>960
15:42:04.274 [warn] StdErr from Kernel Process Traceback (most recent call last):
File "", line 1, in
15:42:04.274 [warn] StdErr from Kernel Process File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 116, in spawn_main
15:42:04.275 [warn] StdErr from Kernel Process exitcode = _main(fd, parent_sentinel)
File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 125, in _main
15:42:04.275 [warn] StdErr from Kernel Process prepare(preparation_data)
File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 236, in prepare
15:42:04.276 [warn] StdErr from Kernel Process _fixup_main_from_path(data['init_main_from_path'])
File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
15:42:04.276 [warn] StdErr from Kernel Process main_content = runpy.run_path(main_path,
File "c:\Users<username>\anaconda3\envs\fincode\lib\runpy.py", line 288, in run_path
15:42:04.277 [warn] StdErr from Kernel Process code, fname = _get_code_from_file(run_name, path_name)
File "c:\Users<username>\anaconda3\envs\fincode\lib\runpy.py", line 252, in _get_code_from_file
Please note installed library version:
lightweight-charts        <IP_ADDRESS>                 pypi_0    pypi
Additional notes:

I can successfully launch the lightweight_charts from this python environment if I use SPYDER

Hey @xemltil,
Due to the Chart object's use of sub-processing, it must be enclosed within an if __name__ == '__main__' conditional.
Let me know if this works.
Louis

Hi - Thanks for the quick reply.  This code works when run from Spyder, but not when run from VSCode.
New py code (still no dice):
import yfinance as yf
import pandas as pd
from lightweight_charts import Chart
if name == "main":
df = yf.Ticker("aapl").history(start="2020-06-02", end="2020-06-07", interval="1d")
df = df.reset_index().rename(
columns={
"Date": "time",
"Open": "open",
"High": "high",
"Low": "low",
"Close": "close",
"Volume": "volume",
}
)
chart = Chart()
chart.set(df)
chart.show(block=False)

Jupyter output from within VSCode (window does not launch):
17:31:31.279 [info] Process Execution: ~\anaconda3\python.exe c:\Users<username>.vscode\extensions\ms-toolsai.jupyter-2023.7.1002162226-win32-x64\pythonFiles\normalizeSelection.py
17:31:31.381 [info] Generated code for 1 =  with 19 lines
17:31:31.400 [info] Kernel acknowledged execution of cell 67 @<PHONE_NUMBER>391
17:31:32.807 [warn] StdErr from Kernel Process Traceback (most recent call last):
File "", line 1, in
File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 116, in spawn_main
17:31:32.808 [warn] StdErr from Kernel Process exitcode = _main(fd, parent_sentinel)
File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 125, in _main
17:31:32.808 [warn] StdErr from Kernel Process prepare(preparation_data)
File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 236, in prepare
17:31:32.809 [warn] StdErr from Kernel Process _fixup_main_from_path(data['init_main_from_path'])
File "c:\Users<username>\anaconda3\envs\fincode\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
17:31:32.809 [warn] StdErr from Kernel Process main_content = runpy.run_path(main_path,
File "c:\Users<username>\anaconda3\envs\fincode\lib\runpy.py", line 288, in run_path
code, fname = _get_code_from_file(run_name, path_name)
File "c:\Users<username>\anaconda3\envs\fincode\lib\runpy.py", line 252, in _get_code_from_file
17:31:32.810 [warn] StdErr from Kernel Process with io.open_code(decoded_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'c:\Users\\Documents\FinancialCoding\prep_fin_data.py'

Error appears unrelated to this library:
FileNotFoundError: [Errno 2] No such file or directory: 'c:\Users\\Documents\FinancialCoding\prep_fin_data.py'

Check your paths perhaps?
Louis

Cool, worked.
Nothing in the code was explicitly calling that "prep_fin_dat.py" file, but somehow \multiprocessing\spawn.py was iterating for files looking for that archival *.py file.  I created and inserted a dummy file "prep_fin_dat.py" that doesnt do anything.  Its working now and I will trouble shoot bug later..

Oh man.  This is amazing.  SO MUCH QUICKER TO GOAL in python than JS.


chore: remove changelog generation

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


[PowerToys Run] Filter Currently Running Applications

Filter Currently Running Applications
Since the merge with Wox, the Window Walker aspect of PTRun has become much less efficient, as opening new applications and other search results often take priority over applications that are currently running.  For instance, I used to use Window Walker to search through open browser tabs, but this isn't really feasible anymore as PTRun returns too many results upon search to be easy or efficient.
To that end, would it be possible to somehow set an option so that PTRun only displays currently running applications?  Perhaps with a specific shortcut that opens PTRun to only look at open applications?  Or a character in the search to set as a filter (like ">" is a terminal run, maybe ":" only returns running applications)?
I think a lot of previous users of Window Walker would benefit.
Many Thanks for your consideration!

I really support the concept of prioritizing running applications at the top of the search results! My main objective would be to use PTRun to efficiently and easily switch between currently open applications.
Maybe have a look at Rofi for linux: https://github.com/davatorium/rofi

#4731

I'm coming from Window Walker, which has been officially dumped in favor of this tool. In that light, I think this replacement should really fill that role in as direct a manner as possible. Consequently, there should definitely be a hotkey for launching the search for current processes.
To me the tasks of switching to open processes and launching new ones are fundamentally different, even if they look similar on the surface. Therefore, I'd pretty much prefer them to be separate, so as to allow both to work at maximum efficiency, which they cannot do while sharing a space.
Maybe there can be three tools:

launcher: launch apps
walker: switch to open windows
finder: find miscellaneous files

Personally, I'd launch these with separate hotkeys. I see absolutely no overlap in usage there.
And for those who actually want everything in one tool, there could be a fully optional god search which draws on the others.
The way it is now, PT Run is of no use to me. I'll stick with Window Walker for now :(

I fully support the position of @rasenplanscher
As previously linked, "rofi" for linux does exactly this:

Built-in modes:
Window switcher mode (for running applications)
Application launcher (lauching applicationts)
Desktop file application launcher (finding/opening files)
Combi mode, allowing several modes to be merged into one list

Personally, I prefer the combi mode because when I want to do something in program X, I don't want to think about if I may have program X already running or if I do have to start it again - I just want to do something with program X, no matter if I have to switch to the respective window or start the program.

Personally, I prefer the combi mode because when I want to do something in program X, I don't want to think about if I may have program X already running or if I do have to start it again - I just want to do something with program X, no matter if I have to switch to the respective window or start the program.

That is definitely a valid use-case.
My understanding is that wox has been fully integrated, and WindowWalker made into a plugin. Therefore, a simple solution likely won't happen. With that in mind, what I'd like to see is the ability to launch PTRun with different hotkeys loading different sets of plugins. For example:

F13: launcher + switcher (as per @chrobs)
Alt+F13: process-killer
F14: file-finder
F15: clipboard-history

That way:

the full power of a god search à la wox would be available
each setup could be very fast
one would not need keywords as with wox
god search would not be a special case, but easily available to those who want it

hi @PatrickRodowicz , we have a number of issues regarding changing the Window Walker integration. Thank you for the suggestions and well thought out conversation. Please paste your ideas in the following issues:

An option to let running programs be first in the results list - #3169
Explicitly start new program instance with modifier key - #3884
Rethink integration of window walker into launcher - #3357

closing this as a duplicate, feel free to open if the other issues don't cover your suggestions!


Update zio-logging, zio-logging-slf4j to 2.1.16

About this PR
📦 Updates

dev.zio:zio-logging
dev.zio:zio-logging-slf4j

from 2.1.12 to 2.1.16
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "dev.zio" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #595.


Add ContainsLowercase case to ValidationPattern enum

Just a simple .ContainsLowercase validation pattern to compliment the existing .ContainsCapital when validating passwords etc. I think the .ContainsCapital case should then be renamed to .ContainsUppercase, however, I didn't wish to make breaking changes to the project.
Thanks

ty


Installation worked at commit id 0cdaf56, but it doesn't work now

Hello. First of all, thank you very much for this wonderful project.
I have 2 PCs which are 1) a MacBook Pro 13-inch laptop and 2) a desktop with Ubuntu 18.04 LTS respectively.
Few weeks ago, I managed to install OpenSfM on my MacBook Pro successfully. After that, I also got to install OpenSfM on the Ubuntu PC today. However, even if I already installed all the dependencies that OpenSfM needs, the installation script failed to install the software.
I found that the problem didn't happen when I was dealing with my MacBook few weeks ago, and it just happened now in Ubuntu PC. It looked like something was happened during few weeks. So, I decided to find which commit was checked out in MacBook and Ubuntu PC. The result was...

MacBook - 0cdaf565acaae899a668ad88b57ecdbb9eb285bb
Ubuntu PC - 04e24a0a7bd79843e9b2993e7cfe9938d96b5fb9

So, in Ubuntu PC, I checked out commit id 0cdaf56 (same with MacBook), and I could build OpenSfM successfully.
Here is the error message when I was building OpenSfM with 04e24a0 commit was checked out.
Thank you.

Scanning dependencies of target geometry
[ 58%] Building CXX object geometry/CMakeFiles/geometry.dir/src/essential.cc.o
[ 59%] Building C object third_party/vlfeat/CMakeFiles/vl.dir/vl/stringop.c.o
[ 61%] Building C object third_party/vlfeat/CMakeFiles/vl.dir/vl/svm.c.o
[ 62%] Building C object third_party/vlfeat/CMakeFiles/vl.dir/vl/svmdataset.c.o
[ 63%] Building C object third_party/vlfeat/CMakeFiles/vl.dir/vl/vlad.c.o
[ 64%] Linking C static library libvl.a
[ 64%] Built target vl
[ 66%] Building CXX object geometry/CMakeFiles/geometry.dir/src/triangulation.cc.o
[ 67%] Linking CXX static library libdense.a
[ 67%] Built target dense
[ 68%] Building CXX object geometry/CMakeFiles/geometry.dir/src/absolute_pose.cc.o
Scanning dependencies of target testing_main
[ 70%] Building CXX object CMakeFiles/testing_main.dir/testing_main.cc.o
[ 71%] Linking CXX static library libtesting_main.a
[ 71%] Built target testing_main
[ 72%] Building CXX object geometry/CMakeFiles/geometry.dir/src/relative_pose.cc.o
In file included from /root/OpenSfM/opensfm/src/geometry/relative_pose.h:7:0,
from /root/OpenSfM/opensfm/src/geometry/src/relative_pose.cc:1:
/usr/local/include/ceres/tiny_solver_autodiff_function.h: In instantiation of 'class ceres::TinySolverAutoDiffFunction<RelativePoseCost<__gnu_cxx::_normal_iterator<std::pair<Eigen::Matrix<double, 3, 1>, Eigen::Matrix<double, 3, 1> >, std::vector<std::pair<Eigen::Matrix<double, 3, 1>, Eigen::Matrix<double, 3, 1> > > > >, -1, 6, double>':
/root/OpenSfM/opensfm/src/geometry/relative_pose.h:139:24:   required from 'Eigen::Matrix<double, 3, 4> RelativePoseRefinement(const Eigen::Matrix<double, 3, 4>&, IT, IT, int) [with IT = __gnu_cxx::__normal_iterator<std::pair<Eigen::Matrix<double, 3, 1>, Eigen::Matrix<double, 3, 1> >, std::vector<std::pair<Eigen::Matrix<double, 3, 1>, Eigen::Matrix<double, 3, 1> > > >]'
/root/OpenSfM/opensfm/src/geometry/src/relative_pose.cc:47:92:   required from here
/usr/local/include/ceres/tiny_solver_autodiff_function.h:138:62: error: size of array is negative
mutable Jet<T, kNumParameters> jet_residuals[kNumResiduals];
^
geometry/CMakeFiles/geometry.dir/build.make:134: recipe for target 'geometry/CMakeFiles/geometry.dir/src/relative_pose.cc.o' failed
make[2]: *** [geometry/CMakeFiles/geometry.dir/src/relative_pose.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Scanning dependencies of target pydense
[ 74%] Building CXX object dense/CMakeFiles/pydense.dir/python/pybind.cc.o
Scanning dependencies of target features
[ 75%] Building CXX object features/CMakeFiles/features.dir/src/akaze_bind.cc.o
[ 76%] Linking CXX static library libbundle.a
[ 76%] Built target bundle
[ 77%] Building CXX object features/CMakeFiles/features.dir/src/hahog.cc.o
CMakeFiles/Makefile2:671: recipe for target 'geometry/CMakeFiles/geometry.dir/all' failed
make[1]: *** [geometry/CMakeFiles/geometry.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 79%] Building CXX object features/CMakeFiles/features.dir/src/matching.cc.o
[ 80%] Linking CXX shared module /root/OpenSfM/opensfm/pydense.cpython-36m-x86_64-linux-gnu.so
[ 81%] Linking CXX static library libfeatures.a
[ 81%] Built target features
[ 81%] Built target pydense
Makefile:94: recipe for target 'all' failed
make: *** [all] Error 2
Traceback (most recent call last):
File "setup.py", line 49, in
build_c_extension()
File "setup.py", line 45, in build_c_extension
subprocess.check_call(['make', '-j4'], cwd='cmake_build')
File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', '-j4']' returned non-zero exit status 2.

sorry for wrong screenshot place 🙏

Hi,
Sorry for the inconvenience, there was effectively a glitch two days ago with the supported Ceres version leading to build errors.
It has been fixed on Monday at the following commit ID : https://github.com/mapillary/OpenSfM/commit/aac0e0dbb0f29ca8ddc099eb9d74b780923909fd
Please update to latest master.
Let me know if that solves your issue,
Yann

Thank you for your effort. I'll try soon.

Checked out the most recent commit, and the installation works perfectly. It was tested on macOS.


error when no new line at end of .ssh/config

Hey! First of all thank you for this tool. There are lots of bookmark managers for ssh, but it's the first one I find that does exactly what I want, be simple and :

command line
cross platform (we're almost there)
does not need extra framework like ruby or node
comply with ssh config standard

I noticed an issue. If I edit the config file myself and forget to add extra new line at the end of the file (yeah I should use a better text editor),
Then I got this error (on macos):
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x10f9fe4]

goroutine 1 [running]:
github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.decode.func1(0xc4200439d8)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config/config.go:216 +0x1f2
panic(0x11f6680, 0x1362e40)
	/usr/local/Cellar/go/1.10/libexec/src/runtime/panic.go:505 +0x229
github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.(*sshParser).parseKV(0xc42005a3c0, 0xc42012a080)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config/parser.go:99 +0x264
github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.(*sshParser).(github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.parseKV)-fm(0xc42012a080)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config/parser.go:80 +0x2a
github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.(*sshParser).run(0xc42005a3c0)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config/parser.go:38 +0x42
github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.parseSSH(0xc4200781e0, 0xc420070000, 0xc4200781e0)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config/parser.go:180 +0x307
github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.decode(0x125d680, 0xc42007b380, 0x0, 0x0, 0x0, 0x0)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config/config.go:226 +0x90
github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config.Decode(0x125d680, 0xc42007b380, 0xc4200d6000, 0x2c5, 0x4c5)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/kevinburke/ssh_config/config.go:209 +0x3c
github.com/trntv/sshed/ssh.Parse(0xc420013080, 0x1a, 0x6, 0xc420013080)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/ssh/config.go:45 +0x13d
main.main.func1(0xc4200bc420, 0xc42000add0, 0xc420043b98)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/cmd/cmd.go:62 +0x78
github.com/trntv/sshed/commands.RegisterCommands.func1(0xc4200bc420, 0xc4200bc400, 0x6)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/commands/commands.go:33 +0x3f
github.com/trntv/sshed/vendor/github.com/urfave/cli.(*App).Run(0xc42007ed00, 0xc42000a080, 0x2, 0x2, 0x0, 0x0)
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/vendor/github.com/urfave/cli/app.go:241 +0x6f0
main.main()
	/private/tmp/sshed-20180227-76310-ks2fwc/src/github.com/trntv/sshed/cmd/cmd.go:75 +0x519

environment
sshed version: 1.0.3
platform: macos high sierra

Hi @Zougi glad this tool is useful for you. it seems you amongst very first users :-)
About the issue, i'll investigate it today. Thanks for reporting it

https://github.com/kevinburke/ssh_config/issues/13


LISTAGG implementation is missing

H2 has several aggregating functions, such as LISTAGG
LISTAGG ( [ DISTINCT|ALL ] string [, separatorString]
[ ON OVERFLOW { ERROR | TRUNCATE [ filterString ] { WITH | WITHOUT } COUNT } ] )
withinGroupSpecification
[FILTER (WHERE expression)] [OVER windowNameOrSpecification]

Are there any plans to implement those?

We actually implemented only those basic features we currently use. However, if something is needed it is a good reason to take a look at, so thank you for the request. Perhaps you have some testcases for that functionality?

I've written a small implementation of the LISTAGG ... WITHIN GROUP (...) case. I admit I am not an expert on honey.sql, so the implementation may seem too trivial, clumsy even; however, it works for me.

Ok. Will take a look at all of that. Thank you anyway!


Create composer.json

Adding a composer.json allows us to manage this plugin through composer.

Hey @rubenvanerk, thanks for this PR
After merging this one i'm gonna publish on packagist.
The running composer require skydiver/october-plugin-forms is enough right?
I'm forgetting something else?
Thanks!

Yes, that should work!


making naphthalene?

GO:1901171     naphthalene biosynthetic process
Definition
The chemical reactions and pathways resulting in the formation of naphthalene.
but
GO:0018931   naphthalene metabolic process
Definition
The chemical reactions and pathways involving naphthalene, a fused ring bicyclic aromatic hydrocarbon commonly found in crude oil and oil products. Naphthalene is familiar as the compound that gives mothballs their odor; it is used in the manufacture of plastics, dyes, solvents, and other chemicals, as well as being used as an antiseptic and insecticide.
I'm looking for the siderophore
dihydroxy naphthalene (DHN)-melanin

@ValWood Based on our discussion from yesterday, will we instantiate all siderophore syntesis processes?

I don't mind really. It would be nice to be able to capture in some way  (i.e a CHEBI extension if not instantiated). @marcfeuermann  would be a good person to ask about this as I think he does quite a bit of 2ndary metabolism.

Is naphthalene a compound synthesized by living organisms?
https://en.wikipedia.org/wiki/Naphthalene#Production

I didn't think it was, hence the question, but it seems that is, randomly by magnolias, deer, and possibly termites!
https://en.wikipedia.org/wiki/Naphthalene#Other_sources_and_occurrences

Hello,
I've indeed curated Aspergillus fumigatus pptA a while ago. For what I know, naphthalene itself is not a product of a biological process. It is mostly found in coal tar (so probably a result from a degradation process). Some species might indeed produce trace amounts, but there is not much evidence for a biosynthesis pathway. Moreover, even if the double ring structure of naphthalene is found in some secondary metabolites such as dihydroxynaphthalene (DHN)-melanin, I would never associate their biosynthesis with GO:1901171 or GO:0018931. So in my opinion, we do not have enough evidences to keep these terms in GO (at least up to now).
I hope this will help you.
Take care and stay safe.
Best regards,
Marc.

GO:0090420 naphthalene-containing compound metabolic process -> change label & LD to naphthalene-containing compound metabolic process
GO:0043635 methylnaphthalene catabolic process -> ok
GO:0018931 naphthalene metabolic process  ->  merge into GO:1901170 naphthalene catabolic process
GO:1901171 naphthalene biosynthetic process -> obsolete
GO:1901170 naphthalene catabolic process -> ok
Along the same lines:
GO:0018917 fluorene metabolic process merge into: GO:0019429 fluorene catabolic process

Same for
GO:0018918 gallate metabolic process - merge into GO:0019396 gallate catabolic process

+[Term]
+id: GO:0140614
+name: 1,8-dihydroxynaphthalene-melanin biosynthetic process
+namespace: biological_process
+def: "The chemical reactions and pathways resulting in the formation of dihydroxy naphthalene (DHN)-melanin." [PMID:12788746, PMID:23998343]
+synonym: "DHN-melanin biosynthesis" EXACT []
+is_a: GO:0019290 ! siderophore biosynthetic process
+property_value: term_tracker_item https://github.com/geneontology/go-ontology/issues/20974 xsd:string
+created_by: pg
+creation_date: 2021-03-04T11:54:05Z

https://github.com/ebi-chebi/ChEBI/issues/4021

Added to CHEBI, should be available soon.

I will add back
http://purl.obolibrary.org/obo/CHEBI_167605 ## 1,8-dihydroxynaphthalene-melanin
in the CHEBI imports. Not sure what failed the first time.


Added a webchat page and separate link to docs-next

So I've been saying for a while that to help reach out to the community, you guys should put a link on the home page to the up-to-date docs AND to get those who never use IRC online to embed a webchat on the site.
Well I realized that I can fork the codebase for the website and do this myself. So I did.
One of the things I think you guys should start saying more often instead of 'Ask us' or 'Contact us' or 'Post on the group' is in fact something along the lines of 'Fork us!' or 'Check us out on Github!' or even 'Open a bug ticket!'.
This might encourage people to contribute solutions themselves rather than instilling this handicap of waiting for the core team to do it for them.

+1

Where's the upvote button on these things?  +1

:P


build: 0.6.0 and Goreleaser

This continues to address #186 by using goreleaser, adding a release notes generator, and removing the release notes from the website content.
Also updates the website for a 0.6.0 release

Can you confirm that the docker image build works? Looking at goreleaser's docs and their docker sections either declare goos, goarch and/or  binary in the docker section.
Please squash these commits.

docker run ohsucompbio/funnel:0.6.0-prerelease version
git commit: cc27972
git branch: goreleaser
git upstream:
build date: 2018-03-13T22:55:20Z
version: 0.6.0

Seems to work.

Tried rebasing, but it fails on some weird submodule error:
git rebase -i HEAD~15
[detached HEAD 897cd22] build: use goreleaser release notes generation
 Date: Tue Mar 13 11:23:23 2018 -0700
 8 files changed, 521 insertions(+), 708 deletions(-)
 create mode 100644 .goreleaser.yml
 rewrite docs/funnel-config-examples/default-config.yaml (87%)
 create mode 100644 util/github-release-notes/main.go
 rewrite website/content/download.md (86%)
error: Updating the following directories would lose untracked files in it:
	vendor/github.com/google

Aborting
fatal: cherry-pick failed
Could not apply 6ec5896de73d775c027696f0d798989e84674b4b... build: add github vendored lib

closed in favor of #510


Please update docs to show how to deploy Xamarin apps that use iOS service extensions, requiring multiple provisioning profiles.

I am trying to deploy a Xamarin app that depends on an iOS service extension. To build an app and the related iOS service extension requires multiple provisioning profiles, one for the app and another for the service extension.
The pipeline build fails, complaining that the service extension project's provisioning profile does not match the provisioning profile provided (referring to the apps provisioning profile).
There is not much information or documentation available regarding deploying (on Azure DevOps pipelines) Xamarin apps that use iOS service extensions and multiple provisioning profiles.
In this developer community thread,  Madhuri Gummalla [MSFT] references this document. However, even after following this document and the advice in that thread the same issue persists.
If deploying Xamarin apps that use iOS service extensions and multiple provisioning profiles is not supported, please update this document to reflect that. And if the pipeline does support multiple provisioning profiles please update the  documentation to show the correct process/configuration.
If it helps, for more detail regarding this issue please see:

My detailed StackOverflow post  (including the .yml files related to this issue)
Visual Studio Developer Community post (I did not create this post)

Thanks,
Chris Simeone

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

ID: f5891d09-bbcf-012e-483d-795eb4b469e5
Version Independent ID: be1f16ef-ea88-ee8e-fa90-61b5228dc454
Content: Install Apple Provisioning Profile task - Azure Pipelines
Content Source: docs/pipelines/tasks/utility/install-apple-provisioning-profile.md
Product: devops
Technology: devops-cicd-tasks
GitHub Login: @vijayma
Microsoft Alias: vijayma

@simspace-dr Thank you for your question. While we look into the docs, consider these resources:

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

@TimShererWithAquent, thanks for those links. They do not appear to provide helpful information regarding Azur pipeline builds that involve iOS service extensions and multiple provisioning profiles. In fact there is not any current helpful information that I have been able to find so far and I've been researching this for days now.  I can't imagine that it's not possible with Azur pipelines. But I can't find any good documentation stating either "it's not possible" or "here's how it is done."

@simspace-dr did you get a working solution? I am still facing this issue.

We've moved this issue to our internal tracking system as we transition to a new feedback system.


AST: Move up getBase() to TypeRepr to allow more generic access. NFC

@swift-ci please smoke test

If we do this, I think we need to come up with a better name. These "bases" are all pretty different from each other, and relying on it would miss things like DictionaryType that splits in two.
What are you really trying to do?

(and additionally, is TypeRepr::walk good enough for whatever you're trying to do?)

Basically, we are trying to reduce some code duplication in #9084 . we need a way to generically access the nested level inside of typerepr.

Per discussion with @jrose-apple , getBase() can be misleading as a general type repr method; thus we drop the PR.


Dynamic change of language

Hello,
I am able to change language as mentioned in you guide.
My app comunicate with editor with messages.
When I sent message with data to change language, ContentEdit.LANGUAGE is changed as intended, but language stays the same.
Am I missing something? Can you advice me, how to change language dynamicaly?
Thanks in advance.

Hi @Jakuboslav can the relevant code from your project please and I'll take a look an see if I can help :)

I have something like this, issue is with setting ContentEdit.LANGUAGE in listening to message.
import cs from "../../../translations/cs.json“;

  ...

  message.listen("set-language", data => {
    console.info(ContentEdit.LANGUAGE); // prints "cs“, lang is cs, its correct
    ContentEdit.LANGUAGE = data.lang; // data.lang is "en"
    console.info(ContentEdit.LANGUAGE); // prints „en“, lang is still cs, its incorrect
  });

  ContentEdit.addTranslations("cs", cs);
  ContentEdit.LANGUAGE = "cs“; // Sets language to cs, it is correct

  ...

Thanks

OK I think the the issue is that changing the ContentEdit.LANGUAGE setting wont automatically update the already rendered UI components so you'd need to force the UI to be re-rendered. You should be able to do this by calling unmount and then mount against the editor, alternatively you can destroy and init the editor.
Let me know how you get on.

Thanks for advice, I didn’t realise, it is not reactive.
Unfortunatelly, when I call unmount() and mount() against editor, it ends up with error Uncaught TypeError: Cannot read property 'tools' of null. Which leads me here:
  FIXTURE_TOOLS = [["undo", "redo", "remove"]];
  IMAGE_FIXTURE_TOOLS = [["undo", "redo", "image"]];
  LINK_FIXTURE_TOOLS = [["undo", "redo", "link", "bold", "italic"]];
  ContentEdit.Root.get().bind("focus", function(element) {
    var tools;
    if (element.isFixed()) {
      if (element.type() === "ImageFixture") {
        tools = IMAGE_FIXTURE_TOOLS;
      } else if (element.tagName() === "a") {
        tools = LINK_FIXTURE_TOOLS;
      } else {
        tools = FIXTURE_TOOLS;
      }
    } else {
      tools = ContentTools.DEFAULT_TOOLS;
    }
    if (editor.toolbox().tools() !== tools) { // Here it seems like toolbox() is null for some reason I dont understand
      return editor.toolbox().tools(tools);
    }
  });

destoy() and init() doesn’t seem to trigger this method at all because there is no error nor toolbox.

OK so if you need to do this reactively it's likely you'd need to determine what's active on the screen currently (toolbox, dialog, etc) and basically use unmount/mount for each (including applying the active widget class to each).
Since most of the time the only relevant UI component is the toolbox (as it's the only one with translated content that's mounted from the moment the editor is initialized) the following code works for me in the sandbox demo.
message.listen('set-language', data => {
  ContentEdit.LANGUAGE = 'en'
  const editor = ContentTools.EditorApp.get()

  if (editor.isEditing()) {
    const toolbox = editor.toolbox()

    if (toolbox) {
      toolbox.unmount()
      toolbox.mount()
      toolbox.addCSSClass('ct-widget--active')
    }
  }
})

Hopefully this helps you for now or at least points you in the right direction - let me know if you have further issues.

Oh, perfect, it works out of box!
Thanks a lot for your help, you saved my day.


avoid horizontal scroll in the gitbook readme

screenshot

@mxstbr I've reverted the change that caused a jumbled paragraph.

Awesome, thanks so much for helping out!


Don't truncate values on button transaction

Closes #441
@tiero @louisinger please review
From

To

Hummm, we have a problem...

09d4223 reduces font size for "Unconfirmed" red tag
From

To


Accessibility?

Does it support WAI AA accessibility?

Yes, in the next release.

Yes, next release.

Thanks!


add axelsimon to terraform.tfvars.json

Add myself as part of the StackHPC team

CI failed because user does not have access to secrets.

Thanks!


Improve communication process after guest gets accepted

Current Implementation:
After a host accepts a guest to their place, both receive an email with the following information:

Full Name
Address
Email / Phone number
Hosts and Guests languages
An info text to contact each other and to arrange the arrival

Improvement Ideas

The email should be available in English and the first language of the guest
The host can enter arrival instructions for each place
Should we offer an InApp chat functionality? (Emails are so old school)

I think a chat functionality between host and guests would be amazing to exchange quickly.
In addition I think having a video chat before the entire address is provided would also be a nice to have :)

Done; implemented a chat with automatic translation of all messages


Create a Humble branch that builds.

    Also... Are you building from source on humble or on rolling? The master branches target rolling and may only work with the latest distro up to a point... There's a specific branch for humble.

Originally posted by @bmagyar in https://github.com/ros-controls/ros2_controllers/issues/454#issuecomment-1296335979
Please create a humble branch before the changes that where introduced into master that break the build for Humble.

Using this branch, you can build your project in Humble: https://github.com/jmguerreroh/ros2_controllers.git

The build for admittance_controller should be fixed after the next sync.

Closing due to no activity


User-assigned managed identities run successfully in Hybrid Worker jobs in specific conditions

There is a note in the top of this page that says "User-assigned managed identities are supported for Azure jobs only". This is partially true. There is one scenario in which user-assigned managed identities (UAMI) run successfully in Hybrid Workers, which is when only the Hybrid Worker VM has a UAMI assigned (the Automation Account can't have any UAMI assigned, otherwise the VM UAMI will fail authenticating). Can you update the documentation accordingly?
Thanks!

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

ID: 3b02b193-37a6-6ccf-7beb-ab91e43c229a
Version Independent ID: ebf0e627-a87c-94d1-978f-57326acd85f7
Content: Using a user-assigned managed identity for an Azure Automation account
Content Source: articles/automation/add-user-assigned-identity.md
Service: automation
Sub-service: process-automation
GitHub Login: @SnehaSudhirG
Microsoft Alias: sudhirsneha

@helderpinto Thanks for your comment! We will review and provide an update as appropriate.

@helderpinto We have verified and updated the document as required. The update will go live in less than 24 hours. Thanks again!


Uncaught TypeError: Cannot read property 'getWrapX' of null

When I click on view, I have this error:
ol.js:12 Uncaught TypeError: Cannot read property 'getWrapX' of null
    at e.prepareFrame (ol.js:12)
    at e.render (ol.js:12)
    at e.renderFrame (ol.js:12)
    at e.renderFrame_ (ol.js:12)
    at e.<anonymous> (ol.js:12)

I use openlayer 6.0.1 (I have the same error on 6.0.0)
My interctations initializer is:
const interactions = ol.interaction.defaults({ altShiftDragRotate: false, pinchRotate: false });
interactions.push(new ol.interaction.Select({
    condition: ol.events.condition.singleClick,
    addCondition: ol.events.condition.primaryAction,
    layers: [...],
    filter: ...
});

Could you please show us the way to initialize the map and layers too? Thanks for the report.

this.mapTiles = new ol.layer.Tile({
    source: new ol.source.XYZ({
        url: this._parameters.mapLayerXYZTilesSource // Source From MapBox
    })
});

const controls = ol.control.defaults({ rotate: false, zoom: false, attribution: false });
this.scaleLine = new ol.control.ScaleLine();
controls.extend([this.scaleLine]);
this.zoomMinusPlus = new ol.control.Zoom();
controls.extend([this.zoomMinusPlus]);

const interactions = ol.interaction.defaults({ altShiftDragRotate: false, pinchRotate: false });
interactions.push(new ol.interaction.Select({
    condition: ol.events.condition.singleClick,
    addCondition: ol.events.condition.primaryAction,
    layers: [...],
    filter: ...
});

this.map = new ol.Map({
    target: this._target[0], // It's a div
    layers: [this.mapTiles, this.building, this.labels, this.poiLayer], // All layers are ol.layer.Vector
    view: this.view,
    controls: controls,
    interactions: interactions,
});

This error sounds a little as if one of your layers does not have a source. Can that be the case?

i also got this problem, but in the forEachFeatureAtPixel

i also got this problem in the forEachFeatureAtPixel when there's a layer with no source.

when i drop down it , it can work too


Structural Pattern Matching

Note: I know that this will be a big change, directly before the release of 2.0.0. But Scala-like structural pattern matching for Java will be a real game changer if done right! We need to do this - now. Changing the Match API directly after 2.0.0 is no viable solution.

List<Tuple3<String, Integer, Double> list = ...;

//
// x  is of type Tuple3<String, Integer, Double>
// xs is of type List<Tuple3<String, Integer, Double>>
//
list.match()
    .when(List($(), $()))
    .then((x, xs) -> ...);

// Match.of(list) also works

//
// s is of type String
//
list.match()
    .when(List(Tuple3($("begin"), _, _), _))
    .then(s -> ...);

The basic syntax

Match.when(pattern).then(function)
There will be atomic patterns,

named any-value: $(), e.g. when(List($(), $())).then((x, xs) -> ...)
named specifc-value: $("test"), e.g. when(List($(1), List.nil())).then(one -> ...)
ignoring any-matcher: _, e.g. when(List(_, $())).then(tail -> ...)

There will be patterns for types, e.g. List(...), all upper-case
There will be matchers like is(...), isIn(...), all lower-case

The main idea:

The main match implementation will fit on one page! + generated duplication for arity 0..8 of pattern return values, all methods literally one-liners.

MatchFunction will pass away. Maybe we can replace it by o -> Match.of(o).when(...).then(...) or by Match.of(o).when(...).then(...).toFunction() if a function is needed.

Never liked the fact that Match grew to an internal DSL, like whenIs, whenIsIn, whenType, whenThis, whenThat. We see similar things in a wide range of other libs, like when().is(), when().isIn(), ... Instead we will compose the match expression with other functions like this:
list.match()
    .when(is(val))
    .then(v -> ...);

list.match()
    .when(isIn(val1, val2, val3))
    .then(v -> ...);

Match will gain importance

it will move to the first level package javaslang

it will be as easy to use as 1-2-3.
import javaslang.Patterns; // List(x, xs), Tuple3(_1, _2, _3), ...
import javaslang.Matchers; // is(), isIn(), type(), ...

it will be extensible, we will be able to create Patterns for existing final classes (without source)
// we will ship patterns for JDKs. Maybe this needs to be a module for every jdk version
import javaslang.JDK8Patterns;

// we provide a compile-time code generator for new custom patterns.
@Patterns
interface My {

    @Pattern(List.class)
    interface List {
        // to be done
    }

    @Pattern(Tuple3.class)
    interface Tuple3 {
        // to be done
    }

}

// code generation result
public final class MyPatterns {

    // -- List patterns
    public static Pattern0 List()
    public static Pattern1 List(Pattern0, Pattern1)
    public static Pattern1 List(Pattern1, Pattern0)
    public static Pattern2 List(Pattern0, Pattern2)
    public static Pattern2 List(Pattern1, Pattern1)
    public static Pattern2 List(Pattern2, Pattern0)
    // ...

    // -- Tuple3 patterns
    // ...
}

_ will be an illegal identifier in JDK9. http://openjdk.java.net/jeps/213

Yes, I know. Used it in the prototype but in order to look more like Scala but it will probably change the name. Or we convince the Java guys to leave it :)

We need a placeholder for any value.

_ will be an illegal identifier in JDK9. http://openjdk.java.net/jeps/213
Using _ will break actual Java 8 builds when using -Xlint:all -Werror

Example:
// Scala
match o {
    case Some(_) => ...
    case None => ...
}

// Javaslang prototype
match(o)
    .when(Some(_)).then(...)    // <---- _ not supported any more with JDK 9 :-/
    .when(None).then(...)

Which alternatives do we have?
E.g. __ is valid...
// Javaslang prototype
match(o)
    .when(Some(__)).then(...)
    .when(None).then(...)

match(t)
    .when(Tuple1(__)).then(...)
    .when(Tuple2(__, __)).then(...)
    .when(Tuple3(__, __, __)).then(...)
    .when(__).then(...)

...but lame.

I tempted to switch to Javaslang's original caze syntax ;) E.g. instead of otherwise(...) we will have caze(_).
match(option)
    .caze(Some(_)).then("It is a Some!")
    .caze(_)      .then("It is a None!")

Maybe also no then:
match(option)
    .caze(Some(_), "It is a Some!")
    .caze(_,       "It is a None!")

How about $_ ?

Yes, that would be a good fit to the other matchers $() and $(val)!

Yup that was my thinking!

:+1: I will use $_ in the prototype!

Cool :)

Our Match API has methods
public <T1> Then1<T, T1> when(Pattern1<T, T1> pattern) { ... }
public <T1, T2> Then2<T, T1, T2> when(Pattern2<T, T1, T2> pattern) { ... }
public <T1, T2, T3> Then3<T, T1, T2, T3> when(Pattern3<T, T1, T2, T3> pattern) { ... }
// ... up to when(Pattern8)

In a previous prototype Pattern0 to Pattern8 where interfaces.
@FunctionalInterface
interface Pattern0 {
    Option<Void> apply(Object o);
}

@FunctionalInterface
interface Pattern1<T, T1> {
    Option<T1> apply(Object o);
}

@FunctionalInterface
interface Pattern2<T, T1, T2> {
    Option<Tuple2<T1, T2>> apply(Object o);
}

@FunctionalInterface
interface Pattern3<T, T1, T2, T3> {
    Option<Tuple3<T1, T2, T3>> apply(Object o);
}

// ... up to Pattern8

The compiler warns that these interfaces raise ambiguities when used as args in when, see above. Even if the @FunctionalInterface annotation is removed, the use of similar SAM interfaces will still raise possible ambiguities.
I'm curious if it really fails at runtime but instead of going deeper I will use the existing prototype and will focus on a complete solution.
Currently the solution is to use abstract classes instead. Then the when method signatures are uniform by argument type and the compiler does not complain any more.
abstract class Pattern0 {
    public abstract Option<Void> apply(Object o);
}

abstract class Pattern1<T, T1> {
    public abstract Option<T1> apply(Object o);
}

abstract class Pattern2<T, T1, T2> {
    public abstract Option<Tuple2<T1, T2>> apply(Object o);
}

abstract class Pattern3<T, T1, T2, T3> {
    public abstract Option<Tuple3<T1, T2, T3>> apply(Object o);
}

// ... up to Pattern8

However, it would be great to use lambdas instead of abstract classes. For benchmarks lambda vs. abstract class see http://www.oracle.com/technetwork/java/jvmls2013kuksen-2014088.pdf
Maybe someone has the time to investigate if Pattern0 to Pattern8 can be interfaces or if it is possible in general to use interfaces instead of abstract classes. See javaslang.Match and javaslang.MatchTest.

I think that it will make sense to add guards, e.g.
// like Scala's match o { case ... if ... => ... }
List<Integer> list = ...;
Match.of(list)
     .when(List($(), $()))
     .with((x, ignored) -> x >= 0)
     .then((x, xs) -> ...);

Naming: Could be also
Match.of(...).when(...).with(...).then(...);
Match.of(...).when(...).and(...).then(...);
Match.of(...).when(...).given(...).then(...);
Match.of(...).when(...).guardedBy(...).then(...);
Match.of(...).when(...).provided(...).then(...);
// etc.

To align thy syntax to Scala I propose the following:
match(o).
    _case(...)._if(...).then(...)
    _case(...).then(...);

Personally I'm not a fan of using _ in identifiers. You may be able to avoid it if it were acceptable to capitalize some identifiers. e.g.:
Match(o).of(
  Case(...).then(...), // notice that Case here would be a class
  Case(...).then(...)
)

just throwing it in there.

Yes, that looks much cleaner but also a little like C# :-) If will be a method but needs to be upper-case here.
The nice thing about the of-scope is that it might enable us to make exhaustive checks. Need to verify that. Another nice thing about the of-scope is that this will simplify the implementation I think - great idea!
Also it would be a clean API to have constructors like Scala's companion apply methods, e.g. List(...) instead of List.of(...). That would align to Match(o) and Case(...).
Also the naming schema for patterns is not 100% clear. We could use List() or Nil, List(x, xs) or Cons(x, xs) (in Scala: x :: xs). But I think we need to take a different approach than Scala here and have List() and List(x, xs).
Will come back tomorrow to these ideas. gdn8!

@evacchi Looks more then good to me - you are a genius! This can be used to automatically return the lower bound type of all then()-results :-)))
Here is a little test, which returns BigDecimal in one case and Integer in the other case. The overall result is correctly recognized as Number! I thought this is not possible, currently we give a type-hint in Javaslang (Match.as(ReturnType.class)...).
Now, I found a new hobby. Add unused generics to methods that provide the compiler with types that help it during compilation. I think that might be called 'phantom type' (see Phantom Types in Scala).
I've used similar type-magic for structural pattern matching to transport types back-and-forth through the recursive structure of objects. Didn't know that Java's type system is capable of such things and still don't fully understand it.
// only one import for all types and methods!
import static javaslang.Match.*;

class Test {{

    Object o = new Object();
    Pattern p = new Pattern() {};

    // Number (!) <-- lower type bound of all results computed here :)
    Match(o).of(
            Case(p).then(() -> new BigDecimal("1")),
            Case(p).then(() -> 1)
    );

}}

Based on this:
import java.util.function.Supplier;

public final class Match<T> {

    static <T> Match<T> Match(T t) {
        return new Match<>();
    }

    // upper type bound is auto-magically computed with SUP, although unused
    @SafeVarargs
    final <SUP extends R, R> R of(Then<R>... cases) {
        return (R) new Object();
    }

    // I'm sure T needs to be 'transported' from Match to Pattern to Case
    static Case Case(Pattern p) {
        return new Case();
    }

    static final class Case {
        <R> Then<R> then(Supplier<? extends R> o) {
            return new Then<>();
        }
    }

    static final class Then<R> {}

    static abstract class Pattern {};
}

I like the API
Match(o).of(
  Case(pattern).then(...)
  Case(...).then(...)
)

but it is not possible to inject the type of o into the Case(...) method call. Then the pattern does not 'know' the type of o at compile time and we can't decompose o with matchers $(), $(val).
It does not matter. Then we fall back to the original API. It is just about naming things.

Awesome, I've got a working example here for both result bound computation and type-safe patterns.
This (modulo naming) will be the syntax. All other possibilities do not work (see below).
The following tests are all about types. They do not implement structural pattern matching.
WORKING
public class ScopedResultTest {

    public static void main(String[] args) {

        // upper bound of result computed correctly
        final Option<Number> num = Match(List.of(1)).of(
                // DOES CORRECTLY NOT COMPILE, BECAUSE "1" is not int:
                // Case(List("1"), o -> Option.of(1)),
                Case(List(1), list -> Option.of(new BigDecimal("1"))),
                Case(List(2), list -> Option.of(Double.NaN))
        );

    }

    static <T> MatchBuilder<T> Match(T t) {
        return new MatchBuilder<>();
    }

    static <T, U, R> Case<T, R> Case(Pattern1<T, U> p, Function<? super U, ? extends R> f) {
        return new Case<>();
    }

    static final class MatchBuilder<T> {
        @SafeVarargs
        final <SUP extends R, R> R of(Case<T, ? extends R>... cases) { return null; }
    }

    static final class Case<T, R> {}

    static abstract class Pattern1<T, T1> {
    }

    static <T extends List<U>, U> Pattern1<List<U>, T> List(U t) {
        return null;
    }
}

NOT WORKING
public class ScopedResultTest2 {

    public static void main(String[] args) {

        // upper bound computed
        final Option<Number> num = Match(List.of(1),
                // ERROR: List("1") DOES COMPILE BUT SHOULD NOT
                Case(List("1"), o -> Option.of(1)),
                Case(List(1), list -> Option.of(new BigDecimal("1"))),
                Case(List(2), list -> Option.of(Double.NaN))
        );

    }

    @SafeVarargs
    static <T, SUP extends R, R> R Match(T t, Case<T, ? extends R>... cases) { return null; }

    static <T, U, R> Case<T, R> Case(Pattern1<T, U> p, Function<? super U, ? extends R> f) {
        return new Case<>();
    }

    static final class Case<T, R> {}

    static abstract class Pattern1<T, T1> {
    }

    static <T extends List<U>, U> Pattern1<List<U>, T> List(U t) {
        return null;
    }
}

@SuppressWarnings("ConstantConditions")
public class FluentResultTest {

    public static void main(String[] args) {

        // TYPE HINT DOES NOT WORK FOR GENERICS LIKE Option<String>
        final Option option = Match(List.of(1), Option.class)
                // DOES CORRECTLY NOT COMPILE, BECAUSE "1" is not int:
                // .Case(List("1")).then(i -> 1)
                .Case(List(1)).then(list -> Option.of(new BigDecimal("1")))
                .Case(List(2)).then(list -> Option.of(Double.NaN))
                .get();

    }

    static <T, R> MatchBuilder<T, R> Match(T t, Class<R> hint) {
        return new MatchBuilder<>();
    }

    static final class MatchBuilder<T, R> {

        <T1> Case1<T, T1, R> Case(Pattern1<T, T1> p) {
            return null;
        }

        R get() {
            return null;
        }
    }

    interface Case1<T, T1, R> {
        MatchBuilder<T, R> then(Function<? super T1, ? extends R> f);
    }

    static abstract class Pattern1<T, T1> {
    }

    static <T extends List<U>, U> Pattern1<List<U>, T> List(U t) {
        return null;
    }
}

I added the new Match API to my fork - and removed the old one.
In order to prevent diverging from HEAD too much I want to create a PR neartime.
Match is fully working, but raw. Before we merge the changes into the head, we need to

add Patterns. This implies that we have a working annotation processor that generates the necessary Pattern code. For hand-crafted test-Patterns see javaslang.MatchTest

After that, the following needs to be done:

re-think Matchers. Do we really need them? I Think the new API can do better, if we add if-guards.

is(T) - or maybe Case(T, f)
isIn(T...)
type(Class<T>)
typeIn(Class<?>)
...

add if-guards
// guard : Predicate<...>, f : Function<..., R>
Match(o).of(
        Case(pattern, guard, f),
);

Re-writing Match Tests. The old ones are saved but commented out.

Value.match() currently returns Match<Value> but we need to change this method to Value.match(Cases...) to have syntactic sugar like this:
// default way
Match(list).of(
        Case(List($(), $()), (x, xs) -> "head: " + x + ", tail: " + xs),
        Case($_, -> "Nil")
);

// syntactic sugar
list.match(
        Case(List($(), $()), (x, xs) -> "head: " + x + ", tail: " + xs),
        Case($_, -> "Nil")
);

Status update
I made progress with the code generator. It should be usable now.
Additionally the picture gets more and more clear what to generate and how to model the things we want to generate.
Example:
Let's consider some arbitrary, user-defined class we want to pattern match. Please note, that is is declared final.
static final class Developer implements Person {
    private final String name;
    private final boolean isCaffeinated;

    Developer(String name, boolean isCaffeinated) {
        this.name = name;
        this.isCaffeinated = isCaffeinated;
    }

    public String getName() { return name; }

    public boolean isCaffeinated() { return isCaffeinated; }
}

Our goal is to have a static method Developer that can be used as pattern in a Case statement:
Developer dev = new Developer("Grobi", true);
Match(dev).of(
        Case(Developer($(), true), name -> name + " is coffeinated!"),
        Case($_, "catch all")
);

This is how the pattern-declaration should look like:
@Patterns
class My {
    @Unapply
    static Tuple2<String, Boolean> dev(Developer dev) {
        return Tuple.of(dev.getName(), dev.isCaffeinated());
    }
}

Then, at compile time, a class MyPatterns in the same package is generated. This class will look like this:
// THIS IS THE GENERATED PART
public final class MyPatterns {

    private MyPatterns() {}

    static <T1, T2> Pattern2<Developer, T1, T2> Developer(Pattern1<String, T1> p1, Pattern1<Boolean, T2> p2) {
        return Pattern2.create(Developer.class, My::dev, p1, p2);
    }
}

Because My is package-private (will be checked by the annotation processor), it will be no public API. Users will only have to import static my.package.MyPatterns.* to use the patterns.
The Pattern2 factory method will look like this (hidden, part of Javaslang):
public static abstract class Pattern2<T, T1, T2> {
    public abstract Option<Tuple2<T1, T2>> apply(Object o);

    static <TYPE, A1, A2, T1, T2> Pattern2<TYPE, T1, T2> createPattern2(
            Class<TYPE> matchableType,
            Function<TYPE, Tuple2<A1, A2>> unapply,
            Pattern1<A1, T1> p1,
            Pattern1<A2, T2> p2) {
        return new Pattern2<TYPE, T1, T2>() {
            @Override
            public Option<Tuple2<T1, T2>> apply(Object o) {
                if (o != null && matchableType.isAssignableFrom(o.getClass())) {
                    @SuppressWarnings("unchecked")
                    final TYPE matchable = (TYPE) o;
                    final Tuple2<A1, A2> t = unapply.apply(matchable);
                    return p1.apply(t._1).flatMap(v1 -> p2.apply(t._2).map(v2 -> Tuple.of(v1, v2)));
                } else {
                    return Option.none();
                }
            }
        };
    }
}

Next
This looks pretty straight forward now. I think the trickiest part is now to extract the generics of the method args during annotation processing. Will dive into that...

Other pattern declarations look like this:
@Patterns
class My {

    @Unapply static <T> Tuple1<T> some(Option.Some<T> some) { return Tuple.of(some.get()); }
    @Unapply static Tuple0 none(Option.None<?> none) { return Tuple.empty(); }

    @Unapply static <T> Tuple2<T, List<T>> cons(List.Cons<T> cons) { return Tuple.of(cons.head(), cons.tail()); }
    @Unapply static Tuple0 nil(List.Nil<?> nil) { return Tuple.empty(); }
}

This should be all what is needed to make user-types pattern-matchable. All other things happen auto-magically at compile-time.

Yay! The generic type information is accessible!!!
Source which is interpreted by annotation processor:
@Patterns
class Moo {

    // Option
    @Unapply static <T> Tuple1<T> Some(Option.Some<T> some) { return Tuple.of(some.get()); }
    @Unapply static Tuple0 None(Option.None<?> none) { return Tuple.empty(); }

    // List
    @Unapply static <T> Tuple2<T, List<T>> Cons(List.Cons<T> cons) { return Tuple.of(cons.head(), cons.tail()); }
    @Unapply static Tuple0 Nil(List.Nil<?> nil) { return Tuple.empty(); }

    // Developer
    @Unapply static Tuple2<String, Boolean> Developer(Developer dev) { return Tuple.of(dev.getName(), dev.isCaffeinated()); }

    // TEST!
    void non_static_method() {}
    Tuple2<String, Boolean> no_annotation(Developer dev) { return Tuple.of(dev.getName(), dev.isCaffeinated()); }

}

Programmatically extracted:
METHOD: <T>Some(javaslang.control.Option.Some<T>)
  TYPE MIRROR: <T>(javaslang.control.Option.Some<T>)javaslang.Tuple1<T>
  RETURN TYPE: javaslang.Tuple1<T>
    KIND: DECLARED
    DECLARED TYPE: javaslang.Tuple1<T>
      TYPE ARGS: T
  TYPE PARAMETER:
    GENERIC: <T>Some(javaslang.control.Option.Some<T>)
    TYPE MIRROR: T
METHOD: None(javaslang.control.Option.None<?>)
  TYPE MIRROR: (javaslang.control.Option.None<?>)javaslang.Tuple0
  RETURN TYPE: javaslang.Tuple0
    KIND: DECLARED
    DECLARED TYPE: javaslang.Tuple0
      TYPE ARGS:
METHOD: <T>Cons(javaslang.collection.List.Cons<T>)
  TYPE MIRROR: <T>(javaslang.collection.List.Cons<T>)javaslang.Tuple2<T,javaslang.collection.List<T>>
  RETURN TYPE: javaslang.Tuple2<T,javaslang.collection.List<T>>
    KIND: DECLARED
    DECLARED TYPE: javaslang.Tuple2<T,javaslang.collection.List<T>>
      TYPE ARGS: T,javaslang.collection.List<T>
  TYPE PARAMETER:
    GENERIC: <T>Cons(javaslang.collection.List.Cons<T>)
    TYPE MIRROR: T
METHOD: Nil(javaslang.collection.List.Nil<?>)
  TYPE MIRROR: (javaslang.collection.List.Nil<?>)javaslang.Tuple0
  RETURN TYPE: javaslang.Tuple0
    KIND: DECLARED
    DECLARED TYPE: javaslang.Tuple0
      TYPE ARGS:
METHOD: Developer(javaslang.test.Developer)
  TYPE MIRROR: (javaslang.test.Developer)javaslang.Tuple2<java.lang.String,java.lang.Boolean>
  RETURN TYPE: javaslang.Tuple2<java.lang.String,java.lang.Boolean>
    KIND: DECLARED
    DECLARED TYPE: javaslang.Tuple2<java.lang.String,java.lang.Boolean>
      TYPE ARGS: java.lang.String,java.lang.Boolean

Now it is only the processing logic which has to be implemented.

I've merged a first version.
Building Patterns at Compile Time
Every project that uses Javaslang can define its own patterns for pattern matching. In addition to Javaslang, it needs also this dependency:
<dependency>
    <!-- will be changed to io.javaslang soon -->
    <groupId>com.javaslang</groupId>
    <artifactId>javaslang-pattern-matching-generator</artifactId>
    <!-- don't depend on snapshots! -->
    <version>2.0.0-RC5-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>

We define Patterns this way:

@Patterns class My will be class MyPatterns.
@Patterns class $ will be class Patterns. (special case / syntactic sugar)

I've pre-defined first patterns for test purpose:
@javaslang.match.Patterns
class $ {

    // Option
    @Unapply static <T> Tuple1<T> Some(Option.Some<T> some) { return Tuple.of(some.get()); }
    @Unapply static Tuple0 None(Option.None<?> none) { return Tuple.empty(); }

    // List
    @Unapply static <T> Tuple2<T, List<T>> Cons(List.Cons<T> cons) { return Tuple.of(cons.head(), cons.tail()); }
    @Unapply static Tuple0 Nil(List.Nil<?> nil) { return Tuple.empty(); }

}

When compiling the project, the annotation processor runs automatically and creates our patterns. I've checked our patterns into version control. This is how the generated code looks like (will be simplified a bit soon).
Using Pattern Matching
First we need to import the general Match API and specific Patterns.
import static javaslang.Match.*;
import static javaslang.Patterns.*;

Then we can start to match objects. The next days I will add Patterns for all Javaslang objects. Patterns for other Java objects might follow.
// our test object
Option<Tuple2<String, Integer>> TUPLE2_OPTION = Option.of(Tuple.of("Test", 123));

// a first test
Match(TUPLE2_OPTION).of(
        Case(Some($()), value -> {
            Tuple2<String, Integer> tuple2 = value; // types are inferred correctly!
            ...
        })
);

More examples:
List<String> list = List.empty();

Match(list).of(
        Case(Cons("1", $_), () -> "starts with 1"),
        Case(Nil, () -> "empty")
);

// current syntactic sugar, works for all Javaslang Values
list.match().of(
        Case(Cons("1", $_), () -> "starts with 1"),
        Case(Nil, () -> "empty")
);

// will be soon changed to, plus additional sugar
list.match(
        Case(Cons("1", $_), "starts with 1"),
        Case(Nil, "empty")
);

But it is still an early draft.
We currently have ambiguities because I allowed to match generic values:
Cons(1, List.of(1, 2, 3))

This leads to
// `Cons($(), $())` results in `(x, xs) -> ...`
static <__, T> void Cons(InversePattern<? extends T> p1, InversePattern<? extends List<T>> p2) {
}

// Ambiguous to the above, `Cons($(), $())` does not compile any more
static <__, T> void Cons(T p1, InversePattern<? extends List<T>> p2) {
}

But that's no problem. Beside removing generic values at all, we have several options to fix it. Here are some simple example (which scale):
Solution 1: Add additional generic parameters with extends relation
static <__, T, T2 extends T> void Cons(T p1, InversePattern<? extends List<T2>> p2) {
}

Solution 2: Cons(1, $()) and Cons("1", $()) do both compile. This is unsafe!
static <__, T> void Cons(Object p1, InversePattern<? extends List<T>> p2) {
}

Solution 3: Cons(Eq(1), $()) Syntax unsatisfying/too complicated.
static <__, T> void Cons(EqualsPattern<? extends T> p1, InversePattern<? extends List<T>> p2) {
}

Currently I prefer the suggested Solution 1 but have to investigate it a bit.
Next steps:

Complete patterns for unapplying all Javaslang objects
Tests, tests, tests
Take a look at the TODOs in Match / Generator.scala
Change documentation

I want to keep it even simpler, just import
import static javaslang.Predef.*;

And then use

basic Match API
Match Patterns for all Javaslang types
and maybe soon also For comprehension API

In order to solve the recursive pattern matching problem, we generate methods for all possible combinations of pattern arities - theoretically. Practically, we have an upper bound - currently the maximum tuple arity (because the unapply result is a tuple).
Example: Let's consider a Tuple2<Option<String>, Option<Integer>>.
If we use a pattern Tuple2($_, $_) the method Tuple2(Pattern0, Pattern0) is called, whereas a the use of Tuple2($(), $_) leads to a call of Tuple2(InversePattern, Pattern0).
Having types possible parameter types { T, InversePattern, Pattern0, Pattern1, ..., Pattern8 } this leads to a significant amount of method signatures with increasing parameter count.
We have 11 pattern types (see. above). The number of methods is therefore 11^number_of_args, namely

args
methods

0
1

1
11

2
121

3
1331

4
14641

5
161051

6
1771561

7
19487171

8
214358881

It is clear that we can't generate lookup-tables of that much methods. Instead we will do it the pragmatic way. Objects may be unapplied to 0, 1 or 2 elements. I.e. we will generate these variations:

args
methods

0
1

1
11

2
121

If objects are deconstructed to so-called atomic types that cannot be further deconstructed (by definition), e.g. Integer, Byte, String, ..., then the generated method count reduces to 4^number_of_args (4 possible patterns: { T, InversePattern, Pattern0, Pattern1 }).

args
methods

3
64

4
256

5
1024

6
4096

7
16384

8
65536

That is still too much for arguments > 3 or 4.
We will be still able to filter deconstructed values with guards, e.g.
Match(tuple8).of(
    Case(t -> equals(t._1, t._2), // guard
         t -> ...) // result
)

A compiler could reduce all this to 1 method per unapply per case. But I think this is currently not possible with Java because we can't hook into the compiler like Scala with Scala Macros.
However, real pattern matching for up to 2 args is still great because it should fit for nearly all Javaslang Value types (but not Tuples).

I think I've found a way to reduce the number of generated method per unapply method to ... just 1.
However, the behavior will change.

We can still recognize patterns of arbitrary depth
But only the properties of the given/matched object are extracted/unapplied

Also we will have just two atomic matchers and we have to pass patterns instead of arbitrary objects:

$() will match any object
$(object) will match object

Option<Option<Option<String>>> option = Option.of(Option.of(Option.of("ok")));

// here all x denote the value of the given option, if it is a Some
final Number number = Match(option).of(
       Case(None(), () -> new BigDecimal("1")),
       Case(Some(None()), x -> (byte) 2),
       Case(Some(Some(Some($("ok")))), x -> 1.0d),
       Case(Some(Some(Some($()))), x -> 3.0d)
);

Especially we cannot write Case(Some("string"), () -> ...) any more. Instead we write Case(Some($("string")), s -> ...).
Note: Beside the number of generated methods there is one significant benefit: The user does not have to check the order of deeply extracted parameters within the pattern tree. We now just unapply the values of the given object to be matched regardless a match of inner objects.

Idea: Having generated Match Patterns at hand, we could use them to define an object query language to extract specific parts from an object graph. This is roughly the same as pattern matching. But as we already saw, practically we can't pre-calculate the number of extracted objects by just using the type system. That would involve too many pre-generated patterns.
But maybe it is possible to traverse the object pattern graph and collect the results in an HList (see #237) instead of a Tuple.
This will not be implemented for 2.0.0. I just wanted to write down the idea here. The current API isn't capable of that. Perhaps that would raise the need to introduce a separate internal object query dsl based on the basic pattern matching ideas described here.

Idea: Add an additional atomic pattern $(Predicate) that matches only, if the predicate is fulfilled.
List<Integer> ints = ...;

Match(ints).of(
    Case(Cons($(i -> i > 2), $()), (x, xs) -> ...)
);

(Does this clash with $(object)?)

This should also be possible:
Match(str).of(
    Case($("one"), 1),
    Case($("two"), 2),
    Case($(), 3)
)

which is roughly equivalent to Scala's
str match {
    case "one" => 1
    case "two" => 2
    case _ => 3
}

The final core Match API has been committed with #1168. Further changes (adding standard patterns, predicates etc.) will be tracked in #1157.


Fix #1116 more

Including circe-shapes this time…

Codecov Report

Merging #1224 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1224      +/-   ##
==========================================
+ Coverage   86.72%   86.73%   +<.01%
==========================================
  Files          92       92
  Lines        2840     2841       +1
  Branches      122      123       +1
==========================================
+ Hits         2463     2464       +1
  Misses        377      377

Impacted Files
Coverage Δ

...rc/main/scala/io/circe/shapes/HListInstances.scala
100% <100%> (ø)
:arrow_up:

...d/src/main/scala/io/circe/NonEmptySeqDecoder.scala
91.66% <0%> (-8.34%)
:arrow_down:

...d/src/main/scala/io/circe/cursor/ArrayCursor.scala
61.53% <0%> (-7.7%)
:arrow_down:

.../core/shared/src/main/scala/io/circe/Decoder.scala
86% <0%> (-0.5%)
:arrow_down:

...rc/main/scala/io/circe/numbers/BiggerDecimal.scala
85.96% <0%> (+0.58%)
:arrow_up:

...les/core/shared/src/main/scala/io/circe/Json.scala
79.87% <0%> (+0.6%)
:arrow_up:

...re/shared/src/main/scala/io/circe/JsonNumber.scala
98.79% <0%> (+2.4%)
:arrow_up:

Continue to review full report at Codecov.

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


Move to using the sqlalchemy mypy plugin

This provides better type checking against the sqlalchemy code and allows us to remove our stubs and the type: ignores which were in various places where the stubs didn't match reality.
Included here for now are some related refactors which this highlighted, though they should probably be hoisted to separate PRs.

Coverage increased (+0.0003%) to 99.346% when pulling 8a5f8f9f79e1a11b44570c6f498579c3a6a5a9a0 on use-sqlalchemy-mypy-plugin into 7048fea08042c21dccfe37f316fe6c1f3e9c84f4 on more-types.


Dependabot PR builds failing with perm errors

Dependabot PRs are failing at the pnpm install step with<EMAIL_ADDRESS>Permission denied (publickey).
https://github.com/webdriverio-community/wdio-electron-service/actions/runs/11842688523/job/33001876140?pr=827

Tried a bit more debug, no idea what is going on here.  This removes our ability to tell if a given Dependabot update would break the build, so it's quite annoying.


Issue with piechart label using startAngle and label.rotate = 'tangential' and labe.position='inside'

Version
5.2.2
Steps to reproduce
Go to the example here https://echarts.apache.org/examples/en/editor.html?c=pie-simple
Replace the JS code with following
option = {
  title: {
    text: 'Referer of a Website',
    subtext: 'Fake Data',
    left: 'center'
  },
  tooltip: {
    trigger: 'item'
  },
  legend: {
    orient: 'vertical',
    left: 'left'
  },
  series: [
    {
      name: 'Access From',
      type: 'pie',
      radius: ['50%', '80%'],
      // startAngle: 0,
      avoidLabelOverlap: false,
      label: {
        show: true,
        rotate: 'tangential',
        position: 'inside'
      },
      data: [
        { value: 60, name: 'Search Engine' },
        { value: 60, name: 'Direct' },
        { value: 60, name: 'Email' },
        { value: 60, name: 'Union Ads' },
      ],
      emphasis: {
        itemStyle: {
          shadowBlur: 10,
          shadowOffsetX: 0,
          shadowColor: 'rgba(0, 0, 0, 0.5)'
        }
      }
    }
  ]
};

What is expected?
Expect the labels to be rotated so that they are easy to read. Like how the labels are displayed if we don't give the startAngle option.
What is actually happening?
The labels for some pies are displayed in reverse direction and making it hard to read in some cases

See the rotation of the 'Union Ads'


Duplicate/blocking tasks

"When you complete some quests, you will, after some time, have 2 quests about kiling rats
You can do only one of the 2, and the other won't complete even if you kill all the rats of the map
This is minor, but problem is that it can just take over all your quests..." -Pigeon

Fixed.


now cert rm sub.domain.com also attempts to delete the wildcard certificate

$ now cert rm asdf.rajli.ch
> The following certificates will be removed permanently
  cert_EXb9dfooUIUFXG0             asdf.rajli.ch      23s ago
  cert_HR9K2barpoMO3ON      rajli.ch, *.rajli.ch      55d ago
> Are you sure? [y/N] ^C

I expect only the cert_EXb9dfooUIUFXG0 cert to be removed in this case

Yep, we should indeed not delete the wildcard cert.


chore(master): release 1.1.33

:robot: I have created a release beep boop
1.1.33 (2023-08-22)
Bug Fixes

deps: update dependency wayofdev/laravel-cycle-orm-adapter to v4.0.69 (e166c80)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/laravel-webhook-client/releases/tag/v1.1.33 :sunflower:


Please clarify meaning in bullet point "Traffic destined for addresses in the virtual network directly connected ..."

Hi, great new capability thank you. Can you please clarify this statement further:
"Traffic destined for addresses in the virtual network directly connected to the virtual hub cannot be configured to route through the NVA using BGP peering between the hub and NVA. This is because the virtual hub automatically learns about system routes associated with addresses in the spoke virtual network when the spoke virtual network connection is created. These automatically learned system routes are preferred over routes learned by the hub through BGP."
Does that refer to traffic destined to an IP address in the same VNET as the BGP-peered NVA?
Or, does that refer to traffic destined to an IP in any connected VNET in the hub?
Many thanks

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

ID: 9205b7a3-51f0-70fb-5125-97fba938f421
Version Independent ID: e9d061eb-38a3-808f-a11c-4246289a64c3
Content: About BGP peering with a virtual hub - Azure Virtual WAN
Content Source: articles/virtual-wan/scenario-bgp-peering-hub.md
Service: virtual-wan
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

@kahawai-sre
Thank you for your feedback! We have assigned this issue to the author to review further and take the next course of action.

@kahawai-sre
Thank you for reaching out.
The statement refers to the IP addresses of the spoke Vnets. When the spoke virtual network connection is created, the virtual hub automatically learns about system routes associated with addresses in the spoke virtual network. These automatically learned system routes are preferred over routes learned by the hub through BGP. This means that traffic destined for addresses in the spoke virtual network will be routed directly to the spoke virtual network and not through the NVA using BGP peering between the hub and NVA.
I hope this helps clarify your question. Please tag me in your response if you have any other questions. Thank you!


[sp] add "delete" and "duplicate" functionality for pipelines

Summary

add "Delete" and "Duplicate" to the file browser context menu when right clicking on a block

Tests

WIP, waiting for backend integration

cc: @johnson-mage

@shrey-mage PR looks fine, just need to fix the bug you mentioned where the context menu doesn't close after deleting a pipeline.


Inspection to report InOrder variables with a single verification call

Summary
InOrder variables with only a single verification call can be a result of multiple things:

the user forgot to add further verification calls
a verification started out as an InOrder but was forgotten to be converted to simple verification when a change of mind happened
etc.

Tasks

Create an inspect that would report InOrder variables with only a single verification call on them.
The intention/converter introduced in #20 could act as a "quick fix", without actually assigning it as a quick fix.

Completed in v0.5.0.


Ch crl

Thank you for contributing to the IoT Plug and Play Models repository
:memo: Please review this checklist before submission

[ ] :eyes: The models submitted in this PR follow the DTDL Naming Guidelines for contributing to this repository.
[ ] 🕵I have validated the models locally using the dmr-client command line tool.
[ ] ❗ I understand once the PR is approved, the models are considered immutable: any edits will require to submit new files.
[ ] ✨ When creating a new top level dtmi:namespace, I have completed the PR Info Template below.

:zap: PR validation steps are described in the tools Wiki.
PR Info Template
When submitting models to the repository we ask that you provide as much of the following meta information around your models and related devices as possible. This info will be used to improve the IoT Plug and Play ecosystem.
👇: Please replace the markdown comment examples with your own values.
Company Info

Company name: CMIIC
Company website: https://www.changhong.us

IoT Plug and Play Device Info

Product website: https://www.changhong.us/?p=300
OS & Arch: azsphere & Arm
azsphere SDK Version: 22.09

Model Submission Goals

Device certification: X509 authentication

Code Owners & Reserved Names

Indicates GitHub alias entries to be added to the repo CODEOWNERS for the incoming model namespace. The codeowner is expected to be involved in subsequent DTDL model submissions against the same namespace.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact<EMAIL_ADDRESS>with any additional questions or comments.

Modified


Problem with partialLoader: can translate to incorrect language when addPart() called

Here's a Plunker that demos the issue:  http://plnkr.co/edit/MdXtcg5TUH4lLUDIt2R3?p=preview
The plunker initially shows Phrase1 in Spanish (es). This is correct, because that is the language we are set to use(). But once the line adding another part is uncommented, Phrase1 changes to Engilsh (en).
I would think that since the language is set to 'es' that we should get the 'es' translation of PHRASE1.
Is this a bug or am I misunderstanding what addPart() is supposed to do?

Hello, @rogercoder.
This happens because the partial loader fails loading if it cannot load any of the added parts by default. In your case you did not specified a second part of Spanish translation. So, when you try to add this part the loader can not load it.
But you are free to override this behavior by specifying an error handler to the loader. Just pass a loadFailureHandler parameter of the loader. Here is an example: http://plnkr.co/edit/cipFeVPGNvJPQ5DXQn3t?p=preview
We have added information about error handling in the partial loader to our guide with 2.7.0 release. So, if you want, you can find a more detailed explanation in this chapter at the end of a section about the partial loader.


Trying to Reconnect a Disconnected Query Crashes ADS

Type: Bug
If I open ADS with a query that I had open, if I try to click on "Connect" and then choose from my list of saved server connection strings, ADS will crash right after clicking the connect button. This happens for both Azure instances as well as hosted local sql servers.
Additionally this works the same with notebooks. I cannot try to connect it to a server without it crashing. Making them and any saved query unusable.
I must copy the query, right click on the saved server, do New Query, and then paste the code in it.
Azure Data Studio version: azuredatastudio 1.44.0 (31bee67f005648cdc9186f28ef39b4f1d6585e0f, 2023-05-19T16:50:03.880Z)
OS version: Darwin arm64 22.3.0
Restricted Mode: No
Preview Features: Enabled
Modes:

System Info

Item
Value

CPUs
Apple M1 Max (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
5, 4, 3

Memory (System)
64.00GB (3.31GB free)

Process Argv

Screen Reader
yes

VM
0%

Extensions (23)

Extension
Author (truncated)
Version

demo-mode
dre
1.1.1

copilot
Git
1.82.15

newdatabase
kev
1.0.0

ssmskeymap
kev
1.1.0

mssql-db-insights
mat
0.2.2

admin-pack
Mic
0.0.2

agent
Mic
0.49.0

cms
Mic
0.9.3

dacpac
Mic
1.13.0

import
Mic
1.5.5

powershell
ms-
2022.7.2

profiler
Mic
0.12.2

query-history
Mic
0.5.3

schema-compare
Mic
1.19.0

server-report
Mic
0.2.4

sql-assessment
Mic
0.6.4

sql-database-projects
Mic
1.1.1

whoisactive
Mic
0.1.5

azdata-sanddance
msr
4.0.1

sqlops-spexecutesql-to-sql
pej
1.0.2

schema-visualization
R0t
0.8.2

simple-data-scripter
sea
0.1.6

vscodeintellicode
Vis
1.2.1

Hi @XMLDiva
I couldn't reproduce the issue by using steps above, please upload logs for investigation.

Hi @cheenamalhotra ,
LogFile.zip
Attached log files after setting tracing to all attached.

I don't see any connection related error. The only reasonable logs I can find are these:
[exthost] [info] ExtensionService#_doActivateExtension Microsoft.xml-language-features, startup: false, activationEvent: 'onLanguage:sql'
[exthost] [info] ExtensionService#_doActivateExtension VisualStudioExptTeam.vscodeintellicode, startup: false, activationEvent: 'onLanguage:sql'
[exthost] [info] Extension host terminating: renderer closed the socket
[exthost] [info] Extension host with pid 12812 exiting with code 0

[renderer1] [warning] SettingsEditor2: Settings not included in settingsLayout.ts: sql.query.shortcut1,
sql.query.shortcut2, sql.query.shortcut3, sql.query.shortcut4, sql.query.shortcut5, sql.query.shortcut6, sql.query.shortcut7,
sql.query.shortcut8, sql.query.shortcut9, notebookExplorerSearch.actionsPosition, notebookExplorerSearch.collapseResults,
notebookExplorerSearch.exclude, notebookExplorerSearch.followSymlinks, notebookExplorerSearch.globalFindClipboard,
notebookExplorerSearch.location, notebookExplorerSearch.maintainFileSearchCache,
notebookExplorerSearch.quickOpen.history.filterSortOrder, notebookExplorerSearch.quickOpen.includeHistory,
notebookExplorerSearch.quickOpen.includeSymbols, notebookExplorerSearch.searchEditor.doubleClickBehaviour,
notebookExplorerSearch.searchOnType, notebookExplorerSearch.searchOnTypeDebouncePeriod,
notebookExplorerSearch.seedOnFocus, notebookExplorerSearch.seedWithNearestWord,
notebookExplorerSearch.showLineNumbers, notebookExplorerSearch.smartCase, notebookExplorerSearch.sortOrder,
notebookExplorerSearch.useGlobalIgnoreFiles, notebookExplorerSearch.useIgnoreFiles, notebookExplorerSearch.usePCRE2,
notebookExplorerSearch.useReplacePreview, notebookExplorerSearch.useRipgrep, serverTree.useAsyncServerTree,
resultsGrid.autoSizeColumns, resultsGrid.cellPadding, resultsGrid.fontFamily, resultsGrid.fontSize, resultsGrid.fontWeight,
resultsGrid.letterSpacing, resultsGrid.maxColumnWidth, resultsGrid.rowHeight, resultsGrid.showJsonAsLink,
sql.defaultAuthenticationType, sql.defaultEngine, sql.maxRecentConnections, notebookViews.enabled

[renderer1] [critical] Extension 'github.copilot' wants API proposal 'interactive' but that proposal DOES NOT EXIST.
Likely, the proposal has been finalized (check 'vscode.d.ts') or was abandoned.

[renderer1] [warning] Settings pattern "debug.*" doesn't match any settings
[renderer1] [warning] Settings pattern "launch" doesn't match any settings
[renderer1] [warning] Settings pattern "audioCues.*" doesn't match any settings
[renderer1] [warning] Settings pattern "notebook.*" doesn't match any settings
[renderer1] [warning] Settings pattern "tableDesigner.*" doesn't match any settings
[renderer1] [error] An unknown error occurred. Please consult the log for more details.

@XMLDiva
Can you please confirm if this issue still occurs for you using the latest insiders build?

Closing as no relevant logs were provided


TLS Certificate Expired for haskell.org

As Firefox puts it:

haskell.org uses an invalid security certificate.
The certificate expired on 11/15/2015 08:28 AM. The current time is 11/15/2015 09:21 AM.

This is infra, not an hl bug. But we're on it - thanks!

Thanks! Where does one report infra bugs, btw?

Generally #haskell-infrastructure on freenode. There's also a tracker on https://phabricator.haskell.org/ on it, but it's mostly not used.


LinkedIn Learning - Error: requested format not available

Dear Team,
When I tried this command:
youtube-dl -o "{my_local_pc_path}/%(playlist)s/%(chapter_number)s - %(chapter)s/%(playlist_index)s - %(title)s.%(ext)s" -f "bestvideo[height<=960,ext=mp4]+bestaudio[height<=960,ext=mp4]" --ignore-config --write-description --write-info-json --write-annotations --write-thumbnail --verbose --no-mtime --no-check-certificate --cookies "{my_local_pc_path}/cookies.txt" "https://www.linkedin.com/learning/critical-thinking-and-problem-solving/"
to download an entire course from LinkedIn Learning site (e.g. https://www.linkedin.com/learning/critical-thinking-and-problem-solving/, I got the below error:
`debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.9.6 (CPython) - macOS-10.16-x86_64-i386-64bit
[debug] exe versions: none
[debug] Proxy map: {}
[linkedin:learning:course] Downloading JSON metadata
[download] Downloading playlist: Critical Thinking and Problem Solving
[linkedin:learning:course] playlist Critical Thinking and Problem Solving: Collected 17 video ids (downloading 17 of them)
[download] Downloading video 1 of 17
[linkedin:learning] improve-your-problem-solving-skills: Downloading 360p JSON metadata
[linkedin:learning] improve-your-problem-solving-skills: Downloading 540p JSON metadata
[linkedin:learning] improve-your-problem-solving-skills: Downloading 720p JSON metadata
[linkedin:learning] improve-your-problem-solving-skills: Downloading m3u8 information

ERROR: requested format not available
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1076, in __process_iterable_entry
return self.process_ie_result(
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 918, in process_ie_result
return self.process_ie_result(
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 881, in process_ie_result
return self.process_video_result(ie_result, download=download)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1683, in process_video_result
raise ExtractorError('requested format not available',
youtube_dl.utils.ExtractorError: requested format not available`

Any idea what went wrong here? Or Am I missing something?
Thanks.

Use -F to see first which formats are available.
And this format specification bestaudio[height<=960,ext=mp4] looks odd. Audio doesn't have height, and ext may be m4a.

I tried with -F option, I seemed to be able to see only the first video but I got the same error with the 2nd video.

[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.9.6 (CPython) - macOS-11.5.1-x86_64-i386-64bit
[debug] exe versions: none
[debug] Proxy map: {}
[linkedin:learning:course] Downloading JSON metadata
[download] Downloading playlist: Critical Thinking and Problem Solving
[linkedin:learning:course] playlist Critical Thinking and Problem Solving: Collected 17 video ids (downloading 17 of them)
[download] Downloading video 1 of 17
[linkedin:learning] improve-your-problem-solving-skills: Downloading 360p JSON metadata
[linkedin:learning] improve-your-problem-solving-skills: Downloading 540p JSON metadata
[linkedin:learning] improve-your-problem-solving-skills: Downloading 720p JSON metadata
[linkedin:learning] improve-your-problem-solving-skills: Downloading m3u8 information
[info] Available formats for 2420886:
format code       extension      resolution note
audio             m4a            audio only audio@ 64k
hls-234           mp4            416x234     234k , avc1.42001e, mp4a.40.2
hls-313           mp4            416x234     313k , avc1.42001e, mp4a.40.2
hls-566           mp4            640x360     566k , avc1.42001e, mp4a.40.2
hls-661           mp4            640x360     661k , avc1.42001e, mp4a.40.2
progressive-360p  unknown_video  640x360
hls-843           mp4            960x540     843k , avc1.42001e, mp4a.40.2
hls-1525          mp4            960x540    1525k , avc1.42001e, mp4a.40.2
progressive-540p  unknown_video  960x540
hls-2139          mp4            1280x720   2139k , avc1.42001e, mp4a.40.2
progressive-720p  unknown_video  1280x720   (best)
[download] Downloading video 2 of 17
[linkedin:learning] know-yourself: Downloading 360p JSON metadata
[linkedin:learning] know-yourself: Downloading 540p JSON metadata
[linkedin:learning] know-yourself: Downloading 720p JSON metadata
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
ie_result = ie.extract(url)
File "/usr/local/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 534, in extract
ie_result = self._real_extract(url)
File "/usr/local/lib/python3.9/site-packages/youtube_dl/extractor/linkedin.py", line 127, in _real_extract
self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))
File "/usr/local/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 1376, in _sort_formats
raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Be sure to call youtube-dl with the --verbose flag and include its complete output.

Your log is not complete. Do not edit.

@kikuyan, I did include "--verbose" in my command.
youtube-dl -F -ciw --no-mtime --no-check-certificate --verbose --cookies "cookies.txt" "https://www.linkedin.com/learning/critical-thinking-and-problem-solving/" -o "/output/%(playlist)s/%(chapter_number)s - %(chapter)s/%(playlist_index)s - %(title)s.%(ext)s" --write-sub
Am I missing something here?


Semi monthly

Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated Apache Fineract JIRA ticket.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[ ] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[ ] Create/update unit or integration tests for verifying the changes made.

[ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

What are the changes you made here ? Do you mind working on the CI integration also ? I mean see if that works.

What are the changes you made here ? Do you mind working on the CI integration also ? I mean see if that works.


Error "the remote host may not meet vscode server prerequisites for glibc and libstdc++" after upgrade VSCode from 1.85 to 1.86

Does this issue occur when all extensions are disabled?: Yes/No
Yes

VS Code Version: 1.86
OS Version: (VM) CentOS 7

Steps to Reproduce:

Use 'Remote-SSH' from my Mac to connect to my CentOS 7 Host
It would fail and show ''the remote host may not meet vscode server prerequisites for glibc and libstdc++", but it was fully working on VSCode 1.85
After I re-install VSCode 1.85, this issue fixed.

To Summary
After I updated from VSCode 1.85 to 1.86, while connecting to my CentOS 7 VM in VSCode, I started experiencing the error the remote host may not meet vscode server prerequisites for glibc and libstdc++ , it is caused by recent release of VSCode 1.86. To resolve, I had to downgrade to VSCode 1.85.
However, this experience is not good. Any update should be backforward compitable, and I recommand to make a fix ASAP for this.
System Information

CPUs | Apple M1 Pro (10 x 24)
-- | --
GPU Status | 2d_canvas: enabled canvas_oop_rasterization: enabled_on direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled multiple_raster_threads: enabled_on opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok video_decode: enabled video_encode: enabled vulkan: disabled_off webgl: enabled webgl2: enabled webgpu: enabled
Load (avg) | 6, 3, 2
Memory (System) | 32.00GB (0.51GB free)
Process Argv | --crash-reporter-id e3ce0d2d-874e-4a30-955e-3ad25181c515
Screen Reader | no
VM | 0%

Enabled Extensions

Extension | Author (truncated) | Version
-- | -- | --
vscode-glimmer | chi | 0.0.6
vscode-eslint | dba | 2.4.4
gitlens | eam | 14.7.0
EditorConfig | Edi | 0.16.4
prettier-vscode | esb | 10.1.0
copilot | Git | 1.159.0
copilot-chat | Git | 0.12.1
copilot-labs | Git | 0.17.1121
remotehub | Git | 0.62.0
terraform | has | 2.29.3
vscode-peacock | joh | 4.2.2
vscode-codemetrics | kis | 1.26.1
vscode-glimmer-syntax | lif | 1.0.33
linkedin-multiproduct-vscode-plugin-pack | lin | 0.1.99
handlebars-formatter | mfe | 1.1.0
vscode-docker | ms- | 1.28.0
black-formatter | ms- | 2024.0.0
debugpy | ms- | 2024.0.0
flake8 | ms- | 2023.10.0
python | ms- | 2024.0.1
vscode-pylance | ms- | 2023.12.1
jupyter | ms- | 2024.1.1
jupyter-keymap | ms- | 1.1.2
jupyter-renderers | ms- | 1.0.17
vscode-jupyter-cell-tags | ms- | 0.1.8
vscode-jupyter-slideshow | ms- | 0.1.5
remote-containers | ms- | 0.338.1
remote-ssh | ms- | 0.107.1
remote-ssh-edit | ms- | 0.86.0
vscode-remote-extensionpack | ms- | 0.25.0
azure-repos | ms- | 0.38.0
cmake-tools | ms- | 1.16.32
cpptools | ms- | 1.18.5
cpptools-extension-pack | ms- | 1.3.0
remote-explorer | ms- | 0.4.1
remote-repositories | ms- | 0.40.0
remote-server | ms- | 1.5.0
puppet-vscode | pup | 1.5.1
java | red | 1.27.0
vscode-yaml | red | 1.14.0
vscode-stylelint | sty | 1.3.0
file-hopper | suc | 0.3.5
vscode-ember-experimental | suc | 1.2.0
shellcheck | tim | 0.35.0
cmake | twx | 0.0.17
vscode-counter | uct | 3.4.0
intellicode-api-usage-examples | Vis | 0.2.8
vscodeintellicode | Vis | 1.2.30
vscode-java-debug | vsc | 0.56.0
vscode-java-dependency | vsc | 0.23.4
vscode-java-pack | vsc | 0.25.15
vscode-java-test | vsc | 0.40.1
vscode-maven | vsc | 0.44.0
vscode-proto3 | zxh | 0.5.5

<span style="color: rgb(204, 204, 204); font-family: -apple-system, "system-ui", sans-serif; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(60, 60, 60); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">(1 theme extensions excluded)

AB Experiment Info
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscoreces:30445986
vscod805:30301674
binariesv615:30325510
vsaa593cf:30376535
py29gd2263:30899288
c4g48928:30535728
azure-dev_surveyone:30548225
962ge761:30959799
pythongtdpath:30769146
welcomedialogc:30910334
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
pythontbext0:30879054
accentitlementst:30887150
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
dsvsc019bcf:30953938
3ef8e399:30949928
e3gdj431:30958358

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.86.1. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

/duplicate
Please update to 1.86.1

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!

/duplicate
Please update to 1.86.1

The problem arises after updating to version 1.86.1 instead of being resolved by the update. The only solution to fix the issue is to downgrade to version 1.85 or an earlier version. I want to emphasize that this issue is distinct and not a duplicate.

For me this problem still exists in Version 1.86 when I use 1.85.2 this is not a problem.

I'm running VScode 1.87.2 and just started encountering this issue. I tried installing an older version of remote ssh but the error persists. Any suggestions? I didn't have this issue until this morning.

I'm running VScode 1.87.2 and just started encountering this issue. I tried installing an older version of remote ssh but the error persists. Any suggestions? I didn't have this issue until this morning.

@DylanMaxStermer Were you able to fix this? I too am facing this issue and not able to resolve this.