Example code for intermixing namespaces an exports?

Just for the sake of spreading knowledge:
What are valid combinations/permutations of namespace, module and export?
For instance: I don't seem to be able to export something from within a namespace.
I apprehend it's discouraged to do so. Yet my question is solely aiming at getting a comprehensive declaration of the TypeScript language syntax of how the above three keyboards can be intermingled in flat code, modules and ambient modules.

You can find more information about module, import and export at: https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Modules.md
and you can find more information about namespace at: https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Namespaces.md
Give these pages a look and let us know if you still have unanswered questions.

Nope. If that was the case than I wouldn't have asked. Can you get clear on the passages answering above questions?
You are closing issues to quickly for my liking. Please re-open.

Can you be more specific?

and in general, StackOverFlow / gitter chat room would be a good place for questions. this repo should be for compiler/language issues.

Yes, I agree with you. Yet I didn't ever get any (satisfying) TypeScript related answers on StackOverflow yet. And I can't have Gitter on all the time. It's hard to find answers there if you come back a day later. (Waiting for Gitter proposal to get implemented).
I believe that the namespace page is new to me, though. Please let me have a short revisit and I'll close right afterwards.


[Refactor] Remove unused parse and analyze code in old parser

What type of PR is this：

[ ] bug
[ ] feature
[ ] enhancement
[x] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

run starrocks_fe_unittest

run starrocks_admit_test

[FE PR Coverage Check]
:heart_eyes: pass : 0 / 0 (0%)


How can I create account using REST API?

Hi! I got a problem. I need to create account using REST API. How can I do it?

I found no way but using cleos to create account. Be aware that you should apend the option --wallet-url like --wallet-url http://localhost:8888, so the command is like:
cleos --wallet-url http://localhost:8888 create account eosio investor EOS6eTCvPqJc9MhaNdTWAWUL7raiPD8uKDrnhN9fYwsBCKMAFyUsj EOS6eTCvPqJc9MhaNdTWAWUL7raiPD8uKDrnhN9fYwsBCKMAFyUsj

It is because that command cleos and curl would use totally different wallet dir even with the same configuration file, which is ugly and cost tons of time and my splendid hair. Please fix it.
BTW, the RPC document is out of date especially for the push transaction section. See issue 2295 for details.

