Conditional Mapped Types and Generic Type Parameters

TypeScript Version:  2.8.1 and 2.9.0-dev.20180406

Search Terms: Conditional Mapped Types Generic Type Parameter
Code
// defines a type that contains all properties of Super exactly as they are defined in Super
// and all properties of Sub that are not already defined in Super.
type SubAddsNewPropsToSuper<Sub, Super> = { [KeyOfNewPropsInSub in Exclude<keyof Sub, keyof Super>]: Sub[KeyOfNewPropsInSub] } & Super;

class Controller<TModel> {

    constructor(public model: SubAddsNewPropsToSuper<TModel, { Title: string }>) { }

    setFancyTitle() {

        this.model.Title = "FANCY"; // works
        this.updateModel({ Title: "FANCY" }); // does not work - why?
        const x: Partial<SubAddsNewPropsToSuper<{ Title: "Foo" }, { Title: string }>> = { Title: "FANCY" }; // works
        const y: Partial<SubAddsNewPropsToSuper<TModel, { Title: string }>> = { Title: "FANCY" }; // does not work - why?
    }

    updateModel(changes: Partial<SubAddsNewPropsToSuper<TModel, { Title: string }>>) {
        // merge "changes" into "this.model"
    }
}

Expected behavior:
The type SubAddsNewPropsToSuper<A, B> should define a type that contains all properties of type B exactly as they are defined in B even if type A defines the same property with a different type (e.g. changes the type of a property from string to "OnlyThisString").
The idea behind this is to circumvent the "problem" if Controller was defined as class Controller<TModel extends { Title: string }>{ ... } in which case TModel might actually change the type of property Title.
Actual behavior:
It works as expected if A and B are both non-generic types but it does not work if A is a generic type.
Playground Link: http://www.typescriptlang.org/play/#src=
%2F%2F defines a type that contains all properties of Super exactly as they are defined in Super
%2F%2F and all properties of Sub that are not already defined in Super.
type SubAddsNewPropsToSuper<Sub%2C Super> %3D { [KeyOfNewPropsInSub in Exclude<keyof Sub%2C keyof Super>]%3A Sub[KeyOfNewPropsInSub] } %26 Super%3B

class Controller<TModel> {

    constructor(public model%3A SubAddsNewPropsToSuper<TModel%2C { Title%3A string }>) { }

    setFancyTitle() {
        this.model.Title %3D "FANCY"%3B %2F%2F works
        this.updateModel({ Title%3A "FANCY" })%3B %2F%2F does not work - why%3F
        const x%3A Partial<SubAddsNewPropsToSuper<{ Title%3A "Foo" }%2C { Title%3A string }>> %3D { Title%3A "FANCY" }%3B %2F%2F works
        const y%3A Partial<SubAddsNewPropsToSuper<TModel%2C { Title%3A string }>> %3D { Title%3A "FANCY" }%3B %2F%2F does not work - why%3F
    }

    updateModel(changes%3A Partial<SubAddsNewPropsToSuper<TModel%2C { Title%3A string }>>) {
        %2F%2F merge "changes" into "this.model"
    }
}

Related Issues:

I believe this is related to a problem I had where I was attempting to use Omit<Foo, 'bar'> & { bar: AltBar; }, which worked perfectly when Foo was some defined type, but when Foo was a generic parameter that extends { bar: Bar; baz: Baz; }, the baz property was not available, only bar (as an AltBar) was.

Since the issue doesn't have a tag, nor is it closed it might be considered just a question?! I asked the question on StackOverflow.


[Bug]: how can i disabled outside click close dialog

Reproduction
https://www.shadcn-vue.com/docs/components/dialog
Describe the bug
i want to close when i click outside the dialog
System Info
shadcn-nuxt

Contributes

[ ] I am willing to submit a PR to fix this issue
[ ] I am willing to submit a PR with failing tests

https://www.shadcn-vue.com/docs/components/dialog 这个链接里的例子是可以点击对话框外部关闭的，我想知道怎么在点击外部的时候不关闭对话框

https://www.shadcn-vue.com/docs/components/alert-dialog.html

Hi, You can use AlertDialog
or You can use DialogContent emits and prevent them like
<DialogContent @pointerDownOutside.prevent @escapeKeyDown.prevent>
   ...
</DialogContent>


Backlight module missing when fcitx5 daemon start

Dear alexays and other developers maintaining Waybar;
I've just installed waybar to use with sway compositor in Wayland yesterday; I copies the configuraion file from my i3 window manager to sway's. After I copy my i3's config file (which contain an line to start fcitx5 daemon  (having fcitx5-unikey and fcitx5-mozc modules installed; also), the backlight modules didn't pop up; regardless of what I have done; backlight information just didn't show up:

Changing backlight modules from acpi_video0, acpi_video1, intel_backlight : Not working
Writing my own backlight modules: Not working
Restart light/brightnessctl: Not working
Restart waybar: Not working

And today; when I installed hyprland and start waybar; for unknown reasons, the backlight modules pop ups again! But when I started fctix5-daemon to write Vietnamese (I'm Vietnamese tho); restarting waybar made the backlight modules disappeared. Killing fcitx5 and restart waybar didn't make the modules reappear. So I speculate that the fcitx5 applet (which also start with its daemons) take up a slot that would be used for the backlight modules, and that slot didn't free up when fcitx5 stop.

Disable tlp services (likely will not work)
Changing kernel parameters.

EDIT: Reboot and start hyprland first even with fcitx5 daemon running doesn't trigger the bug, switching  to sway do. And changing kernel parameter didn't work. And since it happened only in Sway, so it's likely a sway problem, or Waybar configuration (swap fcitx5 to start later than waybar didn't work in sway config didn't work, comment out fcitx5 daemon worked).
EDIT2: Start fcitx5 daemon after starting waybar and sway (place a scripts after the waybar in sway config, which will run fcitx5 -dr) worked, maybe it's current workaround now.
Hope having response from you soon, thank you for reading

Hi @natsume-shokogami , in general does lighting work on your machine ?
Try in terminal: light -U 2, light -A 4

@LukashonakV light commands still works tho, brightnessctl also works tho

So I read waybar documentation again, maybe I'll try another applet (such as blueman-applet) in the tray module so see if it happens again (to check if it was because of the tray module or just fcitx5-applet).


cmake: FindPython3: Adjust python3 program search

This PR fixes #24340.
The find_package(Python3) will default select the highest installed Python3 version, unless exact is specified. Although it is possible to use CMake flags to control the behavior, then the discussion in #24340 indicates that CMake version 3.14 behaves differently than CMake 3.16 and 3.17.
The desired approach of whether Zephyr should follow CMake find_package(Python3) default behavior or another is open for debate.
But this PR provides a consistent mechanism across CMake 3.13-3.17 on how to control the behavior.
The Python3 that will be selected is per default:
python (if meeting required version), python3 (if meeting required version), then highest Python.
Example 1:
/usr/bin/python --> python2.7
/usr/bin/python3 --> python3.6
/usr/bin/python2.7
/usr/bin/python3.6
/usr/bin/python3.8

Python 3.6 will be selected, because /usr/bin/python3 --> python3.6
Example 2:
/usr/bin/python --> python3.6
/usr/bin/python3 --> python3.8
/usr/bin/python3.6
/usr/bin/python3.8

Python 3.6 will be selected, because /usr/bin/python --> python3.6
Example 3:
/usr/bin/python --> python3.4
/usr/bin/python3 --> python3.4
/usr/bin/python3.4
/usr/bin/python3.6
/usr/bin/python3.8

Python 3.8 will be selected, because Python 3.4 does not meet required version.
The way this is implemented, is by manually in Zephyr test the version of python and python3, and if they meet the required version, then this version will be feed to find_package(Python3) along with EXACT flag.
This further allows Zephyr user's to control the Python3 version, using the flag PYTHON_PREFER, as example:
cmake -DPYTHON_PREFER=python3.8, which will choose Python 3.8, over python and python3.
This PR should not be merged until we are sure that Zephyr should deviate from default CMake find_package(Python3) behavior.

How does this new version work with virtual environments?
For example, my python is usually something like /home/mbolivar/.virtualenvs/something/bin/python, and that is the first thing found on my PATH.
Does find_program() in CMake respect PATH in this way?

@mbolivar-nordic Thanks for the comment and the concern.
This is exactly why I have my concerns regarding changing the default behavior, so good we get all usecases discussed.

How does this new version work with virtual environments?

Basically, this PR does not change the behavior of find_package(Python3), what is does, is to manually see if python or python3 is meeting the requirement, and then lock the version to the version determined by, for example python3, and after that, let find_package(Python3) do its normal job.
This is also why CMake will find /usr/bin/python3.6 (and not /usr/bin/python3), when /usr/bin/python3 --> /usr/bin/python3.6
But let me do some more testing on Python venv.
I assume the find_package(Python3) without this PR is working as expected for you ?

But let me do some more testing on Python venv.

I had a chance to test it today and it's working in my shell:
-- Found Python3: /home/mbolivar/.virtualenvs/west-dev/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter

I hope it keeps working this way due to some guarantees made by find_program().

I assume the find_package(Python3) without this PR is working as expected for you ?

It does, yes. I just hope it all keeps working :). I see issues often where the python interpreter which is used to run the west binary installed via pip differs from the one found via CMake. I'll keep an eye out and we'll address issues as we find them.

But let me do some more testing on Python venv.

I had a chance to test it today and it's working in my shell:
-- Found Python3: /home/mbolivar/.virtualenvs/west-dev/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter

I hope it keeps working this way due to some guarantees made by find_program().

yes, that's my hope as well.
At least, using find_program manually, and still use FindPython3 from CMake, hopefully gives us the stability we need, with minimal maintenance (that is, no Zephyr backport).

I see issues often where the python interpreter which is used to run the west binary installed via pip differs from the one found via CMake.

During this implementation, I actually considered that if CMake was invoked through west then we should use the Python interpreter that was also used by west.
Could save some strange behavior.
On the other hand, this could result in west using != /usr/bin/python3, and thus cause other confusions among some users.
Should I continue look into this ?
Opinions are more than welcome, @mbolivar-nordic @pfalcon you probably has some thoughts.

@tejlmand:

During this implementation, I actually considered that if CMake was invoked through west then we should use the Python interpreter that was also used by west.

