rosfmt: 6.0.0-0 in 'lunar/distribution.yaml' [bloom]

Increasing version of package(s) in repository rosfmt to 6.0.0-0:

upstream repository: https://github.com/xqms/rosfmt.git
release repository: https://github.com/xqms/rosfmt-release.git
distro file: lunar/distribution.yaml
bloom version: 0.6.8
previous version for package: null

rosfmt
* Major release bump to decouple rosfmt and fmt versions
* rosfmt.h: produce nicer error message if C++11 is not available
* cmake: add transitive rosconsole / roscpp deps
* README: add CMake example
* Contributors: Max Schwarz

Holding for sync


Build proto files on github actions

Can you post what is the intended behavior? If there are changes to the proto files, this will automatically create a PR?

It will auto create a PR. That doesn't work off existing PRs, but thats a limitation of git


Have a big clock when you click the date in the bottom right

Back in Windows 7 and before you got a big analog clock when you click in the bottom right of the taskbar. It is possible to make that feature return? To have it replace the digital clock you get?
Kind of like this image.

I think it would be possible to do something like that in the DeskClock toolbar, i.e. popup a window with a bigger clock when you click on the analog clock in the taskbar.
You would have to clone the repo and try it on your own, because (a) I switched to Linux now and (b) Windows 11 no longer supports toolbars on the taskbar.
Or you move your taskbar to the left (or right) edge of the screen. With todays 16:9 screens that makes more sense, anyway.

No development of new functionality planned.


Optimize MMIO access using 128-byte subpages

Many MMIO registers are just "data" registers, i.e. whenever you read the register, you obtain the last value written to the same register or a default value initialized by the device. However, there's some registers that trigger a more complex action whenever they are accessed. The reason MMIO BARs in emulated devices are never backed by actual memory is to trigger #GP faults, i.e. VM-exiting back to the hypervisor+emulator, and thus synchronously react to those "action" registers.
However, we could take advantage of 128-byte sub-pages for fine-grained "action" vs "data" registers dispatching. So basically the idea would be: in every device we identify such "action" registers that require immediate attention and we remove R/W permissions from the 128-byte range they are in, so we get react synchronously in Orbital. For everything else, we have regular R/W permissions, and have the underlying 4KB page mapped to some structure inside our emulator.
Basically, instead of having like 5k-50k cycles wasted doing random hypervisor instruction emulation, we do a regular memory accesses: so around 100 cycles and down to 6 cycles if in L1.

Reading the Intel manual on EPT-based sub-page permissions, it seems only to apply to writes (no mention of reads), and only writes done by simple instructions such as AND, MOV, OR, TEST, XCHG, INC, XOR, etc.

Can you quote from the manual why is that the case? Which chapter/section are you referring to?

In Intel® Architecture
Instruction Set Extensions and Future Features
Programming Reference
CHAPTER 4 EPT-BASED SUB-PAGE PERMISSIONS
mentions in 4.5 SUB-PAGE PERMISSION TABLE :

The sub-page permission table is referenced via a 64-bit control field called Sub-Page Permission Table Pointer (SPPTP) which contains a 4K-aligned physical address. The SPPT allows specification of write-permissions for 32 128 byte sub-page regions for 4KB guest-physical memory pages accessed via the EPT.

and :

When SPPT is in use, write accesses to any guest-physical addresses produced via a mapping for a 4KB page in the EPT can be controlled at a 128 byte granularity sub-page region within the 4KB guest-physical page. Note that reads and instruction fetches are not affected by the SPPT.

and in <IP_ADDRESS> Sub-Page Permissions and EPT Violations :

Memory writes that consult but are not permitted by the SPPT cause EPT violations normally.
For memory writes that access memory across sub-page regions on the same 4K page, the processor will check writeability of both sub-pages and will generate an EPT violation if either of the accessed sub-page regions is not writeable.
For memory writes that access memory across sub-page regions that fall on adjoining guest-physical 4K pages, the processor will generate an EPT violation if either one of the 4K guest-physical pages has the sub-page permission control bit set in the leaf EPT paging-structure for the affected pages.
Sub-page write permissions are intended principally for simple instructions (such as AND, MOV, OR, TEST, XCHG, INC, XOR, etc.). Execution of an instruction that normally performs multiple memory-writes may or may not ignore the sub-page permissions and cause EPT violations unconditionally if an accessed page is mapped with an EPT PTE in which the W bit is 0.
Accesses to any guest-physical address that translates to an address on the APIC-access page that also is specified by the VMM to have sub-page permissions associated with it may operate as if the virtualize APIC accesses VMexecution control is 0.
Updates to accessed and dirty flags in guest paging structures ignore the setting of the “sub-page write permission” VM-execution control. Such an update always causes an EPT violation if it would write to a guest-physical address to which EPT does not allow writes.


Core: Add touch API

Summary :memo:
Write an overview about it.
Details
Describe more what you did on changes.

(...)
(...)

Bugfixes :bug: (delete if dind't have any)

Checks

[ ] Closed #798
[ ] Tested Changes
[ ] Stakeholder Approval

LGTM


Fonts not working in gui_gtk2

Before I submit a pull request, just want to make sure I'm not missing anything here.
I'm running Gentoo with KDE Plasma, and gVim installed. I also have IBM Plex, Hack, and Source Code Pro installed. When opening gVim, the fonts were spaced out and generally looked terrible.
Looking in extended.vim I found the following gfn format under gui_gtk2:
elseif has("gui_gtk2")
    set gfn=IBM\ Plex\ Mono:h14,:Hack\ 14,Source\ Code\ Pro\ 12,Bitstream\ Vera\ Sans\ Mono\ 11

I changed that line to the following, and everything worked:
set gfn=IBM\ Plex\ Mono\ Semi-Bold\ 10,Hack\ Bold\ 10,Source\ Code\ Pro\ Semi-Bold\ 10

Reopened gVim and the font looked great. Before I submit a pull request, I just want to make sure that I am not wrong in my assumption, which is that gui_gtk2 does not support the format <font name>:h<font size>. Since IBM Plex Mono is on my system, it applied the first font in set gfn=, which has the incorrect format.

I'm unable to get Plex (or Hack) to render on debian with either the existing way or your suggestion.

gui_gtk2 seems to have the following format:
if has("gui_gtk2") || has("gui_gtk3")
    set guifont=Courier\ New\ 11

So, it mush be a typo in the extended.vim
Ref:

http://vim.wikia.com/wiki/Setting_the_font_in_the_GUI
https://gist.github.com/Zardoz89/9546383#file-vimrc-L111


Expose "Bindless Resources" support in DeviceDesc

There are 3 tiers of bindless resources:
1st tier: variable array with descriptors using indexing
2nd tier: Vulkan's BufferRef or DirectX's Dynamic Resources
The first and second levels are available on devices that support VK_EXT_descriptor_indexing, which covers 58.94% of all devices. The second tier is highly experimental and not available on most devices.

Thanks. bindlessTier has been added to DeviceDesc.


Global attack adding wrong values

when rolling an attack, global attack adds the wrong value for @abilities.str.mod or @abilities.dex.mod and @attributes.baseAttackBonus.value
the values added are very high and seem to be higher the more options added to the module, sometimes as high as 30 for BAB, as an example.
running V11 Foundry
starfinder version 0.25.2

Thanks for the report. Fixed in 1.0.5

Using the latest version yet I am still having trouble with this.

Using the latest version yet I am still having trouble with this.

Which version does it say you're using?

Using the latest version yet I am still having trouble with this.

I can no longer reproduce it. Which version does it say you're using?

I am using Foundry V11 Build 315, Starfinder 0.25.2, and the module version is 1.0.5. I should also add the caveat that these are ongoing games that had previously used the older edition (as back as V9).

Try to remove all the modifiers and add them again :)
Den tors 14 dec. 2023 16:05Hansol @.***> skrev:

Using the latest version yet I am still having trouble with this.
I can no longer reproduce it. Which version does it say you're using?
I am using Foundry V11 Build 315, Starfinder 0.25.2, and the module
version is 1.0.5. I should also add the caveat that these are ongoing games
that had previously used the older edition (as back as V9).
—
Reply to this email directly, view it on GitHub
https://github.com/Bagenholm/sfrpg-globalattack/issues/5#issuecomment-1856017838,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKHHPFOF37LZZXHT52IXV43YJMISRAVCNFSM6AAAAAA6LLWBHKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJWGAYTOOBTHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Try to remove all the modifiers and add them again :) Den tors 14 dec. 2023 16:05Hansol @.> skrev:
…
Using the latest version yet I am still having trouble with this. I can no longer reproduce it. Which version does it say you're using? I am using Foundry V11 Build 315, Starfinder 0.25.2, and the module version is 1.0.5. I should also add the caveat that these are ongoing games that had previously used the older edition (as back as V9). — Reply to this email directly, view it on GitHub <#5 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKHHPFOF37LZZXHT52IXV43YJMISRAVCNFSM6AAAAAA6LLWBHKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJWGAYTOOBTHA . You are receiving this because you modified the open/close state.Message ID: @.>

That did the trick. Must have been some sort of leftover code from the legacy version. Churs!


Aether Pad - Aditya PV

AETHER PAD
A macropad that looks good

It looks like your USB port won't be accessible and the controller is clipping into the plate. Also, the controller is currently smd mounted, and if you have it that way you will have to solder everything yourself.

Could you also add the pcb source files and a STEP file for the assembly?

What does pcb source files mean?
the .sch and .pcb files are alredy in the zip file

Hi, I made the necessary changes in the cad.
Now it might seem like some pins are intersecting with the case, but those pins will be cut or bent irl.


Does mmdet support Horovod to train？

Currently not supported.

Currently not supported.

So, except slurm, what can i use to train distributed ? Thanks

you can use dist_train.sh. It use pytorch as a launcher.


Enable option to switch on debug for runc

Similar to what was done in v1 shim https://github.com/containerd/containerd/pull/2314
Signed-off-by: Davanum Srinivas<EMAIL_ADDRESS>

@mikebrow let me chew on this a bit more and re-open later. thanks!


[TextInput] Changing keyboardType dynamically does not change keyboard layout.

Description
When changing keyboardType prop for TextInput from phone-pad to default dynamically does not change keyboard layout on iOS.
Reproduction Steps and Sample Code
<TextInput
  keyboardType={phone ? 'phone-pad' : 'default'}
  ...
/>

Solution
Changing keyboardType should dynamically change keyboard layout.
Haven't tested on Android.
Additional Information

React Native version: 0.43.4
Platform: iOS
Development Operating System: MacOS
Dev tools: Xcode

For people experiencing the same problem, the workaround is to use key prop to force rerendering of TextInput.
<TextInput
  key={phone ? 'input-phone' : 'input-default'}
  keyboardType={phone ? 'phone-pad' : 'default'}
/>

This works as expected.

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with Canny! Check out its new home: https://react-native.canny.io/feature-requests/p/textinput-changing-keyboardtype-dynamically-does-not-change-keyboard-layout