I can`t use cleos to integrate this case on mobile development :(

@fcsd then I wish you good luck to find the latest version of RPC document. I think they have this interface but forgot to keep the document updated.

EOS.IO RPC is not strictly REST, but see https://github.com/EOSIO/eosjs for a complete implementation of a Javascript library using EOS.IO RPC, including account creation.
Note that there were a great many changes leading up to the release, so careful attention must be paid to the version compatibility table in the README.


[1.14] Game Crashes without Logs when Opening Geolosys Field Manual

Hey there! I'm the dev of Geolosys and in 1.14 (but not 1.12), I've noticed that Blur and the Geolosys Field Manual no longer play nicely (see https://github.com/oitsjustjose/Geolosys/issues/233). I know you know what you're doing 10000% more than I do, so I imagine this is an issue with the implementation of the GUI on my side.
Any thoughts right off the top of your head?
Let me know if you need any more info that isn't in the other post.
Thanks!

What do you mean without logs? The game cannot just close without there being an exception.

No, it's pretty much without logs. The game crashes, and on my MacBook (because I'm away from my desktop) macOS reports that it's a critical java error, and the logs do not say anything. It's odd because I got it to work with the GUI once, but as soon as I re-opened it it crashed per-usual.
Logs

I've had the same thing just occur. I made a new instance, Forge 28.2.1, with Blur & Slice of Life: Carrot Edition. Running them both will crash the game when giving yourself the SOL book with /give username solcarrot:food_book 1. Right clicking to open this book crashes the game instantly without anything marked at the end of the log. It crashes so fast that it registers as a right click in my web browser, haha.
Anyways, I did fix it by adding com.cazsius.solcarrot.client.gui.FoodBookScreen to the guiExclusions list in your config, but I assume something is conflicting with some of these screen classes.

Looks like an internal bug in java's reflection libraries. In the log your java version is 1.8.0_74 which is insanely outdated. Try updating.

Pretty sure mine is AdoptOpenJDK 1.8.0_252 or some such and I still got errors, though I haven't had any log so I can't tell you much more.


Warn if a resource isn't found

This is the same action as mkdocs and reveal-md. There is also a need for an option to allow exit with an exit code in this case to halt CI/CD pipelines.

Fixed in v0.1.34


Check command for all

As a guild leader it would be nice to have the check command with "all" param to list everyone's DKP values.

I don't know if you've seen, I've implemented a section in the website that you can have that information, but I can also implement that command. Thanks again <3

uuu, awesome, didn't see the login button before, this is very good.
can the members see stuff if they log in here as well? or only the admin of discord?


Perform regex matching instead of plain string matching

In some cases, assertion on an output in serial console becomes tricky
with plain strings.
For example:
to check if a package is installed with rpmquery on centos, i am using
rpmquery -a {packagename}
The result is {packageName}-{version}-{arch}.
Assertion on packagename is ok but this might introduce a bug where
packge is not installed and output is
"package {packagename} is not installed".

the output for rpmquery -a <not-installed-package> is the empty string

the output for rpmquery -a <not-installed-package> is the empty string.
right. I cannot assert on empty string read from serial console. also, i cannot assert on "" on serial console, because this string may be gets populated as a part of execution of the startup-script that i am using to get the status of the package.

i am using rpmquery -s <not-installed-package> to confirm that the package is not installed. the output is
'package  is not installed'
the case where package is not installed, the result is pretty clear and can be programmed. It's the case where the package is installed.
rpmquery, unlike dpkgquery, does not give an explicit statement that the package is installed, instead it writes the result in  {packageName}-{version}-{arch} format.

I think it's better to add more logic to the startup script to have clearer output than introduce unneeded regex to this function. We haven't ever needed complex matching on serial output, instead all our logic is placed into the startup scripts.

I think it's better to add more logic to the startup script to have clearer output than introduce unneeded regex to this function. We haven't ever needed complex matching on serial output, instead all our logic is placed into the startup scripts.

with multiple different ways that i tried to make the startup script easy to construct and at the same time it has good readability( i can see Ryan's concern around creating the stratup script in the structure makes it look a bit messy), I have decided to move the whole startup script creation to a different location so the struct creation will be more cleaner.
Also, with multiple different options available for package-management operations, i got confused with which one to choose. Thanks to Liam, he helped me on how to  decide which one to use.
To perform a particular operation, there is a standard command and then there are bunch of other commands that can provide the same information but those are just side effects of the commands and not really intended for the particular operation.


2 versions of env_logger

Hi.
When compiling cargo-vendor I see this.
   Compiling env_logger v0.5.13
   Compiling env_logger v0.6.0

Is this intentional?
Cheers,
kekePower

I think this has since been fixed


dts: add support for a bus to have multiple types

Some upcoming buses, such as i3c, have backward compatibility with i2c.
Currently, the bus parameter only supports a single string. This will
be problematic for binding on an i3c bus which can utilize all the
existing i2c drivers and have their on-bus: i2c which won't bind to
something defined as bus: i3c.
bus: would have to be defined as a list (ex. bus: [i3c, i2c]) for
it to bind both i3c and i2c devices. This also leaves support for it to
just be defined as a string. The preference is also encoded in the list
order so if there are bindings for both i3c and i2c, it will choose i3c
as that is first in the list.
fixes #29986

You need to update the docs in dts/binding-template.yaml

will do 👍

@mbolivar Sorry, I can figure out to directly reply to the earlier comment.

It seems like gen_defines.py in particular should crash.

I have two different repos on my system. One that is synced with the upstream repo and another one that is held back a couple of versions due to dependencies. When bringing over my change I forgot the gen_defines.py file (there was also the gen_legacy_defines.py file as well, but that is no longer in the latest version), and I as was making changes to support the latest Zephyr kernel, that file got forgotten 🤦♂.  I just did a quick fix there where it just checks to see if it's a list in the str2ident function and joins them together with an underscore. This is pushed up now...

and gen_devicetree_rest.py:
https://github.com/zephyrproject-rtos/zephyr/blob/master/doc/scripts/gen_devicetree_rest.py#L368

I'm not familiar with gen_devicetree_rest.py as it appears this is newer and not in the v2.3 that I've been working in. Is there a way this can be tested with the test.dts?

I think we need a more significant API change than this, something like changing bus to buses and on_bus to on_buses in both Node and Binding. Both of these should return lists of strings, which may be empty. Then we need to update the rest of the tree to handle this.

If I understand what you are saying here correctly... It does feel dirty to have an item have two different types, list and string. It could make more sense to have it just only be a list that could possibly just have one item or be None.

m not familiar with gen_devicetree_rest.py as it appears this is newer and not in the v2.3 that I've been working in. Is there a way this can be tested with the test.dts?

No, it is what is used to generate the input .rst code for the bindings index. You can test it by building the documentation. CI for your PR is not building the documentation because the filters aren't configured properly. I sent a fix.

Where can I find more information about this?

It's mentioned in @galak 's part of this presentation; see also https://github.com/zephyrproject-rtos/zephyr/pull/33746.

I didn't respond to this at first:

If I understand what you are saying here correctly... It does feel dirty to have an item have two different types, list and string. It could make more sense to have it just only be a list that could possibly just have one item or be None.

From a typing perspective, this is not "only [...] a list".
What I am thinking is a new property with a type signature that looks something like this:
def buses(self) -> typing.List[str]:
    # ...

And similarly for on_bus -> on_buses. We need to keep using typing.List even though it is deprecated because we support Pythons older than the bleeding edge. Or maybe a typing.Set would be more accurate, actually, if order doesn't matter. I believe order does matter since it can express preferences though ("treat me like I3C, and if you can't, fall back on I2C" could be expressed with a list ['i3c', 'i2c'], but a set can't do that).
Anyway, a " list that could possibly just have one item or be None" would have a different signature:
def buses(self) -> typing.Optional[List[str]]:
    # ...

I think this is not as good. An empty list still allows more natural use of things like for bus in foo.buses without extra null checking, but it's still falsy so you can say if foo.buses: if you need to.


Vulnerability roundup 105: imagemagick-6.9.12-19: 16 advisories [9.8]

search, files

[x] CVE-2016-5841 CVSSv3=9.8 (nixos-unstable)
[x] CVE-2018-16328 CVSSv3=9.8 (nixos-unstable)
[x] CVE-2018-16329 CVSSv3=9.8 (nixos-unstable)
[x] CVE-2019-17547 CVSSv3=8.8 (nixos-unstable)
[x] CVE-2019-13136 CVSSv3=7.8 (nixos-unstable)
[x] CVE-2021-20310 CVSSv3=7.5 (nixos-unstable)
[x] CVE-2021-20311 CVSSv3=7.5 (nixos-unstable)
[x] CVE-2021-20312 CVSSv3=7.5 (nixos-unstable)
[x] CVE-2021-20313 CVSSv3=7.5 (nixos-unstable)
[x] CVE-2017-11447 CVSSv3=6.5 (nixos-unstable)
[x] CVE-2020-25663 CVSSv3=5.5 (nixos-unstable)
[x] CVE-2020-27829 CVSSv3=5.5 (nixos-unstable)
[x] CVE-2021-20243 CVSSv3=5.5 (nixos-unstable)
[x] CVE-2021-20244 CVSSv3=5.5 (nixos-unstable)
[x] CVE-2020-27768 CVSSv3=3.3 (nixos-unstable)
[x] CVE-2020-27769 CVSSv3=3.3 (nixos-unstable)

CVE details
CVE-2016-5841
Integer overflow in MagickCore/profile.c in ImageMagick before 7.0.2-1 allows remote attackers to cause a denial of service (segmentation fault) or possibly execute arbitrary code via vectors involving the offset variable.
CVE-2018-16328
In ImageMagick before 7.0.8-8, a NULL pointer dereference exists in the CheckEventLogging function in MagickCore/log.c.
CVE-2018-16329
In ImageMagick before 7.0.8-8, a NULL pointer dereference exists in the GetMagickProperty function in MagickCore/property.c.
CVE-2019-17547
In ImageMagick before 7.0.8-62, TraceBezier in MagickCore/draw.c has a use-after-free.
CVE-2019-13136
ImageMagick before 7.0.8-50 has an integer overflow vulnerability in the function TIFFSeekCustomStream in coders/tiff.c.
CVE-2021-20310
A flaw was found in ImageMagick in versions before 7.0.11, where a division by zero ConvertXYZToJzazbz() of MagickCore/colorspace.c may trigger undefined behavior via a crafted image file that is submitted by an attacker and processed by an application using ImageMagick. The highest threat from this vulnerability is to system availability.
CVE-2021-20311
A flaw was found in ImageMagick in versions before 7.0.11, where a division by zero in sRGBTransformImage() in the MagickCore/colorspace.c may trigger undefined behavior via a crafted image file that is submitted by an attacker processed by an application using ImageMagick. The highest threat from this vulnerability is to system availability.
CVE-2021-20312
A flaw was found in ImageMagick in versions 7.0.11, where an integer overflow in WriteTHUMBNAILImage of coders/thumbnail.c may trigger undefined behavior via a crafted image file that is submitted by an attacker and processed by an application using ImageMagick. The highest threat from this vulnerability is to system availability.
CVE-2021-20313
A flaw was found in ImageMagick in versions before 7.0.11. A potential cipher leak when the calculate signatures in TransformSignature is possible. The highest threat from this vulnerability is to data confidentiality.
CVE-2017-11447
The ReadSCREENSHOTImage function in coders/screenshot.c in ImageMagick before 7.0.6-1 has memory leaks, causing denial of service.
CVE-2020-25663
A call to ConformPixelInfo() in the SetImageAlphaChannel() routine of /MagickCore/channel.c caused a subsequent heap-use-after-free or heap-buffer-overflow READ when GetPixelRed() or GetPixelBlue() was called. This could occur if an attacker is able to submit a malicious image file to be processed by ImageMagick and could lead to denial of service. It likely would not lead to anything further because the memory is used as pixel data and not e.g. a function pointer. This flaw affects ImageMagick versions prior to 7.0.9-0.
CVE-2020-27829
A heap based buffer overflow in coders/tiff.c may result in program crash and denial of service in ImageMagick before 7.0.10-45.
CVE-2021-20243
A flaw was found in ImageMagick in MagickCore/resize.c. An attacker who submits a crafted file that is processed by ImageMagick could trigger undefined behavior in the form of math division by zero. The highest threat from this vulnerability is to system availability.
CVE-2021-20244
A flaw was found in ImageMagick in MagickCore/visual-effects.c. An attacker who submits a crafted file that is processed by ImageMagick could trigger undefined behavior in the form of math division by zero. The highest threat from this vulnerability is to system availability.
CVE-2020-27768
In ImageMagick, there is an outside the range of representable values of type 'unsigned int' at MagickCore/quantum-private.h. This flaw affects ImageMagick versions prior to 7.0.9-0.
CVE-2020-27769
In ImageMagick versions before 7.0.9-0, there are outside the range of representable values of type 'float' at MagickCore/quantize.c.

Scanned versions: nixos-unstable: 4138cbd913f.
Cc @erictapen

See also: #132129

All CVE's were already handled in https://github.com/NixOS/nixpkgs/issues/124642.


Update BOM.md with RC Chassis Clips

The Wltoys RC car comes with only two clips, but you need four.

Thanks Michael!


Demo App Endpoint

Added /slow endpoint to the demo example. /hello returned 404

Coverage remained the same at 100.0% when pulling a7234d649552079a4a0a7a7984b88939d29a1ea1 on demo-app-edits into 73b9cefd00951f329a07cc9c5d39f317e5bb0f24 on master.


Fix typo

Codecov Report

Merging #820 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #820   +/-   ##
=======================================
  Coverage   90.09%   90.09%
=======================================
  Files          81       81
  Lines       11327    11327
  Branches     1192     1192
=======================================
  Hits        10205    10205
  Misses        982      982
  Partials      140      140

Impacted Files
Coverage Δ

coverage/data.py
30.44% <ø> (ø)
:arrow_up:

coverage/control.py
88.45% <ø> (ø)
:arrow_up:

coverage/sqldata.py
92.74% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


New package: GG v0.1.0

Registering package: GG
Repository: https://github.com/thautwarm/GG.jl
Created by: @thautwarm
Version: v0.1.0
Commit: 0d080aafce05da5f0b56bcb15337da56985d0340
Reviewed by: @thautwarm
Reference: https://github.com/thautwarm/GG.jl/commit/0d080aafce05da5f0b56bcb15337da56985d0340#commitcomment-35008952

I think that name is too generic and non descriptive. I think it would be great if the name could be changed to something that gives an idea what the package might be about.

GG is short for generalised generated.
Have you checked what the package is for? IMO it's this generic.

@thautwarm I agree it's very general. OTOH, I can see the argument that libraries to be used as dependencies by other libraries can benefit from a name that indicates the capability. And less altruistically, I'm very eager to get this through so I can start building on it :)
What do you think of GeneralizedGenerated.jl?

I think a good name would give me some indication what the package might be about. With GG I have absolutely no clue. Why not go with GeneralizedGeneratedFunctions.jl or something like that? The moment I read that, I have a clear idea what it is about. And I assume this package won't be used much at the REPL, so a long package name also doesn't seem like a problem?

In fact, this project name comes with a pun...
@cscherrer  Can you change the name of this repo? I'm now busy with other stuffs.

In fact, this project name comes with a pun...

The @gg macro still has good game :)

Can you ~change the name of this repo~ update the repo for this PR? I'm now busy with other stuffs.

Think I have permissions to do this, but I'm not sure about the procedure. I'll figure it out or ask around


Allow drag drop columns from serverExplorer table columns folder to query editor

SQL Operations Studio Version: 0.23.6

Steps to Reproduce:
Allow drag drop columns from serverExplorer table columns folder to query editor.  Dragging the 'columns' folder listed under a database table to the query editor will drop a comma delimited list of columns.   This is very useful for example when you want to select all columns except a few, and not having to write out each column name.

dupe #1295


#139 - added EthToWei conversion

As per #139

added an EthToWei to be able to convert a whole eth amount to a wei amount

Job #140 is now in scope, role is REV

Codecov Report

Merging #140 into develop will decrease coverage by 0.16%.
The diff coverage is 52.77%.

@@             Coverage Diff             @@
##           develop     #140      +/-   ##
===========================================
- Coverage    96.62%   96.46%   -0.17%
===========================================
  Files          296      298       +2
  Lines         9779     9815      +36
===========================================
+ Hits          9449     9468      +19
- Misses         330      347      +17

Impacted Files
Coverage Δ

Example/Tests/NumberScalar/EthToWeiTests.swift
100% <100%> (ø)

Web3Swift/NumberScalar/EthToWei.swift
32% <32%> (ø)

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 59e8bbd...c690e9c. Read the comment docs.

I think it might be a good idea to add si prefixes

We also need a DoubleScalar such that you could create EthToWei(amount: 1.1)

Lets do this one later


Fix for CUDA Toolkit packages containing incorrect RPATH

Introduction
We recently became aware of an issue in the cuda-nvtx-feedstock where the RPATHs in the libraries in the package were incorrect ( https://github.com/conda-forge/cuda-nvtx-feedstock/issues/2 ). These incorrect RPATHs are the result of the directory layout used for CUDA packages. All distributions of CUDA place their contents in a top-level targets directory with various subdirectories for different architectures to better support cross-compilation. The CUDA packages on conda-forge mimic this structure, but to support standard runtime library use cases, the library contents of CUDA packages are symlinked into the top-level lib directory. The problem is that due to how $ORIGIN is handled for symlinks, the RPATHs are set relative to the true library location at build time, but at runtime $ORIGIN is the location of the symlink rather than the true library location, and as a result at runtime the RPATHs result in package searches outside of the environment.
We would like to maintain the targets layout because it matches how CUDA is provided in other distributions. This also means we want to keep the real libraries in the targets directory rather than placing them directly in lib. We would also like to avoid ballooning the package size or adding any RPATHs that point outside the environment since that is broken at best and dangerous at worst. To satisfy all of these constraints, our proposed solution is to manually set the RPATH to $ORIGIN with patchelf during the conda package build step on all the libraries in the targets directory. At runtime, the RPATH setting of $ORIGIN will resolve to $PREFIX/lib, producing the desired behavior. There are some potential caveats to how this may work within the context of conda-build, as we discuss below, but we have verified that this produces the desired runtime results.
Problem Statement

The CTK packages are structured to have a runtime package and a -dev package.

Example: cuda-nvtx-dev & cuda-nvtx. The runtime package, cuda-nvtx, contains the libraries.
The -dev package has a dependency on the runtime package so that these libraries are available at build time.

Library files are in paths like $PREFIX/targets/<arch>/*.so*.

These are used to link against at build time.
This is the preferred location, because it communicates that we have a cross-compiler-friendly library location and matches CUDA packages in other distribution forms.

Library files are symlinked into $PREFIX/lib/*.so*
Conda-build detects the .so files in the deeper folder, $PREFIX/targets/<arch>/lib.

It sets the RPATH to be $ORIGIN/../../../lib.

At runtime, the symlink is found in $PREFIX/lib.

The library at $PREFIX/targets/<arch>/lib is loaded.
Its RPATH is $ORIGIN/../../../lib
$ORIGIN is considered to be $PREFIX/lib
Due to this, the library search path goes outside of the environment.

This can result in a functioning environment, if either:

The environment is not the base environment
The environment is contained within the base environment’s envs folder
The base environment contains compatible libraries

Or:

The compatible libraries are accessible via LD_LIBRARY_PATH or standard ld.so search paths.

If either of those cases are not met, the environment will not be functional.
Our Solution

Keep existing file locations and symlink direction

Actual library files in targets/…/lib
Symlink in lib for each CUDA library that points to the library in ../targets/<arch>/…

Use patchelf to set RPATH to $ORIGIN for libraries $PREFIX/targets/<arch>/*.so*
Set build: binary_relocation: false so that conda-build doesn’t otherwise change the RPATHs of these libraries
At runtime, loading libraries from their symlinks in $PREFIX/lib will look for libraries adjacent to the symlink in $PREFIX/lib.

This is key to the NVIDIA libraries loading Conda’slibstdc++, instead of the system libstdc++.
This relies on the assumption that libraries are never loaded at runtime from that targets/…/lib folder.
The only functional runtime approach is to load them from $PREFIX/lib.

Conda-build’s missing DSO detection needs to be disabled by setting error_overlinking to false

Justification
This approach aligns more closely with how the CUDA Toolkit is distributed outside of conda than the alternatives we considered below. It also avoids unnecessarily bloating the package.
Considered Alternatives
Reverse symlink direction

This was originally proposed by @isuruf in https://github.com/conda-forge/cuda-nvtx-feedstock/pull/3
Instead of having the library files reside in targets/…/lib, the actual library file would be placed in $PREFIX/lib, and the symlink would be created in the targets/…/lib folder
Conda-build will detect the library’s location, and set RPATH to $ORIGIN/../lib
Loading the library from the targets/…/lib folder is broken, similar to the proposed solution. Library can only be loaded correctly from the $PREFIX/lib location.
Conda-build’s missing DSO detection should work correctly under this scheme.

Comments
This approach would result in a different CUDA Toolkit layout in Conda compared to other distributions. Alignment across CUDA Toolkit distributions is important for libraries using CUDA to have similar expectations and behaviors both inside and outside of conda environments.
Duplicating library in both locations

Instead of symlinking, the library files would be contained in both the *-dev and the runtime packages. It would exist in the targets/…/lib location in the *-dev package, and in $PREFIX/lib in the runtime package.
Conda-build would detect and correctly set RPATH in both instances.

The library in the *-dev package would have an RPATH of $ORIGIN/../../../lib, which evaluates to $PREFIX/lib. Loading of sibling libraries in the targets folder would rely on fallback to RUNPATH, which is $ORIGIN.
The library in the runtime package would have an RPATH of $ORIGIN/../lib, which again evaluates to $PREFIX/lib. Sibling libraries are present in this same folder in this package, so the fallback to RUNPATH doesn’t come into play.

Conda-build’s missing DSO detection should work correctly under this scheme.

Comments
The cuda metapackage makes the assumption that both build-time and run-time components are provided. Because we duplicate libraries in these packages between the -devel and runtime packages, the effective size of the cuda metapackage would be roughly doubled. This is prohibitive. Additionally, having -dev and -runtime variants of a metapackage is not favorable, because it would differ from other ways of distributing CUDA.

Reopening to look at bin where it appears similar work may be needed

cc @billysuh7 (to look at doing the same thing for binaries in a couple weeks)

Billy looked through the feedstocks and found the following ones still need RPATH fixes:

[ ] cuda-cuobjdump
[ ] cuda-cuxxfilt
[ ] cuda-gdb
[ ] cuda-nvcc-impl
[ ] cuda-nvdisasm
[ ] cuda-nvml-dev
[ ] cuda-nvprune
[ ] cuda-nvvp
[ ] cuda-opencl
[ ] cuda-sanitizer-api
[ ] gds-tools
[ ] nsight-compute

nsight-compute may not require any action. All the 'not found' warnings are against 32-bit ELF DSO files which are false positives. See bug https://github.com/conda-forge/nsight-compute-feedstock/issues/33

With Billy's help, we have gone through and fixed the RPATHs of the executables. Closing this as resolved


SAFDnet waymo dataset  ./dist_test.sh xxx.yaml 8 output/ckpt/xxx.pth  return: data/waymo/compute_detection_metrics_main: not found

After training with the Waymo dataset, running the command ./dist_test.sh xxx.yaml 8 output/ckpt/xxx.pth ends with the error message: /bin/sh: 1: data/waymo/compute_detection_metrics_main: not found.

I manually processed the inference results of the validation set from my model and the ground truth of the validation set from Waymo. I successfully ran them through the Waymo evaluation tool.

I manually processed the inference results of the validation set from my model and the ground truth of the validation set from Waymo. I successfully ran them through the Waymo evaluation tool.

You have done a good job! We will upload the executable file for evaluation later. The data/waymo/compute_detection_metrics_main: not found. is a faster evaluation method.

Jun 14, 2024

Hello, I am having the same problem, how can I use waymo evaluation tools for performance evaluation? Thanks a lot!

Jun 14, 2024

Hello, I am having the same problem, how can I use waymo evaluation tools for performance evaluation? Thanks a lot!

Download here
compute_detection_metrics_main
gt.bin

Jun 14, 2024

Hello, I am having the same problem, how can I use waymo evaluation tools for performance evaluation? Thanks a lot!

Download here compute_detection_metrics_main gt.bin

Thanks for the reply! I place these two files in the folder 'data/waymo', but I got another error:'Command 'data/waymo/compute_detection_metrics_main /root/tf-logs/HEDNet-main/tools/scripts/output/eval/epoch_24/val/default/result.bin data/waymo/gt.bin' returned non-zero exit status 127.', I cannot solve this, can you help me? Thanks a lot!

Jun 14, 2024

Hello, I am having the same problem, how can I use waymo evaluation tools for performance evaluation? Thanks a lot!

Download here compute_detection_metrics_main gt.bin

Thanks for the reply! I place these two files in the folder 'data/waymo', but I got another error:'Command 'data/waymo/compute_detection_metrics_main /root/tf-logs/HEDNet-main/tools/scripts/output/eval/epoch_24/val/default/result.bin data/waymo/gt.bin' returned non-zero exit status 127.', I cannot solve this, can you help me? Thanks a lot!

em, did you use a linux platform? Maybe, you can send me your WeChat via email for more details.

Jun 14, 2024

Hello, I am having the same problem, how can I use waymo evaluation tools for performance evaluation? Thanks a lot!

Download here compute_detection_metrics_main gt.bin

Thanks for the reply! I place these two files in the folder 'data/waymo', but I got another error:'Command 'data/waymo/compute_detection_metrics_main /root/tf-logs/HEDNet-main/tools/scripts/output/eval/epoch_24/val/default/result.bin data/waymo/gt.bin' returned non-zero exit status 127.', I cannot solve this, can you help me? Thanks a lot!

em, did you use a linux platform? Maybe, you can send me your WeChat via email for more details.

Thanks a lot! I have send my WeChat via email.


loop reactor with dynamic mixers missing

loop_reactor_Disk_mixer_source does not run

There seems to be missing mesh details + dynamic mixers needs to be set up differently with OF9.
After modifs I can run the case on Docker.
I'll test the dynamic mixers on HPC. if this work ok, I'll push modifs and close the issue


[feat] Support for podman

Is your feature request related to a problem? Please describe.
On my Fedora box with podman installed I'm unable to use FaaS. I've been using podman happily for more than a year without any trouble. I can do all kinds of stuff with podman and I have never been forced to have docker installed. I would like to use faas without hasle and security pitfalls of having Docker daemon running.

Describe the solution you'd like
FaaS should call out to OS installed OCI tool like podman. Things will even work if faas would just call docker ... process as there is a podman-docker package on Fedora.
Also, there is an option to vendor https://github.com/containers/image (this one is used by buildah, podman, and skopeo, and have most of the needed code) and use it to build images without any external tool being installed.
Describe alternatives you've considered
I need to run a VM with Docker installed to use faas, because of this. I can't install Docker and Podman on the same machine because of cgroups v2 incompatibility.

This depends on https://github.com/boson-project/func/issues/179

@cardil I've chosen path of using podman as a docker deamon: podman system service.
User can do:
$ podman system service --time=0 tcp:<IP_ADDRESS>:1234 & # let run in background or another terminal
$ export DOCKER_HOST=tcp://<IP_ADDRESS>:1234
$ func build -v

@cardil
That was bad example from me, you don't have to run tcp:<IP_ADDRESS>:1234 it would work with tcp:<IP_ADDRESS>:1234 too.
Also the Unix socket works, but you need to setup proper policy (or disable labeling for containers) when using SELinux.
We are looking into it; see https://github.com/containers/podman/discussions/9860.
Golang libpod binding library is not deamon less. It's just a REST client and it requires podman deamon running on the machine.

We are using buildpack's pack to build function; it uses Docker APIv2. Reimplementing pack would be a lot of work.

Also this approach made pack CLI usable with podman which is beneficial also people outside boson's func.

tcp:<IP_ADDRESS>:1234 is as vulnerable on server environments as tcp:<IP_ADDRESS>:1234. Even on more standard single user machine tcp:<IP_ADDRESS>:1234 opens up a way for malicious code to attack a user.

tcp:<IP_ADDRESS>:1234 is as vulnerable on server environments as tcp:<IP_ADDRESS>:1234. Even on more standard single user machine tcp:<IP_ADDRESS>:1234 opens up a way for malicious code to attack a user.

@cardil then Unix socket it is. We just have to prepare SELinux policies or disable labeling of build containers.

@cardil to explain a little the issue with SELinux:
The pack runs build in a container, the container needs a way to push resulting image to local repository. That's why it mount's the socket. By default it's forbidden since mounting socket is potential security risk (especially if daemon runs as the root).
There is one more way around mounting: not to push to local repository, but push to remote container registry. One disadvantage is that you need to push it to remote and then pull it back.

@matejvasek I think this issue has been resolved, correct? Can it be closed now?

as of podman 3+ is should work.

I got podman 3.1.2, and  it still has some problems:
$ systemctl status --user podman.socket
● podman.socket - Podman API Socket
     Loaded: loaded (/usr/lib/systemd/user/podman.socket; disabled; vendor preset: disabled)
     Active: active (listening) since Tue 2021-06-15 21:14:35 CEST; 16s ago
   Triggers: ● podman.service
       Docs: man:podman-system-service(1)
     Listen: /run/user/1000/podman/podman.sock (Stream)
     CGroup<EMAIL_ADDRESS>
Jun 15 21:14:35 thinkpad-t590 systemd[3381]: Listening on Podman API Socket.

$ export DOCKER_HOST=unix://${XDG_RUNTIME_DIR}/podman/podman.sock
$ kn func build --verbose
A registry for function images is required (e.g. 'quay.io/boson').

 This may be the result of using an untrusted builder: failed with status code: 1

@matejvasek As Dan pointed out, adding --security-opt label=disabled should help this, right?
But, that needs to be added via REST, not as a CLI option. Am I right?

Podman extends the Docker API a bit. So, I think it might be possible to detect if given endpoint is podman 3+ and use this API to add that security-opt to analyzer container: https://docs.podman.io/en/latest/_static/api.html#operation/ContainerCreateLibpod

Although, the code below uses build pack client:
https://github.com/boson-project/func/blob/a937c490b7e1ad31c3596f91c310c3f4560329fd/buildpacks/builder.go#L65-L91
That means a proper handling of this label=disabled security opt should land on https://github.com/buildpacks/pack project first...

Lol. I've just dig out your commit there, that added the DockerHost opt: https://github.com/buildpacks/pack/commit/be9b1b9c6f7d8cffff18b3dd9a9c7b7e9caa173f
So, my proposal. Extend https://github.com/buildpacks/pack once more, so that it will properly handle the podman socket, by adding label=disabled security opt to containers that mount the docker socket. I'll create such issue in https://github.com/buildpacks/pack project.

@matejvasek As Dan pointed out, adding --security-opt label=disabled should help this, right?

Yeah if I recall correctly it does help.

--security-opt is valid docker flag (it's not podman specific) maybe we could add the flag for pack.
Another solution/workaround would be use containers.conf where you can disable labeling for all podman containers.

--security-opt is valid docker flag (it's not podman specific) maybe we could add the flag for pack.
Another solution/workaround would be use containers.conf where you can disable labeling for all podman containers.

since it's standard docker flag I think there is a change of getting it into pack; if it were just podman specific I think maintainers might not like it

@cardil but you will probably encounter the error also with moby not just podman.

https://github.com/buildpacks/pack/issues/1208

@cardil  What be could do now (before the functionality will be added to the pack):
diff --git a/buildpacks/builder.go b/buildpacks/builder.go
index fc3f766..ece0e76 100644
--- a/buildpacks/builder.go
+++ b/buildpacks/builder.go
@@ -82,7 +82,7 @@ func (builder *Builder) Build(ctx context.Context, f bosonFunc.Function) (err er
        }

        // Client with a logger which is enabled if in Verbose mode.
-       packClient, err := pack.NewClient(pack.WithLogger(logging.New(logWriter)))
+       packClient, err := pack.NewClient(pack.WithLogger(logging.New(logWriter)), pack.WithDockerClient(wrapperwithSecOptInjected))
        if err != nil {
                return
        }

It's possible to set custom docker client for the pack client.
We could create custom wrapper for standard docker client, the wrapper would just inject the flag sec-opts flag for ContainerCreate() function.

That would be awesome if it works ☺

Shouldn't this be closed because #390 is merged?

for how to use podman see https://github.com/knative-sandbox/kn-plugin-func/blob/main/docs/guides/podman.md


Error While Processing Video

Twitch Leecher version: 1.4.3
URL of VOD: https://www.twitch.tv/videos/262574304 - Subscribers only
OS: Windows 10 64 bit
Problem: Was able to download the video but I get the "Error" status while processing the video.
Log:

Download task has been started!
TWITCH LEECHER INFO
Version: 1.4.3
VOD INFO
VOD ID: 262574304
Selected Quality: 1920x1080@30fps (Source)
Download Url: https://www.twitch.tv/videos/262574304
Crop Start: No
Crop End: No
OUTPUT INFO
Output File: D:\Temp\20180518_262574304_Dungeons & Dragons.mp4
FFMPEG Path: D:\Program Files\Twitch Leecher\ffmpeg_x64.exe
Temporary Download Folder: D:\Temp\Tmp\TL_a5fa7244-e318-4f95-b63a-a3e08e9cca9c
ACCESS INFO
Token: --Redacted--
Sub-Only: Yes
Privileged: Yes
Creating directory 'D:\Temp\Tmp\TL_a5fa7244-e318-4f95-b63a-a3e08e9cca9c'... done!
Retrieving m3u8 playlist urls for all VOD qualities... done!
https://vod049-ttvnw.akamaized.net/3dddfedad9d26b00a97d_geekandsundry_28735978496_864668820/chunked/index-dvr.m3u8
https://vod049-ttvnw.akamaized.net/3dddfedad9d26b00a97d_geekandsundry_28735978496_864668820/720p30/index-dvr.m3u8
https://vod049-ttvnw.akamaized.net/3dddfedad9d26b00a97d_geekandsundry_28735978496_864668820/480p30/index-dvr.m3u8
https://vod049-ttvnw.akamaized.net/3dddfedad9d26b00a97d_geekandsundry_28735978496_864668820/audio_only/index-dvr.m3u8
https://vod049-ttvnw.akamaized.net/3dddfedad9d26b00a97d_geekandsundry_28735978496_864668820/360p30/index-dvr.m3u8
https://vod049-ttvnw.akamaized.net/3dddfedad9d26b00a97d_geekandsundry_28735978496_864668820/160p30/index-dvr.m3u8
Playlist url for selected quality 1920x1080@30fps (Source) is https://vod049-ttvnw.akamaized.net/3dddfedad9d26b00a97d_geekandsundry_28735978496_864668820/chunked/index-dvr.m3u8
Retrieving playlist... done!
Parsing playlist... done!
Number of video chunks: 1493
Starting parallel video chunk download
Number of video chunks to download: 1493
Maximum connection count: 10
Parallel video chunk download is running...
Download of all video chunks complete!
Creating local m3u8 playlist for FFMPEG... done!
Writing playlist to 'D:\Temp\Tmp\TL_a5fa7244-e318-4f95-b63a-a3e08e9cca9c\vod.m3u8'... done!
Executing 'D:\Program Files\Twitch Leecher\ffmpeg_x64.exe' on local playlist...
Command line arguments: -y -i "D:\Temp\Tmp\TL_a5fa7244-e318-4f95-b63a-a3e08e9cca9c\vod.m3u8" -analyzeduration<PHONE_NUMBER> -probesize<PHONE_NUMBER> -c:v copy -c:a copy -bsf:a aac_adtstoasc "D:\Temp\20180518_262574304_Dungeons & Dragons.mp4"
Starting temporary download folder cleanup!
Deleting directory 'D:\Temp\Tmp\TL_a5fa7244-e318-4f95-b63a-a3e08e9cca9c'... done!
Download task ended with an error!
System.AggregateException: One or more errors occurred. ---> System.ApplicationException: An error occured while processing the video!
at TwitchLeecher.Services.Services.TwitchService.ProcessVideo(Action1 log, Action1 setStatus, Action1 setProgress, Action1 setIsProcessing, String ffmpegFile, String playlistFile, String outputFile, CropInfo cropInfo)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass59_0.b__2()
at System.Threading.Tasks.Task.Execute()
--- End of inner exception stack trace ---
---> (Inner Exception #0) System.ApplicationException: An error occured while processing the video!
at TwitchLeecher.Services.Services.TwitchService.ProcessVideo(Action1 log, Action1 setStatus, Action1 setProgress, Action1 setIsProcessing, String ffmpegFile, String playlistFile, String outputFile, CropInfo cropInfo)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass59_0.b__2()
at System.Threading.Tasks.Task.Execute()<---

See #156 and #143


Tabs 与 router 组合使用时并不友好「 Tabs are not friendly when used in combination with router 」

This function solves the problem (这个功能解决的问题)
Tabs 的内容有时需要通过路由加载不同内容
例如 中后台 的页面标签功能，不知 Tabs 能否支持一下
The contents of tabs sometimes need to load different contents through routing,
For example, I wonder if tabs can support the page label function in the middle and background.
Expected API (期望的 API)
期望 Tabs 可用于 中后台 的页面标签功能（与菜单类似，可切换路由页面）
还有Tabs的数量过多时，只能通过鼠标滚轮进行滚动，并无法添加左右滚动按钮
当我尝试使用 Tabs 作为页面标签时，Tabs 下方会出现一行空白内容
对了，还有 TabPane 右键菜单功能
It is expected that tabs can be used for the page label function in the middle and background (similar to the menu, you can switch the routing page);
In addition, when the number of tabs is too large, you can only scroll through the mouse wheel, and you cannot add left and right scroll buttons;
When I try to use tabs as a page label, a blank line appears below the tabs.
By the way, there is also the tabpane right-click menu function.

可以参考下ant-design-vue 的tabs卡片式页签 https://next.antdv.com/components/tabs-cn/#Tabs-

I planned to add make tabs work without panel. That may solve some of you problems.

When there are too many 'tabs', I need to control the left and right scrolling buttons, and the activated' tab 'needs to be automatically visible.  Don't know if it can

What does

the activated' tab 'needs to be automatically visible
mean?

当切换菜单时，tabs会在受控模式下随之改变，无则添加，存在则切换；在切换或添加时，我需要激活的tab它是可见的，而不会因tabs过多导致激活的tab被隐藏；用户是需要看到当前页面是哪一个tab的

当切换菜单时，tabs会在受控模式下随之改变，无则添加，存在则切换；在切换或添加时，我需要激活的tab它是可见的，而不会因tabs过多导致激活的tab被隐藏；用户是需要看到当前页面是哪一个tab的

Scroll into view automatically?

Yes, need to scroll into view automatically
Of course, when users need to switch 'tab', they also need to manually (button) control the scrolling view
The reason for requiring buttons is that the scroll wheel view may not be known to the user

Yes, need to scroll into view automatically Of course, when users need to switch 'tab', they also need to manually (button) control the scrolling view The reason for requiring buttons is that the scroll wheel view may not be known to the user

We will try to solve it later.

When tabsis too numerous to display in its entirety, can configure arrow buttons for scrolling


Refs #34099 -- Documented a recommendation to add any fields set in the save method to the update_fields kwarg.

Ticket: https://code.djangoproject.com/ticket/34099
Optional docs addition

Yeah sure I can take a look :+1:


usb: device_next: add few more string descriptor helpers

usb: device_next: add few more string descriptor helpers
Add function to get string descriptor index and function
to remove linked descriptor from a device. This abstracts
it a bit so that the user does not need to know how it is
handled internally.
usb: device_next: add string descriptor for CDC ACM
Add a string descriptor whose index is used for IAD and interface
descriptors. The string is derived from the virtual CDC ACM UART
nodelabel, which allows the user to accurately identify the UART
interface on the device side.
It can probably be further improved by converting the string to
upper case and replacing the underline with a space.

Outdated


fastlane supply  doesn't find my Appfile

Hello, I have specified my Appfile like so
json_key_file("./service_account_key.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
package_name("com.manninglabs.steady") # e.g. com.krausefx.app

I have a Fastlane like so:
default_platform(:android)

platform :android do
  desc "Deploy a new version to the Google Play"
  lane :deploy do
    Dir.chdir("..") do
      sh "cd ..; flutter build apk -t lib/main_prod.dart"
      upload_to_play_store
    end
  end
end

This is working but I'm still getting asked for the json_key as well as the package name. Is the command not picking up my Appfile?

My fastlane env:
➜  fastlane git:(master) fastlane env
[✔] 🚀
[13:43:30]: fastlane detected a Gemfile in the current directory
[13:43:30]: however it seems like you don't use `bundle exec`
[13:43:30]: to launch fastlane faster, please use
[13:43:30]:
[13:43:30]: $ bundle exec fastlane env
[13:43:30]:
[13:43:30]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[13:43:30]: Generating fastlane environment output, this might take a few seconds...
<details><summary>🚫 fastlane environment 🚫</summary>

### Stack

| Key                         | Value                                                        |
| --------------------------- | ------------------------------------------------------------ |
| OS                          | debian_based buster/sid                                      |
| Ruby                        | 2.5.1                                                        |
| Bundler?                    | false                                                        |
| Git                         | git version 2.17.1                                           |
| Installation Source         | /usr/local/bin/fastlane                                      |
| Host                        | Ubuntu 18.04 LTS debian_based buster/sid (4.15.0-23-generic) |
| Ruby Lib Dir                | /usr/lib                                                     |
| OpenSSL Version             | OpenSSL 1.1.0g  2 Nov 2017                                   |
| Is contained                | false                                                        |
| Is homebrew                 | false                                                        |
| Is installed via Fabric.app | false                                                        |

### System Locale

| Variable | Value       |   |
| -------- | ----------- | - |
| LANG     | en_US.UTF-8 | ✅ |
| LC_ALL   |             |   |
| LANGUAGE | en_US       | 🚫 |

### fastlane files:

<details><summary>`./Fastfile`</summary>

```ruby
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:android)