I would say this would be useful, for as long as west can be run as python3 -m west. And it would be useful for testing with different Python versions by folks like @mbolivar-nordic (or reporters of issues).
But:
$ python3 -m west
/usr/bin/python3: No module named west.__main__; 'west' is a package and cannot be directly executed
pfalcon@zenbook:~$ west --version
West version: v0.7.2

Hello @mbolivar-nordic .
So, given the situation like that, we can leave advanceties like "if CMake was invoked through west then we should use the Python interpreter that was also used by west" for later time. I personally would like to see this fix to be merged ASAP, as I still have to patch zephyr build system manually in any branch I work with (which are few).

On the other hand, this could result in west using != /usr/bin/python3, and thus cause other confusions among some users.

West should be installed into the same python environment as all of Zephyr's other Python dependencies, or there will be bigger problems. So this seems reasonable to me, but I think it's not a big priority since it can be controlled by the west build caller with CMake variables if necessary.

I would say this would be useful, for as long as west can be run as python3 -m west. [...] But:
$ python3 -m west
/usr/bin/python3: No module named west.__main__; 'west' is a package and cannot be directly executed
pfalcon@zenbook:~$ west --version
West version: v0.7.2

Hello @mbolivar-nordic .

Hello!
Why is west's entry point relevant?

Why is west's entry point relevant?

It's best practice to let Python projects to be runnable using python -m syntax, it allows users to precisely control which Python version to use to run a particular package (which is sometimes a baseline feature, like with python3 -m pip or python3 -m venv, and sometime an advanced, like perhaps in the case of west; but it's still the best practice and a clear omission.)

West should be installed into the same python environment as all of Zephyr's other Python dependencies, or there will be bigger problems.

of course, what I was thinking of was an simply way to download a new Python version, install the requirements, including west and then simply do a build with that version, without changing the /usr/bin/python3 link.
Of course venv is useful for this, but someone might want to do it in a standard install, without venv
but this is lower down the prio list, but your comment

I see issues often where the python interpreter which is used to run the west binary installed via pip differs from the one found via CMake.

made me consider if we should ensure CMake uses same python interpreter as west

It's best practice to let Python projects to be runnable using python -m syntax

West uses the procedures documented inhttps://setuptools.readthedocs.io/en/latest/setuptools.html#automatic-script-creation.
This page specifically covers the -m option:
And even in Python 2.4, using the -m option only works for actual .py files that aren’t installed in a package.

it's still the best practice and a clear omission

Unless there is some active PEP documenting this "best practice", I'm not sure I agree.
West is a package because it's a script and a package-based API.

Unless there is some active PEP documenting this "best practice", I'm not sure I agree.

Just see the official Python documentation: https://docs.python.org/3/usin/cmdline.html#cmdoption-m

Paul Sokolovsky<EMAIL_ADDRESS>writes:

Unless there is some active PEP documenting this "best practice", I'm not sure I agree.

Just see the official Python documentation: https://docs.python.org/3/usin/cmdline.html#cmdoption-m

404 -- just me?

--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/zephyrproject-rtos/zephyr/pull/24364#issuecomment-615457174

Sorry, glicthy paste, fixed: https://docs.python.org/3/using/cmdline.html#cmdoption-m

I'm familiar with how the -m option works, and I don't see it called out as a "best" or even recommended practice. Common practice, yes, but not best or recommended.

To understand the "best" aspect, you would need to behold your system containing:

pip-3.3
pip-3.3.1
pip-3.4
pip-3.4.3
...
venv-3.3
venv-3.3.1
...
tabnanny-3.3
tabnanny-3.3.1
...
west-3.6
west-3.7
west-3.8
west-3.9
...

People in the Python community who beheld such situation, came to pretty obvious conclusion that it's the worst practice, and way to resolve it is the standard -m option, which thus becomes the best practice to support.

I just struggled after an issue that probably is related to this topic. Maybe I may add my observation here. If it would be better to open a new issue give me a note.
The difference in my case is that I'm using a windows system. There are three python instances installed on the system:

Python 2.7.x
Python 3.8.1 (x86)
Python 3.8.2 (x64)

The last of these three is the only one that is in set in the PATH variable. It is also the installation that has west installed and i would prefer to use. Till the update from a previous release to the latest master commit everything worked fine. Since the update an attempt to build with "west build" starts the build process and than fails because west is not found. From the log (see below) I can see that the used Python instance is the one with version 3.8.1 (x86). Why is that? It's quite confusing now...
I think having two python 3 installations is probably not common, but I need both of these because I need to use prebuilt libraries that only works with the (x86) variant.
Is there an elegant way to solve this issue? Can it be solved in the framework?
------ build log -------
C:\Nordic\zephyrproject\zephyr\samples\bluetooth\hci_usb>west build
-- west build: generating a build system
Including boilerplate (Zephyr base (cached)): C:/Nordic/zephyrproject/zephyr/cmake/app/boilerplate.cmake
-- Application: C:/Nordic/zephyrproject/zephyr/samples/bluetooth/hci_usb
-- Zephyr version: 2.2.99 (C:/Nordic/zephyrproject/zephyr)
-- Board: nrf52840dk_nrf52840
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'west'
CMake Error at C:/Nordic/zephyrproject/zephyr/cmake/host-tools.cmake:26 (message):
Unable to import west.version from 'C:/Python38x86/python.exe'
Call Stack (most recent call first):
C:/Nordic/zephyrproject/zephyr/cmake/app/boilerplate.cmake:483 (include)
C:/Nordic/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:24 (include)
C:/Nordic/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:40 (include_boilerplate)
CMakeLists.txt:4 (find_package)

I just struggled after an issue that probably is related to this topic. Maybe I may add my observation here. If it would be better to open a new issue give me a note.
The difference in my case is that I'm using a windows system. There are three python instances installed on the system:
* Python 2.7.x

* Python 3.8.1 (x86)

* Python 3.8.2 (x64)

The last of these three is the only one that is in set in the PATH variable. It is also the installation that has west installed and i would prefer to use. Till the update from a previous release to the latest master commit everything worked fine. Since the update an attempt to build with "west build" starts the build process and than fails because west is not found. From the log (see below) I can see that the used Python instance is the one with version 3.8.1 (x86). Why is that? It's quite confusing now...
I think having two python 3 installations is probably not common, but I need both of these because I need to use prebuilt libraries that only works with the (x86) variant.
Is there an elegant way to solve this issue? Can it be solved in the framework?

Thanks for this very thorough description of your setup.
I will try to see if I can reproduce same behavior.
But to just give you a brief history, then the changed behavior for finding Python is due to switching from having a Zephyr specific backport with local patches of FindPythonInterp.
The FindPythonInterp was deprecated with CMake 3.12, and as there were other issues related to Python location that had to be solved, then it was decided to go for the new FindPython3 CMake module, but as you noticed, it has introduced a new behavior, with some unexpected side-effects.
For a quick test, you can try to set the Windows search Python3_FIND_REGISTRY value to LAST.
https://cmake.org/cmake/help/latest/module/FindPython3.html#hints
but you are also welcome to wait till I have investigated on Windows.
On Windows, CMake FindPython3 will default look into Windows registry, so you can take a look to see if all Python versions installed are correctly registered:
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\ or
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\


the commands for server mode in the quick-start guide don't work properly

In the repository, there are 2 commands for running the app in the server mode.
quick start : This one saves files of the repo in the usr\local\bin. Could anyone tell me why?
and
after installation : This one runs fine
Please specify the difference between the two commands.

@adeyosemanputra I think this is question not an bug

@shubhangi013 First you have to install using installation command
And then you have to start it using either of the QuickStart commands given


When are traces created?

Hi,
I am playing around with implementing my own final-style tracer for experimenting with some symbolic execution alongside the JAX tracing. I tried to add a custom trace that is stateful. i.e. something like

class CustomTrace(jcore.Trace):
    def __init__(self, master, sublevel):
        super().__init__(master, sublevel)
        # I am trying to maintain some state for a particualr trace here
        self._path_conditions = []

Then I am using the custom trace class with some snippet that looks like this
with jcore.new_master(CustomTrace) as master:
        trace = CustomTrace(master, jcore.cur_sublevel())
        x = CustomTracer(trace, np.ones(3))
        out = (x < 2)

However I have found that this will not work. In particular, I was expecting that out will have the same trace as x but this is not the case. The reason for that is because of the code in find_top_trace
https://github.com/google/jax/blob/master/jax/core.py#L264
...
return type(top_trace)(top_trace.master, cur_sublevel())
...

Here a new trace is created when we have found a top trace. I am not very sure why JAX does this under the hood. Is there some good documentation / notes on what we should expect from MasterTrace, Trace and subtraces? In general, what would be the best way to maintain state in tracing?
Is is similar to how https://github.com/google/jax/issues/1663 does it?

Sadly, we don't have that part documented yet.

Can you tell us what are you trying to achieve? Perhaps there is a way to do that with the public APIs.

Testing I can't comment for some reason.

Sorry the the late reply. What you are trying to use is not part of the API on which we are focusing the documentation efforts. Eventually we plan to add more internal documentation.

I am closing this issue because there is nothing we plan to do imminently here.


Fixed CodeQL missing ref

Current dependencies on/for this PR:

main

PR #113   👈

This comment was auto-generated by Graphite.


BasicCalleeAnalysis: fix computation of class method callees if an overridden function has a different ABI

In such a case the overridden function gets a new separate vtable entry.
With this change, the computation of class method callees only uses the information in sil_vtables (instead of ClassDecl members).
Fixes a compiler crash in various optimization passes.
rdar://problem/56146633

@swift-ci test

Performance: -O

Regression
OLD
NEW
DELTA
RATIO

FlattenListFlatMap
4285
4829
+12.7%
0.89x (?)

DictionaryGroup
146
157
+7.5%
0.93x (?)

Code size: -O
Performance: -Osize

Regression
OLD
NEW
DELTA
RATIO

DropLastArrayLazy
4
9
+125.0%
0.44x

SuffixArray
4
9
+125.0%
0.44x

DropFirstArrayLazy
13
26
+100.0%
0.50x

DropLastCountableRangeLazy
5
9
+80.0%
0.56x

DropFirstCountableRangeLazy
15
26
+73.3%
0.58x

SuffixCountableRangeLazy
6
9
+50.0%
0.67x

DropWhileArray
25
35
+40.0%
0.71x

PrefixCountableRangeLazy
13
18
+38.5%
0.72x (?)

PrefixWhileArray
40
53
+32.5%
0.75x

DropFirstAnySeqCRangeIterLazy
109
136
+24.8%
0.80x