WIP Unpin selinux-policy

/retest

v

ci/prow/e2e-aws link /test e2e-aws

@vrutkovs exactly the two test cases failed as per BZ.

/retest
Rebuilding so that it could be mirrored to quay

/retest

Closed in favor of https://github.com/openshift/okd-machine-os/pull/183


[FEATURE] Data Streams support for cross cluster replication

Is your feature request related to a problem? Please describe.
Currently cross cluster replication is supported for indices only. It is not supported for data streams. Data streams was released in OpenSearch 1.0 (Reference: https://opensearch.org/docs/latest/opensearch/data-streams/).
So we need to support data streams in cross cluster replication.
Describe the solution you'd like
We should be able to trigger the start replication API with a data stream similar to an index.
Describe alternatives you've considered
One workaround is to set auto follow on the backing index of the data stream. But it would be create a replication task for each of the index. But as the number of backing indices grows due to rollover, the number of replication tasks will increase and might affect cluster performance.
Additional context
NA

Is there any plan for this feature?

@tmanninger As of now, it may not be prioritized. We would be happy to take contributions from community on this and please feel free to start the discussion on the proposal.

I can try it...
My idea (datastream name is datastream-logs):
Start replication:
PUT 'https://localhost:9200/_plugins/_replication/datastream-logs/_start?pretty' -d '
{
   "leader_alias": "my-connection-alias",
   "leader_index": "datastream-logs",
   "use_roles":{
      "leader_cluster_role": "all_access",
      "follower_cluster_role": "all_access"
   }
}'

When leader_index is a datastream, create datastream config (.replication-metadata-store):
id: datastream-logs
{
  "connection_name": "pay-prod-search-a",
  "metadata_type": "DATASTREAM",
 ....
}

Internally, create an Task, which monitors for new backend indices.
When new leader backend index is created, create replication task:
.ds-datastream-logs.00000XX -> .ds-datastream-logs.00000XX
GET _plugins/_replication/follower-01/_status?pretty returns the status of all backend indices
Feedback?

Can you provide a more detailed proposal ? The proposal should address the following:

Data streams has multiple backing indices. But only one of them is a write index while others are read index. So we may need only active replication on only one index. How do we address this while starting replication for a pre-existing data stream which already has some rolled-over read indices?
How do we create data-stream on follower with a pre-defined configuration (already existing read and write indices)? Is there a pre-existing API or do we need a new API ?
How do we monitor when a data-stream is rolled over ? Should there be an auto-follow task ?
Data stream indices are created using index templates. Are we going to replicate these templates as well ?

Data streams has multiple backing indices. But only one of them is a write index while others are read index. So we may need only active replication on only one index. How do we address this while starting replication for a pre-existing data stream which already has some rolled-over read indices?

That's not correct. You can update datastreams with "_update_by_query" API, which can update ALL backend indices (i just tested it in my test environment). Therefore, we need to replicate all existing backend indices.

How do we create data-stream on follower with a pre-defined configuration (already existing read and write indices)? Is there a pre-existing API or do we need a new API ?
How do we monitor when a data-stream is rolled over ? Should there be an auto-follow task ?
We should create an auto-follow task, which monitors the backend indices of the leader datastream.

Initial datastream sync (leader have 3 backend indices):
1.) Copy settings and mappings from the leaders first backend index and create the datastream
2.)  Copy settings and mappings from the leaders second index to the follower datastream and trigger an rollover
3.) Copy settings and mappings from the leaders third index to the follower datastream and trigger an rollover.
I don't know if there is a better way to create backend indices with the same mapping as the leader backend indices.
We need an autofollower-datastream task, which creates the backend indices in the initial phase and monitor for newly created backend indices.

What should happen, wenn the an backend index is deleted from the leader? Should the follower also delete the index? (i think yes...)?

Data stream indices are created using index templates. Are we going to replicate these templates as well ?

Leader and follower needs a consistency state with the same mapping. Therefore we need to copy the mapping.


[QUESTION] [BUG?] Can this thing handle dates in an xlsx file?

Please prefix your issue with one of the following: [BUG] [PROPOSAL] [QUESTION].
Package version, Laravel version
"maatwebsite/excel": "^2.1",
"laravel/framework": "5.3.*",
Expected behaviour
To be able to handle dates.
Actual behaviour
To break and complain that everything is just a number.
So I have a date field in my file that is formatted as a date, it's in there as "4/11/2014", and the cells formatting is "Date".
When this is trying to import it into the database it complains that it's some number like "49899" and not a date format.

We use PHPExcel helpers to check if the cell is a date. According to PHPExcel it's not formatted as a date.
You can try and force the column as a date in the config: https://github.com/Maatwebsite/Laravel-Excel/blob/2.1/src/config/excel.php#L514


Support --version flag

LGTM

On Sun, Dec 13, 2015 at 01:27:09PM -0800, pbrunet wrote:

LGTM

That was a tough one!

I'm green !

Changes Unknown when pulling 6687d9d06f3eb4781c5a93e2faf4dddfd88b75c3 on feature/version-flag into ** on master**.


Instance: Push down migration logic into each storage driver (receive)

Provides the receive side logic push down to the earlier changes from https://github.com/lxc/lxd/pull/11414
This also fixes a bug where the operationlock.ActionCreate lock created in createFromMigration is now held for the duration of the migration, whereas previously it was only held until the migration operation itself had started. This required also passing the operationLock.InstanceOperation down through migrationSink.Do() into instance.MigrateReceive() because the qemu driver makes use of inst.Start() to perform a stateful start (which in turn took its own lock). The qemu driver's MigrateReceive() function has now been updated to use an internal start() functio (which doesn't take a lock) and to instead use the existing ActionCreate lock that was passed in.
This is precursor to the VM live migration work, as the existing migration subsystem was getting unwieldy as it had instance type specific logic outside of the instance driver.

jenkins: test this please

jenkins: test this please

@tomponline can you give this one a quick rebase when you have a minute?

@stgraber thanks, I've rebased now.

jenkins: test this please

Latest test run https://jenkins.linuxcontainers.org/job/lxd-github-pull-test/9061/

Testsuite passed


Typecheck fails when passing List[Button] to WaitForClient.wait_for_compnent()

Doing WaitForClient.wait_for_component(components=buttons, ...) with buttons being a list of interactions.Button, a mypy check on the file fails with an error:
error: Argument "components" to "wait_for_component" of "WaitForClient" has incompatible type "List[Button]"; expected "Union[Button, SelectMenu, List[Union[Button, SelectMenu]], None]"
note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
note: Consider using "Sequence" instead, which is covariant

I guess the typing for wait_for_component should be changed from
Union[Union[interactions.Button, interactions.SelectMenu], List[Union[interactions.Button, interactions.SelectMenu]],] = None
to
Union[Union[interactions.Button, interactions.SelectMenu], Sequence[Union[interactions.Button, interactions.SelectMenu]],] = None
Tested on Python 3.8.3, mypy 0.971

It's just slightly more complex than just changing the typehint, since then all Sequences need to be supported. I'll get on this as soon as I have the time though

Pro life hack: just don't use mypy :P

Said Mr. # sourcery: no-metrics

It's just slightly more complex than just changing the typehint, since then all Sequences need to be supported. I'll get on this as soon as I have the time though

Pro life hack: just don't use mypy :P

Said Mr. # sourcery: no-metrics

🤫
No one wants to have the function being underlined with a warning about code quality because it has 3 nested for loops and 25 variables lmao <:cri:876896573710303294>

This has been constantly review changed, numerous times in the past -- typing.List can only intake one value type, and not abused to be variably with typing.Union. The best solution would be to respect the typing schema provided in the module.


BUG: loong64 architecture fails TestQuad.test_complex

Describe your issue.
loong64 is a new Chinese CPU architecture, which debian includes in its suite of supported architectures.  It is related to MIPS64, but is failing the TestQuad.test_complex test from the integrate tests.
The failure only started recently, the test was passing before 14 June.  I'm not certain what changed. The gcc version is the same.
Build logs (building scipy 1.13.1) can be found at https://buildd.debian.org/status/logs.php?pkg=scipy&arch=loong64
e.g. https://buildd.debian.org/status/fetch.php?pkg=scipy&arch=loong64&ver=1.13.1-1exp7&stamp=1719404050&raw=0
Only this one test is failing on loong64, but the error looks serious enough to report rather than skip and ignore.
For comparison, the test is still passing on MIPS64 (mips64el), https://buildd.debian.org/status/fetch.php?pkg=scipy&arch=mips64el&ver=1.13.1-1exp6&stamp=1718428354&raw=0
Reproducing Code Example
# on a loong64 system
python3 -c "import scipy.integrate; scipy.integrate.test(extra_argv=['-k', 'quadpack and test_complex', '-v'])"

Error message
____________________________ TestQuad.test_complex _____________________________

E   AssertionError:
    Items are not equal:
     ACTUAL:<PHONE_NUMBER>3885032
     DESIRED: 32.986722862692815
All traceback entries are hidden. Pass `--full-trace` to see hidden and internal frames.

During handling of the above exception, another exception occurred:

self = <scipy.integrate.tests.test_quadpack.TestQuad object at 0x7fffe9cb2540>

    def test_complex(self):
        def tfunc(x):
            return np.exp(1j*x)

        assert np.allclose(
                    quad(tfunc, 0, np.pi/2, complex_func=True)[0],
                    1+1j)

        # We consider a divergent case in order to force quadpack
        # to return an error message.  The output is compared
        # against what is returned by explicit integration
        # of the parts.
        kwargs = {'a': 0, 'b': np.inf, 'full_output': True,
                  'weight': 'cos', 'wvar': 1}
        res_c = quad(tfunc, complex_func=True, **kwargs)
        res_r = quad(lambda x: np.real(np.exp(1j*x)),
                     complex_func=False,
                     **kwargs)
        res_i = quad(lambda x: np.imag(np.exp(1j*x)),
                     complex_func=False,
                     **kwargs)

>       np.testing.assert_equal(res_c[0], res_r[0] + 1j*res_i[0])
E       AssertionError:
E       Items are not equal:
E        ACTUAL:<PHONE_NUMBER>3885032+1.1655968375567166e-15j)
E        DESIRED: (32.986722862692815+1.1655968375567166e-15j)