platform :android do
  desc "Deploy a new version to the Google Play"
  lane :deploy do
    Dir.chdir("..") do
      sh "cd ..; flutter build apk -t lib/main_prod.dart"
      upload_to_play_store
    end
  end
end

`./Appfile`
json_key_file("./key.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
package_name("com.manninglabs.steady") # e.g. com.krausefx.app

fastlane gems

Gem
Version
Update-Status

fastlane
2.99.1
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.2.0

slack-notifier
2.3.2

atomos
0.1.2

CFPropertyList
3.0.0

claide
1.0.2

colored2
3.1.2

nanaimo
0.2.5

xcodeproj
1.5.9

rouge
2.0.7

xcpretty
0.2.8

terminal-notifier
1.8.0

unicode-display_width
1.4.0

terminal-table
1.8.0

plist
3.4.0

public_suffix
2.0.5

addressable
2.5.2

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.6.4

tty-cursor
0.5.0

tty-spinner
0.8.0

babosa
1.0.2

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

excon
0.62.0

faraday
0.15.2

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20180417

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.3

gh_inspector
1.1.3

json
2.1.0

mini_magick
4.5.1

multi_json
1.13.1

multi_xml
0.6.0

rubyzip
1.2.1

security
0.1.3

xcpretty-travis-formatter
1.0.0

dotenv
2.5.0

bundler
1.16.2

faraday_middleware
0.12.2

naturally
2.2.0

simctl
1.6.5

uber
0.1.0

declarative
0.0.10

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.2

mime-types-data
3.2016.0521

mime-types
3.1

little-plugger
1.1.4

logging
2.2.2

jwt
2.1.0

memoist
0.16.0

os
0.9.6

signet
0.8.1

googleauth
0.6.2

httpclient
2.8.3

google-api-client
0.21.2

emoji_regex
0.1.1

openssl
2.1.0

date
1.0.0

fileutils
1.0.2

ipaddr
1.2.0

generated on: 2018-07-13

[13:43:31]: Take notice that this output may contain sensitive information, or simply information that you don't want to make public.
[13:43:31]: Open https://github.com/fastlane/fastlane/issues/new to submit a new issue ✅


Add a validate-vendor script

Makes sure that if ./hack/vendor.sh has been updated, it has been used to update the vendor folder. 🐢
This is a complement to #19141 in order to keep the vendor/ folder in sync with ./hack/vendor.sh.
# with a wrong vendor.sh
$ make validate
# […]
done
These files are not valid vendor file:
 - hack/vendor.sh

Please vendor your package with ./hack/vendor.sh.

The message in case of failure might definitely need some lifting :wink:.
This makes a build with updates on vendoring a little longer.
Should we run this script all the time for the build on the master branch or not ?

/cc @tianon @jfrazelle :angel:
🐸
Signed-off-by: Vincent Demeester<EMAIL_ADDRESS>

For a build failure, look at https://jenkins.dockerproject.org/job/Docker-PRs/21963/console :wink:

Neat!  Maybe pipe the output of running hack/vendor.sh to /dev/null as well so we can still read the output of the validate script nicely?
I'd thought about doing this earlier, but was a little worried because it is destructive to the local copy and I couldn't think of a clean way to avoid that but for this script it's probably not a big deal (having bad vendor changes is definitely worse). :+1:

@tianon true, it's a little too much output right now :sweat_smile:.

Output at: https://jenkins.dockerproject.org/job/Docker-PRs/22003/console looks good to me!
so LGTM once we remove the extra commit.

still LGTM
ping @tianon

Niiiiiiiice! :smile:
LGTM

LGTM


Issue 1385 - Parallelise creation of compaction jobs

WIP
Make sure you have checked all steps below.
Issue

[ ] My PR addresses the following issues and references them in the PR title. For example, "Issue 1234 - My Sleeper
PR"

Resolves https://github.com/gchq/sleeper/issues/1385

Tests

[ ] My PR adds the following tests OR does not need testing for this extremely good reason:

TableBatcherTest

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it, or I have linked to a
separate issue for that below.
[ ] If I have added, removed, or updated any external dependencies used in the project, I have updated the
NOTICES file to reflect this.

Need to recreate, will raise a new PR with new splitting compaction changes


Implementing additional pre-commit hooks.

Fix #336 .
To enable pre-commit in your local repository, see:
https://pre-commit.com/
TLDR: in your venv,
pip install pre-commit
pre-commit install
The git hook should be set, now commiting to the repository should trigger the pre-commit checks.
See your Git console for pre-commit logs.
Your first commit make take quite some time as it will install the different packages required.

@ninad-kamat seems to me like there might be a bit of circular import issues in general, we might want to talk offline about this. The order in which the imports are performed in the __init__ file prevents that from happening but maybe we could open an issue to carefully go through the entire code base and check that there are no effective circular imports... these are typically hard to catch on Python, because they are not seen until you import a certain affected class.

Just as with #343 there seems to be some issue on the runner when generating the docs...

@RobPasMue Yes. Since we go a lot of code generation, we have had to do a bit of management in terms of circular includes. Let us discuss this offline.

@ninad-kamat ready for review whenever you have time :)