FlattenListLoop
2652
3155
+19.0%
0.84x (?)

DropLastAnyCollection
32
38
+18.7%
0.84x

PrefixAnyCollection
86
101
+17.4%
0.85x

PrefixAnySeqCRangeIterLazy
81
94
+16.0%
0.86x (?)

DropFirstSequence
33
36
+9.1%
0.92x (?)

DropFirstSequenceLazy
33
36
+9.1%
0.92x (?)

Improvement
OLD
NEW
DELTA
RATIO

PrefixWhileCountableRangeLazy
26
13
-50.0%
2.00x

PrefixArray
26
13
-50.0%
2.00x

DropFirstAnyCollection
99
72
-27.3%
1.37x

SuffixAnyCollection
37
27
-27.0%
1.37x

DropFirstAnySeqCntRangeLazy
131
97
-26.0%
1.35x

PrefixWhileAnyCollection
126
94
-25.4%
1.34x

PrefixAnySeqCntRangeLazy
108
81
-25.0%
1.33x

PrefixWhileAnySeqCRangeIterLazy
108
81
-25.0%
1.33x (?)

DropWhileAnySeqCntRangeLazy
158
126
-20.3%
1.25x (?)

DropWhileAnySeqCRangeIterLazy
162
135
-16.7%
1.20x (?)

DropWhileCountableRangeLazy
49
45
-8.2%
1.09x

DropWhileAnyCollection
121
112
-7.4%
1.08x (?)

Code size: -Osize

Improvement
OLD
NEW
DELTA
RATIO

ReversedCollections.o
8575
8375
-2.3%
1.02x

Performance: -Onone
Code size: -swiftlibs

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini8,1
  Processor Name: Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

Why did this fix cause all the performance changes of Sequence operations in -Osize?


Prevent Prometheus from overallocating memory on subquery with large amount of steps.

Hi,
We just noticed that we can cause OOM on prometheus if we run queries like avg_over_time(metric[30d:30s]) before it hit the ErrTooManySamples as we allocate slices with the expected number of steps in the beginning of the query evaluation.
See for instance :
https://github.com/prometheus/prometheus/blob/c579144f66b73de12f06981c99288bf03538d3ce/promql/engine.go#L1695-L1700
This has 2 main consequences:

Prometheus may go OOM even if the query would eventually hit the ErrTooManySamples
Prometheus may use way more memory than needed to execute queries over sparse timeseries.

Ex:
Imagine that the query avg_over_time(metric[30d:30s]) match 10K series but each series only have 3 days worth of data. We also have a host with 50Gb and query.max-samples set to 50M (default limit) - with this config we would expect a single query would use at most ~= 6Gb (50M x 128 bytes bits - each FPoint has size of 128 bytes bits)
Now for this query we have:

Total number of samples queried per series matched (samplesPerSeries):

3d/30s = 8640

Total number of samples queried

10K * 8640 = 86.4M samples
This is above the default limit (50M) so this query should fail with ErrTooManySamples