kwargs     = {'a': 0, 'b': inf, 'full_output': True, 'weight': 'cos', ...}
res_c      = ((230.90706003885032+1.1655968375567166e-15j),<PHONE_NUMBER>840555+5.585367613532157e-15j), {'imag': ({'erlst': array([...ure invoked on this cycle.  It is assumed that the result on this interval is the best which can be obtained.', ...})})
res_i      = (1.1655968375567166e-15, 5.585367613532157e-15, {'erlst': array([4.82013969e-18, 3.89507855e-16, 4.53618857e-17, 1.498...<PHONE_NUMBER>, -1073741824,<PHONE_NUMBER>, -2147483648,<PHONE_NUMBER>],
      dtype=int32), 'lst': 6, 'neval': 150, ...})
res_r      = (32.986722862692815, 2.0517814695912247e-10, {'erlst': array([2.05135975e-11, 2.05139675e-11, 2.05132276e-11, 2.051267...<PHONE_NUMBER>,  -778100732,<PHONE_NUMBER>, -1583113503,<PHONE_NUMBER>],
      dtype=int32), 'lst': 7, 'neval': 525, ...})
self       = <scipy.integrate.tests.test_quadpack.TestQuad object at 0x7fffe9cb2540>
tfunc      = <function TestQuad.test_complex.<locals>.tfunc at 0x7fffdb430040>

scipy/integrate/tests/test_quadpack.py:530: AssertionError

SciPy/NumPy/Python version and system information
[this system info is taken from my amd64 system, to show indicative versions.  I have manually replaced the `x86_64` references to `loongarch64` to represent loong64]

$ python3 -c "import sys, scipy, numpy; print(scipy.__version__, numpy.__version__, sys.version_info); scipy.show_config()"
1.13.1 1.26.4 sys.version_info(major=3, minor=11, micro=9, releaselevel='final', serial=0)
Build Dependencies:
  blas:
    detection method: pkgconfig
    found: true
    include directory: /usr/include/loongarch64-linux-gnu
    lib directory: /usr/lib/loongarch64-linux-gnu/openblas-pthread
    name: blas
    openblas configuration: unknown
    pc file directory: /usr/lib/loongarch64-linux-gnu/pkgconfig
    version: 0.3.27+ds
  lapack:
    detection method: pkgconfig
    found: true
    include directory: /usr/include/loongarch64-linux-gnu
    lib directory: /usr/lib/loongarch64-linux-gnu/openblas-pthread
    name: lapack
    openblas configuration: unknown
    pc file directory: /usr/lib/loongarch64-linux-gnu/pkgconfig
    version: 0.3.27+ds
  pybind11:
    detection method: pkgconfig
    include directory: /include
    name: pybind11
    version: 2.12.0
Compilers:
  c:
    args: -g, -O2, -Werror=implicit-function-declaration, -ffile-prefix-map=/projects/python/build/scipy=.,
      -fstack-protector-strong, -fstack-clash-protection, -Wformat, -Werror=format-security,
      -fcf-protection, -Wdate-time, -D_FORTIFY_SOURCE=2
    commands: cc
    linker: ld.bfd
    linker args: -Wl,-z,relro, -g, -O2, -Werror=implicit-function-declaration, -ffile-prefix-map=/projects/python/build/scipy=.,
      -fstack-protector-strong, -fstack-clash-protection, -Wformat, -Werror=format-security,
      -fcf-protection, -Wdate-time, -D_FORTIFY_SOURCE=2
    name: gcc
    version: 13.2.0
  c++:
    args: -g, -O2, -ffile-prefix-map=/projects/python/build/scipy=., -fstack-protector-strong,
      -fstack-clash-protection, -Wformat, -Werror=format-security, -fcf-protection,
      -Wdate-time, -D_FORTIFY_SOURCE=2
    commands: c++
    linker: ld.bfd
    linker args: -Wl,-z,relro, -g, -O2, -ffile-prefix-map=/projects/python/build/scipy=.,
      -fstack-protector-strong, -fstack-clash-protection, -Wformat, -Werror=format-security,
      -fcf-protection, -Wdate-time, -D_FORTIFY_SOURCE=2
    name: gcc
    version: 13.2.0
  cython:
    commands: cython
    linker: cython
    name: cython
    version: 3.0.10
  fortran:
    args: -fPIC
    commands: gfortran
    linker: ld.bfd
    linker args: -Wl,-z,relro, -fPIC
    name: gcc
    version: 13.2.0
  pythran:
    include directory: ../../../../../../../usr/lib/python3/dist-packages/pythran
    version: 0.16.1
Machine Information:
  build:
    cpu: loongarch64
    endian: little
    family: loongarch64
    system: linux
  cross-compiled: false
  host:
    cpu: loongarch64
    endian: little
    family: loongarch64
    system: linux
Python Information:
  path: /usr/bin/python3.11
  version: '3.11'

It seems the failed test runs with Source Version 1.13.1-1exp7 while the passes version runs with 1.13.1-1exp6. Does it make a difference? (E.g. if you swap the Source Version on the two architectures, how does the outcome look?)

There should be no substantial differences between these source versions.  I've mainly just been adding tests to the skip list for riscv64, hppa, sparc64 (these three arches fail the same way on some tests). The changelog is https://salsa.debian.org/python-team/packages/scipy/-/blob/experimental/debian/changelog?ref_type=heads
Note we don't have a successful build of 1.13.1-1exp6 for loong64.  The last successful version was 1.13.1-1exp5.

@drew-parsons if you have the capacity could you please test if #21201 solve this issue? I don't know how to debug in Fortran but maybe this can be debugged since C is more familiar to folks.

Looks like it does the trick, thanks @ilayn
https://buildd.debian.org/status/fetch.php?pkg=scipy&arch=loong64&ver=1.13.1-1exp15&stamp=1721749523&raw=0
https://buildd.debian.org/status/logs.php?pkg=scipy&arch=loong64

Great, thank you for the confirmation. I've added to the basket.


step 9 is not working...

Hello everybody,
I was following all the tutorial and everything was ok, then, when i try to execute the step-06 it appears the website with my camera and only the button "snap" is working, the others are not working. Everything on my code is ok i think, because i have only runned step-06.
Resuming; is only working to take snaps, the button "send" and "snap and send" are not working..
Best Regards and congrats for the tutorial!

Take care of the few things first:
1.There should be two pages opened with the same URL and roomid
2.Refresh one or both the pages as socket may not be successful

@jmmsp-iscteiul - I was having the same issues. I think the doc needs updating. If you make the following changes it should help:
From your main.js file, function: signalingMessageCallback
Change:
else if (message.type === 'candidate') {     peerConn.addIceCandidate(new RTCIceCandidate({       candidate: message.candidate,     }));
to
else if (message.type === 'candidate') {     peerConn.addIceCandidate(new RTCIceCandidate({       candidate: message.candidate,       sdpMid:message.id,       sdpMLineIndex: message.label,     }));
According to https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate/sdpMid

Note: Attempting to add a candidate (using addIceCandidate()) that has a value of null for either sdpMid or sdpMLineIndex will throw a TypeError exception.

I believe this is why your code is failing. If you see:
peerConn.onicecandidate
You can see the candidate message is sent along with the sdpmid and sdpMLineIndex set as id and label.
I hope that helps

@jmmsp-iscteiul - I was having the same issues. I think the doc needs updating. If you make the following changes it should help:
From your main.js file, function: signalingMessageCallback
Change:
else if (message.type === 'candidate') { peerConn.addIceCandidate(new RTCIceCandidate({ candidate: message.candidate, }));
to
else if (message.type === 'candidate') { peerConn.addIceCandidate(new RTCIceCandidate({ candidate: message.candidate, sdpMid:message.id, sdpMLineIndex: message.label, }));
According to https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate/sdpMid

Note: Attempting to add a candidate (using addIceCandidate()) that has a value of null for either sdpMid or sdpMLineIndex will throw a TypeError exception.

I believe this is why your code is failing. If you see:
peerConn.onicecandidate
You can see the candidate message is sent along with the sdpmid and sdpMLineIndex set as id and label.
I hope that helps

This solution helped me. It removed error of "Uncaught TypeError: Cannot read property 'type' of null in main.js: 176".  It works in chrome but not in firefox.

This solution helped me. It removed error of "Uncaught TypeError: Cannot read property 'type' of null in main.js: 176". It works in chrome but not in firefox.

From your main.js file, function: signalingMessageCallback
Change:
else if (message.type === 'candidate') { peerConn.addIceCandidate(new RTCIceCandidate({ candidate: message.candidate, }));
to
else if (message.type === 'candidate') { peerConn.addIceCandidate(new RTCIceCandidate({ candidate: message.candidate, sdpMid:message.id, sdpMLineIndex: message.label, }));
According to https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate/sdpMid

I had the same situation and got to the same conclusion (before I saw this bug).
But, event after correcting the main.js I still have an issue as show below.
I have absolutely no clue on how to solve it. Could you help ?
VM349:1 InvalidStateError: Failed to set remote answer sdp: Called in wrong state: kStable DOMException: Failed to set remote answer sdp: Called in wrong state: kStable
a. @ VM349:1
logError @ main.js:409

Or sometimes, message is
VM13:1 InvalidStateError: Failed to set remote answer sdp: Called in wrong state: kHaveRemoteOffer DOMException: Failed to set remote answer sdp: Called in wrong state: kHaveRemoteOffer
a. @ VM13:1
logError @ main.js:409

I am getting the same error when starting second client with same room id.  See stack trace:

main.js:176 Uncaught TypeError: Cannot read property 'type' of null
at signalingMessageCallback (main.js:176)
at r. (main.js:86)
at r.emit (index.js:83)
at r.onevent (index.js:83)
at r.onpacket (index.js:83)
at r. (index.js:83)
at r.emit (index.js:83)
at r.ondecoded (index.js:83)
at a. (index.js:83)
at a.r.emit (index.js:83)

The code seems to be badly written, the step 06 is working like 2 out of 15 times, I need to hit CTRL + R many times, and wait a long time, and then if I am lucky the two peers will eventually be connected to one another. I think Google should take some time to fix this course, there are still issues, typos...etc that are from 2016, what a shame. Especially for such technology that will be omnipresent in the future...

I got it working using Pull Request #89 and the mod in this issue from @fslurrehman.  Git patchset is attached.
diff --git a/step-06/index.js b/step-06/index.js
index ae178ae..4b2c003 100644
--- a/step-06/index.js
+++ b/step-06/index.js
@@ -43,7 +43,8 @@ io.sockets.on('connection', function(socket) {
       socket.join(room);
       socket.emit('joined', room, socket.id);
       io.sockets.in(room).emit('ready', room);
-      socket.broadcast.emit('ready', room);
+      // Pull Request #89
+      // socket.broadcast.emit('ready', room);
     } else { // max two clients
       socket.emit('full', room);
     }
diff --git a/step-06/js/main.js b/step-06/js/main.js
index 9ba7701..27cd802 100644
--- a/step-06/js/main.js
+++ b/step-06/js/main.js
@@ -62,7 +62,8 @@ socket.on('created', function(room, clientId) {
 socket.on('joined', function(room, clientId) {
   console.log('This peer has joined room', room, 'with client ID', clientId);
   isInitiator = false;
-  createPeerConnection(isInitiator, configuration);
+  // PR #89
+  // createPeerConnection(isInitiator, configuration);
   grabWebCamVideo();
 });

@@ -186,7 +187,10 @@ function signalingMessageCallback(message) {

   } else if (message.type === 'candidate') {
     peerConn.addIceCandidate(new RTCIceCandidate({
-      candidate: message.candidate
+      candidate: message.candidate,
+      // Issue 102
+      sdpMid:message.id,
+      sdpMLineIndex: message.label,
     }));

   }


Feature Suggestion: Complement Current Folder

Thanks yet again for the fantastic new Vault Complement!
Using the new features for a bit actually gave me an idea how this could be refined even further:

the advantage of current vault complement is that it shows you suggestions from a bigger number of files
the advantage of current note complement is that it shows you suggestions dynamically, e.g. not suggesting you technical terms, when you are in a note about cooking and vice versa.

I think one could combine both by implementing current folder complement, where dynamically only terms from notes in the current folder are suggested. For performance reasons, this should not reload automatically, but it also shouldn't reload, but reloading manually could actually be fine?
This could be very helpful for writers using the Longform plugin, where you split up a writing project into multiple notes (which are all located in one folder).

Hi, @chrisgrieser. Thanks for your fantastic suggestion :)

I think one could combine both by implementing current folder complement, where dynamically only terms from notes in the current folder are suggested

I see. I ordinarily use different vaults in such a case, but that is an exciting idea and supposed useful for someone 👍
It depends on how many files we have in a directory; It seems acceptable to only reload when it changes the current directory. What do you think?

well, I would have about 12-15 notes with about 12 000 words in such a longform project (average length of a research paper), but I know that there are also people with much bigger projects.
Maybe make the automatic reloading simply a toggle?

Thank you for a reply :)
O.K. I'll add a new option Include only files under current directory in the Current vault complement. It will not take much time probably.

@chrisgrieser
I have released v5.4.0 🚀  please confirm whether it works as you expected :)

Thank you for your quick confirming :)

Could you maybe shorten the source path to the file name only? having the full file path makes it a bit much.

I see. I'll add options that decide what to show or hide completely. It would be helpful for me to create a new issue 🙏

I am not entirely sure, how exactly does the reloading work? Current file completions are automatically reload, while current vault & custom dictionaries have to be reloaded manually, is that correct?

Yes. You are generally correct. For details, please show the below pages.

Current file complement
Current vault complement
Custom dictionary complement

And I want to implement auto-reload for the Current vault complement soon.

thanks, will do!


Error Loading all Google Fonts

Hello everyone,
I'm developing a CMS and I'd like to make all Google Fonts available for the users so they can choose  during "page design".
When I try to load all fonts from Google Fonts, some of the fonts can not be loaded. It's not always the same fonts. I got some of them isolated and it seems to be randomically selected.
Errors are in the attached file.
Is there any limit? Like: "100 font files"?
Thanks very much.
My best regards.
fontload.txt

Have you tried to increase the timeout? By default it is 5000ms, it might not enought to load all fonts.
WebFontConfig = {
  google: {
    families: ['Droid Sans']
  },
  timeout: 20000 // Set the timeout to 20 seconds
};


getEditsForFileRename returning edits outside of workspace when renaming file.js to file.ts

TypeScript Version:  2.9.2 (build from current branch state)

Search Terms:

getEditsForFileRename

Repo steps

Create a simple project with a file file.js
Rename this js file to file.ts
Select to update imports

bug
Tons of weird edits inside the typings cache folder are returned.
 Will keep trying to put together a minimal set of steps to reproduce it

is it safe to delete data in Cache/ and CachedData/? This issue has completely borked vscode for me. vscode opened a huge number of files, changing their @ imports and so I tried closing them all but that led to an endless stream of Are you sures and then idiotically I thought closing vscode would be a good idea, which it wasn't. Instead vscode tries to reopen those files with the unsaved data it has cached causing it to hang since it's like every file in node_modules

I figured it out.... had to delete everything in Backups to keep vscode from reopening these files. I ended up deleting just about everything in Cache/, CachedData, CachedExtensions, and GPUCache. Just leaving this comment here for record keeping.


[bug] Catch "modal closed" error in lab.web3modal.com for auth examples

Link to minimal reproducible example
https://lab.web3modal.com
Summary
We should catch "modal closed" error in new web3modal auth examples.
List of related npm package versions
N/A

Done


Hand Artifacts Remain In Scene When Using XR SDK on HoloLens 2

Description
When using XR SDK on HoloLens 2 with the default configurations, hands, their bone visualization and their meshes appear to not be cleaned up correctly:

Hand bone visualizations remain in the scene (their poses suggest this happens when the HoloLens loses their tracking)
Their hand rays remain visible as well
The according hand meshes however seem to be still overlayed correctly with the hand. This leads to the meshes stacking with the ones of the newly found hands multiplying their color to a bright white

Please refer to the attached screenshot "20210205_175404_HoloLens_2_XRSDK_Hand_Duplication_And_Artifacts.jpg"

To reproduce
Steps to reproduce the behavior:

Start a new Unity project (Unity 2019.4.19f1)
Import MRTK v2.5.4 Foundation (I used the Unity Package from the Releases section, not the UPM)
Hit apply on the MRTK project configuration window
Click on the Unity Menu "Mixed Reality Toolkit --> Add to Scene and Configure..."
In Project Settings install the XR Plugin Management
Enable Windows Mixed Reality and "Initialize XR on Startup"
Select the Windows Mixed Reality XR Settings and enable Depth Buffer Sharing (Depth 16bit) as well as Use Primary Window
Leave Holographic Remoting off
Add a Cube at a comfortable distance (to make sure you are in the app, when it starts)
Build and deploy (I reproduced this behaviour in Master and Release build configuration)
Start the app
Interact with your hands, having them be found and lost several times by Hand Tracking
--> Observe that in some occasions, the hand bone visualization as well as the ray remain in the scene, when a hand is lost
--> Observe that every time this happens, the according mesh is still following the hand tracking, now overlaying with the new hand mesh

Expected behavior
When a(n articulated) hand is lost, its bone visualizaton, hand ray and mesh should be cleaned up and not remain in the scene
Setup

Unity Version 2019.4.19f1
MRTK Version 2.5.4

Target platform

HoloLens 2

Additional Information
I tested MRTK v2.5.3 as well and while the bug did reproduce in that version, it happened with less frequency.

Here is the UnityPlayer.log file from the session in which I took the screenshot:
UnityPlayer_HoloLens_2_XRSDK_Hand_Duplication_And_Artifacts.log
There are ArgumentException's coming from UpdateHandMesh, probably related to the problem
ArgumentException: Value does not fall within the expected range.   at Microsoft.MixedReality.Toolkit.WindowsMixedReality.WindowsMixedRealityHandMeshProvider.UpdateHandMesh (Windows.UI.Input.Spatial.SpatialInteractionSourceState sourceState) [0x00000] in <00000000000000000000000000000000>:0    at Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality.WindowsMixedRealityXRSDKArticulatedHand.UpdateHandData (UnityEngine.XR.InputDevice inputDevice) [0x00000] in <00000000000000000000000000000000>:0    at Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality.WindowsMixedRealityXRSDKArticulatedHand.UpdateController (UnityEngine.XR.InputDevice inputDevice) [0x00000] in <00000000000000000000000000000000>:0    at Microsoft.MixedReality.Toolkit.XRSDK.Input.XRSDKDeviceManager.Update () [0x00000] in <00000000000000000000000000000000>:0    at Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality.WindowsMixedRealityDeviceManager.Update () [0x00000] in <00000000000000000000000000000000>:0    at Microsoft.MixedReality.Toolkit.BaseDataProviderAccessCoreSystem.Update () [0x00000] in <00000000000000000000000000000000>:0    at Microsoft.MixedReality.Toolkit.MixedRealityToolkit+<>c.<UpdateAllServices>b__67_0 (Microsoft.MixedReality.Toolkit.IMixedRealityService service) [0x00000] in <00000000000000000000000000000000>:0    at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.ExecuteOnAllServicesInOrder (System.Action1[T] execute) [0x00000] in <00000000000000000000000000000000>:0
at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.UpdateAllServices () [0x00000] in <00000000000000000000000000000000>:0
at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.Update () [0x00000] in <00000000000000000000000000000000>:0 `

In a different session, the log reads:
ArgumentException: Value does not fall within the expected range.
  at Windows.Perception.People.HandMeshObserver.GetVertexStateForPose (Windows.Perception.People.HandPose handPose) [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.WindowsMixedReality.WindowsMixedRealityHandMeshProvider.UpdateHandMesh (Windows.UI.Input.Spatial.SpatialInteractionSourceState sourceState) [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality.WindowsMixedRealityXRSDKArticulatedHand.UpdateHandData (UnityEngine.XR.InputDevice inputDevice) [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality.WindowsMixedRealityXRSDKArticulatedHand.UpdateController (UnityEngine.XR.InputDevice inputDevice) [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.XRSDK.Input.XRSDKDeviceManager.Update () [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality.WindowsMixedRealityDeviceManager.Update () [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.BaseDataProviderAccessCoreSystem.Update () [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit+<>c.<UpdateAllServices>b__67_0 (Microsoft.MixedReality.Toolkit.IMixedRealityService service) [0x00000] in <00000000000000000000000000000000>:0
  at System.Action`1[T].Invoke (T obj) [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.ExecuteOnAllServicesInOrder (System.Action`1[T] execute) [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.UpdateAllServices () [0x00000] in <00000000000000000000000000000000>:0
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.Update () [0x00000] in <00000000000000000000000000000000>:0 ```

followed by

[XRInputSubsystem] A device disconnection with the id<PHONE_NUMBER> has been reported but no device with that id was connected. ```

Apparently, this issue is related to / a possible duplication of #9165

A (sub-optimal) way to mitigate the effects of this phenomenon is to try-catch the UpdateController call in the XRSDKDeviceManager.Update() method like this:
                        if (controller != null && lastInputDevices.Contains(device))
                        {
                            try
                            {
                                controller.UpdateController(device);
                            }
                            catch (Exception e)
                            {
                                Debug.Log($"UpdateController({device}) failed");
                            }
                            finally
                            {
                                lastInputDevices.Remove(device);
                            }
                        }

Depending on your use case, you can use OpenXR to solve the issue. You'd need to upgrade your Unity project to Unity2020.**** in order to enable OpenXR for MRTK. This solved my issue with hands, however my app is dependent on QR tracking, which cannot be accessed through MRTK when using OpenXR.

Thank you for the detailed report @Holo-Fiedel!
Does this also occur if you disable displaying the hand mesh?

try-catch

Do you have a hint on how do fix it when imported as a unity package @Holo-Fiedel ? Direct changes to this file are discarded on reload, but I fear that waiting for a proper fix might take too long.

try-catch

Do you have a hint on how do fix it when imported as a unity package @Holo-Fiedel ? Direct changes to this file are discarded on reload, but I fear that waiting for a proper fix might take too long.

Unfortunately, I have not.
In our investigations into the issue it became clear, that the XRSDKDeviceManager is supposed to handle the cleanup internally.
This issue also prevents us from consuming the MRTK via UPM.

Thank you for the detailed report @Holo-Fiedel!
Does this also occur if you disable displaying the hand mesh?

@davidkline-ms, I haven't been able to reproduce the behaviour when disabling the hand mesh visualization.
As the logs above indicate, this issue might come from handMeshObserver.GetVertexStateForPose(handPose)
When disabling the Hand Mesh Visualization in the profile, WindowsMixedRealityHandMeshProvider.UpdateHandMesh returns before reaching the call of the HandMeshObserver.

QR tracking, which cannot be accessed through MRTK when using OpenXR

Oh wow, I wish I had read that earlier before porting everything to OpenXR. Definitely stuck between a rock and a hard place then.

Hi MRTK team,
I also got the same problem from our customer.
The following problems occurred in Hololens2 application using MRTK.
Hand lost detection may not be performed correctly, and hand mesh / joint objects may continue to remain in the space.
As a result, the UI that follows the detected hand will follow the object of the hand that remains in space(Please see the image snapshot: red rectangle highlighted).
・Unity：2019.4.15f1
・MRTK：2.5.9
・XR Plugin Management：3.2.16

The stuck hand tracking should be fixed via #9890 in the upcoming 2.7.0 release. Thanks for the investigation here, and please re-open if you're still able to repro on 2.7.0.


Automatically add 'updated' field to GitHub Issue search in Tracker Query

To avoid re-fetching the same issues over and over again, the GitHub Provider should auto add 'updated:>last_ran_date' to the Query. That should give us only the changed issues since the last run(assuming the last run was successful).
https://help.github.com/articles/searching-issues/#search-based-on-when-an-issue-or-pull-request-was-created-or-last-updated

Duplicate https://github.com/almighty/almighty-core/issues/582


Enhancement: Return context.Fail("reason")

For a full and good example, you need to call context.Fail("reason") if the thumbprint isn't validated in the OnCertificateValidated event:
          services.AddAuthentication(
                CertificateAuthenticationDefaults.AuthenticationScheme)
                .AddCertificate(options =>
                {
                    options.AllowedCertificateTypes = CertificateTypes.All;

                    options.Events = new CertificateAuthenticationEvents
                    {
                        OnAuthenticationFailed = context =>
                        {
                            return Task.CompletedTask;
                        },
                        OnCertificateValidated = context =>
                        {
                            var cert = new X509Certificate2(Path.Combine("localhost.pfx"), "25342534");

                            if (context.ClientCertificate.Thumbprint == cert.Thumbprint)
                            {

                                var claims = new[]
                                {
                                new Claim(
                                    ClaimTypes.NameIdentifier,
                                    context.ClientCertificate.Subject,
                                    ClaimValueTypes.String,
                                    context.Options.ClaimsIssuer),
                                new Claim(
                                    ClaimTypes.Name,
                                    context.ClientCertificate.Subject,
                                    ClaimValueTypes.String,
                                    context.Options.ClaimsIssuer)
                                        };

                                context.Principal = new ClaimsPrincipal(
                                    new ClaimsIdentity(claims, context.Scheme.Name));
                                context.Success();
                            }
                            else
                            {
                                context.Fail("failed");
                            }

                            return Task.CompletedTask;
                        }
                    };
                });

else the validation will always just authorize you, as i can see it.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 35b7960d-6de5-78ee-bc45-d7218239bbc8
Version Independent ID: d2db534b-198a-dc99-5b5a-0525582d39ac
Content: Configure certificate authentication in ASP.NET Core
Content Source: aspnetcore/security/authentication/certauth.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @blowdart
Microsoft Alias: bdorrans

Not correct. OnAuthenticationFailed() isn't needed, it will fail by default. That event is there if you want to actually capture the failure, and maybe accept it.

I am talking about OnCertificateValidated. How am I else going to reject the request?


Where to find the documentation for the webpack plugin options for runtimeCaching and verbose?

I've visited https://github.com/goldhand/sw-precache-webpack-plugin but there's no documentation on the options you added in the nextjs.config.js on the verbose and runtimeCaching
Could you point me to the documentation for these and what they do?

The plugin is a wrapper around sw-precache, so most of the options are the same. You can find the docs here: https://github.com/GoogleChromeLabs/sw-precache .


Gather CNI OVN data

Gather OVN data as part of the CNI resources
Depends on #1253

Updated, thanks for all the comments & reviews.

rebasing this on latest work by vthapar.

rebase done


ctr: fetch-blob fails for ubuntu:latest

Description
current FetchByDigest does not allow client(like ctr) to specify mediatype.
Steps to reproduce the issue

ctr  content fetch-blob docker.io/library/ubuntu:latest sha256:6120be6a2b7ce665d0cbddc3ce6eae60fe94637c6a66985312d1f02f63cc0bcd

this will complain about 404, because Accept header only has */* included.
Describe the results you received and expected
content cannot be fetched due to 404
expected to successfully finish.
What version of containerd are you using?
v1.7.0-400-gb6abda73b
Any other relevant information
No response
Show configuration if it is related to CRI plugin.
No response

Related to the registry returning a 404 (also see https://github.com/containerd/containerd/pull/8744#discussion_r1280611910)
I checked with a colleague who works on Docker Hub registry, and they found that this issue is unlikely related to the header. In the steps above, you're trying to fetch a blob from the ubuntu repository, but that blob is NOT referenced by any of the Ubuntu images. In that case, the registry will always respond with a 404 as per specification.
Can you try if the issue also reproduces when fetching a blob that's actually referenced from any of the Ubuntu images?

Related to the registry returning a 404 (also see #8744 (comment))
I checked with a colleague who works on Docker Hub registry, and they found that this issue is unlikely related to the header. In the steps above, you're trying to fetch a blob from the ubuntu repository, but that blob is NOT referenced by any of the Ubuntu images. In that case, the registry will always respond with a 404 as per specification.
Can you try if the issue also reproduces when fetching a blob that's actually referenced from any of the Ubuntu images?

Thx for checking.

pls check the screenshot, its easy to reproduce, just pull ubuntu:latest, get digest of index layer, remove image and try to fetch index layer with fetch-blob


HDDS-8832. [Snapshot] Synchronized add snapshotInfo to snapshot chain and snapshot cache

What changes were proposed in this pull request?
This change is to add snapshot to snapshot chain if it gets added to snapshot cache successfully and removes it from snapshot chain if fails. More details in: https://issues.apache.org/jira/browse/HDDS-8832?focusedCommentId=17732758&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17732758
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8832
How was this patch tested?
Existing unit tests as of now. Will look into fault injection to reproduce the issue through unit test. That will be separate PR.

And thanks @prashantpogde for reviewing.


TOB-FUEL-4: claim_refund does not refund the original asset

Description
Funds in the FuelERC20Gateway can be drained due to returning an incorrect asset when claiming a refund.
Refunds are registered when there is a mismatch between the L1 and L2 assets.
Refunds are accounted for in the register_refund function and stored in the storage variable refund_amounts.
Figure 4.2: The register_refund function in bridge-fungible-token/bridge-fungible-token/src/bridge_fungible_token.sw
// Storage-dependant private functions
#[storage(write)]
fn register_refund(from: b256, asset: b256, amount: b256) {
    storage.refund_amounts.get(from).insert(asset, amount);
    log(RefundRegisteredEvent {
        from,
        asset,
        amount,
    });
}

For a user to withdraw registered refunds the claim_refund function should be called. This function however incorrectly sets as the token to be withdrawn the BRIDGED_TOKEN instead of the asset variable.

Figure 4.4: The finalizeWithdrawal function in fuel-v2-contracts/contracts/messaging/gateway/FuelERC20Gateway.sol
    function finalizeWithdrawal(
        address to,
        address tokenId,
        uint256 amount
    ) external payable whenNotPaused onlyFromPortal {
        require(amount > 0, "Cannot withdraw zero");
        bytes32 fuelTokenId = messageSender();

        //reduce deposit balance and transfer tokens (math will underflow if amount is larger than allowed)
        _deposits[tokenId][fuelTokenId] = _deposits[tokenId][fuelTokenId] - amount;
        IERC20Upgradeable(tokenId).safeTransfer(to, amount);

        //emit event for successful token withdraw
        emit Withdrawal(bytes32(uint256(uint160(to))), tokenId, fuelTokenId, amount);
    }

This is possible because there is no deposit accounting per user in the FuelERC20Gateway which allows for withdrawals to different addresses other than the depositors.
Exploit Scenario
Alice creates a fake token and bridges 10K FAKE while specifying the Fuel ETH token id on the Fuel chain. Because the bridged asset is not appropriate, Alice is able to claim a refund. Due to the error, she is able to refund 10K ETH on Ethereum.
Recommendations
Short term, update the encoded data to include the deposited asset instead of the bridge asset. Alternatively, the gateway could be re-designed to not require specifying the Fuel token id on Ethereum which could eliminate the need for refunds.
Long term, pay extra attention to the intersection between blockchains. Make sure these are well-documented and tested, since they are typically harder to test and more prone to errors.

Fixed by https://github.com/FuelLabs/fuel-bridge/pull/4, duplicate of https://github.com/FuelLabs/fuel-bridge/issues/5


Work Package wp-an.csv

I would like to work on this please!

Results of Phase 1. I spent 20-30 minutes per paper
wp-an-results.csv

I completed this work package.

I would like to work on this please!

I completed this work package.
i31.csv

Thanks for you work on the package. I just included the data into the repository and it will appear on the website soon.


add test case for service discovery process

Mainly test cases and comments

Codecov Report

Merging #8607 (d397780) into 3.0 (3ac0c37) will increase coverage by 0.04%.
The diff coverage is 80.30%.

@@             Coverage Diff              @@
##                3.0    #8607      +/-   ##
============================================
+ Coverage     62.88%   62.93%   +0.04%
+ Complexity      312      310       -2
============================================
  Files          1118     1118
  Lines         46840    46796      -44
  Branches       7052     7027      -25
============================================
- Hits          29457    29452       -5
+ Misses        14087    14040      -47
- Partials       3296     3304       +8

Impacted Files
Coverage Δ

...o/common/url/component/DubboServiceAddressURL.java
67.30% <ø> (-0.62%)
:arrow_down:

.../org/apache/dubbo/metadata/ServiceNameMapping.java
100.00% <ø> (ø)

.../apache/dubbo/registry/client/ServiceInstance.java
50.00% <ø> (ø)

...ta/MetadataServiceURLParamsMetadataCustomizer.java
90.00% <ø> (ø)

.../client/metadata/ServiceInstanceMetadataUtils.java
84.61% <ø> (+2.70%)
:arrow_up:

...registry/client/migration/model/MigrationRule.java
72.43% <ø> (ø)

...e/dubbo/registry/integration/RegistryProtocol.java
59.69% <ø> (ø)

...pache/dubbo/remoting/transport/AbstractClient.java
65.71% <ø> (ø)

...apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java
65.26% <ø> (-0.13%)
:arrow_down:

...n/java/org/apache/dubbo/metadata/MetadataInfo.java
65.53% <50.00%> (+13.24%)
:arrow_up:

... and 71 more

Continue to review full report at Codecov.

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


feat(ingest): track thread count in ingestion report

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

CI failures are unrelated (and possibly related to https://github.com/datahub-project/datahub/pull/9549)


No matching export in "browser-external:fs" for import "existsSync"

No matching export in "browser-external:fs" for import "existsSync"

We temporarily close this due to the lack of enough information.
Please provide a minimal reproduction to reopen the issue.
Thanks.

Why reproduction is required


Import BlogML OPML

A great blog app. I am replacing my blogengine.NET with this now.
But how to migrate the data from the earlier one to this? any BlogML export/import?

You should be able to pull RSS feed from Blogengine to Blogifier.SPA version using this.
The resulting database should work fine for any Blogifier flavor, including Blazor/MVC.

You should be able to pull RSS feed from Blogengine to Blogifier.SPA version using this.
The resulting database should work fine for any Blogifier flavor, including Blazor/MVC.

I tried that and raised another issue in Blogifier.SPA
I see Error 500. Attached the log file in that issue already.


Finalizing Tests

These Are the tests for the additional scenario placed within Week 5, they include a

Including  an optional attendee C who has an all-day event. The same three time slots should be returned as when C was not invited.

Based on everyAttendeeIsConsidered, adds an optional attendee C who has an event between 8:30 and 9:00. Now only the early and late parts of the day should be returned.

Based on the justEnoughRoom method , adds an optional attendee B who has an event between 8:30 and 8:45. The optional attendee should be ignored since considering their schedule would result in a time slot smaller than the requested time.

No mandatory attendees, just two optional attendees with several gaps in their schedules. Those gaps should be identified and returned.

No mandatory attendees, just two optional attendees with no gaps in their schedules. query should return that no time is available.

+1 on Tiancong's comment. TDD absolutely does call for writing the tests before the implementation, but both end up together in the same PR. Continuous integration systems including those we use internally at Google prevent anyone form submitting code if it causes tests to fail. I recommend adding the implementation in this PR as well.


test: Add E2E testing for fully blocking budgets with and without schedule

Fixes #N/A
Description
This change adds testing for ensuring that fully blocking budgets (both with and without a schedule) will block particular disruption actions either all of the time or at specified times during the day as dictated by the schedule.
How was this change tested?
/karpenter snapshot
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.547%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4952

Relevant Lines:
5999

💛  - Coveralls


Update Article “faq”

Automatically generated by Netlify CMS

👷 Deploy Preview for dynamic-cheesecake-5fbd8b processing.

Name
Link

🔨 Latest commit
4c4aa4a8feb38d4952292dcea57edeb95b628cb3

🔍 Latest deploy log
https://app.netlify.com/sites/dynamic-cheesecake-5fbd8b/deploys/6338948b6dde8e00080db5cf


Add logging to min execute interval test

Description
Fixes https://github.com/dotnet/aspire/issues/5700
I don't know if this fixes the issue, but it adds logging to provide more information.
Checklist

Is this feature complete?

[x] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[x] Yes
[ ] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[x] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[x] No

Does the change require an update in our Aspire docs?

[ ] Yes

Link to aspire-docs issue:

[x] No

Microsoft Reviewers: Open in CodeFlow

/azp run

Running the pipeline again to pick fixes for the failures seen here.


autosuggestion doesn't work anymore with zsh 5.8

Expected behavior
I should have previous commands suggested.
Actual behavior
No suggestion.
Steps to Reproduce
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'autosuggestions' \
  'command-not-found' \
  'git' \
  'syntax-highlighting' \
  'history-substring-search' \
  'prompt'

Versions

Prezto commit: latest (I don't know how to check except I did git pull and I was ok)
ZSH version: zsh 5.8 (x86_64-apple-darwin19.6.0)
OS information: macOS 10.15.7

Sorry, it was a contraste trouble on iTerm2.


Convert xml::reader::XmlEvent to xml::writer::XmlEvent

In the XML document I'm processing, there are "sub documents" that I'd like to collect and store as strings. The straightforward way to do this seems to be to convert the reader XmlEvents into writer XmlEvents.
I wrote a TryFrom instance to do as much. (In my own code, it's just a function.)
A more efficient way to manage this would be to keep track of the underlying span in the source and then just grab the raw bytes of the source, but it's not clear to me how easy to me that would be.

Can you us https://docs.rs/xml-rs/latest/xml/reader/enum.XmlEvent.html#method.as_writer_event for the implementation?

Oh, yes I'm sure that would work. Somehow that function didn't show up in autocomplete or my cursory docs search. I suspect the problem was looking at the writer type---a TryFrom instance that wrapped this method would have helped me find it.
But: the issue is moot for me now (I found quick-xml to be ~10x faster in my use case). Feel free to close the PR, sorry for the noise!


Update single-database-create-quickstart.md

fix link to more appropriate one

@seonyounggg : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@seonyounggg - thanks for the update!
#sign-off

@stevestein: I'm sorry - only the author of this article, @sachinpMSFT, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


What is data-diff? And where is all the documentation?

What is data-diff?

According to the current readme,

data-diff is an open source package that you can use to see the impact of your dbt code changes on your dbt models as you code.

Is that true? I'm pretty sure data-diff has always been something else. For example, here is a HN post explaining what is data-diff, that doesn't even contain the word dbt: https://news.ycombinator.com/item?id=31837307
Perhaps you're thinking of some imaginary package called dbt-data-diff?
The readme doesn't address this discrepancy at all.

Where is all the documentation?

The developers of data-diff had put a lot of effort into writing detailed documentation that explains how data-diff works, that provides all kinds of technical context, and helps new developers contribute. What happened to all that documentation, where did it go?
It used to be in datafold.com, but it is no longer there.

@erezsh thanks for opening this. I'm going to let @glebmezh weigh in

@dlawin Any idea if and when he's going to respond?

I was wondering where all the documentation went, is this becoming a dbt centric tool ?

looks like indeed. I was also using it as a data diffing tool but seems now you have to use DBT or so?

Non-dbt doc is here:
https://docs.datafold.com/reference/open_source/cli
https://data-diff.readthedocs.io/en/latest/python-api.html
https://github.com/datafold/data-diff/blob/master/docs/technical-explanation.md

Thanks @erezsh for raising this – we reworked the README to cover the broader spectrum of use cases with links to further materials and docs.


Error serving connection: hyper::Error(Http2, Error { kind: GoAway(b"", PROTOCOL_ERROR, Library) })

The Cargo.toml
[package]
name = "hyper_multi_server_example"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
bytes = "1.5.0"
http-body-util = "0.1.0"
hyper = { version = "1.0.1", features = ["full"] }
hyper-util = { version = "0.1.1", features = ["full"] }
pretty_env_logger = "0.5.0"
tokio = { version = "1.34.0", features = ["full"] }

The main.rs :
use bytes::Bytes;
use std::net::SocketAddr;
// use futures_util::future::join;
use http_body_util::Full;
use hyper::server::conn::http2;
use hyper::service::service_fn;
use hyper::{Request, Response};
use hyper_util::rt::TokioIo;
use hyper_util::rt::TokioExecutor;
use tokio::join;
use tokio::net::TcpListener;

static INDEX1: &[u8] = b"The 1st service!";
static INDEX2: &[u8] = b"The 2nd service!";

async fn index1(_: Request<hyper::body::Incoming>) -> Result<Response<Full<Bytes>>, hyper::Error> {
    Ok(Response::new(Full::new(Bytes::from(INDEX1))))
}

async fn index2(_: Request<hyper::body::Incoming>) -> Result<Response<Full<Bytes>>, hyper::Error> {
    Ok(Response::new(Full::new(Bytes::from(INDEX2))))
}

// curl http://localhost:1337
// curl http://localhost:1338

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
    pretty_env_logger::init();

    let addr1: SocketAddr = ([127, 0, 0, 1], 1337).into();
    let addr2: SocketAddr = ([127, 0, 0, 1], 1338).into();

    let srv1 = async move {
        let listener = TcpListener::bind(addr1).await.unwrap();
        loop {
            let (stream, _) = listener.accept().await.unwrap();
            let io = TokioIo::new(stream);

            tokio::task::spawn(async move {
                if let Err(err) = http2::Builder::new(TokioExecutor::new())
                    .serve_connection(io, service_fn(index1))
                    .await
                {
                    println!("Error serving connection: {:?}", err);
                }
            });
        }
    };

    let srv2 = async move {
        let listener = TcpListener::bind(addr2).await.unwrap();
        loop {
            let (stream, _) = listener.accept().await.unwrap();
            let io = TokioIo::new(stream);

            tokio::task::spawn(async move {
                if let Err(err) = http2::Builder::new(TokioExecutor::new())
                    .serve_connection(io, service_fn(index2))
                    .await
                {
                    println!("Error serving connection: {:?}", err);
                }
            });
        }
    };

    println!("Listening on http://{} and http://{}", addr1, addr2);

    let _ret = join!(srv1, srv2);

    Ok(())
}

when curl
$ curl http://localhost:1338
curl: (1) Received HTTP/0.9 when not allowed

the cargo run terminal:
Error serving connection: hyper::Error(Http2, Error { kind: GoAway(b"", PROTOCOL_ERROR, Library) })

Is it possible to show the output from curl -v? I'm pretty sure curl would by trying with HTTP/1.1 by default.
Also try again with  curl -v --http2-prior-knowledge localhost: 1338

Yes, it works.
curl -v --http2-prior-knowledge localhost:1338
*   Trying <IP_ADDRESS>:1338...
* Connected to localhost (<IP_ADDRESS>) port 1338 (#0)
* h2 [:method: GET]
* h2 [:scheme: http]
* h2 [:authority: localhost:1338]
* h2 [:path: /]
* h2 [user-agent: curl/8.1.2]
* h2 [accept: */*]
* Using Stream ID: 1 (easy handle 0x7f964d810000)
> GET / HTTP/2
> Host: localhost:1338
> User-Agent: curl/8.1.2
> Accept: */*
>
< HTTP/2 200
< date: Sun, 19 Nov 2023 17:52:14 GMT
< content-length: 16
<
* Connection #0 to host localhost left intact
The 2nd service!

But with the url http://localhost:1338/ in the chrome browser, it does not work.
The error msg is
ERR_INVALID_HTTP_RESPONSE

You need to serve HTTP/2 over TLS with ALPN for clients to communicate properly without overrides like --http2-prior-knowledge.

Thanks.


How to make camera lookAt?

I'm trying to understand how to use lookAt or targetTo to make the view matrix for a camera.
Playing around with some test vectors leaves me confused... help is appreciated!
What should I use if I want to have a camera positioned at [2,0,-7] and have it look at the center of the world at [0,0,0] ?
In other words that view will be used to construct the modelViewMatrix which gets multiplied with all the vertices in the shader
Here's some tests which led to my confusion... thanks!
const {mat4, quat, vec3} = require('gl-matrix');

const makeVector = (eye, style) => {
  const center = [0,0,0];
  const up = [0,1,0];

  const lookMatrix = style === "look"
    ? mat4.lookAt(mat4.create(), eye, center, up)
    : mat4.targetTo(mat4.create(), eye, center, up);

  return vec3.transformMat4(vec3.create(), [0,0,0], lookMatrix);
}

//these are the same
makeVector([0,0,-7], "look"); //=> Float32Array [ 0, 0, -7 ]
makeVector([0,0,-7], "target"); //=> Float32Array [ 0, 0, -7 ]

//but these are different?
makeVector([0,0,7], "look"); //=> Float32Array [ 0, 0, -7 ]
makeVector([0,0,7], "target"); //=> Float32Array [ 0, 0, 7 ]

//these are different too...
makeVector([2,0,-7], "look"); //=> Float32Array [ 0, 0, -7.280109882354736 ]
makeVector([2,0,-7], "target"); //=> Float32Array [ 2, 0, -7 ]

Here is some information regarding that: https://github.com/toji/gl-matrix/issues/225
You probably want to use targetTo.


jsxstyle/preact broken ≥2.0.9

Upgrading jsxstyle to or past 2.0.9 breaks jsxstyle/preact imports.
With 2.0.8 installed,
$ ls node_modules/jsxstyle/preact
jsxstyle-preact.cjs.js  jsxstyle-preact.d.ts  jsxstyle-preact.es.js  package.json

With 2.0.9 installed, however,
$ ls node_modules/jsxstyle/preact
jsxstyle-preact.amd.js  jsxstyle-preact.cjs.js  jsxstyle-preact.d.ts  jsxstyle-preact.es.js

and I see NPM error that it can't find any of

`jsxstyle/preact{,.js,.json}
`jsxstyle/preact/index{,.js,.json}
jsxstyle/preact/package.json

(which makes sense, since none of those exist).

@rperce thanks, looking now…

Holy cow, 2 minute response time is amazing! You rock :+1:

Fixed in 93128ed and published as<EMAIL_ADDRESS>Sorry for the trouble. I was being overly clever when I updated the .npmignore file for jsxstyle a few commits ago: https://github.com/smyte/jsxstyle/commit/e379385a8407734da66c3e8e3fdf42d67932f5e2#diff-5e3bdc8ec31c3acdd9b8559a74eec87fL3
package.json is back 🎉🎉🎉<EMAIL_ADDRESS>

I’ve since added a publish manifest test that ensures that the expected package files are published. Should prevent this issue from occurring in the future.
the test: tests/meta.spec.ts#L54-L72
the snapshot: tests/__snapshots__/meta.spec.ts.snap#L24-L110


Creating FlutterViewController using FlutterEngine causes channel communication issues

I use the FlutterViewController with anonymous flutterEngine directly under the iOS system, and can use multiple channels to communicate normally.
However, when the FlutterEngine is created in advance to optimize the first startup, this FlutterViewController specifies this Engine, and only one of my channels can be used normally, I don't know what happened

Hi @SarielTang
Could you provide your flutter doctor -v?

@VladyslavBondarenko

\cc @xster

@SarielTang can share some reproduction steps or sample code for us to follow? We're unaware of this issue but conceptually, there shouldn't be a difference. Make sure to register your channel with the right instance of the flutter engine.

@xster

this is my code in iOS。

and this is my code in flutter。
The ‘native_common_channel’ channel can be used normally every time, but the ‘native_network_channel’ channel. When I initialize it on the iOS side, the specified Engine will be invalid.

When I use Engine to initialize FlutterViewController, this channel will fail.

"When I initialize it on the iOS side, the specified Engine will be invalid." what does this mean exactly? Is there any specific error that appears?
Also cc @gaaclarke

I used the translation software directly, and the translation was a bit problematic, so I reorganized the language and spoke a bit later.  I mean，when I use Engine to initialize FlutterViewController, this channel will fail.

@xster Sorry, the translation software I used before has some problems with translation. What I mean is that when I use flutterEngine to warm up, my 'native_common_channel' will fail.

@gaaclarke @xster Is there anything else I need to provide?

only one of my channels can be used normally

What does it look like when the other channels doesn't work?

binaryMessenger: voteVC

If you look at this line you have a warning that are ignoring, voteVC is not a binary messenger.  I recommend adding -Werror in you objective-c code.  This warning shouldn't be breaking you, but you might have other warnings.

I browsed the code and I don't see anything wrong immediately, but I also don't have a clear idea about what the error is.  I recommend creating a minimal reproduction for this error so we can execute it and see all the code =)

@gaaclarke
I wrote a demo and found that it can be used normally. It may be caused by some configuration in the previous iOS project. I will study it again.


fix path escaping in url

Dear maintainers,
we have folders that have + char in their name. For such folder links to our git repo didn't work.
This seem to fix the issue,
Cheers,
Tomas

@googlebot I signed it!

@googlebot I fixed it.


feature request: thread start/exit callbacks

Some programs require (1) the ability to initialize per-thread resources whenever a new thread starts executing, and (2) the ability to clean up resources just before the thread exits. For example, performance monitoring tools relying on code instrumentation often initialize per-thread counters on thread start-up and flush them to an output device just before the thread exits.
In libuv there appear to be 3 ways threads can be created:

The user directly calls uv_thread_create.
The thread pool creates a number of worker threads in response to various libuv work scheduling requests (e.g., fs jobs, DNS address lookups).
On OSX, uv__stream_try_select can create a new thread.

In only the first case can the user control the initialization and clean-up of per-thread resources. In the remaining two cases, it's impossible because there is no direct call into the user's code when the thread starts or exits.
To remedy this, I'd like to propose two new libuv APIs:

One to set an optional callback to be called from within a new thread right after it begins executing.
One to set an optional callback to be called from within a thread right before it exits.

I've created a branch with the proposed change. See https://github.com/beevik/libuv/releases/tag/thread-cb for the first draft.  If you think this is a change worth considering for inclusion in libuv, let me know and I'll make a pull request out of it.
It's possible I missed a way to do this within the current libuv API, so please let me know if that's the case.

What programs do require doing that exactly? Also what is it that needs to be initialized / cleaned up?
Also note that on Windows we use some of Windows's internal thread pools, which we have no control of.

You can get an idea when stuff is being executed, measure how long it takes.

This came up in our project (the one that required the ability to customize the memory allocator).  We have a memory and resource tracing system that tracks the resources allocated and freed by each thread. At thread startup, we initialize a thread-local pointer to a trace context. As memory is allocated and freed within a thread, we update the thread's trace context. When the thread exits, we flush data from the thread-local context to external storage (network or disk).
The reason this works for us is because our threading model assumes we fully manage all worker and helper threads. Unfortunately, because libuv spawns threads without making our code aware of it, any resource allocation performed within these threads becomes invisible to our tracing system.
The fact that libuv uses Windows thread pools does seem to present a fatal flaw to my proposal. I'm going to need to think further about this and reconsider whether we can use libuv.

After looking at the code a bit further, it appears libuv uses the Windows threadpool for pipe I/O, "slow" polling, and tty reading. On the other hand, it uses its own worker threadpool for file operations and DNS.  Is there any reason why pipes, tty and polling use the Windows threadpool instead of the libuv one?
There appear to be several different threading models being by different libuv subsystems, although I'm not familiar enough with the code to understand why.

The reason this works for us is because our threading model assumes we fully manage all worker and helper threads. Unfortunately, because libuv spawns threads without making our code aware of it, any resource allocation performed within these threads becomes invisible to our tracing system.

I want to move to a system where the embedder can plug in a thread pool that's under full control of the embedder (io.js needs it do proper workload management between libuv and V8.)  I think that would solve your issue?

I want to move to a system where the embedder can plug in a thread pool that's under
full control of the embedder (io.js needs it do proper workload management between
libuv and V8.) I think that would solve your issue?

I think it would, assuming all the places in libuv that create helper threads also switch to using this thread pool.  (If I recall correctly, there is at least one place in the code where a one-off helper thread is created but is not part of any thread pool.)

You mean the OS X select() thread?  I don't think that would be part of it because what it does is not unit-of-work based.  It's not really amenable to handing off to a thread pool because it would just hog a thread and never let go.  I don't think you'd have to care about what it does though because it's completely internal to libuv.

I don't think you'd have to care about what it does though because it's completely internal to libuv.

That's probably true for most, but our use case entails overriding the memory allocator. So if the long-lived thread function calls uv__malloc and we are trying to associate those allocations with their threads, it might still be a problem for us.

Mi first impression about this is that it sounds too much like a corner case to make it into the library.
You would be able to roll your own threadpool which does whatever when threads are spawned by libuv (or not), see https://github.com/libuv/leps/pull/4, but the select thread is internal to libuv so I don't see a really good reason to make internal threads visible like that. There is also the fact that Windows uses those Windows-y builtin thread pools.
Would it be possible for you to check if the TLS block was created in your uv__malloc replacement function? Or even go The Hard Way (R) and use LD_PRELOAD perhaps?

I also previously considered the lazy uv__malloc initialization solution, but that would be only half of the solution.  We'd still need a way to know when the thread exited to clean up any allocated resources.  To get around this, perhaps we could add some sort of thread-safe garbage collection mechanism, but then things are starting to get quite complicated.
The LD_PRELOAD idea is interesting, but not cross-platform, which our project is.


ODBC connection is not working with .NetCore 3.0 and 3.1

Issue Title
ODBC connection is not working with .NetCore 3.0 and 3.1
General
Getting below error with >net core 3.0 and 3.1 version working with Net Core 2.0
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Can you please provide some code demonstrating the issue?


buffered logs & log level

This PR add one new field to ElectrsD:

logs: an mpsc::Receiver<String> into wich the electrs logs are redirected if Conf.buffered_logs is set to true.

and add 2 new fields to the Conf struct:

log_level: specify the log level to be passed to electrs (log::Level::Info as default)
buffered_logs: option to enable redirecting electrs stdout/stderr  to ElectrsD.logs.

Note: the log crate is also reexported in order the consumer can use log::Level enum

Note: args for passing the log level seems to be different ont mempool implementation (maybe also esplora?), i need figure it out


Sensor energy

it is possible to see the "total consumption" sensor and convert everything into kwh

You can use a HomeAssistant compnent, "Integration - Riemann sum integral" see  this component use the meross energy sensor and calculate the KWH consumed:
see my example, in this case, sensor.meross_presa1_lavatrice_power is the power provided by the meross lan integration. and
Consumo_Presa_1_Kwh is the caluleted energy in KWH, used to sum the daily, week , month .... energy.

platform: integration
source: sensor.meross_presa1_lavatrice_power
name: Consumo_Presa_1_Kwh
method: trapezoidal
unit_prefix: k
round: 2

and you can use a "utility meter" see  to have the total energy by day, week, month etc:
see my example:
presa_1_daily_energy:
source: sensor.consumo_presa_1_Kwh
cycle: daily
presa_1_weekly_energy:
source: sensor.consumo_presa_1_Kwh
cycle: weekly
presa_1_monthly_energy:
source: sensor.consumo_presa_1_Kwh
cycle: monthly
presa_1_quarterly_energy:
source: sensor.consumo_presa_1_Kwh
cycle: quarterly
presa_1_yearly_energy:
source: sensor.consumo_presa_1_Kwh
cycle: yearly

I know this solution for convert and utility meter, but on the app meross i can see all consumation without reset value (utility meter max 1 year). it is possible to take that data that it generates on the application?

If you add the utility meter to the energy panel HomeAssitant store the data and you can see for example the last year.
In my case is not complete the year, I added the Meross device on october 2021.

Hello @manustars ,
The plug itself (when queried by meross_lan or the app for the matter) usually reports the last 30 days (1 month) worth of data so these 'year long' sonsumption data are likely saved on the meross cloud (Just guessing since I'm not using the plugs with meross cloud and I can't check)
In meross_lan I only take care of the current day reading  since it would be a bit awful to expose a sensor for every past day of energy consumption (this is the only way the data could be carried on in HA: 1 entity for every reading). It might be possible though to add the past days readings as attributes to a single sensor entity and then you could use HA templates to extract these info but..as @F74 pointed out....
You can leverage the 'Energy dashboard' in HA to track life-long statistics of any of your devices (or sensors generally reporting energy usage) and this very easy, powerful, and complete.
In the dashboard you could then query over past periods and compare you energy usage. Also, the unit would then be converted to kWh automatically and without any 'conversion pain'
This points me to your first question: have the sensor reading in kWh.
Changing the unit in meross_lan code (even if possible and easily implemented) would 'invalidate' previous sensor readings in HA db since this is how HA works: sensor values are 'numerically' saved in history. The unit is a 'property' of the sensor and is not saved to the db. Should meross_lan allow you to change the unit, the new readings would be saved 'numerically' in the history log and you'll see a change of scale in the underlying data with no way to manage this (i.e. you'll see previous Wh saved in the history now shown as kWh but without proper conversion: for example 1000 Wh yesterday would be shown as 1000 kWh)
Thats why I 'should say' : no it is not possible to change the energy reading to kWh.
In order to manage unit conversions we'll have to wait the HA team to (likely) implement this for energy sensors (they've already implemented unit conversions for temperatures so this could be on the todo list for the main team)
Also, the energy dashboard already gives you a powerful tool to manage energy readings.
Also, if you really need the sensor to have (and show in your UI) kWh you could still implement a template sensor in HA using the original Wh form the meross_lan sensor and use that sensor instead for your UI

thank you very much and congratulations for the work you do


dart compile exe fails on armv7 build within Docker buildx si_signo=Illegal instruction(4), si_code=2, si_addr=0x3ed8a1c8

When building a trivial application (dartshowplatform) within a docker container using docker buildx for multi platform support the armv7 version fails with si_signo=Illegal instruction(4), si_code=2, si_addr=0x3ed8a1c8:
#24 [linux/arm/v7 build 4/4] RUN dart compile exe /app/showplatform.dart -o /app/dartshowplatform
#24 6.169
#24 6.169 ===== CRASH =====
#24 6.169 si_signo=Illegal instruction(4), si_code=2, si_addr=0x3ed8a1c8
#24 6.242 Error: AOT compilation failed
#24 6.244 Generating AOT kernel dill failed!
#24 ERROR: process "/bin/sh -c dart compile exe /app/showplatform.dart -o /app/dartshowplatform" did not complete successfully: exit code: 64

The full build logs that the snippet is taken from are available.
The same error appeared on two repeated runs.
The failure doesn't occur when building on armv7 hardware such as a Raspberry Pi 4 model B running 32bit Raspberry Pi OS (which presents as armv7l with uname -m and armhf with dpkg --print-architecture)
This seems like a slide back to the issues identified by @abasty at https://github.com/dart-lang/dart-docker/issues/11#issuecomment-867901079 which got fixed, as armv7 builds have been working inside Docker buildx since Nov 2021
I don't know whether the problem was introduced with 3.2.0 or 3.2.2, as the former was never tested in this way due to https://github.com/dart-lang/site-www/issues/5355
The last known working version was 3.1.5

Dart version and tooling diagnostic info (dart info)

#### General info

- Dart 3.2.2 (stable) (Tue Nov 28 11:22:54 2023 +0000) on "linux_arm"
- on linux / Linux 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022
- locale is en_GB.UTF-8

Whether you are using Windows, macOS, or Linux (if applicable)

Linux

Whether you are using Chrome, Safari, Firefox, Edge (if applicable)

NA

//cc @bkonyi

@bkonyi thanks for the suggestion. The good news is that it seemed to still work on armv7 hardware. Sadly the bad news is that it doesn't help with the QEMU environment of docker buildx:
#22 [linux/arm/v7 build 4/4] RUN dart compile exe --extra-gen-snapshot-options=--target_unknown_cpu   /app/showplatform.dart -o /app/dartshowplatform
#22 5.692
#22 5.692 ===== CRASH =====
#22 5.692 si_signo=Illegal instruction(4), si_code=2, si_addr=0x3ed8a1c8
#22 5.736 Error: AOT compilation failed
#22 5.737 Generating AOT kernel dill failed!
#22 ERROR: process "/bin/sh -c dart compile exe --extra-gen-snapshot-options=--target_unknown_cpu   /app/showplatform.dart -o /app/dartshowplatform" did not complete successfully: exit code: 64

Oh, I missed that it's the compilation step itself, not the output. The thing that changed that triggered this would be the front-end snapshots switching to AOT. We'll need to fix the SDK build too.

https://dart-review.googlesource.com/c/sdk/+/339104

Closing this here, the cherry pick progress will be tracked in https://github.com/dart-lang/sdk/issues/54215


Responsive Web Design: Added information in index.md

Added information in index.md

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

This PR adds text which comes directly from an article named Responsive web design on Wikipedia.  We do not allow direct copy/paste of text from another site.


Secure Logger Schema Setup

From @martindsouza on November 1, 2013 15:44
Create script or doc page to cover how to create a "secure" logger schema. This way if any concerns about the create any context is raised it can be locked down
Example:

-- This script will not preserve existing logs. If so it can be updated to do so

-- Assumptions:
-- Schame Names
--  - Current schema is called MYSCHEMA and new "logger" schema will be MYSCHEMA_LOGGER
--  - Change accordingly.
-- Directory
--  - Current directory is the logger install directory

-- *** As SYSTEM ***
-- TODO change tablespace, quota, etc accordingly
-- TODO use the create user schema script
create user MYSCHEMA_LOGGER identified by MYSCHEMA default tablespace users quota unlimited on users;
grant connect,create view, create job, create table, create sequence, create trigger, create procedure, create any context to MYSCHEMA_LOGGER;

-- *** As MYSCHEMA_LOGGER ***
@logger_install.sql

grant execute on logger to MYSCHEMA;
grant select, delete on logger_logs to MYSCHEMA;
grant select on logger_logs_apex_items to MYSCHEMA;
grant select, update on logger_prefs to MYSCHEMA;
grant select on logger_prefs_by_client_id to MYSCHEMA;
grant select on logger_logs_5_min to MYSCHEMA;
grant select on logger_logs_60_min to MYSCHEMA;
grant select on logger_logs_terse to MYSCHEMA;

-- *** As MYSCHEMA ***
-- Uninstall Logger (this will create some invalid packages for those that currently reference it)
@drop_logger.sql

-- Create synonyms
create or replace synonym logger for MYSCHEMA_LOGGER.logger;
create or replace synonym logger_logs for MYSCHEMA_LOGGER.logger_logs;
create or replace synonym logger_logs_apex_items for MYSCHEMA_LOGGER.logger_logs_apex_items;
create or replace synonym logger_prefs for MYSCHEMA_LOGGER.logger_prefs;
create or replace synonym logger_prefs_by_client_id for MYSCHEMA_LOGGER.logger_prefs_by_client_id;
create or replace synonym logger_logs_5_min for MYSCHEMA_LOGGER.logger_logs_5_min;
create or replace synonym logger_logs_60_min for MYSCHEMA_LOGGER.logger_logs_60_min;
create or replace synonym logger_logs_terse for MYSCHEMA_LOGGER.logger_logs_terse;

-- TODO may need to recompile invalid objects
-- If so can use: exec dbms_utility.compile_schema(schema => user,  compile_all => false);

-- *** As SYSTEM ***
alter user MYSCHEMA_LOGGER account lock;
-- Note: account will need to be unlocked when doing upgrades to logger

Copied from original issue: tmuth/Logger---A-PL-SQL-Logging-Utility#56

Part of this was covered in #108


Added trailing commas to arrays, dictionaries

Those commas look comma-riffic. That was some time well spent. Make sure to update the guidelines in the wiki, too.


Battery percentage not rounded up

Describe the bug
On the status bar, the battery percentage is displayed as a very long float, like %99.75837836523756.
To Reproduce
Steps to reproduce the behavior: Have battery, use AGS.
Expected behavior
The battery amount rounded up to two decimals after float, like 99.75%.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Distribution: Arch Linux
Window Manager/Desktop Environment: Hyprland

Additional context
Using Thinkpad T480 with dual batteries.

Well that's not good, lol. I'll fix this in the morning.

Thank you!


Problem with unshelve changes

I've just tried to unshelve changes. I've got multiple messages "XXX formatted successfully by Eclipse code formatter", always on the same files and the IDE becomes very sluggish.
I end up by restarting the IDE which was becoming unusable.
This happens only since I've upgraded to the latest version.

Cannot reproduce it, nothing is formatted when I unshelve things.

hum ok I try to find a test case to reproduce.

https://github.com/krasa/EclipseCodeFormatter/issues/95#issuecomment-219024998


Fix Craftful

undefined keys in cobweb

should close #16 (and probably open a new one)

Invalid json, forgot cama.
https://github.com/GirlInPurple/finalrepublic/pull/17/commits/4e8bea78d888839a5063bbaf020bd3a362b6ca36
Invalid Json,
https://github.com/GirlInPurple/finalrepublic/pull/17/commits/d3e974f888d52aa20f26af1cbce8c85793de64cf


Cleanup DLP Metadata and Jobs snippets

Working towards #1479
Also updated integration tests.

Hmm looks like testDeleteJobs and testListJobs are both failing with null pointers. Any idea why this might be?

Hmm looks like testDeleteJobs and testListJobs are both failing with null pointers. Any idea why this might be?

Took me a sec to figure this one out since they were passing locally for me. You need to set a GCS_PATH env variable that links to where you upload the test.txt file. checkRequirements() should have caught that and printed out an error message, but it didn't run before 'setUp()' did.  I updated CheckRequirements to use the @BeforeClass tag instead

Sort of on a related note: is there a Java way of making something like a config.py or a .env so we don't have to manually set so many env variables?

Looks like a few tests are failing yet - can you take a look?

Forcing merge - failing tests are still being tracked in #1479