If there are any errors I'll try to fix them asap. I was finally able to tell isort to skip the reorg of certain modules

Ain't got more time today... I'll fix these issues tomorrow morning @ninad-kamat

@RobPasMue I think I see the issue. I will try and fix during my day today.

@RobPasMue @Revathyvenugopal162 I have fixed the issues that I saw with CI. I also removed the requirements fixer pre-commit check as the requirements files were removed in #358 . The CI is passing now.
@waltersma The changes on docs are minor, but please do review them. Keep in mind, once this PR goes in, there will be a lot of pre-commit checks that will be run as part of our CI pipeline. This may cause some confusing errors for developers, but the easiest way to resolve them is to setup pre-commit and use it as part of the development workflow.

@RobPasMue @Revathyvenugopal162 I have fixed the issues that I saw with CI. I also removed the requirements fixer pre-commit check as the requirements files were removed in #358 . The CI is passing now.
@waltersma The changes on docs are minor, but please do review them. Keep in mind, once this PR goes in, there will be a lot of pre-commit checks that will be run as part of our CI pipeline. This may cause some confusing errors for developers, but the easiest way to resolve them is to setup pre-commit and use it as part of the development workflow.

Aweosme, thanks @ninad-kamat!! Really appreciated =)


Changing scraper logic to be more resilient