For each of the 10K series, we will allocate a slice of size 30d/30s = 86.4K` (instead of 8.6k as needed)

In this scenario we will only hit the ErrTooManySamples when we already evaluated 50M/8640 series = 5.7K series (limit/samplesPerSeries).  At this point we have already allocated 5.7K * 86.4K * 128 bytes bits ~= 58Gb causing OOM (way more than the expected 6Gb).
This can also lead to use way more memory than needed even if we don't hit the ErrTooManySamples
Proposed solution
This PR is trying to get a more sensible initial capacity for the points slices in cases we have too many steps or series in order to allow the engine to throw ErrTooManySamples before going OOM. In order to do so, instead of always allocating the slices with capacity equals to the number of steps we would be calculating it by the following function:
func sizeToAllocate(numSteps, step, currentSamples, maxSamples, numberOfSeries int) int {
        // Subtract the current step from the numSteps as at this point we know the given series does not have data before this step
	remainingSteps := numSteps - step
        // spread the remaining allowed samples across all the series in the result.
	allowedSamples := (maxSamples - currentSamples) / numberOfSeries
	if remainingSteps > allowedSamples {
		return allowedSamples
	}
	return remainingSteps
}

In the case before, instead of allocating 86.4K points per series we would be allocating ~5K (50M/10K)which is less than the 8.6K needed but is a good start point. Its is also important to note that this should only make a difference if the query is relatively close to the query.max-samples limits - otherwise we will return the same number of steps.

Hi team, hope we can get some 👀 on this. It is pretty easy to OOM kill Prometheus with a subquery with very small step size up[180d:1ms].
We have step size 11K in range query API but we don't have similar things for subquery. The samples slice allocation is a big problem as even if I only have 1h data, by having a query of a long time range and a small subquery step, we allocate a large mount of memory.
cc @codesome

It's 128 bits, or 16 bytes.

Ops.. my bad! :D Fixed on the description!

biggestLen

This seems to keep track of the matrix with the most time series.. that's why i used this value on this case. WDYT?
https://github.com/prometheus/prometheus/blob/8ef7dfdeebf0a7491973303c7fb6b68ec5cc065b/promql/engine.go#L1136-L1144

I would vote for simpler heuristic for a start, but not a blocker. LGTM.
U have any idea? This one was the one i thought was simpler an would impact less the current behavior..

We could just limit the max number of points.. like.. never allocated more than 5K?

Yup 👍🏽

Ok.. i could do that! Hopefully we pick a max (5K or 10K) that will be a no-op in most of the cases)
@bboreham thoughts?

@bboreham PTAL?

Agreed, let's try something simpler.  If it's reallocating 5K slices then probably the query is already doing a lot of work so reallocation is not the important part.
I looked in to biggestLen - it is the input to the operation with the most series.
This is a poor guide to what we need on the output, which is what you are trying to change.
E.g. sum(foo) has N input series and 1 output series.
foo or bar has all the series from foo and bar, so more than biggestLen.

Ok.. i updated the PR with the simpler approach! :D


Dependency installation fails - Non-zero exit status<PHONE_NUMBER>

I downloaded it from code as zip and made it a addon then i got this whats in the image

This is a silly question, but did you click the button?
The plugin has a few dependencies that need to be installed. Note you may also be on an older version of blender that isn't compatible with the plugin. Though the install step should let you know if you are.

I clicked the button but seemed like it did nothing

Will ummm how long is it to install and I did get something new like a black pop up

Interesting, it should work on both 3.5 and 3.6, are you able to view the logs from the system console? On windows use  Window > Toggle System Console

Heres what I got when I clicked Install Dependencies
Traceback (most recent call last):
File "C:\Users\redfo\AppData\Roaming\Blender Foundation\Blender\3.2\scripts\addons\roblox-blender-plugin-main\lib\install_dependencies.py", line 77, in install_dependencies
subprocess.run([sys.executable, "-m", "pip", "--version"], check=True)
File "C:\Program Files\Blender Foundation\Blender 3.2\3.2\python\lib\subprocess.py", line 524, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['C:\Program Files\Blender Foundation\Blender 3.2\3.2\python\bin\python.EXE', '-m', 'pip', '--version']' returned non-zero exit status<PHONE_NUMBER>.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\redfo\AppData\Roaming\Blender Foundation\Blender\3.2\scripts\addons\roblox-blender-plugin-main\lib\install_dependencies.py", line 62, in on_install_finished
task.result()
File "C:\Users\redfo\AppData\Roaming\Blender Foundation\Blender\3.2\scripts\addons\roblox-blender-plugin-main\lib\install_dependencies.py", line 79, in install_dependencies
ensurepip.bootstrap()
File "C:\Program Files\Blender Foundation\Blender 3.2\3.2\python\lib\ensurepip_init_.py", line 126, in bootstrap
bootstrap(root=root, upgrade=upgrade, user=user,
File "C:\Program Files\Blender Foundation\Blender 3.2\3.2\python\lib\ensurepip_init.py", line 193, in _bootstrap
return _run_pip([*args, *PACKAGE_NAMES], additional_paths)
File "C:\Program Files\Blender Foundation\Blender 3.2\3.2\python\lib\ensurepip_init.py", line 93, in _run_pip
return subprocess.run([sys.executable, '-W', 'ignore::DeprecationWarning',
File "C:\Program Files\Blender Foundation\Blender 3.2\3.2\python\lib\subprocess.py", line 524, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['C:\Program Files\Blender Foundation\Blender 3.2\3.2\python\bin\python.EXE', '-W', 'ignore::DeprecationWarning', '-c', '\nimport runpy\nimport sys\nsys.path = ['C:\\Users\\redfo\\AppData\\Local\\Temp\\tmpd6e33rib\\setuptools-58.1.0-py3-none-any.whl', 'C:\\Users\\redfo\\AppData\\Local\\Temp\\tmpd6e33rib\\pip-21.2.4-py3-none-any.whl'] + sys.path\nsys.argv[1:] = ['install', '--no-cache-dir', '--no-index', '--find-links', 'C:\\Users\\redfo\\AppData\\Local\\Temp\\tmpd6e33rib', 'setuptools', 'pip']\nrunpy.run_module("pip", run_name="main", alter_sys=True)\n']' returned non-zero exit status<PHONE_NUMBER>.

Can you try these troubleshooting steps 1 at a time to see if any of them resolve your the issue?

Run Blender as administrator
Re-install Blender (you can stick with latest 3.6.2 at the time of writing; 3.2 is the minimum required version, but not the only required version)

If neither of those work, I found some answers around the web indicating this exit status is related to a missing dependency. A bit of a shot in the dark, but maybe try manually installing Microsoft Visual C++ Redistributable. You can find the links for this here:
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022
You'll probably want the X64 version.
My hypothesis is it might use this to compile the cryptography library used for decrypting oauth2 keys.

Closing due to inactivity. Please comment if you are still experiencing this issue or have other relevant information to add to the conversation.


[Removal]: Striped Garnet Tarantula

Hotspot Name
Striped Garnet Tarantula
Hotspot b58 Address
11n6BAaVvQ5sWRrPFsJa1bRrMphvYi9eVojTDLYz4B2WXNu2SxR
Discord Handle
dannyiht#6271
Hotspot Manufacturer
Bobcat
Removal Reason
This hotspot was bulk added to the denylist along whit the whole town
Modifications
No
Extra forwarders
No
Extra antennas
No
Additional Information
I noticed that all hotspots from Ihtiman, Bulgaria and the area are added to a denylist whitch is not correct. Al of them have real locations, aslo my hotspot. Please remove me from the denylist.

We do not have sufficient evidence to remove these hotspots from the denylist. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.

for 14 days there is no answer to what is happening! why am i added a
second time? what wrong thing have i done Ask for assistance. thanks
On Wed, 9 Mar 2022 at 11:19, Abhay Kumar @.***> wrote:

We have taken into account this removal request in the next iteration of
the denylist. It may take some time before it's processed. This is an
automated comment due to the volume of addition and removal requests. A
future tool is in the works to provide more insight into the analysis
approach made by the Helium team and community members that maintain this
list.
—
Reply to this email directly, view it on GitHub
https://github.com/helium/denylist/issues/1529#issuecomment-1062714679,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXRPKOT7XPWNBJST4YBP3VLU7BULZANCNFSM5PFFP75A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

На ср, 9.03.2022 г. в 10:50 ч. Abhay Kumar @.***>
написа:

Closed #1529 https://github.com/helium/denylist/issues/1529.
—
Reply to this email directly, view it on GitHub
https://github.com/helium/denylist/issues/1529#event-6208238393, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AXRPKOULCMUR3GMGWSWT7QLU7BQ4JANCNFSM5PFFP75A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>


OSError: No Images found in data/lund/images

I'm running into an error where I can't do reconstruction as it says that no images were found. However I changed nothing regarding the path of the sample data.
/home/fsamhouri/3DReconstruction_Playground/OpenSfM/bin/opensfm_run_all data/lund
Traceback (most recent call last):
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/bin/opensfm_main.py", line 25, in <module>
    commands.command_runner(
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/opensfm/commands/command_runner.py", line 34, in command_runner
    with dataset_factory(args.dataset, args.dataset_type) as data:
  File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/bin/opensfm_main.py", line 17, in create_default_dataset_context
    dataset = DataSet(dataset_path)
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/opensfm/dataset.py", line 52, in __init__
    self.load_image_list()
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/opensfm/dataset.py", line 82, in load_image_list
    raise IOError("No Images found in {}".format(image_list_path))
OSError: No Images found in data/lund/images

Any possible reason why this is happening?

Hi,
I think you're simply in the wrong directory. Also try to specify the complete path. Should be something like: /home/fsamhouri/3DReconstruction_Playground/OpenSfM/opensfm/data/lund/images. If it still does not work, check the path again, check if a folder data/lund/images exists and if it contains images.
Best,
Fabian

The folder data/lund/images exists as it is example data. Here is the error when I go to the directory
fsamhouri@walle:~/3DReconstruction_Playground/OpenSfM/data/lund/images$ /home/fsamhouri/3DReconstruction_Playground/OpenSfM/bin/opensfm_run_all data/lund
Traceback (most recent call last):
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/bin/opensfm_main.py", line 25, in <module>
    commands.command_runner(
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/opensfm/commands/command_runner.py", line 34, in command_runner
    with dataset_factory(args.dataset, args.dataset_type) as data:
  File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/bin/opensfm_main.py", line 17, in create_default_dataset_context
    dataset = DataSet(dataset_path)
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/opensfm/dataset.py", line 52, in __init__
    self.load_image_list()
  File "/home/fsamhouri/3DReconstruction_Playground/OpenSfM/opensfm/dataset.py", line 82, in load_image_list
    raise IOError("No Images found in {}".format(image_list_path))
OSError: No Images found in data/lund/images

Here is the image of the folder as well

Please, follow the instructions in the documentation and run exactly the commands given.
First, go to the correct directory:
cd /home/fsamhouri/3DReconstruction_Playground/OpenSfM/

then run the command as given by the documentation for either berlin or lund
bin/opensfm_run_all data/berlin
bin/opensfm_run_all data/lund

Take also some time to revisit the basic about relative vs. absolute paths. If you run from a folder ~/3DReconstruction_Playground/OpenSfM/data/lund/images (like in your second example) then of course the relative data/lund/images does not exist because it's resolved as ~/3DReconstruction_Playground/OpenSfM/data/lund/images/data/lund/images

Yes, I just managed to solve it. I misunderstood what you meant by specifying the path. Once I specified the path on data/lund to also go to images, it worked. Thanks for your help, Fabian!


Rate the projects to track “best”

Hey,
Would be useful to include some sort of rating to track the best or most humanlike interactions.
If you need someone to help manage, I’m down to help

It's kinda a good idea. But how do you define "most humanlike interactions"? Like what is the benchmark and methodology you would use to rate projects?
You can make a PR to propose your rating thingy

This is so hard to do that I don't think I'm qualified, but I did find this useful repo as a reference: https://github.com/manyoso/haltt4llm. This is a fantastic idea, and I greatly appreciate it.

Okay just take your time

I did a little bit research on this, apparently Vicuna works best so far, meanwhile for Chinese users, ChatGLM seems to be the best.

Sorry I don't have a way to send a msg. This Github thread is the only way of communication.

Interesting update, using GPT4 to rate other LLMs on performance.
ais rating other ais haha, wild.
I think doing this is easy(ish) as well, potential option for this repo. I'd like to get updates on this project, as in hear about the development of open source LLMs, have you considered making a newsletter or something? Checking Github is quite tiresome. I'd like to get an email on the updates. This repository would also be a great place to market it. I'm confident other people would be interested in such a thing too

I think using GPT-4 to rate other model is a good way to show people how other models are different from GPT-ish models.

I would recommend that anyone interested in finding the best open source LLM with a limited or commercial-friendly license but lacking the time and energy to stay up-to-date with the latest AI news should periodically check the https://chat.lmsys.org/ website. They have deployed multiple SOTA models that you can not only try but also evaluate. Additionally, they provide a leader board with convincing statistics and a comprehensive list of open-source models ranked by score.

@nicognaW Ooh it has a battle mode and a leaderboard, too! https://chat.lmsys.org/?leaderboard

lmsys's Elo rating approach is interesting. See also
https://gpt4all.io/index.html, "Performance Benchmarks" (displayed only on desktop, not on mobile)
https://www.mosaicml.com/blog/mpt-7b, Table 1
for some comprehensive benchmarks.

Another evaluation with a leaderboard: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard.
BTW, given the era where open-source language models are flourishing, the list in this repository may not be up-to-date. So it's recommended also to refer to the leaderboards mentioned in this issue for the latest information.


Does redis support domain socket connection to redis server ?

I tried to connect to the redis server using RediStack. And the client and the server are both on the same server. When I tried to connect to the redis-server using unix socket (unix:///tmp/mm.sock) , I got the folllowing error :
RediStack.RedisConnection.Configuration.ValidationError.(unknown context at $100654b1c).Kind.invalidURLScheme)

@liweiqiang1688 you should probably ask this on GitLab at this repo is just an automated fork


init config file

I think it's a good thing to create a default fing.yaml config file.
We could also gather information about the project and fill the config file in.
for example detect the platform, port and app name based on current directory.

closing for now


dumdata_one command allows to choose among different databases

Hello,
I find your plugin very helpful. However for my purpose have multiple databases in my application and what to specify which one to dump the data from.
I tried making a PR to support the feature, but I am not allowed to push my own branch.
I also don't see any CONTRIBUTING guidelines, or any documentation on how to run the tests. But is that maybe the topic for another issue ? 🙃
I would be happy to help. Cheers

Hello,
currently, there are no contribution guidelines but I will add them in future (that can be another issue).
Can You create a pull request (from a fork) as described in the documentation?
https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request
I'm glad you find the plugin useful and want to help. :-)

Ok, cool. I didn't know you can PR from a forked repo.
I just pushed the PR. But I haven't write tests for it. I am not sure on how to get the tests running.
Looking forward for your feedback :)

Thank you for your contribution.
P.S. Sorry for the delay.


Extract mailbox to its own project

@cpx86 gave a very valid reason in #32 about having the mailboxes as a separate project.
One might want to use the mailbox in isolation just to serialize async work, a DIY lightweight actors alternative.

Fixed in #35


[Snyk] Security upgrade tap from 11.1.5 to 12.0.2

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

package.json
package-lock.json

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Breaking Change
Exploit Maturity

661/1000  Why? Recently disclosed, Has a fix available, CVSS 7.5
Uncontrolled resource consumption SNYK-JS-BRACES-6838727
Yes
No Known Exploit

661/1000  Why? Recently disclosed, Has a fix available, CVSS 7.5
Inefficient Regular Expression Complexity SNYK-JS-MICROMATCH-6838728
Yes
No Known Exploit

(*) Note that the real score may have changed since the PR was raised.

Commit messages

Package name: tap
    The new version differs by 11 commits.

7a20037 12.0.2
cf95e01 bump nyc and standard
7f54124 Bump deps for security and bugfixes
f323cdc 12.0.1
6745ecf fix test regression in node <10
39f73f9 docs(coverage): browser launching details
3336514 Fix interse typo in asserts docs
c1070a7 Add twing to the 100 club
51ae4f2 Do not run coverage report if ended with a signal
d5f7b12 12.0.0
5de8801 Update tsame and tmatch, resolve request security vuln

See the full diff

Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Uncontrolled resource consumption

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)
✅ license/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)
✅ license/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)
✅ license/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)
✅ license/snyk check is completed. No issues were found. (View Details)

🎉 Snyk hasn't found any issues so far.
✅ security/snyk check is completed. No issues were found. (View Details)


NTR: [GDF15-GFRAL signaling pathway]

Hi GO!
Happy new year!
I would need a bunch of new signaling pathways term for the glial cell-derived neurotrophic factor receptor signaling pathways.
We should first update the definition of GO:0035860 to indicate that it constitutes a family of coreceptors and describe the signaling.
Then it would be great to create 5 children terms, one per signaling pathway. In each case, there is one GDNF ligand (GDNF, NRTN, ARTN, PSPN and GDF15) and its corresponding GDNFR coreceptor (GFRA1, GFRA2, GFRA3, GFRA4 and GFRAL, respectively).
Note that the GDF15-GFRAL aversive pathway, a very interesting signaling pathway triggerred in response to various stresses and that causes an aversive response, is under the spotlight these days because GDF15, the cytokine/hormone that triggers the signaling is the probable cause of nausea during pregnancy.
I would also need some terms for the regulation of this pathway
Thanks
Sylvain

Update the name and definition of GO:0035860
Name
FROM:
GO:0035860 glial cell-derived neurotrophic factor receptor signaling pathway
to:
GO:0035860 glial cell-derived neurotrophic factor receptor family signaling pathway

Definition
FROM:
The series of molecular signals initiated by a ligand binding to a glial cell-derived neurotrophic factor receptor. PMID:12953054
TO:
The series of molecular signals initiated by a GDNF ligand (GDNF, NRTN, ARTN, PSPN OR GDF15) binding to its glial cell-derived neurotrophic factor receptor (GFRA1, GFRA2, GFRA3, GFRA4 OR GFRAL, respectively), triggering RET autophosphorylation and activation, leading to activation of downstream signaling pathways, including the MAPK- and AKT-signaling pathways. PMID:12953054

New term
Name: GDF15-GFRAL signaling pathway
Category: Biological Process
Definition:
The series of molecular signals initiated by GDF15 binding to GFRAL coreceptor in response to stress, triggering a RET receptor-dependent aversive response, characterized by nausea, vomitting, and/or loss of appetite.

child of GO:0033554 cellular response to stress
child of GO:0035860 glial cell-derived neurotrophic factor receptor signaling pathway
PMID:30639358
PMID:31535977
PMID:33593916
PMID:37437602

New term
Name: regulation of GDF15-GFRAL signaling pathway
Category: Biological Process
Definition: Any process that modulates the frequency, rate or extent of Kit signaling pathway.
child of GDF15-GFRAL signaling pathway
PMID:35177851

New term
Name: negative regulation of GDF15-GFRAL signaling pathway
Category: Biological Process
Definition: Any process that stops, prevents or reduces the frequency, rate or extent of GDF15-GFRAL signaling pathway
child of regulation of GDF15-GFRAL signaling pathway
PMID:35177851

New term
Name: GDNF-GFRA1 signaling pathway
Category: Biological Process
Definition:
The series of molecular signals initiated by GDNF binding to GFRA1 coreceptor, triggering a RET receptor-dependent response that promotes the survival of many types of neurons.
child of GO:0035860 glial cell-derived neurotrophic factor receptor signaling pathway
PMID:31535977

New term
Name: NRTN-GFRA2 signaling pathway
Category: Biological Process
Definition:
The series of molecular signals initiated by NRTN binding to GFRA2 coreceptor, triggering a RET receptor-dependent response that promotes the development and maintenance of homeostasis of the central and peripheral neurons of the nervous system.
child of GO:0035860 glial cell-derived neurotrophic factor receptor signaling pathway
PMID:31535977

New term
Name: ARTN-GFRA3 signaling pathway
Category: Biological Process
Definition:
The series of molecular signals initiated by ARTN binding to GFRA3 coreceptor, triggering a RET receptor-dependent response that promotes the development and maintenance of homeostasis of the central and peripheral neurons of the nervous system.
child of GO:0035860 glial cell-derived neurotrophic factor receptor signaling pathway
PMID:31535977

New term
Name: PSPN-GFRA4 signaling pathway
Category: Biological Process
Definition:
The series of molecular signals initiated by PSPN binding to GFRA4 coreceptor, triggering a RET receptor-dependent response that promotes the survival of promotes the survival of ventral midbrain dopaminergic neurons.
child of GO:0035860 glial cell-derived neurotrophic factor receptor signaling pathway
PMID:9491986
PMID:11116144

It seems that the GDNF and GDNFR interactions are not necessarily one-to-one.
PMID:12953054 Figure 1B

PMID:29245123
"However, this ligand-specific binding to GFRα co-receptors at times is promiscuous with a GFL ligand capable of interacting and functionally signaling with one of other nonpreferred GFRα proteins. GDNF can also bind to GFRα2, NRTN to GFRα1, and ARTN to GFRα1 [16], [17]."

Hi @raymond91125
You are righet, they are not one to one and form a 2:2:2 2:2:2 ternary complex composed of GDNF (GDNF, NRTN, ARTN, PSPN OR GDF15), GDNFR (FRA1, GFRA2, GFRA3, GFRA4 OR GFRAL, respectively) and RET. I think the definition I provide address this point "The series of molecular signals initiated by GDNF binding to GFRA1 coreceptor, triggering a RET receptor-dependent "
Does it answer your question?
Sylvain

Thanks @sylvainpoux. My concern is that whether it is necessary to go into such granularity for glial cell-derived neurotrophic factor receptor signaling pathway in the ontology, if there is essentially one shared mechanism. It's all about a GDNF ligand binding to a GDNF receptor and followed by recruiting RET. The exact interactions may be specified in annotations of specific gene products. Would that work for you?

Hi @raymond91125
I think it is really important in light of recent discoveries concerning GDF15. Please note that I initially only planned to request terms for GDF15-GFRAL and that I submitted the whole list of terms following discussion with Pascale.
If you think it is not needed to create all these terms, please consider the GDF15-GFRAL aversive pathway.
Thanks
Sylvain

@sylvainpoux Thanks for the clarification. Let's add what's immediately needed for annotations. More may be added later.
Please note:

We don't usually add "family" in the term name. The meaning is implied.
The signalling pathway starts at ligand/receptor binding and ends at the regulation of a cellular process such as transcription.

+[Term]
+id: GO:0160144
+name: GDF15-GFRAL signaling pathway
+namespace: biological_process
+def: "The series of molecular signals initiated by GDF15 binding to GFRAL coreceptor, triggering RET autophosphorylation and activation, in response to stress." [PMID:30639358, PMID:31535977, PMID:33593916, PMID:37437602]
+is_a: GO:0033554 ! cellular response to stress
+is_a: GO:0035860 ! glial cell-derived neurotrophic factor receptor signaling pathway
+property_value: term_tracker_item "https://github.com/geneontology/go-ontology/issues/26708" xsd:anyURI
+created_by: rynl
+creation_date: 2024-01-12T18:40:57Z
+
+[Term]
+id: GO:0160145
+name: negative regulation of GDF15-GFRAL signaling pathway
+namespace: biological_process
+def: "Any process that stops, prevents or reduces the frequency, rate or extent of GDF15-GFRAL signaling pathway." [PMID:35177851]
+intersection_of: GO:0065007 ! biological regulation
+intersection_of: negatively_regulates GO:0160144 ! GDF15-GFRAL signaling pathway
+property_value: term_tracker_item "https://github.com/geneontology/go-ontology/issues/26708" xsd:anyURI
+created_by: rynl
+creation_date: 2024-01-12T20:00:40Z

Hi @raymond91125
Does anything need to be done to complete and close this ticket?

I was waiting to see if there are further comments. If not, we should close this.


Automatic chords - is it possible?

Thanks for this amazing library!
Did you write a code to create automatic chords?
 Do I have to enter code for all the sequences (drums, piano, guitar etc.) Or you have a better way to suggest me?
Thanks again!

Hi,
Thanks for using the library! Please clarify what do you mean "create automatic chords"? At now chords can be obtained via GetChords method:
using Melanchall.DryWetMidi.Smf;
using Melanchall.DryWetMidi.Smf.Interaction;

var midiFile = MidiFile.Read("mysong.mid");

TrackChunk pianoTrack = midiFile.GetTrackChunks()
                                .FirstOrDefault(c => c.Events
                                                      .OfType<SequenceTrackNameEvent>()
                                                      .Any(e => e.Text == "Piano"));

IEnumerable<Chord> pianoChords = pianoTrack.GetChords();

By default notes should start at the same time to be fall into one chord. You can specify tolerance in MIDI ticks to specify area where notes can start to make up a chord:
IEnumerable<Chord> pianoChords = pianoTrack.GetChords(100);

Is it what you need?

@tamitam Did I answer on your question? :)

I'm closing this issue since no info provided.
@tamitam Please reopen if you have some comments on my answer.


Fix Records tab filter box cursor position:

While typing in the records tab filter box, the cursor position is not properly calculated and is one character behind

Fixed in #4


Compile with Syntax Error Throws NRE not ScriptEngineException

I recently tried updating to <IP_ADDRESS> and there were some problems compiling expressions containing syntax errors, all my test cases suddenly failed in an unexpected way!  I am using V8 as the engine.
The call to Runtime.Compile throws NullReferenceException instead of ScriptEngineException.  Not sure if there's some binary interop problems with the V8 assemblies, but all other scripting function work as expected.
Syntactically correct expressions have no problems and evaluate correctly.
When i regressed to <IP_ADDRESS>, everything went back to working.
Below is some Immediate Window output for reference.  I simply set a BP on my Runtime.Compile and executed it in the IW instead:
<IP_ADDRESS>
Runtime
{Microsoft.ClearScript.V8.V8Runtime}
    FormatCode: false
    HeapSizeSampleInterval: {00:00:00}
    MaxHeapSize: {0}
    MaxStackUsage: {0}
    Name: "V8Runtime"
js
"doc.Property1 == Value1'"
Runtime.Compile(js)
'Runtime.Compile(js)' threw an exception of type 'System.NullReferenceException'
    Data: {System.Collections.ListDictionaryInternal}
    HResult: -2147467261
    HelpLink: null
    InnerException: null
    Message: "Object reference not set to an instance of an object."
    Source: "ClearScriptV8-64"
    StackTrace: "   at V8Exception.ThrowScriptEngineException(V8Exception* )\r\n   at Microsoft.ClearScript.V8.V8IsolateProxyImpl.Compile(String gcDocumentName, String gcCode)"
    TargetSite: {Void V8Exception.ThrowScriptEngineException(V8Exception*)}

Just to show "normal" expressions compile just fine:
Runtime.Compile("doc.Property1=='value1'")
{Microsoft.ClearScript.V8.V8ScriptImpl}
    Name: "V8Runtime:Script Document [2]"

<IP_ADDRESS>
Runtime
{Microsoft.ClearScript.V8.V8Runtime}
    FormatCode: false
    HeapSizeSampleInterval: {00:00:00}
    MaxHeapSize: {0}
    MaxStackUsage: {0}
    Name: "V8Runtime"
js
"doc.Property1 == Value1'"
Runtime.Compile(js)
'Runtime.Compile(js)' threw an exception of type 'Microsoft.ClearScript.ScriptEngineException'
    Data: {System.Collections.ListDictionaryInternal}
    EngineName: ""
    ErrorDetails: "SyntaxError: Invalid or unexpected token\n    at V8Runtime:Script Document:1:24 -> doc.Property1 == Value1'"
    ExecutionStarted: false
    HResult: -2146233079
    HelpLink: null
    InnerException: null
    IsFatal: false
    Message: "SyntaxError: Invalid or unexpected token"
    Source: "ClearScriptV8-64"
    StackTrace: "   at V8Exception.ThrowScriptEngineException(V8Exception* )\r\n   at Microsoft.ClearScript.V8.V8IsolateProxyImpl.Compile(String gcDocumentName, String gcCode)"
    TargetSite: {Void V8Exception.ThrowScriptEngineException(V8Exception*)}

Interestingly, both versions seem to be at the same place in the call stack, but something is now missing.

Hi @escape-llc,
Could you post a minimal JavaScript code sample that triggers the exception?
Also, each newer ClearScript release uses a significantly updated V8 release under the covers. Could you try Version 5.5.3? There's now an official NuGet package.
Thanks!

Hi @ClearScriptLib,
I can confirm that this issue is still present in version 5.5.3, obtained via NuGet.
V8Runtime and V8ScriptEngine have different behavior currently:
using (var runtime = new V8Runtime(V8RuntimeFlags.None))
{
	runtime.Compile(@"function )}"); // throws NullReferenceException -> wrong
}
using (var engine = new V8ScriptEngine(V8ScriptEngineFlags.None))
{
	engine.Compile(@"function )}"); // throws ScriptEngineException -> correct
}

Confirmed. Thank you!

Fix posted here.

Fixed in Version 5.5.4.


An unknown process has crashed in UE4[Carla 0.9.4]

Hello, my vision of UE4 is 4.21.2 When i run
make launch-only
or open UE4Editor, this reporter will appear.

How can i figure this problem? Thank you

just try

make hard clean & make rebuild


Ignore unreadable or unplayable tags

Apologies for the delay getting to this, but looks good to me!


SetOutput is going to be deprecated

When using this action in my project, I get following warning:
Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Luckily caused by this line:
https://github.com/bots-house/portainer-deploy-stack-action/blob/2bb163f030de26c2717c42b0d5e994c9a01415b8/src/main.ts#L51
The warning message references a blogpage, which suggests updating @actions/core package to v1.10.0 or greater to get the updated saveState and setOutput functions.
So, I think updating the dependency might fix the issue

PR #277 is already there to fix the issue


Add a SOP of how to submit projects

HI, thanks for this, but there are many texts in the documents, is there any SOP for how to submit a project to the community build?

In case of published libraries there is no need to do that, they're automatically added based on data from ScalaDex. In case of open-source non-library or not yet published projects they can be added to
https://github.com/VirtusLab/community-build3/blob/master/coordinator/configs/custom-projects.txt
Some of the projects might be filtered-out if they're non compliant, eg. they have build issues, require special environment or don't compile with any recent version of Scala for long time (are unmaintained). Such projects are enlisted here:
https://github.com/VirtusLab/community-build3/blob/master/coordinator/configs/filtered-projects.txt
Each project might define it's config (HOCON) describing how should we handle it, eg. which JDK version to use, to exclude some legacy modules, add some sbt options, or disable compilation/running tests if they're buggy/flaky. It can be defined in projects top-level file or in our internal config maintained here:
https://github.com/VirtusLab/community-build3/blob/master/coordinator/configs/projects-config.conf
Based on all of these we create a build plan enlisting projects which we should run, and their final config used when compiling them. We do this each automatically every Friday few hours before running the weekly build.
I'll try to write it down to make it more clear. Until this time there are 2 posts about Open CB and how it works:

https://virtuslab.com/blog/prevent-scala3-compiler-regressions-community-build/
https://virtuslab.com/blog/how-to-be-a-part-of-scalas-open-community-build/

Thanks for the detailed declaration.

Updated the ReadMe to contain all the required info.


Don't block UI on font load

Overview
If analyzing the app loading (with "lighthouse" with instance), we can see that the display of the website is slowed down by the loading of some fonts which happens once the css has been loaded/parsed, which happens once the initial file has been loaded/parsed. The problem is quite common: https://web.dev/font-display/

One way to solve that would be to preload the blocking fonts. That looks like the best solution to me. This requires to disable hashing for the fonts.
Side question: why do we have so many fonts if only 3 are loaded at the end?

I've tried different way to make it work but it's quite difficult to implement it for Angular without postbuild tools/process.
Except hashed files there are also problem with duplicated requests and I assume this is because the paths in index.html and styles are different:

All the problems described in this lib https://github.com/bfoese/ngx-preload-fonts#custom-base-href
So we can study their approach and use that way.

Do you always have the duplicate in the current version of the app? I don't have, I don't have the first fetch (which would be the first thing fetch after the index.html while the index do not mention this font? I don't get it)

Using a post-build is ok. ngx-preload-fonts can be used if you think it does the job.


Feature: Add constraints

Feature request
Is your feature request related to a problem? Please describe.
It would be nice to be able to specify constraints within bot a table and a column
For example:
create table profiles (
  username text,

  unique(username)
)

alter:
alter table profiles
   add constraint check_username
   check (username ~* '^[a-zA-Z0-9_]*$' );

Describe the solution you'd like
It may need a similar treatment as the default values:
https://github.com/supabase/postgres-meta/blob/f35c38f00866a50b4629ede876454d810f76ccdb/test/integration/index.spec.js#L352
Additional context

https://github.com/supabase/supabase/issues/770

Hi! I was thinking of taking a stab at this for columns, but wasn’t exactly sure what interface would be desirable. I see there's already a few constraint options (like is_unique) in https://github.com/supabase/postgres-meta/blob/develop/src/lib/PostgresMetaColumns.ts, so would this be about allowing a user to specify a generic definition as free text when creating a column?

Yeah, in this case we want to start with something as generic as possible, then we can add more specific functionality for anything which isn't covered 👍
would love any contributions!

Unique constraints seem to have been added in the view when creating a new table but not in the update a column view or create a new column view. Would be very helpful to add this feature in those two views as well.
Note: I've included a few bugs around this as well in the following issue. https://github.com/supabase/supabase/issues/592#issuecomment-917852780

Could it be possible to allow for uniqueness across multiple columns e.g. if you have a table for storing a user's contact details/socials where the columns look something like id (int), user_id (int, foreign key), type (varchar), value (varchar). In that case you'd want to have unique(user_id, type) as a constraint so it wouldn't be possible to add duplicate values for the same type of contact info.
In the UI there's already similar functionality for marking fields as part of the primary key using check boxes. Could it be possible to provide a similar UI for selecting values to be part of a unique constraint? The only downside to that approach would be that it'd only work for one unique constraint per table when I think postgres allows more than one.

UI stuff aside: yes, we can make constraints be defined on tables the same way e.g. policies and primary keys are. The idea for this feature is for it to be the solution for all kinds of table constraints, including primary keys and UNIQUEs.

UI stuff aside: yes, we can make constraints be defined on tables the same way e.g. policies and primary keys are. The idea for this feature is for it to be the solution for all kinds of table constraints, including primary keys and UNIQUEs.

I don't quite fully understand, is it planned to add an UI option to add unique constraints across multiple columns?
I'd also like to be able to do what @DocLabyrinth requests :)

This repo is decoupled from the UI - the UI can do ad-hoc queries and thus can support multi-columns constraints, but ideally this would be handled from a dedicated endpoint (e.g. /constraints).

Here is a way to manually add a unique constraint on two columns:

Open the SQL editor
Click "New query"
Add the following:

alter table mytable
add constraint unique_col1_col2 unique (col1, col2);

Click "Run"


Two cursors visible at once & Table visualization does not interact with Enso cursor

This is kind of two issues but they seem very interconnected, so I'm reporting as one, may be split if needed.
https://github.com/enso-org/enso/assets/1436948/cc9a3d15-22cd-4333-bdc9-348270565b44
As can be seen on the video, I have two problems:

From time to time, especially when manipulating the Table visualization I get into a state where both the Enso-circle-cursor and the native Windows cursor are visible at once. This is not an usability itself but looks bad.
It seems that the Table visualization does not react to the Enso-circle-cursor. I tried changing column widths - a common thing to do, especially as some columns in the example were very narrow. I could not do that at all with the Enso cursor.

If I open the full-screen visualization, I for a moment see both cursors - then I can change column widths. But after one click (first width change), the cursor disappears and I cannot interact anymore - I have to close the full-screen vis and reopen it again to gain the Windows cursor that allows me to manipulate.
Similarly, in the non-fullscreen 'embedded' mode, the visualization does not react to Enso cursor. There I can 'just' click outside of the vis and then again inside of it to 'gain' the Windows native cursor and be able to interact.
Due to these issues it is hard to resize columns in the table.

Note: the awful flickering has started to happen since a few weeks, I did not have it before. Fortunately, it is only visible on the recording - when I was using the app, even during recording, on the live screen no flickering like this was fortunately happening - so it's only an artifact of the recording. Still a weird thing, especially, as it did not happen in the past (+- I remember it started happening in the same time as the IDE colors changed from white-ish to yellow-ish - probably not an issue of colors, but maybe some related changes around that time)

I'll check this one in about one hour and bisect if necessary.

Further discussion of the issue with fullscreen vis goes to #7524. Two issues described here are much older, I continue bisecting.

System cursor and the Enso cursor intermixed - visual issue indeed.
You can resize visualization columns only when the visualization is focused. That's why you need to click it to be able to resize columns (and to see the system cursor). Initially, I thought it was not an issue. However, after opening a project, it is possible to resize columns, even when the visualization is unfocused (there is no blue border around it).

I checked commit from 5th of July, and both these issues are present there as well. Did it work otherwise at all?
I find further bisecting pointless.
@jdunkerley and @farmaazon,

What is the intended behavior here?
Should we focus visualizations on hover?
What cursor should we show in visualizations, system's or Enso's?

We should just be using the system cursor - if fixable easily then we should do as part of Beta otherwise will be part of the JS IDE rewrite.

In new GUI, only system cursor is displayed.


[FIX] Slack webhook format check

In raising this pull request, I confirm the following (please check boxes):

[x] I have read and understood the contributing guidelines?
[x] I have checked that another pull request for this purpose does not exist.
[x] I have considered, and confirmed that this submission will be valuable to others.
[ ] Do the TravisCI tests pass?
[ ] Does the StyleCI test pass?

Description of change
We are currently migrating from Slack to Rocket.chat in order to host our data. Rocket.chat webhooks are 100% compatible with Slach webhooks but cannot be used on Deployer as the request is checking the webhook URL format that must match Slack format.
Removing this check and replacing it with a simple URL check should allow anyone to use webhooks for Rocket chat too.

Oops why are there 4 files changed in my PR? I just changed one file only, sorry, I probably missed something.

Hmm, weird not sure what happened there. Try a completely new branch, or I can just make the change myself since it is simple. Never heard of rocket.chat, will have to look myself, we use slack at work but only the free version as the enterprise license is ridiculous and we have 700+ users 😂

The IT team decided to ban Slack from work. That's why I have installed my own instance of Rocket.chat which is a perfect clone.
I redid the branch new pull request, working now...

Merged

Thanks


Allow seed JSON to have "color" :null

https://github.com/TehNut/ResourcefulCrops/src/main/java/tehnut/resourceful/crops/core/json/Serializers.java#L50
I am generating my seed JSONs programmatically and some I might specify a color and some not. It would be helpful to be able to have the color node present but set to null for the seeds that I do not want to specify a color otherwise I will have to manually edit the final seed jsons to take that out.
This is minor and not necessary but a simple suggestion nonetheless.
Thank you.

To add, this is the top part of the error in the log if I do have a json with "color": null":
java.lang.UnsupportedOperationException: JsonNull
	at com.google.gson.JsonElement.getAsString(JsonElement.java:191)
	at tehnut.resourceful.crops.core.json.Serializers$1.deserialize(Serializers.java:51)
	at tehnut.resourceful.crops.core.json.Serializers$1.deserialize(Serializers.java:40)


Missing Logo

Version: 2.0.0
Platform: Win 8 - Node 7.7.4

npm start

Compiled with warnings.
Warning in ./src/logo.js
C:\Users\MOCR\my-app\src\logo.js
1:8  warning  'inferno' is defined but never used  no-unused-vars
✖ 1 problem (0 errors, 1 warning)
@ ./src/App.js 11:0-26
@ ./src/index.js
@ multi ./~/inferno-dev-utils/webpackHotDevClient.js ./~/inferno-scripts/config/polyfills.js ./~/inferno-dev-utils/crashOverlay.js ./src/index.js
You may use special comments to disable some warnings.
Use // eslint-disable-next-line to ignore the next line.
Use /* eslint-disable */ to ignore all warnings in a file.

http://localhost:3000/

" Welcome to Inferno 1.5.3
To get started, edit src/App.js and save to reload. "
Missing SVG Logo.
Are class values correct?
Outer HTML

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" href="/favicon.ico">

    <title>Inferno App</title>

<svg class="[object Object]"><g class="[object Object]"><path class="[object Object]"></path><path class="[object Object]"></path></g></svg>
Welcome to Inferno 1.5.3

To get started, edit src/App.js and save to reloading.

\```

babel plugin seems to be old version. I will update this repository today.

New versions has been released.

Fixed now with the new version. :1st_place_medal:
Thanks!


Added test-and-lint config

:tada: This PR is included in version 1.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fixing link to Android build guide.

While browsing the repository, I noticed that the link to how to build for Android has changed. It's a very simple fix.
Test Plan
Verifying that the URL is correct.
Related PRs
None.
Release Notes

[DOCS] [BUGFIX] [ReactAndroid/README.md] - Incorrect URL

@facebook-github-bot shipit


req: allow archive to send to directory vs drives

Handles https://github.com/ericaltendorf/plotman/issues/321
The archiver currently requires separate drives to be mounted for archiving. For instance:

/mnt (a folder on the root drive)

/mnt/drive1 (a physical drive/mount in df)

However, if you have a RAID or ZRAID where you are storing elements, there is no "mounted drive" to use. For instance:

/storage (a RAID array with lots of items on it

/storage/random (some random files)
/storage/plots (where you want your plots to go)
/storage/morerandom (some random files)

This PR adds a new configuration option of rsyncd_type which defaults to drives if it does not exist in the configuration (the original method).
If it is set to directory in the configuration YAML, then:

df checks free space on the destination directory without requiring it to be a separate mounted disk
The same path replacements happen, which means the share name (ex: chia) would be the rsync destination, which in turn is the single directory destination

I've run this across 3 plots in testing, and all functions smoothly.

Archiving is being significantly reworked in terms of the identification of target directories and the transfer commands.  This will allow users to enter their own scripts for those activities as well as set us up to generically provide multiple presets.  There is already a local and remote rsync option in target_definitions.yaml in https://github.com/ericaltendorf/plotman/pull/627, though both use the existing 'find mounted drives in the specified directory' logic.  The interest here should be able to be implemented as another preset.  After the custom archival PR is merged, let's add a preset there.

I believe you could implement this now by way of a custom archive target definition (released in v0.4).  The transfer script wouldn't need to change.  The disk space script could loop over the configured directories and check and report the space for each.
I do appreciate the effort to contribute this to the project and apologize for my very slow handling of yours and other contributions.

I think that adding this now would take a sufficiently different form that it probably ought to be submitted as a new PR.


Option to add maximums and minimums in the next few days

It is possible to add an option to activate the maximum and minimum temperatures in the following days?
Thanks

I was about to leave the same request.

This is already implemented. Hover your cursor over each day.

That's good to know, thank you. It would be nice to be able to customise this, like to show the maximum temperature with rainfall as a hover. And maybe combine this with Tokei so it can show weather from other places as well.

The percentage is the percent rainfall for that day. There is some information about rainfall in the free weather feed - but I honestly found it not that accurate.
Displaying weather from multiple locations is out of scope.
I will keep this app separate from Tokei.
Thanks for using the app. As this is the first public release I will plan future upgrades based on user feedback, but the real purpose of the plugin is just a quick, simple weather display.
Please note: all of the information displayed has specific CSS classes - you can use a CSS snippet to change just about anything you want - someone on the Discord has even posted some screenshots of changing the icons.


Connecting a subdomain as domain to now

When you want to connect a subdomain, whose nameserver records point to zeit.worlds nameservers the now-cli ignores the subdomain part.
Example:
I want to connect now.mydomain.com to now.
With this I want to have my now deployments accessible as subdomains of the subdomain.

helloworld.now.mydomain.com
test.now.mydomain.com

mydomain.com´s DNS is configured externally, so that now.mydomain.com points to the zeit.world DNS through NS-Records on the "now." subdomain.
When aliasing, the now-cli wants to read mydomain.com's DNS settings and not now.mydomain.com's ones.
I think the problem is in: src/providers/sh/commands/alias/setup-domain.js, where you parse the domain given to the function.
The parser cuts off all subdomains of the standard domain (mydomain.com), and not the subdomains of the configured now domain, such as now.mydomain.com.

I have also run into this.  The only way I was able to work around it was to instead create a _now TXT entry in the mydomain.com zone, and then a separate *.now.mydomain.com CNAME record pointing to alias.zeit.co, which works, but is less than optimal, given Now cannot manage the domain directly, nor does it take advantage of Zeit's DNS infrastructure.

From Zeit support (which is the same as what @jchappell82 did): "We don't support adding subdomains with now domains, if you want to point your main nameservers somewhere else and use only a certain subdomain add it as external with CNAME records"

I guess it's good to see that clarified, however, it would be nice if it were documented so that people don't waste many hours trying to get it going in the future.

The thing is, that it is technically possible to use a subdomain, because you can have it point to the zeit-world DNS.
It doesn't work, because the now cli always tries to contact the DNS of the main domain and not the specified subdomain.
You can change this, and it will work! ☺

+1

I've not had any issues since setting it up with a *.now.mydomain.com style CNAME pointing to alias.zeit.co on my Route53 managed domain.  I'm on a paid plan with a scaling setup that doesn't allow my app to sleep.
Do you have any details about what is only working intermittently?  Are you getting NXDOMAIN responses from your DNS provider or something else?  Is it possible you're running into timeouts waiting for the app to spin up, rather than actual DNS issues?

It's better if we can use subdomain with now as sometimes we only have access to a ns-delegated subdomain.

Adding subdomains to the dashboard is now possible. Simple click on a project, pick "Domains" in the menu item and then enter your domain.
Even even works with subdomains – in those cases you can use a CNAME:

Adding subdomains to the dashboard is now possible. Simple click on a project, pick "Domains" in the menu item and then enter your domain.
Even even works with subdomains – in those cases you can use a CNAME:

I'm aware of that. Domain name resolution uses a delegated-based model in its nature. We can't have example.com hosted on one nameserver, and dev.example.com hosted on zeit's nameserver right now. Though it is possible to set up NS record for subdomains in many DNS providers. Something like that would be extra useful for academia, as organizations within can usually get a subdomain's full control but never the root domain. It should be useful if those can use zeit's NS service, instead of setting up CNAME one by one.

Thank you for creating this issue!
Please note that – in order for us to be able to handle each feature request with care – we have to consume all of them through a unified pipeline that makes it easier for us to prioritize, track and progress on the features our user base is interested in.
In turn, the Issues tab on this repository is best only be used for reporting bugs, which we can immediately act on.
For well-explained feature requests (like the one you just posted), please contact us at<EMAIL_ADDRESS>so that we can consider adding it to our roadmap.


InventoryCollectorModule - nested stack issue capitalization change breaks CFN OptimizationDataCollectionStack stack update

I have an older version of the OptimizationDataCollectionStack template installed that does not have support for the anomaly data collection module.  I want to add that nested stack so that I can install the Cost Anomaly dashboard.  However, in the new template LambdaRole - logical ID of the "AWS::IAM::Role" resource has changed the name from a capital I to a lower case i and the stack update fails and rolls back.  Since the nested stacks refer to URL templates that AWS controls I can't fix the problem.  Is there a work-around you can suggest?
I'm nervous about uninstalling OptimizationDataCollectionStack and all the nested stacks because I don't want to lose all my Athena tables that have been gathering data for over a year.  Please help.  Thanks!
Brian

Hi Brian,
Thank you for bringing this to our attention. We are looking into it now. In the meantime, please let us know if you are an AWS Enterprise Support customer and have a TAM and account team that we can engage as well to further assist you.

Yes, we are an Enterprise customer.  I also opened a ticket with the CloudFormation team yesterday on this issue and they suggested posting here.  Here is the info:
AWS ticket #=<PHONE_NUMBER>1
Our AWS TAM= Erwin, John<EMAIL_ADDRESS>

Great, thank you. I will reach out to your TAM and we can troubleshoot more directly with you.

Please comment or reopen if still an issue


refactor: Add CreateGraphOptions, BuilderOptions

Rewrite "create_graph", "create_code_graph" and "create_type_graph"
to have fewer arguments. "CreateGraphOptions" struct was added, that
has a "Default" trait implementation.

I find it quite hard and confusing to understand what's going on
because of create_graph having 8 arguments, while most of them are None.
Ideally we could have shorthand method for CreateGraphOptions like:
CreateGraphOptions {
   roots: vec![spec.to_string()],
   loader: &mut some_loader,
   ..Default::default()
}

however, because of roots and loader being required it's not possible to derive Default trait. Maybe we could use CreateGraphOptions::default(roots, loader) method?

however, because of roots and loader being required it's not possible to derive Default trait. Maybe we could use CreateGraphOptions::default(roots, loader) method?

I think normally those would be excluded from the options struct and kept as positional args.

@nayeemrmn thanks for suggestion, totally obvious but I missed it. I think this is a lot cleaner.

You need to rebuild the WASM and ensure whatever impacts on the JS API are handled properly.

Rebuilt WASM, it seems JS APIs are not impacted by this change (because it uses Builder directly)

Sure, I'll do that.

@kitsonk do you have any objections to moving arguments of Builder::build() into Builder::new()?
So instead of:
let builder = Builder::new(
  roots,
  loader,
  source_parser,
  BuilderOptions {
    is_dynamic_root: options.is_dynamic,
    maybe_resolver: options.maybe_resolver,
    maybe_locker: options.maybe_locker,
    maybe_reporter: options.maybe_reporter,
  }
);
builder.build(build_kind, options.maybe_imports).await

we would do:
let builder = Builder::new(
  build_kind,
  loader,
  source_parser,
  BuilderOptions {
    is_dynamic_root: options.is_dynamic,
    maybe_resolver: options.maybe_resolver,
    maybe_locker: options.maybe_locker,
    maybe_reporter: options.maybe_reporter,
    maybe_imports: options.maybe_imports
  }
);
builder.build().await

@kitsonk do you have any objections to moving arguments of Builder::build() into Builder::new()?

There was some reason at one point, no specific objection, but it maybe worth taking a look at how it is consumed in CLI, as IIRC there were some challenges in the flow there that lead to that separation of options, but it maybe just me being crazy.

I think we can close this one because it's already done in a separate PR, but please re-open if that's not the case.


Maintain sticky flag on LB method validation failure.

We previously did not copy the sticky flag if the load-balancer method validation failed, causing enabled stickiness to be dropped in case of a validation error (which, technically, for us is the same as a load-balancer configuration without an explicitly set method). This change fixes that.
A few refactorings and improvements along the way:

Move the frontend and backend configuration steps into separate   methods/functions for better testability.
Include the invalid method name in the error value and avoid log   duplication.
Add tests for the backend configuration part.

Fixes #1568.

@containous/traefik FYI.
/cc @ kleinsasserm.

Integration tests keep failing. Not exactly sure why, will have to investigate.


Add current version section to settings page

Issue
Add dashboard button to settings #849
Changes
Add the Current Version section to the Settings page with two buttons for shutdown (stays on the current page) and patching in the dashboard.

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

Hey @julngomz thanks for working on this! I think we should move the info as a subsection of "System settings", right below "File systems".
Design wise, it would be neat to use the same styling that we use for file systems, so a box like this:
Version      Elixir
*v0.4.1*      *v1.13.0*

And the dashboard button would go in that box on the very end. You can reuse the styling from FileSystemsComponent.
As for the shutdown button, @josevalim will add it separately, so I'd ignore it for now.

Quick amendment: let's have it above file systems. It should be the first subsection. :)

Did a couple adjustments, thanks @julngomz!


Pyinstaller failing on numcodecs blosc import

Minimal, reproducible code sample, a copy-pastable example if possible
from aicsimageio import AICSImage

then
pyinstaller -F -w main.py

Problem description
I'm using aicsimageio for loading CZI files and I'm trying to package it up into a stand-alone app for one of our EngD students to use.
The only reference I could find to my exact problem is this:
https://github.com/napari/napari/issues/665#issuecomment-551965687
And I couldn't find the ticket. So I thought I would raise it.
The issue is that the app works when run as a script, the app functions completely as expected. When I package it up I get the following error:
Traceback (most recent call last):
File "main.py", line 3, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "control_scheme_python.py", line 11, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "chunking_logic.py", line 6, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "aicsimageio_init_.py", line 6, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "aicsimageio\aics_image.py", line 10, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "xarray_init_.py", line 1, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "xarray\tutorial.py", line 13, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "xarray\backends_init_.py", line 17, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "xarray\backends\zarr.py", line 22, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "zarr_init_.py", line 2, in
File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
File "zarr\codecs.py", line 3, in
ImportError: cannot import name 'Blosc' from 'numcodecs' (C:\Users\iris\AppData\Local\Temp_MEI63202\numcodecs_init_.pyc)
I guess the expected behavior is: it runs.
I had a c++ installer (MS VS build tools 2019) and the build from pip for aicsimageio ran without error - including seeing the numcodecs build.
The most desirable and quickest solution I'm hoping for is that someone points out a stupid mistake I've made and I fix it easily :)
Version and installation information
Please provide the following:

Value of numcodecs.__version__ = 0.9.1
Python 3.9.7
Win 10 19042.1348
using pip into a clean VM spun up exclusively for this
bug_requirements.txt

I've had it on other versions of python and conda too.
Thanks

Does it work for you without PyInstaller?

Yes - although I don't know if blosc is being called directly but it's the exact same code so I think the import should be firing.

There's also a fair amount of indirection in the traceback above. Can we reproduce this with just Zarr or maybe better just Numcodecs?

I'll have a go tomorrow - I'm not actually familiar with numcodecs but I'll cobble something together.

Sounds good :)
For clarity am suggesting something like import numcodecs.blosc.
Anyways just trying to cull this reproducer down into something where it is easier to pinpoint where things are going wrong

python from numcodecs import blosc
Runs no errors via pyinstaller I get
Traceback (most recent call last):
File "just_blosc.py", line 1, in
File "numcodecs/blosc.pyx", line 1, in init numcodecs.blosc
ModuleNotFoundError: No module named 'numcodecs.compat_ext'

in conda and another clean install of vanilla python 3.9.7

So it sounds like Blosc did not get packaged in this case, but the data being loaded requires it. Does that sound about right?

Well yes and no - in the minimal example it just imports it, that is the whole program. Maybe since it isn't used in the one I just run that isn't a problem, but packaging requires them all? I'm not an expert on either I'm afraid.
But broadly yes, I guess it that is the case, I think they get used in loading CZIs

cc: @JacksonMaxfield especially re: https://github.com/napari/napari/issues/665#issuecomment-573760229

I don't believe we use numcodecs for CZI loading..... We don't even list numcodecs as a dependency for aicsimageio: https://github.com/AllenCellModeling/aicsimageio/blob/main/setup.py#L88
Which means it's coming from zarr I would assume? https://github.com/AllenCellModeling/aicsimageio/blob/main/setup.py#L99
Do I need to update that zarr version pin?

Do I need to update that zarr version pin?

Hmmm.... possibly. Or at least to add a matching numcodecs pin. Do you know why the pin is in place? Is it for matching Python versions?

Why the zarr pin is there? Because we need it for chunked tifffile loading.

Ah, but >= should be fine unsure what Zarr version was used here. Perhaps something specifically Windows-esque?

from numcodecs import blosc
Runs no errors but via pyinstaller I get
Traceback (most recent call last): File "just_blosc.py", line 1, in File "numcodecs/blosc.pyx", line 1, in init numcodecs.blosc ModuleNotFoundError: No module named 'numcodecs.compat_ext'

From this earlier comment it does seem more like a packaging issue on windows or something similar.

Ah, but >= should be fine unsure what Zarr version was used here. Perhaps something specifically Windows-esque?

@joshmoore 2.10.3 if that helps.

Extremely late to the party here, but I believe you can fix the PyInstaller builds by adding the list generated by PyInstaller.utils.hooks.collect_submodules("numcodecs") to the hidden imports in the pyinstaller .spec file. This should force it to package those codecs (including blosc) even if they're not obviously called within your program.
I've not tested the specific example above, but having --hidden-import numcodecs.blosc in your command line call may also be sufficient in that case.

Thanks for chiming in David! 😄
Is there anything special we need to do with PyInstaller to make sure the shared objects in Numcodecs are handled correctly?

I'm not familiar with how numcodecs works, but PyInstaller should pack the entire thing if using the hook method above. Looking at the package I don't see anything within numcodecs that would obviously cause problems.
Missing imports are a common theme with PyInstaller, and might be expected in situations where your program could need an ambiguous codec to read a file but it's never explicitly imported within your code. Good luck!

Thanks again David! 🙏

In fact, it looks like this works for the hook file (numcodecs-hook.py):
from PyInstaller.utils.hooks import collect_submodules

hiddenimports = collect_submodules("numcodecs")

If you put that file in your current directory, and add --additional-hooks-dir . to the pyinstaller command, numcodecs appears to be packaged correctly. At least for my local example.

In my testing Pyinstaller typically missed .compat_ext. As noted in the docs, the analysis process will pick up imports of compiled .pyx files, but won't follow imports which are in the .pyx files themselves. .compat_ext turns out to be a good example of this scenario and so needs to be included as a hidden import.
I believe Pyinstaller provides some methods for declaring these imports for them within your package, but I've not tried it myself.

Interesting. Good to know that compat_ext is the module with issues. No other modules had issues?
FWIW compat_ext is the only one that supplies a .pxd file. Not sure if that is relevant. Maybe worth digging into further.
PyInstaller includes a number of hooks itself. So another option may be for someone interested in this to add the hook upstream.

I can't confirm whether other modules exhibit the same issue, it's one of those things where it was faster to force bundle the whole package than to repeatedly build my app and tweak until every hidden import is discovered. It's not a large package so I wasn't overly concerned about packaging extra content.

Interesting. Good to know that compat_ext is the module with issues. No other modules had issues?
FWIW compat_ext is the only one that supplies a .pxd file. Not sure if that is relevant. Maybe worth digging into further.
PyInstaller includes a number of hooks itself. So another option may be for someone interested in this to add the hook upstream.

I tried having a single hidden import of numcodecs.compat_ext, and it seemed to work. I guess that is the only module that pyinstaller misses, and it is missed because it is only imported in pyx files.
I added the hook as a PR, which should fix this issue: pyinstaller/pyinstaller-hooks-contrib#420
That pyinstaller-hooks-contrib package is automatically installed as well when pyinstaller is installed.

Thanks @psavery! 😄