Currently with go-colly, there is a potential issue where if 1 page fails to load then the data is considered corrupted because we need the whole set of data in order to determine which job listings are active or inactive.
There is no retry functionality in go-colly and error handling is not very useful.
I think it might be better for us to fetch the html as string (where we can have our own retry logic) then use an HTML parser to process the data instead.
This will be more similar to the logic of the scraper in the .NET version.
Get html node in go with css selector: https://github.com/PuerkitoBio/goquery

@syahnur197 FYI


Add TAG's stuff

Integrate a TAG system when opening tickets
[opened] Help me
[closed] Testing
[solved] 1+1?
[duplicate] Help me

This could be a good idea, but I thing it will be unnecessary to do since forum channels will come soon. I don't want to add new things to the help system because all this work will be "cancelled" when forums will arrive.
It is still an interesting idea, but unfortunately I will not work on this.


any_in_list is not a check to see if there is anything in the list

https://github.com/WolfDKs-CK3-Modding/Easier-Culture-Religion-Spread/blob/0c698290adc06f02d71801d1b26b3a32805905cc/events/auto_council_events.txt#L56-L60
I'd change the above to this:
limit = {
    list_size = {
        name = heathens
        value > 0
    }
}

Noted. It seems to work with the use of any_in_list, but checking the count is a way to be 100% sure, so I will implement that change.

as noted by the commit, this has been implemented.


datapath: Do not SNAT replies to outside

See commit msgs.
Fix: #12544

test-net-next

test-me-please

test-1.19-5.4

test-1.20-4.19

test-1.20-4.19

4.19 is hitting the complexity issue :eyes:

test-1.20-4.19

test-me-please

test-me-please

test-me-please

test-me-please

test-net-next

CI has passed and we have reviewer approval, marking ready to merge.


Can't edit anything because spinner won't stop spinning

Can't edit anything because spinner won't stop spinning
http://www.openstreetmap.org/edit#map=19/24.16167/120.69314

Seems like a duplicate of #4542 / #4547

Seen in both epiphany-browser and chromium, Debian Linux. Didn't try other browsers.


Fix for downloading file

The file download promise resolves before the download finishes.

Thank you!
You are right but maybe the correct way is with finish event and then close the stream? I'm not a node.js expert...
outputFileStream.on("close", function () {
  outputFileStream.close(function () {
    resolve(outputFilePath);
  });
});

What do you think?


[Fix-13480][Resource] When downloading a file, an error will occur when uploading the file

Purpose of the pull request
ref #13480
Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
Added org.apache.dolphinscheduler.service.storage.impl.OssOperatorTest#testUpload
Added org.apache.dolphinscheduler.service.storage.impl.OssOperatorTest#testDownload
(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Previous PR #14042

Agreed with @Radeity in https://github.com/apache/dolphinscheduler/pull/14042#issuecomment-1543404705.
I don't think ds needs to restrict the functionality of third-party storage since it's it is a scheduling system, not a storage system.
I'll close this PR. Feel free to continue disscussing it in the issue #13480.


Can't contact visual server

Successfully created new pbiviz project
Successfully installed certificate (i.e. it closed without error. Is there a way to check that the certificate is working other than instantiating the Developer Visual inside Power BI?
Restarted computer.
Successfully built and ran visual with pbiviz start.
Instantiated Developer Visual, and get "Can't contact visual server". Tried with Firefox, Chrome, and IE.
In the Network tab of Developer Tools there's an OPTIONS request to https://localhost:8080/assets/status which never gets a response.

What can I try next?

Same issue here with Firefox. Works for both Edge and Chrome.

Here is a workaround for Firefox:

Open https://localhost:8080/assets/status in Firefox manually.
You will get an error message: Your connection is not secure.
Click advanced button.
Click Add exception button and add this url to exception list.
Try to refresh the page with your report, visual should be loaded correctly.

Working, thanks a lot !


Support disallowing namespaces (noNamespace).

This allows code bases to outlaw pre-ES6 modules and namespaces. It's often
still useful to declare namespaces when interacting with non-TypeScript code, so
this has an option to allow "declare namespace" style usage.

Thanks @mprobst, I like this rule! Makes sense to me to have this rule as more TS codebases will want to enforce ES6 module usage over namespaces.
Left you a few tweaks to make, and then we should be able to merge this. Looks like the rule also needs a rebase, a previously merged PR must've created a conflict

Thanks for the review! Please take another look.

So, in the mean time I found the no-internal-module rule (no idea how I didn't notice that before). I think it might make sense to unify the two configuration settings - no-namespace is sort of a natural extension of no-internal-module, and the code should share the logic around global augmentations and nested declarations.
I've added that as a separate commit as it makes the configuration a bit harder to understand. Let me know what you think.

It's a tough call. In my mind:
no-internal-module encourages the use of the namespace keyword instead of the outdated module keyword where appropriate
no-namespace encourages people to stop using namespaces all together and instead organize their code with ES6 modules.
They're definitely about similar syntaxic elements, but the goals of the two are somewhat different. I'm unsure here about what's best.

I agree, it's a bit tricky, and I presume it might also be nicer to have just one option going forward (no-namespace). I could also refactor the code so we only have one shared implementation, but still two different options.
How do we resolve? Get a third opinion?

@adidahiya any thoughts?

@alexeagle knows his way around static analysis tools and might venture an opinion?

I think tslint lacks a curated default set of checks, in which case things that have been deprecated by the language (no-internal-module) should be enabled by default and users don't think about it (unless they need to disable it). If that were the case, the answer would clearly be to make a new, separate no-namespace rule.
In my opinion, the convenience of no-namespace implying no-internal-module is not worth the complexity of understanding the configuration. Are there any other options that currently flip other options? Users are expected to study a long list of rules and decide what to opt-in to, so follow that model.

Makes sense to me. We should be sure that no-namespace doesn't conflict with no-internal-module though: that is, it shouldn't be possible to get into a position where one of the two rules will always error.
An example of this would be if you had a rule that required explicit typedefs and had a rule that required implicit typedefs. It would be impossible to declare a variable and satisfy both of these rules.
I think we'll be fine here, as no-namespace is just more strict that no-internal-module which shouldn't lead to conflicts. Let's keep it as a separate no-namespace rule if you're in agreement @mprobst

Please Take Another Look. I've "unmerged" the code, and now just share the implementation of isNestedDeclaration across the two linters.

Friendly ping :-)

Sorry for the delay! Can you make the one change listed above and also rebase off the latest develop? (The rebase will help make sure that CI passes)

No worries! Refactored and rebased, PTAL.

Looks great, thank you!


Zoom class added

#1044 Class to add zoom functionality added.

Codecov Report

Merging #1165 into master will decrease coverage by 0.02%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #1165      +/-   ##
=========================================
- Coverage    3.96%   3.93%   -0.03%
=========================================
  Files         123     124       +1
  Lines        5604    5646      +42
  Branches      542     547       +5
=========================================
  Hits          222     222
- Misses       5367    5409      +42
  Partials       15      15

Impacted Files
Coverage Δ

app/src/main/java/fr/free/nrw/commons/Zoom.java
0% <0%> (ø)

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 b9b80e9...abc2f96. Read the comment docs.

@maskaravivek I was asked to make a separate class for implementing zoom feature which will be later used as a part of revamped upload screen

@maskaravivek I am not sure as of where to add this functionality, because no discussion has been there on applying it to the existing code. please help in this respect . Thanks :)

The upload screen is currently being redesigned, so I would suggest adding just a simple button at the bottom of the upload screen.
Later the redesign will decide what to make with this button.
Thanks!

Thanks @nicolas-raoul  I will start working on it :)

Made a new pr for this issue and had incorporated all the changes . thanks :)


Restore RigidBody2/3D, SoftBody names in physics

Close: https://github.com/godotengine/godot-proposals/issues/5183
Superseed #64548
Superseed #64546
I found some missing in the mentioned PR so I preferred to go back to zero to be sure as much as possible that everything is there, because this is the kind of PR that can break things.
It would be cool if this could be merged quickly because I've already had conflicts :D
@rburing If you can take a look.

Header guards for SoftBody need fixing: https://github.com/godotengine/godot/runs/8022198750?check_suite_focus=true

You'll have to remove the rename from the project converter: https://github.com/godotengine/godot/runs/8022198755?check_suite_focus=true

This may sound a bit picky, and that's because it is, but is this both of my previous PRs merged together? As in, does it also include comments and very specific mentions of these Nodes in them, such as "// rigid dynamic body"?

@Mickeon I checked quickly and found some missing things (an enum, etc.), so since this is a huge change that can introduce nasty bugs, I found it easier and safer make myself from scratch, comparing it with the original PR that introduced these changes. I just felt more confident doing it that way!

That's ok! I just wanted to make sure our combined thoroughness made the PR more complete, including comments, too.

If I am being honest, this makes it even worse, now Rigid is an alias for Dynamic, which is not technically correct, although based on current pragmatic usage I guess it is. :(

Thanks!

In the future, please try to include the old names in the commit message when renaming classes, e.g. "Renamed RigidDynamicBody3D to RigidBody3D". Makes it much faster to fix projects after rebasing Godot :)

@JohanAR You should not do anything, the old names have been added to the compatibility classes: https://github.com/godotengine/godot/pull/64894/files#diff-e4c9d70a3ecc449ede1e49b7ea01ed9128d2931c21e284d7a50d3f63cd7a13e2R1046-R1047

Is that something you have to enable in the editor? Because it definitely refused to run my test project before I had renamed all the RigidDynamicBody3D in the code

Oh yes sorry I was not precise, in the code if you use it as a type, yes you have to modify it, it is in the editor it is automatic (so only fully automatic for those who do not type).


Possible improvement in Image upload error

In the processImage function, you should change
if ($error = ImageManager::validateUpload($files[$postImageInput], 4000000)) {
$this->errors[] = $this->l('Invalid image');
return false;
to
if ($error = ImageManager::validateUpload($files[$postImageInput], 4000000)) {
$this->errors[] = $error;
return false;
Edit : While we're at it, why 4000000 bytes? It seems rather...arbitrary

Thanks.
The limit is the same as regular image uploads, not to deviate too much from the basic behavior in the software. This limit will likely be removed in the future.


How do I download it??

I couldn't download it, it's giving me an error, can you tell me where I can download this file for the STEAM version?

This message is appearing, can you make the file available on some mega download / mediafire, etc...?
{"message":"Artifact not found or access denied."}

I'm so stupid, I sent the wrong link again: https://ci.appveyor.com/api/buildjobs/l35sw5u151vw66gr/artifacts/patcher-other.exe is the current build.

can you make the file available on some mega download / mediafire, etc...?

I can, just need some free time to do it all :D
Take care, tell me how it went, I don't have experience with Steam.

Thank you for your attention in advance, however the patch did not work, it displays this error message when generating the ZIP file, I used administrator mode, the zip file is created but the content is inaccessible.
Error photo link:
https://imgur.com/a/u9vQcjj

That's odd... you are placing it and running it in the game dir right?

yes in the root directory of the game, I'm using windows 10, I used administrator privileges, it even tries to create the ZIP file but an error occurs.

OK, try to delete the zip file and try again. I'm looking in the source where it might occur.

The same problem occurred again, I uninstalled Hitman and installed again his path is at:
C:\Program Files (x86)\Steam\steamapps\common\Hitman Codename 47

OK, let me try something. I think this bug is easy to fix. If not we call it a day :)

Try this: https://ci.appveyor.com/api/buildjobs/gdfweebvxfqtheiw/artifacts/patcher-other.exe
Thanks a lot for your patience, it's very important for us open source people!

i compiled both versions here is working binaries https://mega.nz/folder/tqMETbJC#5By1avHfo1JH_6EzE0TSzw

@junkandshit Cool, I think I have found some hosting after all, we'll be on it with some more fixes starting next month I hope. Did the patch work for you?

at 1024x768 resolution i am getting 60 FPS, but at 1920x1080 there is no frame limit, i am searching for full hd fix. My setup ryzen/radeon/win10, radeon chill or radeon frame rate target control not working..

Yeah, I have some initial full HD work going on, it's hard because of GUI rescaling for all platforms, stay tuned :)


Changing HxMessenger toast delay

As per HxMessenger documentation,

Informational messages are automatically hidden after 5 seconds

I realize HxMessenger is a wrapper for HxToast which does have parameter called AutohideDelay but it is unclear for me how to easily change that in my code.
I know this is a rookie question and I do apologise for wasting everyone's time here, but I tried searching, without results unfortunately, so here I am.

You can set the delay by setting:
HxMessengerServiceExtensions.Defaults.InformationAutohideDelay = 5000; // ms


Cannot show descriptive assertion messages

When i was using webpack-espower-loader in my environment (https://github.com/kazupon/vue-plugin-boilerplate), it's works.
However When the test was failed, power-assert cannot show the descriptive assertion messages.
Please see the detail error log (karma reporter: progress):
https://gist.github.com/kazupon/3ceabbe4cac1b703aa17
I become curious about the following warning messages has been output.
WARNING in ./~/power-assert/~/power-assert-formatter/lib/create.js
Critical dependencies:

What I'm doing wrong?
Thanks!

Hi @kazupon, thank you for reporting.
To write tests in ES6 with babel, please use babel-plugin-espower or espower-babel (espower-babel uses babel-plugin-espower internally).
webpack-espower-loader (and the other instrumentors) transforms code after babel, which does not work since babel output has changed.
babel-plugin-espower works as a babel plugin and runs before babel's transformation, so it works as expected.
FYI: Made a pull-req for you
WARNING from webpack is due to the use of a dynamic require (which is inevitable hack for plugin system ) and it is not really an issue, just a warning. Please ignore the warning though you may feel uncomfortable with.

I confirmed that it works.
Thanks !! :100:

Thank you for reporting! :+1:
Also noticed that this should be in power-assert FAQ.

Awesome !! :+1:
That would be great for everyone.


New feature idea -- AdministratorPower

i added to my version, if you wanna check it i can send codes and its perfectly fine right now.
If some guild user got administrator power, they can use commands but if you do "AdministratorPower = false", they cant.

Check it please, maybe you can like it.

Resolved with https://github.com/get-got/discord-downloader-go/commit/8a626d2a9f80893c6bbf7872740dc9675ad3b055


Update the names of the links (View, New Version, Archive) and replace arrows

For both questions and programs, there was feedback (both from admins and from UX audit) around the naming of the links being unclear. No proposed solution, but something we should run by UXR/D/W when we get to this issue.
There was also feedback about the arrows being poor UI/UX (I also really don't like the arrows). Maybe a pipe instead? (View | Edit)
Relevant slide in UX audit: https://docs.google.com/presentation/d/1goxiepPXPrW3wK8wUSNoCpcf7iXIohXfj96iTYiQxo0/edit#slide=id.gefcb4c94df_0_252

Hi, @glorialiou
About the text name and flow, we’ve found the same issue, here is the design we did back in 2021 Q2 with ux designer, ux writer, design lead, product manager and engineer together. I think you may find some text names have been updated, some are not, so causing the question and the program name didn't match.
Hope the information will be helpful.
Here is the doc with changed text and design: https://docs.google.com/document/d/1QLL5ytDdpi24pk6H0IHdmWabZRsAQFmcpALtuj2OeGA/edit?usp=sharing
Here is the program part:

Here is the question part:

Closing this issue in favor of duplicate #3033


PEP498 f-string leads to parse error

A file using string formatting as described in https://www.python.org/dev/peps/pep-0498/
a = 1
s = f"a is {a}"
print(s)

breaks pydocstyle:
pydocstyle -v ./test.py
Checking file ./test.py.
WARNING: Error in file ./test.py: Cannot parse file.

Oups. That works just fine if running pydocstyle with python>=3.6


FE: Ability to prefix for all redis keys using arbitrary string

Describe the bug
Use case: multitenant cluster where each tenant requires livekit component. All tenants share the same cache Redis instance.
Currently, we can separate keys using db index: https://github.com/livekit/livekit/blob/master/config-sample.yaml#LL11C1-L11C1
But this limits us to only 16 tenants and does not allow us to apply the generic Redis prefix strategy we utilize across components globally (the string that contains cluster + tenant + component to ensure no collision of keys).
Server

Version: 1.4.3
Environment: EKS
Microservices stack with livekit and turn server as component in the stack on per instances bases.

Client

SDK: 1.6.5
Version: NA

To Reproduce
NA
Expected behavior
The ability to add string prefix into the configuration file that will be used to prefix all Redis keys managed by livekit.
Screenshots
NA.
Additional context
This is a pretty common enterprise-grade use case, other might find it helpful as well.

This feature relies on go-redis. Look forward to go-redis supporting this.
more discuss: https://github.com/redis/go-redis/issues/607


[requires.io] dependency update on master branch

Current coverage is 100.00%

Merging #25 into master will not affect coverage as of 36e3d36

@@            master     #25   diff @@
======================================
  Files            7       7
  Stmts          263     263
  Branches        23      23
  Methods
======================================
  Hit            263     263
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 36e3d36

Powered by Codecov. Updated on successful CI builds.

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io


Supported RTL texts

Fixed https://github.com/jonataslaw/readmore/issues/11

@jonataslaw Can you please reply?

Thanks for this PR!
LGTM, I will merge now

@jonataslaw Please release a version if possible


Security fix for Prototype Pollution

:bar_chart: Metadata *
object-auger is vulnerable to Prototype Pollution.
Bounty URL: https://www.huntr.dev/bounties/1-npm-object-auger
:gear: Description *
Prototype Pollution refers to the ability to inject properties into existing JavaScript language construct prototypes, such as objects.
JavaScript allows all Object attributes to be altered, including their magical attributes such as __proto__, constructor and prototype. An attacker manipulates these attributes to overwrite, or pollute, a JavaScript application object prototype of the base object by injecting other values. Properties on the Object.prototype are then inherited by all the JavaScript objects through the prototype chain.
:computer: Technical Description *
Fix implemented by not allowing to modify object prototype.
:bug: Proof of Concept (PoC) *

Create the following PoC file:

// poc.js
var objectAuger = require("object-auger")
var obj = {}
console.log("Before : " + {}.polluted);
objectAuger.set(obj,["__proto__","polluted"],"Yes! Its Polluted");
console.log("After : " + {}.polluted);

Execute the following commands in terminal:

npm i object-auger # Install affected module
node poc.js #  Run the PoC

Check the Output:

Before : undefined
After : Yes! Its Polluted

:fire: Proof of Fix (PoF) *
I've added unit tests for Prototype Pollution

+1 User Acceptance Testing (UAT)

I've executed unit tests.
After fix the functionality is unaffected.

👋 Hello, @AustinLeeGordon - @arjunshibu has opened a PR to us with a fix for a potential vulnerability in your repository. To view the vulnerability, please refer to the bounty URL in the first comment, above.
Ultimately, you get to decide if the fix is 👍 or 👎. If you are happy with the fix, please write a new comment (@huntr-helper - LGTM) and we will open a PR to your repository with the fix. All remaining PRs for this vulnerability will be automatically closed.
If you have any questions or need support, come and join us on our community Discord!
@AustinLeeGordon & @arjunshibu - thank you for your efforts in securing the world’s open source code! 🎉


Add support for Deny Assignments

Description

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] Please add REST spec PR link to the SDK PR
[x] I have read the contribution guidelines.
[x] The pull request does not introduce breaking changes.

General Guidelines

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[x] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[x] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

Link to REST spec PR - https://github.com/Azure/azure-rest-api-specs/pull/3987

Will merge once CIs pass


When does route timeout start

I just read the doc about route timeout:

A route timeout is the amount of time that Envoy will wait for the upstream to respond with a complete response. This timeout does not start until the entire downstream request stream has been received.

Well, it said, "This timeout does not start until the entire downstream request stream has been received.". I just want to know "by whom":

This timeout does not start until the entire downstream request stream has been received by Envoy?

or

This timeout does not start until the entire downstream request stream has been received by upstream?

The route timeout starts when the entire downstream request has been received by Envoy.


Using the current process id when pid is zero

enables use of write2 on uv pipes between loops in the same process on windows

When a named pipe is not known to cross process boundaries, and write2 is called, assumes
that the caller's intention is to send handle to another loop in the same process. Calls
duplicate handle using the current process id as the target, because 0 is not a valid process id
argument.

may be related to #394 though unclear if this change has an effect on that benchmark

Hi @saghul , to put some background on this, my team at Microsoft (ASP.NET) is using libuv to build a cross-platform web server and we found this change necessary for better support on Windows.
Please let us know your thoughts on this change. Thanks!

Thanks for working on this folks. I had another fix in mind, let me put it up for you to test thoughout the day.

Sounds great, we'll be happy to look at what you have!

Can give this (untested) patch a try? https://github.com/saghul/libuv/tree/win-thread-ipc
The basic idea is to move the logic we had for uv_pipe_open into uv_pipe_init. If the pipe ends up being used for cross-process I/O the ipc_pid will be overwritten by uv_spawn anyway.

@saghul Thanks for the patch. It worked well after we changed uv_parent_pid() to GetCurrentProcessId() in uv_pipe_init.
With the call to uv_parent_pid(), we get WSAENOTSOCK errors from ioctlsocket when we try to accept tcp handles passed over the name pipe.

@halter73 Thanks for giving it a try! Hum, I think the reason why that was there was for stdio pipes to work. Which is unfortunate, because one cannot create a connected pipe, and pass one end to uv_pipe_open and use it for threaded IPC, it seems. Maybe that int ipc parameter could encode some more data for us to know how to proceed, humm.
For the moment, I think we can go with @lodejard's approach then. In order to proceed I'd need 3 things taken care of:

Store the PID instead of computing it each time
Write a test (or enable one which is currently disabled on Windows because of this, if any)
Adjust the commit log to follow the guidelines in CONTRIBUTING.md

Thanks!

Changing the existing unit tests to have an "inprocess" mode. It's a little ugly, and has occasional asserts saying that handles are already closing while shutting down. Seems to be a race condition in the worker thread's write_cb?

Hard to tell without diving deep... feel free to add a new test if you prefer, that's perfectly fine!

Found the problem - calling MAKE_VALGRIND_HAPPY from a second thread was closing the default loop.
Updated the PR - it's squashed onto one commit with a full description, there unit tests are functioning (tested on win at least), and an internal win function uv_current_pid() was added to cache the current pid.
I believe the three bullet items you listed so far. Next steps?

@lodejard left some comments.

Please update the commit log following the guidelines in CONTRIBUTING.md. Thanks!

CI run: https://ci.nodejs.org/view/libuv/job/libuv+any-pr+multi/156/

Ah, I see! Subsystem prefix in the commit message! Will do.

Changed use of TRUE/FALSE in the tests to 1/0 - looks like those constants are only defined on Windows.

CI: https://ci.nodejs.org/view/libuv/job/libuv+any-pr+multi/158/
PS: I'm signing out for the day, will check back in the morning.

Okay, thx. Will try to repro test issue locally.

Strangest thing - I've run the tests locally now that the TRUE/FALSE error is fixed - and they are passing on windows, osx, and ubuntu (14.04 x64). Some of the errors on the CI look like they might be from hung processes? Like unable to delete exe during cleanup on windows, and the error on some of the *nix hosts seems to be binding to the test pipe name 2.
I'm heading out for the day also. I'll check back for advice on next steps.
Thx again!

Hey, @saghul, could you kick off another ci build at some point? It doesn't seem to have run since 158 - and that appears to have failed because of a hung processes.
From https://ci.nodejs.org/view/libuv/job/libuv+any-pr+multi/158/nodes=win2012r2/console
Wiping out workspace first.
java.io.IOException: remote file operation failed: c:\workspace\libuv+any-pr+multi\nodes\win2012r2 at hudson.remoting.Channel@b81d061:iojs-rackspace-win2012r2-1:
  java.nio.file.AccessDeniedException: c:\workspace\libuv+any-pr+multi\nodes\win2012r2\Debug\run-tests.exe
	at hudson.FilePath.act(FilePath.java:987)
	at hudson.FilePath.act(FilePath.java:969)
	at hudson.FilePath.deleteContents(FilePath.java:1184)

https://ci.nodejs.org/view/libuv/job/libuv+any-pr+multi/158/nodes=ubuntu1404-64/console
[%  12|+  34|-   0|T   0|S   1]: ipc_send_recv_pipe_inprocess
`ipc_send_recv_pipe_inprocess` failed: exit code 134
Output from process `ipc_send_recv_pipe_inprocess`:
Assertion failed in test/test-ipc-send-recv.c on line 298: r == 0

which appears to be because the pipe is still bound?
  if (inprocess) {
    r = uv_pipe_bind(&ctx2.listen, TEST_PIPENAME_2);
    ASSERT(r == 0);

If it's not that a process is stuck on the CI server, I'm not sure how to proceed. Running tests works locally on windows, mac, and ubuntu...

@lodejard Sorry for the delay. https://ci.nodejs.org/view/libuv/job/libuv+any-pr+multi/159/ Looks like at least one Windows buildbot is working.

I don't think the runner cleans up TEST_PIPENAME_2: https://github.com/libuv/libuv/blob/v1.x/test/runner.c#L212
You can add a commit which also removes the second test pipe.

PR updated with that change

Hi @saghul - can you kick off another run with the TEST_PIPELINE_2 change in place?
Also the Windows worker that is failing showed the same error - not that the tests failed, but that the build couldn't start because it couldn't cleanup the working folder because access was denied deleting the exe. Is there a way to see if there's a hung process? Or to reboot that agent?
Thanks again!

Hi, and sorry for the delay. I'm afraid I won't be able to continue this review for a while, I'll be afk until November :-S I think it's almost ready (if not ready ready!) but I cannot trigger CI builds ATM. @piscisaureus can you take this over if you can? Thanks!

Hello @piscisaureus - we're the asp.net team over at microsoft and we're working on a web server that calls through libuv for its io. It's currently running at 400k requests per second on a single loop on our reference hardware, which is fantastic, but we can get even higher throughput by running multiple loops in a single process. This PR helps on Windows by enabling us to use uv_write2 to get a handle off of one loop onto another. We've measured this change on a local build, but in the end we really want to ship off of the official code instead of a fork.
That's the background, the rest of the story is in the PR thread :). Please let us know what we should do for next steps.
Thanks! Lou

@lodejard
Sorry for my super late reply - life/work has been pretty crazy lately.
The patch looks good to me. There are some things I find a little questionable (caching the output of GetCurrentProcessId() doesn't seem all that necessary) but it gets the job done, I feel no need at this point to be super anal.
I've kicked off a CI build again: https://ci.nodejs.org/job/libuv+any-pr+multi/165/
400k rps is pretty awesome btw :)

@piscisaureus
Any updates?

I'm seeing this error on the CI:
[%   9|+  26|-   0|T   0|S   1]: tty
[%  10|+  27|-   0|T   0|S   1]: tty_file
[%  10|+  28|-   0|T   0|S   1]: stdio_over_pipes
[%  11|+  29|-   0|T   0|S   1]: ip6_pton
[%  11|+  30|-   0|T   0|S   1]: ipc_listen_before_write
[%  11|+  31|-   0|T   0|S   1]: ipc_listen_after_write
[%  12|+  32|-   0|T   0|S   1]: ipc_send_recv_tcp
`ipc_send_recv_tcp` failed: exit code 3
Output from process `ipc_send_recv_tcp`:
exit_cb
Assertion failed in test\test-ipc.c on line 92: exit_status == 0
=============================================================

[%  12|+  32|-   1|T   0|S   1]: ipc_send_recv_tcp_inprocess
`ipc_send_recv_tcp_inprocess` failed: exit code 3
Output from process `ipc_send_recv_tcp_inprocess`:
Assertion failed in test\test-ipc-send-recv.c on line 236: nread >= 0
=============================================================

(And a some others but they have been there forever.)

Yes, we see that also but can't repro it also. Also seems to happen on 2012 but not 2008. Shame the assertion failed messages doesn't often say what the last error code was.
It might be an unusual request, but could we be set up to kick off that CI test configuration? I feel like we might need to do several runs with minor changes (like showing what the error status was) which can take several weeks if we're going through the PR comments to kick off builds.

Hello, I added a few temporary printf lines to see what the status codes are at the point where that ASSERT fails.
Please kick of a CI build, thanks!

@nodejs/build: can you help me run this PR on the CI? I've kicked off 8 builds, trying various configurations, however they are all building the wrong PR.
I'm trying to build this PR in the current state (revision eda13bf)
@lodejard Sorry for being so unresponsive - I think it'll be better in a week or two.

cc @orangemocha @joaocgreis @mhdawson @rvagg --^

No problem - things are busy everywhere :)
Maybe the CI need to be kicked off with user "lodejard"?

@lodejard - Tried that too, see e.g. https://ci.nodejs.org/job/libuv+any-pr+multi/175/

Very strange, ah well. I'll keep an eye on this PR for news if you get it to work. Thanks again!

@piscisaureus it looks like your last attempt failed because of extra spaces in the parameters. I started a new one: https://ci.nodejs.org/job/libuv+any-pr+multi/178/
I remember you mentioning that Jenkins was testing the wrong thing for you.. and I am pretty sure I know the source of the confusion: the pr argument is actually not used for anything. Instead, you need to give the user/org, repo name, branch name of the source of the PR.
I have deleted the pr argument to avoid any further confusion.

@lodejard - console output for the 2012r2 build: https://ci.nodejs.org/job/libuv+any-pr+multi/178/nodes=win2012r2/console

ah, good - looks like read_cb in the unit test is getting UV__EOF on that platform. That should be an innocuous callback that might be happenning when the pipe is closed, so I added an if statement to ignore UV__EOF and UV__ECONNABORTED.
Kick off another run, please? Thanks!

New run: https://ci.nodejs.org/job/libuv+any-pr+multi/179/

2012r2 build is passing now - several others are red, but I don't know if they are normally red or not - the tests failing don't seem to apply to the code that was changed
are there specific platforms that used to be green which need troubleshooting? or what are the next steps now?

:helicopter:  are there specific platforms that used to be green which need troubleshooting? or what are the next steps now?

@lodejard Hi! I'm back. I kicked one (hopefully last) CI run: https://ci.nodejs.org/view/libuv/job/libuv+any-pr+multi/180/
Some Ubuntu bots seem to fail, but I don't trust them, they have other seemingly impossible failures too.

@saghul Welcome back!
Looks like there's a failure on win2012 again:
[%  96|+ 259|-   0|T   0|S   3]: threadpool_cancel_single
`threadpool_cancel_single` failed: exit code 3
Output from process `threadpool_cancel_single`: (no output)

Though that code and unit test wasn't changed, and I think that might be the first time that failure popped up.
Good news is the tests which relate to the change passed:
[%  12|+  32|-   0|T   0|S   1]: ipc_send_recv_tcp
[%  12|+  33|-   0|T   0|S   1]: ipc_send_recv_tcp_inprocess

Thoughts?

@lodejard Thanks! Don't worry about that test, it's not related to your change in any way, and I've only seen it fail once every blue moon.
Will double check the results later today.

So, today is tomorrow...
@lodejard LGTM, i checked the CI build and since I don't trust the 14.04 bots I ran the tests myself on a VM and it all checks out. Landed in :sparkles: dfdecf0 :sparkles:
Thanks a lot for your work on this and for bearing with us with the nitpicking and the delay in the review process. :heart:

@saghul thank you!!!


when use embedded DERP server, there are a lot of identical logs with "named node xxx no address" in tailscaled

Bug description
When use embedded DERP server, there are a lot of identical logs in tailscaled such as:
Wed Sep  6 13:52:17 2023 daemon.err tailscaled[9755]: 2023/09/06 05:52:17 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:52:44 2023 daemon.err tailscaled[9755]: 2023/09/06 05:52:44 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:54:01 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:01 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:54:27 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:27 netcheck: netcheck.runProbe: named node "901" has no address
Wed Sep  6 13:54:49 2023 daemon.err tailscaled[9755]: 2023/09/06 05:54:49 netcheck: netcheck.runProbe: named node "901" has no address

The part of config.yaml is like:
 76 derp:
 77   server:
 78     # If enabled, runs the embedded DERP server and merges it into the rest of the DERP config
 79     # The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place
 80     enabled: true
 81
 82     # Region ID to use for the embedded DERP server.
 83     # The local DERP prevails if the region ID collides with other region ID coming from
 84     # the regular DERP config.
 85     region_id: 901
 86
 87     # Region code and name are displayed in the Tailscale UI to identify a DERP region
 88     region_code: "njc"
 89     region_name: "Nanjing City"
 90
 91     # Listens over UDP at the configured address for STUN connections - to help with NAT traversal.
 92     # When the embedded DERP server is enabled stun_listen_addr MUST be defined.
 93     #
 94     # For more details on how this works, check this great article: https://tailscale.com/blog/how-tailscale-works/
 95     stun_listen_addr: "<IP_ADDRESS>:3478"
 96
 97   # List of externally available DERP maps encoded in JSON
 98   urls:
 99     # - https://controlplane.tailscale.com/derpmap/default
100
101   # Locally available DERP map files encoded in YAML
102   #
103   # This option is mostly interesting for people hosting
104   # their own DERP servers:
105   # https://tailscale.com/kb/1118/custom-derp-servers/
106   #
107   # paths:
108   #   - /etc/headscale/derp-example.yaml
109   paths:
110    # - /etc/headscale/custom_derp.yaml
111
112   # If enabled, a worker will be set up to periodically
113   # refresh the given sources and update the derpmap
114   # will be set up.
115   auto_update_enabled: true
116
117   # How often should we check for DERP updates?
118   update_frequency: 24h

Environment

OS: Ubuntu 22.04.LTS
Headscale version: 0.22.3
Tailscale version: 1.48.1

I had the exact same problem.

Are you using a domain name for Headscale or your IP address?
On Wed, Sep 6, 2023, 08:26 flyzstu @.***> wrote:

I had the exact same problem.
[image: image]
https://user-images.githubusercontent.com/94161727/265912827-50017e56-1a6d-455b-8dd1-80004b8786d4.png
—
Reply to this email directly, view it on GitHub
https://github.com/juanfont/headscale/issues/1542#issuecomment-1707743912,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABMGQ4GRF5A3UW6BGNC473XZAJQNANCNFSM6AAAAAA4MZB6UU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I used a domain name.

When I deploy with fredliang/derper, the same log is output. After understanding the operation logic of netcheck, now can explain this problem. If the server which running tailscaled, has an ipv6 address, the netcheck goroutine will also use ipv6  check derper. When derper.yaml has an valid ipv6 or DNS response AAAA address with hostname, this [has no address] log will not output.
In other words, server is vps1, which tailscaled running on it, a derper is derp1

vps1 has ipv4, no ipv6

derp1 has ipv4, no ipv6    ->
derp1 has ipv6, no ipv4    -> has no address
derp1 has ipv4, has ipv6   ->

vps1 has ipv6, no ipv4

derp1 has ipv4, no ipv6    -> has no address
derp1 has ipv6, no ipv4    ->
derp1 has ipv4, has ipv6   ->

vps1 has ipv4, has ipv6

derp1 has ipv4, no ipv6    -> has no address
derp1 has ipv6, no ipv4    -> has no address
derp1 has ipv4, has ipv6   ->

It can be understood as the ipv4/ipv6 situation of vps1, then obtain the single-stack or dual-stack address of derp1. The log has no address can perhaps be expressed more clearly as has no v4/v6 address

https://github.com/tailscale/tailscale/blob/v1.48.1/net/netcheck/netcheck.go#L822-L833
https://github.com/tailscale/tailscale/blob/v1.48.1/net/interfaces/interfaces.go#L447-L495
https://github.com/tailscale/tailscale/blob/v1.48.1/net/netcheck/netcheck.go#L486-L487
https://github.com/tailscale/tailscale/blob/v1.48.1/net/netcheck/netcheck.go#L1559-L1643


[GSSOC 21] Adding a CGPA calculator built using JavaScript.

Hello, I'm Abhishek Kumar, a participant in GSSOC 21. I went through this project and found it really innovative.
I want to add a new custom CGPA calculator which is built using JavaScript. As most of us here are college students and we know that calculating and maintaining your CGPA is quite important. So, I want to build and add a CGPA calculator which would be really helpful.
So, I request you to please assign me this as a part of my GSSOC project. I would really love to work on this project.

#489

@Abhikr-git Any update?, Kindly reply within 2 days or I have to close it.

@harshgupta20 can I work??

@Abhikr-git Any update?, Kindly reply within 2 days or I have to close it.

Sir, my end-semester examinations are going on. Please give me a couple of days, I'll resolve the issue as soon as possible.

@Abhikr-git Any update about the issue?

Sir, I have resolved the issue, will create the PR today