How to get coordinates in one meta layer's polygon ??

Hi !
I'm analyzing gds2 in my school,
Try to get one meta layer data, but I alway get all hole cell's data.
I hope you give me advice or sample code.
Best regards
import gdspy
import tripy
import pandas as pd
from plotnine import ggplot, aes, geom_polygon, geom_segment, geom_point
lib = gdspy.GdsLibrary(infile='test.gds')
###########################################################3
def convert_all(d2_array):
ret_array = []
for i in range(0, len(d2_array)):
for j in range(0, len(d2_array[i])):
ret_array.append(tuple(d2_array[i][j]))
return ret_array

def convert_devide(d2_array):
ret_array = []
for i in range(0, len(d2_array)):
ret_array2 = []
for j in range(0, len(d2_array[i])):
ret_array2.append(tuple(d2_array[i][j]))
    ret_array.append(ret_array2)

return ret_array

def make_frame_from_triangles(triangles):
x_start = []
x_end = []
y_start = []
y_end = []
for triangle in triangles:
for i, pt in enumerate(triangle):
next_index = (i + 1) % 3
x_start.append(pt[0])
x_end.append(triangle[next_index][0])
y_start.append(pt[1])
y_end.append(triangle[next_index][1])
df = pd.DataFrame({'x': x_start, 'y': y_start, 'xend': x_end, 'yend': y_end})
return df
########################################################################################
cells_polygons = []
cells_polygons.append(convert_devide(lib.cells['FlexPath1'].get_polygons()))
triangles = []
for j in range(0, len(cells_polygons)):
for i in range(0, len(cells_polygons[j])):
triangles.append(tripy.earclip(cells_polygons[j][i]))
all_tri = []
all_tri = convert_all(triangles)
df = make_frame_from_triangles(all_tri)
print((ggplot(df, aes(x='x', y='y')) + geom_segment(aes(x='x', y='y', xend='xend', yend='yend'))))

@etha-gh You should be able to get the polygons in a single layer/datatype with Cell.get_polygons, for example:
layer = 3
datatype = 4
polygon_list = cell.get_polygons((layer, datatype))

Thank you so much!
I try to do it.

Thank you reply!
I try to run sample you give me, but it says nothing.
if there are wrong?
I'm so sorry take your time for me.
import gdspy
lib = gdspy.GdsLibrary(infile='test.gds')
cell = gdspy.Cell('test.gds')
layer = 3
datatype = 4
polygon_list = cell.get_polygons((layer, datatype))
print(polygon_list)

You have to load a cell from your library. This line:
cell = gdspy.Cell('test.gds')

creates an empty cell with the name 'test.gds'

So sorry, I'm new come.
just started few weeks ago.
I'm really really sorry.
`import gdspy
lib = gdspy.GdsLibrary(infile='test.gds')
layer = 12
datatype = 4
polygon_list = cell.get_polygons((layer, datatype))
print(polygon_list)`
It says 'cell' is not defined,
how do I can defined cell?

@etha-gh I looks to me that you should be first going through a few Python tutorials to learn the language, if it is new to you. Then, you have to read through gdspy's documentation, because you seem to be guessing what to do.
Meanwhile, you probably need to do something like this ('cell_name' is the name of the cell you want to extract from the GDSII file):
import gdspy

lib = gdspy.GdsLibrary(infile='test.gds')

cell = lib.cells['cell_name']

layer = 12
datatype = 4
polygon_list = cell.get_polygons((layer, datatype))

print(polygon_list)

# Coordinates from first polygon in the list
print(polygon_list[0])

test_gds.py.zip
Thanks for your advice.
I'm study about GDSII files. and make one meta layer's graphic.
here is my all code I sent to you in zip file.
If you find something wrong, I hope you tell me.
So thank you give me advice and lecture.
I will read your Document and keep to study.
Best Regards


comment highlighting doesn't work

(setq doom-enable-bold t
     doom-enable-italic t

     doom-one-brighter-modeline t ;; doom one specific
     doom-one-brighter-comments t);; commands
(add-hook 'minibuffer-setup-hook 'doom-brighten-minibuffer)

this is my current setting
however comments are not hightlighting

Sorry for the late response: could you offer a screenshot of the issue? As well as other information, including emacs version and major mode this occurs in?
Also, just in case: doom-one-brighter-* need to enabled before the theme is loaded (with load-theme). I just realized that my README.md loads the theme before adjusting the settings (derp!). I'll fix that soon.

this is a photo of my state.
this is the repo of my init file.
one of the symptoms I experienced,
was that if I switch from spacemacs-theme to doom-theme by load-theme,
the comments get properly highlighted just for that emacs instance.

Have you tried moving the (load-theme 'doom-one) forward, ahead of your (setq ...) statements?

Manuall calling load-theme, moving load-theme up doesn't work

I solved the problem. It seems one of the packages I'm using (I suspect telephone-line but I'm not sure) is conflicting with doom-theme. Changing the loading order fixed the problem. Also, this problem was not doom-theme specific. Spacemacs-theme also had the problem of comment highlighting.

Restarted emacs and the problem came up again. Just calling load-theme on doom-theme doesn't work. Manually calling load-theme to spacemacs-theme and then changing to doom-themes seems to solve the problem. Huhmm... really strange

Sorry for the delay. I am investigating this again. Has recent updates changed your situation at all?
Have you tried the theme on vanilla emacs? e.g. emacs -Q and then:
(add-to-list 'load-path "path/to/doom-themes")
(require 'doom-themes)
(setq doom-one-brighter-comments t)
(load-theme 'doom-one t)

I suspect another plugin is interfering. Perhaps custompackages/font-lock+? I'm not familiar with font-lock+ to say.


⚠ Adacta-fintech.com has degraded performance

In a76b8d6, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 1092 ms

Resolved: Adacta-fintech.com performance has improved in 2329818.


Unset internal loop variables to prevent leaking to shell

Prevents leaking internal variables from loop to shell, e.g.
$ echo -e "$script_path\n$script_name\n$theme_name\n$function_name"
/home/josh/.local/share/zcomet/repos/tinted-theming/base16-shell/scripts/base16-zenburn.sh
base16-zenburn
zenburn
base16_zenburn

note: zenburn is just the last theme in the loop

The variable's aren't set as environment variables though, at least not by sourcing the script. Without running an echo on this, is there a situation this has a tangible affect?

@JamyGolden nothing material because as you said, they're not exported.
However, I often run something like set | grep base16 while I'm debugging colour issues and I'm often surprised (short memory) to see the name of a theme I'm not using:
$ set | grep base16

function_name=base16_zenburn
script_name=base16-zenburn
script_path=/home/josh/.local/share/zcomet/repos/tinted-theming/base16-shell/scripts/base16-zenburn.sh

Ah ok yeah that makes sense. Could you add a comment above about unsetting for that reason? I know it seems simple but since the fish script and bash/zsh do the same thing with different code, it makes it easier to compare them if they both have the same comments. I'll add the unset to the fish script after this (unless you want to).

the better way in fish might be to use set -l (local to the script, even if sourced!) which means you don't have to unset the variables at all (for-loop variables in fish are also automatically scoped local, I just learned :)

Thanks for the review and merge :)


Add extraction of  level sets along line gauge

We need this to properly do a wave height gauge.  The line gauge produces an array that includes the value of the signed distance  to  the free surface at a set of points along a line. We need to find the intervals where the signed distance changes signs, and then interpolate within that to get  a height. In most cases it only makes sense to do this when that happens once, otherwise the wave is breaking at the gauge and there will be 3 or more free surface  locations. We should probably just grab the highest value in a multivalued setting.

Probes are generally robust at this time so I am closing this


Add an RFC for lib.coding removal.

Rendered

We have discussed this RFC on the 2024-04-08 core subsystem meeting. The disposition was to merge.


WIP Next return Journey feature

Based on our discussion on how to manage return journey, a brief PR to manage this dimension of the standard.
The aim of the feature is to retrieve the next return journey with the same driver, if any, as supported by RDEX+.
The objectives of this PR are two-fold:

provide an optional feature to present in the search result the "next return journey" : this return journey is a secondary but interesting parameter to decide which outward journey to take
backward compatibility with RDEX requires to cover this need of "return journey"

@osarrat following our discussion I added the /journeys endpoint

@adelcasse @osarrat We are discussing today whether this PR is really needed. I know this has been discussed before but could we reconsider the need for the property nextReturnJourneyId? At first having it as optional seemed simple enough but now it is also requiring a completely new endpoint, the /journeys one.
My concern is that we are trying to make edge cases fit into the standard and the risk is of complexifying the spec for little gain. With that in mind, could we, for example, reconsider the idea of simply calling the search again with the start/end addresses reversed to find potential return journeys?

Following today's discussion, we decided to keep this PR unmerged, but ready if the need for this functionality would arise in the future.
In more details :

Calling an additional search with reversed origin/destination does not cover exactly/easily this use case, as it is expected to find a return trip with the same driver (I updated the description for clarity), which may happen a different day for instance.
We agree that the current PR is a reasonable solution to implement this functionality.
However, nobody in the working group is actually using this functionality, so for the sake of keeping the standard as simple as possible, we decided to wait until the need arises in practice before merging it.
The subject of functional retro-compatibility needs to be further discussed (is it OK not to have 100% functional retrocompatibility?)


[Storage] Requester Pays unable to download file

Hi,
cc: @ryanmats  I'm working with Ryan on this issue.
The Storage client library currently is using the XML API endpoint to download files instead of the JSON API endpoint and using requester pays to download a file fails because the XML API endpoint doesn't accept the userProject query string parameter.
XML API sets userProject as an HTTP header: x-goog-user-project: project-id <- not available yet.
JSON API sets userProject as a query string parameter: userProject=Project-id
XML API endpoint: https://storage.googleapis.com/{bucket}/{object}{?query*}
JSON API endpoint: https://www.googleapis.com/storage/v1/b/{bucket}/o/{object}{?query*}
I found the XML API endpoint is defined in the Rest.php file.
Code Snippet:
function download_file_requester_pays($projectId, $bucketName, $objectName, $destination)
{
    $storage = new StorageClient([
        'projectId' => $projectId
    ]);
    $bucket = $storage->bucket($bucketName, true);
    $object = $bucket->object($objectName);
    $object->downloadToFile($destination);
    printf('Downloaded gs://%s/%s to %s using requester-pays requests.' . PHP_EOL,
        $bucketName, $objectName, basename($destination));
}

Error:
 [Google\Cloud\Core\Exception\BadRequestException]
 Client error: `GET https://storage.googleapis.com/storage-requester-pays-ph
 p/ryan.jpg?alt=media` resulted in a `400 Bad Request` response:
 <?xml version='1.0' encoding='UTF-8'?><Error><Code>UserProjectMissing</Code
 ><Message>Bucket is a requester pays bucket b (truncated...)

Follow-up:
We weren't able to find where the user project is defined for requester pays in downloadObject.
If we understand correctly the key $args['userProject'] is ignored during this operation.

Thanks for the report @frankyn! Looking into this today. Will keep you posted!

Thanks @dwsupplee!

@frankyn I opened https://github.com/GoogleCloudPlatform/google-cloud-php/pull/676 to address this. I confirmed the changes work, but if you also have a moment it would be great if you could verify as well. Thank you!

@frankyn @ryanmats we just tagged v0.39.2 which includes the patch for this issue. Thanks again for your help tracking this down!

Thanks @dwsupplee!


建议对下载链接进行空格 trim

Is your feature request related to a problem? Please describe.
feature request
Describe the solution you'd like
对每一行下载链接进行头尾空格 trim
Describe alternatives you've considered
无
Additional context
复制的下载链接可能带有空格，似乎会造成下载不能

感谢反馈，已修正


Fix Incorrect offset for reading 1 byte file

This causes the only byte in the file to be lost. For this issue https://github.com/cloudonix/vertx-java.io/issues/4

@guss77 is this a PR you could help review and create a new hotfix release once merged? Thanks!

@c3-robin - on the face of it this looks like a working solution(*). Can you also add a test that demonstrates that the problem has been resolved and protect against regressions?
*) I think that I'm not happy about the recursion anyway and maybe there's a better way to solve the problem by unwinding the recursion.

@c3-robin thank you for your contribution - I accepted the PR and the problem is now fixed in main.
I went ahead and wrote the unit test for that, mostly because I thought I can fix this another way and also get rid of the recursion, but this proved to be way too much code and not worth the trouble, and your simple solution is probably best.
Thank you!
(@HarryWeppner )

@c3-robin - on the face of it this looks like a working solution(*). Can you also add a test that demonstrates that the problem has been resolved and protect against regressions?
*) I think that I'm not happy about the recursion anyway and maybe there's a better way to solve the problem by unwinding the recursion.

Thanks for adding the test and bringing in the fix! I saw the original InputStream implementation of read did not use recursion as well, but noticed recursion was theoretically correct and had much cleaner code.


Support building C/cython extensions

Does uv support building C/cython extensions, and if so is it documented somewhere? This would be similar to what's described here
https://setuptools.pypa.io/en/latest/userguide/ext_modules.html
Or, alternatively, would uv work if the build-backend is set to "setuptools.build_meta"?
In my opinion the setuptools pyproject.toml approach is somewhat lacking. In my experience compiling a C extension usually requires more than just defining the extension parameters and files with static text. A .py file that allows to configure things at runtime (for example depending on the OS) is much more useful. This would be similar to poetry's workable but never documented
[tool.poetry.build]
script = "build.py"
generate-setup-file = false

uv should work just fine to build an extension module as long as your build backend is configured to do so.

cc @henryiii — not sure if you have any good ideas for how to improve this in our documentation.

IMHO this should be something to consider if #3957 happens.

See https://learn.scientific-python.org/development/guides/packaging-compiled/. This should all work just fine with uv, AFAICT any valid PEP 621 backend should work, which is all of them except Poetry (and that's currently a WIP for the next release). Setuptools in the most recent release got experimental support for pyproject.toml extensions too, but it's a lot more rudimentary (just like the setup.py support) compared to scikit-build-core's CMake or meson-python's Meson usage.

IMHO this should be something to consider if https://github.com/astral-sh/uv/issues/3957 happens.

IMO, no. Saving less than 1 second when compiling an extension would not be noticeable like it would be for making a wheel from an SDist. And requiring a Rust compiler is suddenly a much bigger ask when you must have it to install a project that can't ship pure-Python wheels. Having a way to call maturin without a Python call in the middle, perhaps, but a custom build backend that can compile extensions is a massive project (and that's why CMake, Meson, Bazel, etc. exist).
As for docs, mentioning that there are compiled backends and linking to scikit-build-core, meson-python, and maturin might help? Hatching also supports binary-builds via plugins, including a scikit-build-core one.

Thanks @henryiii I knew about maturin but hadn't realised there was something similar for C projects. To be honest I kind of prefer the setuptools/distutils approach of keeping this in a Python file rather than having to learn another syntax for CMake or similar, but that's just a preference.
I guess this would work fine as long as uv doesn't implement a build system that does "something" custom, as does Poetry for example. At that point one would need to decide which set of features one wants to keep.
Also not sure how this works at the development level. Setutools or poetry allow building the C extension in editable mode and copy the shared object inside the package. Every time one does poetry install the library is updated if something has changed. I don't think that would work with uv sync. One would need to issue a command to update the dependencies and another to keep the shared object in sync.

Setuptools also doesn't support multithreaded builds, IDEs, limited cross-compile support, no common things like C++ standard, no support for other libraries like Boost, etc. You basically get a bare-bones compile that you could probably do manually with hatching's local plugins, which are also in Python. But, regardless, it would also work just fine with uv.
And uv does support editable installs, and I think it's the default for this.

The biggest issue is I don't think output is shown by default except for uv build. So a compiled backend will sit for minutes showing nothing.

@zanieb @charliermarsh
Can you please provide some examples in the documentation or on GitHub for building c extensions or cython extensions using uv.
I recently tried a hello world level case where I could build using setup.py but where uv build failed even when setuptools was specifies as the build backend in pyproject.toml

Can you open a new issue with details?

You can do uv init --lib --build-backend scikit (or setuptools, but there you'd have to manually set up the extensions) to get started.

Side comment: uv init --build-backend scikit doesn't actually do anything different than uv init, there's no build backend without --lib or similar. Maybe that should be an error?

@zanieb @henryiii
Thanks for your reply.
I tried the following:
uv init --lib --build-backend setuptools hello

Inside the the created hello folder, I added cython to build-system.requires as follows:
[project]
name = "hello"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
authors = [
    { name = "me", email =<EMAIL_ADDRESS>}
]
requires-python = ">=3.13"
dependencies = []

[build-system]
requires = ["setuptools>=61", "cython"]
build-backend = "setuptools.build_meta"

and add a basic setup.py file:
from setuptools import setup
from Cython.Build import cythonize

setup(
    name="hello",
    ext_modules=cythonize("src/hello/*.pyx", include_path=["/usr/local/include"]),
)

... and add src/hello/hello.pyx:
# hello.pyx
def add(int x, int y) -> int:
	return x + y

def world() -> str:
	return "HELLO WORLD!"

I can build the cython module using python setup.py build
but when I try to build using uv build:
% uv build
Building source distribution...
running egg_info
writing src/hello.egg-info/PKG-INFO
writing dependency_links to src/hello.egg-info/dependency_links.txt
writing top-level names to src/hello.egg-info/top_level.txt
reading manifest file 'src/hello.egg-info/SOURCES.txt'
writing manifest file 'src/hello.egg-info/SOURCES.txt'
running sdist
running egg_info
writing src/hello.egg-info/PKG-INFO
writing dependency_links to src/hello.egg-info/dependency_links.txt
writing top-level names to src/hello.egg-info/top_level.txt
reading manifest file 'src/hello.egg-info/SOURCES.txt'
writing manifest file 'src/hello.egg-info/SOURCES.txt'
running check
creating hello-0.1.0
creating hello-0.1.0/src/hello
creating hello-0.1.0/src/hello.egg-info
copying files to hello-0.1.0...
copying README.md -> hello-0.1.0
copying pyproject.toml -> hello-0.1.0
copying setup.py -> hello-0.1.0
copying src/hello/__init__.py -> hello-0.1.0/src/hello
copying src/hello/hello.c -> hello-0.1.0/src/hello
copying src/hello/py.typed -> hello-0.1.0/src/hello
copying src/hello.egg-info/PKG-INFO -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/SOURCES.txt -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/dependency_links.txt -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/top_level.txt -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/SOURCES.txt -> hello-0.1.0/src/hello.egg-info
Writing hello-0.1.0/setup.cfg
Creating tar archive
removing 'hello-0.1.0' (and everything under it)
Building wheel from source distribution...
Traceback (most recent call last):
  File "<string>", line 14, in <module>
    requires = get_requires_for_build({})
  File "~/.cache/uv/builds-v0/.tmpMscKeN/lib/python3.13/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=[])
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpMscKeN/lib/python3.13/site-packages/setuptools/build_meta.py", line 302, in _get_build_requires
    self.run_setup()
    ~~~~~~~~~~~~~~^^
  File "~/.cache/uv/builds-v0/.tmpMscKeN/lib/python3.13/site-packages/setuptools/build_meta.py", line 318, in run_setup
    exec(code, locals())
    ~~~~^^^^^^^^^^^^^^^^
  File "<string>", line 6, in <module>
    sys.path = [] + sys.path
                    ^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpMscKeN/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 1010, in cythonize
    module_list, module_metadata = create_extension_list(
                                   ~~~~~~~~~~~~~~~~~~~~~^
        module_list,
        ^^^^^^^^^^^^
    ...<4 lines>...
        language=language,
        ^^^^^^^^^^^^^^^^^^
        aliases=aliases)
        ^^^^^^^^^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpMscKeN/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 845, in create_extension_list
    for file in nonempty(sorted(extended_iglob(filepattern)), "'%s' doesn't match any files" % filepattern):
                ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpMscKeN/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 117, in nonempty
    raise ValueError(error_msg)
ValueError: 'src/hello/*.pyx' doesn't match any files
error: Build backend failed to determine requirements with `build_wheel()` (exit status: 1)

I do uv add cython which changes pyproject.toml to
[project]
name = "hello"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
authors = [
    { name = "me", email =<EMAIL_ADDRESS>}
]
requires-python = ">=3.13"
dependencies = [
    "cython>=3.0.11",
]

[build-system]
requires = ["setuptools>=61", "cython"]
build-backend = "setuptools.build_meta"

then uv build again:
% uv build
Building source distribution...
running egg_info
writing src/hello.egg-info/PKG-INFO
writing dependency_links to src/hello.egg-info/dependency_links.txt
writing requirements to src/hello.egg-info/requires.txt
writing top-level names to src/hello.egg-info/top_level.txt
reading manifest file 'src/hello.egg-info/SOURCES.txt'
writing manifest file 'src/hello.egg-info/SOURCES.txt'
running sdist
running egg_info
writing src/hello.egg-info/PKG-INFO
writing dependency_links to src/hello.egg-info/dependency_links.txt
writing requirements to src/hello.egg-info/requires.txt
writing top-level names to src/hello.egg-info/top_level.txt
reading manifest file 'src/hello.egg-info/SOURCES.txt'
writing manifest file 'src/hello.egg-info/SOURCES.txt'
running check
creating hello-0.1.0
creating hello-0.1.0/src/hello
creating hello-0.1.0/src/hello.egg-info
copying files to hello-0.1.0...
copying README.md -> hello-0.1.0
copying pyproject.toml -> hello-0.1.0
copying setup.py -> hello-0.1.0
copying src/hello/__init__.py -> hello-0.1.0/src/hello
copying src/hello/hello.c -> hello-0.1.0/src/hello
copying src/hello/py.typed -> hello-0.1.0/src/hello
copying src/hello.egg-info/PKG-INFO -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/SOURCES.txt -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/dependency_links.txt -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/requires.txt -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/top_level.txt -> hello-0.1.0/src/hello.egg-info
copying src/hello.egg-info/SOURCES.txt -> hello-0.1.0/src/hello.egg-info
Writing hello-0.1.0/setup.cfg
Creating tar archive
removing 'hello-0.1.0' (and everything under it)
Building wheel from source distribution...
Traceback (most recent call last):
  File "<string>", line 14, in <module>
    requires = get_requires_for_build({})
  File "~/.cache/uv/builds-v0/.tmpL0cVDL/lib/python3.13/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=[])
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpL0cVDL/lib/python3.13/site-packages/setuptools/build_meta.py", line 302, in _get_build_requires
    self.run_setup()
    ~~~~~~~~~~~~~~^^
  File "~/.cache/uv/builds-v0/.tmpL0cVDL/lib/python3.13/site-packages/setuptools/build_meta.py", line 318, in run_setup
    exec(code, locals())
    ~~~~^^^^^^^^^^^^^^^^
  File "<string>", line 6, in <module>
    sys.path = [] + sys.path
                    ^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpL0cVDL/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 1010, in cythonize
    module_list, module_metadata = create_extension_list(
                                   ~~~~~~~~~~~~~~~~~~~~~^
        module_list,
        ^^^^^^^^^^^^
    ...<4 lines>...
        language=language,
        ^^^^^^^^^^^^^^^^^^
        aliases=aliases)
        ^^^^^^^^^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpL0cVDL/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 845, in create_extension_list
    for file in nonempty(sorted(extended_iglob(filepattern)), "'%s' doesn't match any files" % filepattern):
                ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~/.cache/uv/builds-v0/.tmpL0cVDL/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 117, in nonempty
    raise ValueError(error_msg)
ValueError: 'src/hello/*.pyx' doesn't match any files
error: Build backend failed to determine requirements with `build_wheel()` (exit status: 1)

Do you have a MANIFEST.in? .pyx isn't included by setuptools by default, IIRC.

@henryiii  Thanks, that worked!
I added a MANIFEST.in file with the following line:
include src/hello/*.pyx

and then uv build worked as expected, building the extension and packaging the built package as a wheel in the dist directory.
That's great. I think including such steps in the uv documentation would be helpful for newcomers.

You don't have to do this if you use scikit-build-core. :)
I'm not sure if uv needs/should document every quirk of every build backend and binding tool?
Also, you don't need Cython as a dependency, just placing it in the build-system.requires as you did first is correct.

henryiii wrote:

I'm not sure if uv needs/should document every quirk of every build backend and binding tool?

I disagree... the more you document the quirks, the easier it is to get people to use uv.  In any case, thanks to you at least using uv with cython is now documented here. :smile:

We can't possibly maintain the quirks of all the build backends — we don't maintain them and can't always update the documentation when things change.

FYI, here's the procedure for scikit-build-core:
uv init --lib --build-backend scikit hello

pyproject.toml:
[project]
name = "hello"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
authors = [
    { name = "Henry Schreiner", email =<EMAIL_ADDRESS>}
]
requires-python = ">=3.7"
dependencies = []

[tool.scikit-build]
minimum-version = "build-system.requires"
build-dir = "build/{wheel_tag}"

[build-system]
requires = ["scikit-build-core>=0.10", "cython", "cython-cmake"]
build-backend = "scikit_build_core.build"

CMakeLists.txt:
cmake_minimum_required(VERSION 3.15)
project(${SKBUILD_PROJECT_NAME} LANGUAGES C)

find_package(
  Python
  COMPONENTS Interpreter Development.Module
  REQUIRED)
include(UseCython)

cython_transpile(src/hello/hello.pyx LANGUAGE C OUTPUT_VARIABLE hello_c)

python_add_library(hello MODULE WITH_SOABI "${hello_c}")
install(TARGETS hello DESTINATION ${SKBUILD_PROJECT_NAME})

(PS: I really don't like the build-system at the bottom. Would it be acceptable to move it to the top, more like how pyproject-fmt would format it? Having it after not only the project section, but tool section too seems out of place, and it's never very long)

@zanieb wrote

We can't possibly maintain the quirks of all the build backends — we don't maintain them and can't always update the documentation when things change.

I understand, but building c-extensions, cython, cffi, and even pybind11 and nanobind extensions are now pretty common. Having a place where recipes can be added and updated is better than not having it, especially if you are open to community PRs.

@henryiii @zanieb
On a related note, the addition of something like include src/hello/*.pyx to MANIFEST.in means that all .pyx files must be included in the wheel if one uses uv build. It would be nice if this was not a necessary condition of using uv build

That's inclusion in the SDist, not wheel. Wheel inclusion is controlled by package data in setuptools.

That's inclusion in the SDist, not wheel. Wheel inclusion is controlled by package data in setuptools.

Thanks very much. You are right again :smile:
As per this page in the setuptools docs, If one adds the following to pyproject.toml, data files, like the *.pyx files mentioned earlier, are not included in the wheel. Note that include-package-data is true by default.
[tool.setuptools]
include-package-data = false


Terminate when map creation fails

When creating a map fails bpftrace needs to be terminated to prevent undefined/wrong behaviour (usually segv).
./src/bpftrace -e 'i:s:1 { @=1; @b=2; }'
Error creating map: '@': Resource temporarily unavailable
Error creating map: '@b': Resource temporarily unavailable
Error creating printf map (-1): Resource temporarily unavailable
Creation of the required BPF maps has failed.
Make sure you have all the required permissions and are not confined (e.g. like
snapcraft does).  `dmesg` will likely have useful output for further troubleshooting

This fixes #729
It was tested by inserting the following bit of code into main:
scmp_filter_ctx ctx;
ctx = seccomp_init(SCMP_ACT_ALLOW);
seccomp_rule_add(ctx, SCMP_ACT_ERRNO(11), SCMP_SYS(bpf), 0);
seccomp_load(ctx);

To make testing a bit easier I wrote a simple seccomp wrapper that can block specific bpf calls:
sudo ./seccomp -e map_create:1   -- ./src/bpftrace -e 'i:s:1 { @=5 }'
Added ERRNO(1) for command: map_create(0)
Executing: ./src/bpftrace -e i:s:1 { @=5 }
------------

Error creating map: '@': Operation not permitted

I've added it to the scripts directory as it's useful for testing failures. Any objections to this?

Seems reasonable, but curious about use case. Is this when bpftrace is run inside a container or something?

The issue I've seen most is snapcraft blocking some or all calls which cause weird errors like the one here. Limited syscall access in containers could be another case but I'm not familiar with that.

Next time could you put the formatting changes in a separate commit or PR? Makes it easier to review.

Will do. I removed the useless extra formatting from this MR to keep the diffs readable.


DACbot should send reminders

If someone is in the queue for more than 5 minutes maybe the DAC should notify the current owner at 5 or 10 minute intervals, TBD.

Probably send direct messages so the bot doesn't spam the channel

Perhaps a configurable interval? Or a reminder time (say 5 PM)? I originally saw it being more like 2+ hours intervals.
Could also be that at say midnight it automatically clears unless locked.


Fix 'modules' -> 'node_modules'

this fixes velt trying to load modules/velt-loader instead of node_modules/velt-loader

This is actually a good PR and useful, it's just already added in the local commit I'm planning to publish later.


cmd: Can't find service: Error: ADB exited with exit code 1

i am new on flutter, when i execute flutter run console give me this:

the comand flutter doctor does not give me issues

@MarcosdrVinicios did you solve it? Can you recreate the emulator?

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.

I have been struggling with this off and on for a year, here is what I just noticed that makes it work or not work on my system.
I discovered tonight that if I have my virus protection running my emulator stalls in the
" --->    Built build\app\outputs\apk\debug\app-debug.apk.
and I just get a white screen. I turn off the virus protection and it works fine in debug mode.
If its on I have to keep going to the terminal and doing: " flutter run " to see any changes I have made.
Maybe this will help someone.

You can wipe your emulator data from the Android Virtual Device Manager and then start running your app. It'll work. I just tried it, and it is working.
I guess the issue was caused because the storage of the emulator device got full.

@VladyslavBondarenko hie thanks for the response.Well it did kind of help i wiped out the data from the virtual device and it started working but when i hit flutter run, the virtual device would freeze or just stop itself and then the logs would end like this
C:\AndroidStudioProjects\flutterapp\test_project>flutter run
Using hardware rendering with device AOSP on IA Emulator. If you get graphics artifacts, consider enabling software
rendering with "--enable-software-rendering".
Launching lib\main.dart on AOSP on IA Emulator in debug mode...
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                      1260,5s (!)
√ Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
167,2s (!)
D/FlutterActivity( 5482): Using the launch theme as normal theme.
D/FlutterActivityAndFragmentDelegate( 5482): Setting up FlutterEngine.
D/FlutterActivityAndFragmentDelegate( 5482): No preferred FlutterEngine was provided. Creating a new FlutterEngine for this FlutterFragment.
Flutter is taking longer than expected to report its views. Still trying...
Syncing files to device AOSP on IA Emulator...
D/FlutterActivityAndFragmentDelegate( 5482): Attaching FlutterEngine to the Activity that owns this Fragment.
D/OpenGLRenderer( 5482): Skia GL Pipeline
D/FlutterView( 5482): Attaching to a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@244933f
W/le.test_projec( 5482): Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J (light greylist, reflection)
W/le.test_projec( 5482): Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (light greylist, reflection)
W/le.test_projec( 5482): Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray; (light greylist, reflection)
W/le.test_projec( 5482): Accessing hidden method Landroid/util/LongArray;->get(I)J (light greylist, reflection)
D/FlutterActivityAndFragmentDelegate( 5482): Executing Dart entrypoint: main, and sending initial route: /
I/Choreographer( 5482): Skipped 302 frames!  The application may be doing too much work on its main thread.
I/OpenGLRenderer( 5482): Initialized EGL, version 1.4
D/OpenGLRenderer( 5482): Swap behavior 1
D/HostConnection( 5482): HostConnection::get() New Host Connection established 0xe2b70150, tid 5863
D/HostConnection( 5482): HostConnection::get() New Host Connection established 0xe57a1140, tid 5503
D/HostConnection( 5482): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_1
D/HostConnection( 5482): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_1
W/OpenGLRenderer( 5482): Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
D/OpenGLRenderer( 5482): Swap behavior 0
D/eglCodecCommon( 5482): setVertexArrayObject: set vao to 0 (0) 0 0
D/EGL_emulation( 5482): eglCreateContext: 0xe57851e0: maj 3 min 1 rcv 4
D/eglCodecCommon( 5482): setVertexArrayObject: set vao to 0 (0) 0 0
D/EGL_emulation( 5482): eglCreateContext: 0xe3d32a00: maj 3 min 1 rcv 4
D/EGL_emulation( 5482): eglMakeCurrent: 0xe3d32a00: ver 3 1 (tinfo 0xe3d7c670)
E/eglCodecCommon( 5482): glUtilsParamSize: unknow param 0x000082da
E/eglCodecCommon( 5482): glUtilsParamSize: unknow param 0x000082da
D/HostConnection( 5482): createUnique: call
D/HostConnection( 5482): HostConnection::get() New Host Connection established 0xe57a1190, tid 5503
E/eglCodecCommon( 5482): GoldfishAddressSpaceHostMemoryAllocator: ioctl_ping failed for device_type=5, ret=-1
D/HostConnection( 5482): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_1
D/EGL_emulation( 5482): eglMakeCurrent: 0xe57851e0: ver 3 1 (tinfo 0xe57836f0)
E/eglCodecCommon( 5482): glUtilsParamSize: unknow param 0x000082da
E/eglCodecCommon( 5482): glUtilsParamSize: unknow param 0x000082da
I/Choreographer( 5482): Skipped 1683 frames!  The application may be doing too much work on its main thread.
D/EGL_emulation( 5482): eglMakeCurrent: 0xe3d32a00: ver 3 1 (tinfo 0xe3d7c670)
D/eglCodecCommon( 5482): setVertexArrayObject: set vao to 0 (0) 1 2
I/OpenGLRenderer( 5482): Davey! duration=134875ms; Flags=1, IntendedVsync=2243599484209, Vsync=2271649483087, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=2271653219400, AnimationStart=2271653292800, PerformTraversalsStart=2271653312800, DrawStart=2271659659500, SyncQueued=2293522279700, SyncStart=2294562086000, IssueDrawCommandsStart=2294562257900, SwapBuffers=2365554445600, FrameCompleted=2379515031400, DequeueBufferDuration=4473659000, QueueBufferDuration=1135000,
I/Choreographer( 5482): Skipped 2571 frames!  The application may be doing too much work on its main thread.
I/OpenGLRenderer( 5482): Davey! duration=66801ms; Flags=0, IntendedVsync=2409835137997, Vsync=2452685136283, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=2452697355600, AnimationStart=2452697499900, PerformTraversalsStart=2452701819700, DrawStart=2452709301600, SyncQueued=2452709346300, SyncStart=2452709472100, IssueDrawCommandsStart=2452709657600, SwapBuffers=2452710154400, FrameCompleted=2476637233900, DequeueBufferDuration=23705921000, QueueBufferDuration=7549000,
D/EGL_emulation( 5482): eglMakeCurrent: 0xe57851e0: ver 3 1 (tinfo 0xe57836f0)
D/eglCodecCommon( 5482): setVertexArrayObject: set vao to 0 (0) 1 0
I/Choreographer( 5482): Skipped 116 frames!  The application may be doing too much work on its main thread.
Lost connection to device.
Syncing files to device AOSP on IA Emulator...
C:\AndroidStudioProjects\flutterapp\test_project>


"openssl s_client -quiet" is not quiet

For openssl s_client the docs say:
-quiet

    inhibit printing of session and certificate information. This implicitly turns on -ign_eof as well.

However this is not what's happening, part of the certification verification is still printed:
openssl s_client -connect google.com:443 -quiet
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.google.com
verify return:1

I think to make sense -quiet should actually suppress all output that's not data coming from the server within the TLS channel.

You can get it more quiet by using the "-verify_quiet" option. It might be worthwhile updating the documentation to point out that option from the "-quiet" option. Note that even with both options specified verification failures will still be printed.

Even with -quiet and -verify_quiet there's non-failure output:
echo -e 'GET / HTTP/1.1\r\nConnection: close\r\nHost: dummy\r\n\r\n' |openssl s_client -connect google.com:443 -quiet -verify_quiet
[... HTTPoutput...]
read:errno=0

Once my refactoring PR's are done (see #10118 etc) my plan is to start document all the missing flags, and I will cover this then.  If somebody doesn't want to wait, feel free to open a new PR to fix this one.
; ./util/find-doc-nits -c | wc -l
135
;

In any case I think having a way to use s_client as a "plain" tool (i.e. no output except the actual data in the TLS channel) seems like a thing that should be possible.

> openssl s_client -verify_quiet -connect github.com:443 -showcerts > /dev/null < /dev/null
DONE

What's with that "DONE", should that go on stderr?
"openssl --version" does not seem to work, but this is 1.0.2k from RHEL 7.7.

Workaround:
openssl s_client -connect localhost:8443 &>/dev/null
This also hides the remaining lines.

Ever worse when the cert has expired.
> openssl s_client -verify_quiet -connect host:443 -showcerts </dev/null >/dev/null
depth=0 C = US, ST = Example State or Province, L = Example Locality, O = Example Organization, OU = Example Organizational Unit, CN = <IP_ADDRESS>
verify error:num=18:self signed certificate
depth=0 C = US, ST = Example State or Province, L = Example Locality, O = Example Organization, OU = Example Organizational Unit, CN = <IP_ADDRESS>
verify error:num=10:certificate has expired
notAfter=Jan  5 00:10:35 2020 GMT
notAfter=Jan  5 00:10:35 2020 GMT
DONE

openssl s_client -CAfile ca.crt -verify 4 -verify_return_error -verify_quiet -quiet -servername localhost -verify_hostname localhost -connect localhost:8081
still produces std out "verify depth is 4" in rsync  version 3.2.4  protocol version 31

with openssl 3.2.2, the command openssl s_client -verify_return_error -verify_quiet -quiet -connect mail.gmx.net:465 still produces a Connecting to <IP_ADDRESS> message, which is definitely not what i would expect.


Make DIR parameter optional for frequently used cfg commands

Certain commands in kpt do not have dire consequences when run in the wrong directory or with wrong parameters.
A good example would be kpt cfg set. If the user sets something wrong or even in the wrong directory, they can easily set it back to the desired value. There is no reason to throw an error and print a page of usage when someone runs kpt cfg set tag v1.8.0 (as shown in these examples). Simply assume DIR is the current working directory and the workflow will be much simpler.
Some of the commands (e.g. create-setter) should probably stay as they are since accidentally running them in the wrong directory could be messy. However, commands like list-setters, cat, count, tree, etc. should really have an optional directory parameter. They are mostly routine tasks for which it does not make sense to burden the user with unnecessary demands.

Agree this is causing UX friction. In almost all cases, it is more intuitive to use the current directory instead of passing a positional arg:
$ cd
$ kpt cfg set
Instead of:
$ kpt cfg set
Current, users try the intuitive command first, get an error, fiddle around with the  positional argument.
As a middle ground, we can provide a global optional argument as an alternative to changing current directory:
$ kpt --dir  cfg set

This has been implemented and is available in kpt v1. https://kpt.dev/installation/


Auto Fill origin on search page

Try it out, not a big deal if not

https://developers.google.com/maps/documentation/javascript/places-autocomplete

Any problem? I implemented the feature and closed the issue.

@rushing3


Proposal: NavigationView: Allow developers to turn off the selection indicator animation via an API

Proposal: NavigationView: Allow developers to turn off the selection indicator animation via an API
Summary
There is currently no (reasonable) way for developers to turn off the animation of the selection indicator used in the NavigationView control as it is currently embedded in the NavigationView implementation and not exposed to the outside world in any way. While users can disable animations in Windows which would disable this particular animation, this is not an option to developers who want to ship their app with a NavigationView powered in-app navigation experience simply without this animation.
Why would developers want to disable the selection indicator animation?
There are a lot of Windows apps out there which use an in-app navigation design closely resembling the one provided by the NavigationView control. Among these apps are, for example, Windows Settings, Microsoft To Do, Your Phone, OneNote for Windows 10 and legacy Edge UWP. See below for images:

 (Windows Settings)
 (Microsoft To Do)

 (Your Phone)
 (OneNote for Windows 10)

 (Edge UWP)

The key detail for this proposal here is that for all these apps their selection indicator is not animated. Whereas developers, who want to utilize the powerful NavigationView to create similar such navigation designs, will automatically get the selection indicator animation included with no way for them to turn it off for their app. This means that developers who want to match these showcased in-app navigation designs might not currently be able to utilize the power of the NavigationView here. Instead, they might be forced to re-build their in-app navigation from the ground up using controls like the SplitView and the ListView...and if hierarchical navigation support is required for their in-app navigation, this task will soon become quite complex and time-consuming.
Rationale
The NavigationView control is a powerful in-app navigation control which keeps getting more and more feature rich. Just recently, for example, we have seen support for hierarchical navigation being added. It would be a tremendous shame if developers would be forced to miss out on all these provided navigation features for free simply because they cannot remove the selection indicator animation. This animation is such a small part of the overall NavigationView control that it shouldn't act as a blocker when it comes to building a powerful in-app navigation experience where most of the functionality is already provided "for free" by the NavigationView control.
Along with proposal https://github.com/microsoft/microsoft-ui-xaml/issues/2877, this proposal will enable developers to easily create in-app navigation experiences matching the showcased in-app navigation UI examples in well-known Windows apps while being able to utilize the powerful NavigationView control.
Scope

Capability
Priority

This proposal will allow developers to turn off the NavigationView's selection indicator animation via an API.
Must

This proposal will allow developers to provide a custom selection indicator animation.
Could

This proposal will remove or change the default in-built selection indicator animation.
Won't

API Proposal
There are at least two possible ways we could provide an API for developers to use here. Note that the APIs presented below are just meant to provide a conceptual overview for now. I do not claim their designs are perfect or final.
API Example 1 - Theme resource and lightweight styling
We could introduce a new theme resource for the NavigationView:
<x:Boolean x:Key="IsSelectionIndicatorAnimationEnabled">True</x:Boolean>

This theme resource would essentially act as a flag which can be set by the developer to control whether the selection indicator animation will be played or not. An example to turn off the animation could then look like this:
<NavigationView>
    <NavigationView.Resources>
        <x:Boolean x:Key="IsSelectionIndicatorAnimationEnabled">False</x:Boolean>
    </NavigationView.Resources>
</NavigationView>

This approach could also be realized by adding a new boolean API to the NavigationView class, enabling developers to easily set this flag at runtime back-and-forth as well, like so:
public class NavigationView
{
    bool IsSelectionIndicatorAnimationEnabled { get; set; } = true;

    static Windows.UI.Xaml.DependencyProperty IsSelectionIndicatorAnimationEnabledProperty { get; };
}

API Example 2 - Create a new INavigationViewSelectionIndicatorAnimator API in the NavigationView class
Alternatively, a new API can be created on the NavigationView class which the developer can use to turn off the animation or even provide a custom animation, if they so wish. This could conceptually look like the following:
public class NavigationView
{
    INavigationViewSelectionIndicatorAnimator SelectionIndicatorAnimator { get; set; };

    static Windows.UI.Xaml.DependencyProperty SelectionIndicatorAnimatorProperty { get; };
}

where the interface INavigationViewSelectionIndicatorAnimator is defined like this:
interface INavigationViewSelectionIndicatorAnimator
{
    // Raised when the animation is completed.
    event Windows.Foundation.EventHandler<Object> AnimationCompleted;

    /// <summary>
    /// Called before <see cref="INavigationViewSelectionIndicatorAnimator.StartAnimation()"/> is called. Allows the developer to check if
    /// an animation is already running and how to treat such an animation. The return value can be used to decide if a new animation should be played
    /// or not.
    /// </summary>
    /// <param name="prevIndicator">The source selection indicator for the animation to be started.</param>
    /// <param name="nextIndicator">The target selection indicator for the animation to be started.</param>
    /// <param name="currentAnimationPrevIndicator">The source selection indicator of the currently running animation, if any.</param>
    /// <param name="currentAnimationNextIndicator">The target selection indicator of the currently running animation, if any.</param>
    /// <returns>True to indicate <see cref="INavigationViewSelectionIndicatorAnimator.StartAnimation()"/> should be called next, false otherwise </returns>
    bool PrepareForAnimation(
        Windows.UI.Xaml.UIElement prevIndicator,
        Windows.UI.Xaml.UIElement nextIndicator,
        Windows.UI.Xaml.UIElement currentAnimationPrevIndicator,
        Windows.UI.Xaml.UIElement currentAnimationNextIndicator);

    /// <summary>
    /// Start a selection indicator animation. Will be called when the return value of <see cref="INavigationViewSelectionIndicatorAnimator.PrepareForAnimation()" was <c>true</c>./>
    /// </summary>
    /// <param name="navigationViewVisual">The visual object of the NavigationView. Can be used to create composition animations. </param>
    /// <param name="container">The NavigationView UI element containing the NavigationView items and selection indicators.
    /// Can be used to obtain the position of a selection indicator in the coordinate system of the container.</param>
    /// <param name="prevIndicator">The source selection indicator for the animation.</param>
    /// <param name="nextIndicator">The target selection indicator for the animation.</param>
    /// <param name="isTopNavigationView">Specifies whether the NavigationView is in Left mode or Top pane display mode.</param>
    void StartAnimation(
        Windows.UI.Composition.Visual navigationViewVisual,
        Windows.UI.Xaml.UIElement container,
        Windows.UI.Xaml.UIElement prevIndicator,
        Windows.UI.Xaml.UIElement nextIndicator,
        bool isTopNavigationView);
}

WinUI would then provide the current selection indicator animation as an implementation of the INavigationViewSelectionIndicatorAnimator interface, for example as a class named NavigationViewSelectionIndicatorDefaultAnimator living in the Microsoft.UI.Xaml.Controls namespace.
The default style of the WinUI NavigationView (in NavigationView.xaml) could then look like this:
<local:NavigationViewSelectionIndicatorDefaultAnimator x:Key="SelectionIndicatorDefaultAnimator" />

<Style TargetType="local:NavigationView">
    <Setter Property="SelectionIndicatorAnimator" Value="{StaticResource SelectionIndicatorDefaultAnimator}" />
</Style>

and developers can set the SelectionIndicatorAnimator API to null if they don't want a selection indicator animation to be played, like so:
<NavigationView SelectionIndicatorAnimator="{x:Null}"/>

This approach, while more challenging to implement, has some benefits compared to the approach using a theme resource (or boolean property):

The developer can supply their own custom animation in the future by implementing the INavigationViewSelectionIndicatorAnimator interface.
Using an on/off flag for the animation would lose its meaning if the default animation of the selection indicator should ever be removed - developers could set it to True but no animation would be played. Given this API here, developers can instead always supply an animation to be played.

Open Questions
Well, I guess if this proposal will get the OK sign: How will the API look like? Should we provide an option to developers to potentially create their own selection indicator animation?
Additional Context
I realize there was a proposal asking for the removal of the selection indicator animation which was declined. To my understanding, the motivation behind that proposal, and the reason why it was declined, was that the selection indicator animation did not play nicely with the NavigationViewItems added in the NavigationView.PaneFooter area of the NavigationView. Instead of thus disabling the animation (or providing such an option) PR #1997 was created to make the selection indicator play nicely with those items as well.
To stress it again: This issue has a completely different motivation. It asks for the option to disable the animation so that developers can provide delightful in-app navigation experiences using the powerful NavigationView control "for free". Developers shouldn't be forced to have the re-built a potentially complex in-app navigation experience simply because a small detail like the selection indicator animation stands in the way.

This proposal is fine and all, but I vote that the default remain animated. :)

@Felix-Dev, thank you for submitting this detailed proposal. At this point, I still need some help to understand your motivation for this request. Would you personally consider re-implementing NavigationView's functionality for the express purpose of removing the selector animation? So far, other than in proposal #376 that you've noted, I haven't actually hear of any apps wanting to remove the animation. I would love to understand if a new API along these lines would actual see any usage.

This proposal is fine and all, but I vote that the default remain animated. :)

@mdauk, Yes, as you can see in the Scope section of this proposal, I'm not asking to change the default here.
@YuliKl Other than giving you the app examples above (which are featuring an in-app navigation design without this animation) I can say that I personally had to "re-build" my in-app navigation using a SplitView and a ListView to match UWP Edge's Settings pane you can see above. I explicitly did not want to have the default selection indicator animation in that case so using the NavigationView was not really an option for me. In that sense, it would have been nice if the NavigationView would have have given me an option to turn off the default navigation. As that was not the case, I grudgingly had to pass on using the NavigationView here.
The bottom line here is the navigation design features in these apps above (OneNote for Windows 10, YourPhone, Microsoft To Do,...). These apps don't have a selection indicator animation and if I want to use the power of the NavigationView control to easily re-create their in-app navigation design, then I will always get the selection indicator animation "for free" as well, with no option to turn it off. I believe these app examples above show that there is a case to make to have a selection indicator which does not animate on default. We should build that flexibility into the NavigationView control so that it can be used in all in-app navigation scenarios - whether designers want the selection indicator to be animated or not.

... I can only tell you that I myself had to "re-build" my in-app navigation using a SplitView and a ListView to match UWP Edge's Settings pane you can see above. I explicitly did not want to have the default selection indicator animation in that case so using the NavigationView was not really an option for me....

Why do you want to take the joy away from user interaction 😁
I personally will be happier when Settings moves to using WinUI, adding those little animated features, and changing the Acrylic to 80% but not ditching it entirely.

@mdtauk As we have seen in the Windows 10X preview builds, its Settings app already uses WinUI so I'm sure at some point in the future we will see the Windows 10 Settings app making the jump too.

Why do you want to take the joy away from user interaction

To be fair, the user experience can still be a delightful one even if that tiny animation is removed in one part of the app. I am using a NavigationView with animation for the top-level in-app navigation in that app's case. It just didn't feel right and necessary to me in that specific app scenario.

My issue with the NavigationView animation is that it starts with a delay that causes the indicator to jump around if you click around too fast. A much nicer experience is the ribbon in the OneNote UWP, where the indicator elegantly slides into place where you click it. Try clicking around quickly in any default NavigationView and OneNote to see how this feels.
As far as user experience goes, for users of NavigationView, it’s fine if a user just clicks on one item. But if, say, a user clicked on the wrong item and then corrected themself, they would see the indicator jump in a glitchy looking way. It is this user experience that makes me wonder if it is why apps like Your Phone disable this.
Basically—the default animation looks glitchy, and people probably want to disable it because of that.

I had this issue with NavigationView selector animation being super buggy and really annoying. Turns out that SelectionFollowsFocus="Enabled" causes the selection to jump around 3 times when the user clicks an item - firing additional navigation events (easy to miss) but also breaks the animation.


Set original tooltip text when hover out

Fix for #1234
Tested on desktop Chrome stable and Firefox. setAttribute does not work in Safari.

One small adjustment to better match what I think is a better practice in the modern, HTML5 web, but overall it looks good to me. Great work!

Done!

✨


Maintainabilty Testing not present.

I had spare time so I wanted to create an issue just to solve it myself.

This issue does not follow the standard for issues. Please clearly define the issue you are facing, or work you plan to do. If you plan to do the work yourself, assign yourself to the issue and apply the relevant tags.


Gradient at a point?

I found this answer to a previous question
with tf.Session() as sess:
    m.initialize()
    grads = tf.gradients(m._likelihood_tensor, m.X._dataholder_tensor)[0]
    mygrads = grads.eval()

Which, I believe, returns the gradient at all known points. I'd like to get the gradient at one specific point, which has not been evaluated. I tried:
with tf.Session() as sess:
    m.initialize()
    grads = tf.gradients(m._likelihood_tensor, m._build_predict(c))[0]
    mygrads = grads.eval()

where c is point I'd like the gradient at. Here, grads is returned as None. How can I get this gradient?

Can you mathematically describe which gradient you want?

Sorry if I abuse any vocabulary, but (I think) I'm looking for the derivative of the likelihood w.r.t. the inputs.

I'm looking for the gradient of the posterior mean and covariance, w.r.t. the inputs.

So I found this, which looks like what I need:
[(https://github.com/GPflow/GPflow/pull/246/files)]
but, for the life of me, I can't find a predict_f_gradients method in GPFlow. I tried the next best thing, using that same code without calling that method
Fmu, Fvar = m._build_predict(a)
grad = tf.gradients(Fmu, a) + tf.gradients(Fvar, a)

Where a is the point I'm interested in. This returns
In [508]: grad
Out[508]: [None, None]

What am I doing wrong?

 Check the TensorFlow documentation for more details.


Feature Request - JSON API

I'm not a huge fan of the current design, as it essentially loads a full website in the page action on chrome. Is there any chance you could add a JSON API for this to make it easier for users to customize the addon, and probably speed up load times?
Some suggestions for endpoints:

/comments = Get all comments for the supplied page
/nr = Get a number of comments for the supplied page (would let you add a number indicator on the browser action, and let you cache the nr of comments to speed things up)
/trending = Get trending pages on the supplied page's domain
/comment = Make a comment
/user = Get info about the user currently logged in
/trendingall = Get trending on all websites (the current top scrolling text)

Something along those lines would be handy.

Thank you for the suggestion @JasXSL. The idea of a public JSON API is something we have thought about internally but do not have a set time frame for the implementation quite yet.

I strongly support this. Loading a full website is much slower than getting just raw data. It also makes it harder to customize Dissenter. :)


Holo Projector

Hey McJty, just wondering should modded glass such as EnderIO's quite clear glass be rendering black with the holo projector?

Thanks. I will talk to squid about it. Can they render as clear?

On a side note, i put some of the glass into a hopper and shift right clicked the scanners filter tool to remove the glass but it stopped rendering rivers/ocean also.

No it will not render as clear unfortunatelly. That's a bit hard to do
I don't understand your side note?

I used the filter upgrade to remove the Quite Clear Glass from the scan, after doing so water is also no longer showing but if I don't filter the glass it leaves the water


Error 500 when collecting MSOA level rolling rate data via axios and api endpoint within nodejs code

As the title suggests I am trying to pull MSOA level endpoint data via axios within nodejs, as described by the api's documentation.
The error message has been attached within a .txt file
Code used:
const axios = require("axios");
const surreyRates_endpoint = (
    `https://api.coronavirus.data.gov.uk/v1/data?` +
    `filters=areaType=msoa;areaCode=E02006427` +
    `&structure={"date":"date","rate":"newCasesBySpecimenDateRollingRate"}`
);
const surreyRates_getData = async ( url ) => {
    const { data, status, statusText } = await axios.get(url, { timeout: 20000 });
    if ( status >= 400 )
        throw new Error(statusText);
    return data
};  // getData
const surreyRates_main = async () => {
    const result = await surreyRates_getData(surreyRates_endpoint);
    const data_values = Object.values(result)[3];
    console.log(data_values)
};  // main
surreyRates_main().catch(err => {
    console.error(err);
    process.exitCode = 1;
});

Module is being tested on a windows 10 machine
Final combined back end code will be run of a windows 2019 server
The module will be looped over a number of MSOAs within surrey, but for simplicity, code for just a single MSOA has been provided. If there is a flaw in my code please advise, however this code template has worked for all other modules within our larger conglomerate of back end code.
Error_500.txt

@grobaan Can you take a look please?


Application service room directories (and other third party network things)

Rendered: see 'docs' status check.
This may be best to review commit by commit.

Move the third party network API to it's own section
Update third party network schemas
Some information was missed when this was reviewed. This commit adds some additional documentation for how these objects interact with each other.
Document third party network/protocol directories (for appservices)
Fixes #869

(i guess this all looks okay, but i'm a bit worried about speccing stuff which might not have been used in anger)

I believe the IRC bridge, Gitter, and Slack all use them (I think, at least going off of the riot room directory). Discord also makes use of them (I'm pretty sure).

Hm. am I totally misreading this then? the API looks like it lets the HS query the AS for the list of rooms that the AS could expose - as opposed to just tagging which rooms happen to come from a given AS in the directory.  I'm aware we do the latter in publicRooms, but is anything doing the former?

Ah, right. This isn't HS->AS communication (it's AS->HS with the intent of the HS taking care of it), but it is used at least by IRC and Gitter: https://github.com/search?q=org%3Amatrix-org+org%3Avector-im+setRoomDirectoryVisibilityAppService&type=Code
It also has sytests: https://github.com/matrix-org/sytest/blob/cab0f6b3a0ae8c8324f5c8ab609ac6286da178ca/tests/60app-services/06publicroomlist.pl#L53

Although a search across all of github doesn't yield more than that, which may be a result of it not being in the spec?

right, https://github.com/matrix-org/matrix-doc/commit/5403296 mitigates my confusion nicely; thanks. lgtm!


There is no way to change api-key name

How can I change 'api-key' name? In my API I use 'token' key name. I know that this parameter is configuring index.html of swagger:
var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("api_key", key, "query");
window.swaggerUi.api.clientAuthorizations.add("api_key", apiKeyAuth);

But how can I do this with swagger-tools configuration?

swagger-tools ships with swagger-ui.  Modifying the included version of swagger-ui is likely not what you want to do so I will not discuss that.  swagger-tools' swagger-ui middleware is configurable to serve any swagger-ui instance so if you download a swagger-ui distribution and alter it like you would any other swagger-ui instance, you can use options.swaggerUiDir when wiring up the swagger-ui middleware.  This option is documented here: https://github.com/apigee-127/swagger-tools/blob/master/docs/Middleware.md#swaggeruioptions


standardizing imports and adding makefile task to help

What this PR does / why we need it:
Looking for standardization and automation for go imports.   The quickest path to this is to use goimports.   It is worth noting stripe using https://github.com/vasi-stripe/gogroup to have more control over imports.   I'm not sure how much control we need here... but some ordering is preferred.   The order provided by goimports is 1) core and 2) 3rd parties and adds the ability to separate 1 more group known as "local".  This allows for 1) core, 2) 3rd parties and 3) kubebuilder resulting in:
import (
	"context"
	"errors"
	"fmt"
	"log"
	"reflect"
	"time"

	appsv1 "k8s.io/api/apps/v1"
	batchv1 "k8s.io/api/batch/v1"
	corev1 "k8s.io/api/core/v1"
	apierrors "k8s.io/apimachinery/pkg/api/errors"
	"k8s.io/apimachinery/pkg/runtime"
	"k8s.io/apimachinery/pkg/types"
	"k8s.io/client-go/tools/record"
	ctrl "sigs.k8s.io/controller-runtime"
	"sigs.k8s.io/controller-runtime/pkg/client"
	"sigs.k8s.io/controller-runtime/pkg/handler"
	"sigs.k8s.io/controller-runtime/pkg/reconcile"
	"sigs.k8s.io/controller-runtime/pkg/source"

	kudov1beta1 "github.com/kudobuilder/kudo/pkg/apis/kudo/v1beta1"
	"github.com/kudobuilder/kudo/pkg/engine"
	"github.com/kudobuilder/kudo/pkg/engine/renderer"
	"github.com/kudobuilder/kudo/pkg/engine/workflow"
	"github.com/kudobuilder/kudo/pkg/util/kudo"
)

Which used to look like this:
import (
	"context"
	"errors"
	"fmt"
	"log"
	"reflect"
	"time"

	"github.com/kudobuilder/kudo/pkg/engine/renderer"

	"github.com/kudobuilder/kudo/pkg/engine"
	"github.com/kudobuilder/kudo/pkg/engine/workflow"
	"sigs.k8s.io/controller-runtime/pkg/handler"
	"sigs.k8s.io/controller-runtime/pkg/source"

	"k8s.io/apimachinery/pkg/runtime"

	"github.com/kudobuilder/kudo/pkg/util/kudo"
	apierrors "k8s.io/apimachinery/pkg/api/errors"
	"k8s.io/apimachinery/pkg/types"
	"k8s.io/client-go/tools/record"

	kudov1beta1 "github.com/kudobuilder/kudo/pkg/apis/kudo/v1beta1"
	appsv1 "k8s.io/api/apps/v1"
	batchv1 "k8s.io/api/batch/v1"
	corev1 "k8s.io/api/core/v1"
	ctrl "sigs.k8s.io/controller-runtime"
	"sigs.k8s.io/controller-runtime/pkg/client"
	"sigs.k8s.io/controller-runtime/pkg/reconcile"
)

this can be accomplished by make imports
this is also compatible with format imports in Goland.
Fixes #

This was merged under an unusual case.   The only thing contentious that I could see if the Makefile imports task.  It was never meant to "be" the linter.   it was an utility task.   I also get @nfnt  it's unreliable-ness.  However I don't expect it to be used for every PR or commit thereby making the unreliableness not a factor.   If we want to remove the task in Makefile... I'm fine with that...    I merged after adding in the linter configuration as you guys advertised.  This still allows for a large variations in import organization that is not great.
I  visited every go file and used the tooling to create the corrected imports.   I pushed the merge because I already needed to rebase a number of times to changes coming in.  Since this was touching most / all go files... the room for collision was high and the change is innocuous (in that it is just imports).


Front page has outdated API

http://googlecloudplatform.github.io/google-cloud-java/0.11.0/index.html has a code snippet:
DatastoreOptions options = DatastoreOptions.newBuilder()
  .setProjectId(PROJECT_ID)
  .setAuthCredentials(AuthCredentials.createForJson(
    new FileInputStream(PATH_TO_JSON_KEY))).build();

However, setAuthCredentials isn't a method on DatastoreOptions.Builder- it's setCredentials: http://googlecloudplatform.github.io/google-cloud-java/0.11.0/apidocs/com/google/cloud/datastore/DatastoreOptions.Builder.html. It also has it taking an AuthCredentials object- GoogleCredentials is probably the correct substitute here.

The example code is now updated.


Add S_IFREG to Mode

Missed the S_IFREG constant in https://github.com/aantron/luv/pull/69 - this adds it, so that Luv.File.stat can be used to check if the stat result represents a file.

Thanks!


NullPointerException occured when using @GlobalTransactional and SQL with 'union all'

[ ] I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description
Service interface use @GlobalTransactional，and there are three sqls in it. First two of them has succeed. But when run the third sql，it throw a NullPointerException.
Ⅱ. Describe what happened
The error may involve defaultParameterMap
The error occurred while setting parameters
SQL: SELECT             pt.THING_PROPERTY_TMPLT_ID,             pt.NAME name,             pt.NAME displayName,             u.UNIT_SYMBOL unitSymbol,             tpt.DATA_TYPE type,             pt.DEFAULT_VALUE defaultVaue         FROM             t_thing_tmplt_property_group_rel_tmplt tr                 JOIN             t_thing_property_group_tmplt gt ON gt.THING_PROPERTY_GROUP_TMPLT_ID = tr.PROPERTY_GROUP_TMPLT_ID                 LEFT JOIN             t_thing_property_tmplt pt ON pt.THING_PROPERTY_GROUP_TMPLT_ID = gt.THING_PROPERTY_GROUP_TMPLT_ID                 LEFT JOIN             t_thing_property_type tpt ON tpt.THING_PROPERTY_TYPE_ID = pt.THING_PROPERTY_TYPE_ID                 LEFT JOIN             t_unit u ON u.UNIT_ID = tpt.UNIT_ID         WHERE             tr.THING_TMPLT_ID = ?             AND tr.ORGANIZATION_ID = ?                              AND tr.ORGANIZATION_ID = ?                 AND pt.IS_LOGIC = 0
Cause: java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
Ⅲ. Describe what you expected to happen
run succeed.
Ⅳ. How to reproduce it (as minimally and precisely as possible)
Debug sure that is relative with SQLUnionQuery class.
Bug will happend when i use like:
select * from table1 union all select * from table2
when i change the sql to
select t.* from (select * from table1 union all select * from table2) t
Ⅴ. Anything else we need to know?
none
Ⅵ. Environment:

JDK version : 1.8
OS : windows
Others: Spring cloud 1.5.3 + Mybatis

please paste the full stack trace

thanks for reporting.it's a bug.i will fix it


Add tiny superscipt font

Add the the tiny font, it looks like this: ᵗʰⁱˢ ⁱˢ ᵗʰᵉ ᵗⁱⁿʸ ᶠᵒⁿᵗ ᵖʳᵉᵛⁱᵉʷ
Feature request received from user

This is fairly simple request, can add in the next release.


ESP8266 Library for driving WS2812 led-strip using the I2S output.

Check the ESP8266 Library for driving WS2812 led-strip using the I2S output. https://github.com/JoDaNl/esp8266_ws2812_i2s

(just a note, the NeoPixelBus Library you are using already supports this)  I just added a merge to convert from the old branch specific NeoPixelBus to the official library manager version here https://github.com/probonopd/ESP8266HueEmulator/pull/20

Thanks @Makuna for letting me know, it's been a while that I'd been working on this...

@Makuna does this mean that we need to use GPIO3 instead of GPIO2 in order to use I2S?

@probonopd check the wiki, esp8266 has several supported "methods", dma (i2s) has always had this restriction.  There is also a uart method which is restricted to yet another pin.  The bit bang method should not be used but is present for testing.


Modified mnist.py to use random seeds.

Modified mnist.py to use random seeds to allow for repeatable behavior during development and testing.  This may be especially helpful in the MNIST tutorials.  Both graph level seeds via the tf.set_random_seed call like:  tf.set_random_seed(1238)
and op level via something like:
mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True, seed=12345)
are allowed, to be consistent with the overall Tensorflow random seed handling.

Can one of the admins verify this patch?

Geoffrey can you check the random seed logic in this?

Jenkins, test this please.

Jenkins, test this please.

Jenkins, test this please.

@caisq I think the error is unrelated. Feel free to merge.


HDDS-8605. Implement the ability to update the ServiceInfo object with the new rootCA

What changes were proposed in this pull request?
During the rotation of the rootCA certificate, we need to update the cached PEM format representation of the CA certificates in Ozone Manager, so that via the ServiceInfoEx object we are able to provide those to the clients.
In this PR, I have separated a class called ServiceInfoProvider, into which I have pushed out all the relevant code.
It attaches a listener to the OM's certificate client that manages the polling for the rootCA certificate, and then notifies this provider to update its cached data.
OM every time creates a ServiceInfoEx object once it is requested via the OzoneManagerProtocol, so does the provider.
The provider is needed to separate away the logic and to be able to test the handling of the renew separately and effectively.
In order to utilize some pre-written utilities in the test for the Provider, I have moved the relevant methods from TestInterSCMProtocolService to a test utility class under hdds-common. With that I had to move the HDDSKeyGenerator utility class in the production code as well, so that it is available for the test utilities. Both of these are general utilities, so they are rightfully placed in hdds-common I believe.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8605
How was this patch tested?
Added UT for the new functionality.

I think all the review comments were addressed, @Galsza @ChenSammi @adoroszlai please take a look once you have the time.
I have rebased the patch onto the tip of the master branch, as it has all the related commits. During the process I squashed my commits that were added to address the review comments, but in the meantime, I think I have improved the readability of the code. Let me know if you see any further things to address.
Thank you!

@fapifta Thank you Pifta, there are a few elegant solutions here that I could learn of. LGTM +1

Hi @fapifta , thanks for working on this. Could you add some file put/get operation in robot test, after the root certificate is rotated and first root certificate is expired?  You can leverage test-root-ca-rotation.sh

Thank you for the additional reviews @ChenSammi @Galsza. I tried to address all your comments properly, if you can take an other look, I would be glad.
This PR in the current stage relies on #5050 and #5052 to be added, until that the ozonesecure and ozonesecure-ha tests are expected to fail.

After I was able to merge #5050 and #5052 I have rebased this branch on master. Pending CI and secondary reviews.

@fapifta , thanks for update the patch. I have left four new comments, including the one under toPEMEncodedStringUnsafe.

Thank you for the review, I have pushed changes to address your comments @ChenSammi, thank you for the continous reviews!

Looking at it further after the change in ServiceInfoProvider.toPEMEncodedStringUnsafe, the method felt unnecessary, so I did some more code changes around that, and removed the method.
@ChenSammi please take a look once you have time.

@fapifta , I checked the failed UT, looks like it's because "hdds.x509.ca.rotation.enabled" default is false now,  so RootCaRotationPoller is not instantiated.

Oh well... thank you @ChenSammi to take a look at, I am verifying the fix for this quickly on the failed tests, and push the fix.

Thanks @fapifta ,  LGTM +1.


Support for round-trip flights

This service has been working well for me recently, thank you again! I found one issue however - it looks like the current logic will always select the earliest leg of a reservation. For a round-trip flight, this can be problematic, since we need to schedule the check-in for the return flight, but the earliest leg of the reservation is the outbound flight.
Would it be reasonable to limit validLegs in findFirstLegDate to flight legs that are in the future?

I may open a PR to add support for this.
It seems like instead of returning the first validLeg, we should return the entire array of valid legs and schedule them all upfront. Do you see any issues with this approach? You'd only need to schedule your check in for a reservation once, and all your flights under that reservation should be covered.

A PR would be welcomed and appreciated. Otherwise, I'll write the PR myself. It's a great idea.
I agree with the approach of scheduling all future legs up front. findFirstLegDate should be re-written (and re-named) to return all legs whose departure times are >= 5 minutes in the future.

Working on this now! Should have an initial PR out in a few hours.

Resolved by #6. Thanks @aaron-pham!


Looks like no changes were published since last year

@VladKopanev can you please take a look?

Yes, I think it's time for a new release, but before that, we need to update the project to the latest ZIO RC. Actually, around half of year-ago, I thought of releasing new version right after ZIO 1.0.0 release, but it obviously takes to long, and also RC-19 is promised to be really close to 1.0.0 release in terms of compatibility so it should be ok if we just tie our release on that RC. If you have time for another PR to update project to RC-19 I would greatly appreciate that, if not, I will try to look into that ASAP myself.

@VladKopanev PR - https://github.com/VladKopanev/zio-saga/pull/83

@andreyshikov version 0.3.0 released! Thanks for your contribution! Closing this issue.


[Runtime] Assert the correct name when retrieving standard Concurrency type descriptors.

If the runtime and Concurrency runtime are mismatched and have different, we can end up grabbing the wrong descriptor when looking up a standard Concurrency type. If they have different declarations of ConcurrencyStandardTypeDescriptors then the fields can be misaligned, causing us to retrieve the wrong one. This can cause extremely confusing type lookup failures or other crashes.
To better detect this problem in asserts builds, add an assert that the descriptor we got from concurrencyDescriptors actually has the right name.

Don't mind me, just closing the door after the horse escaped.


Not sure how thoroughly this was tested on SQL Server, but I got a lot of errors with the included tool

Not sure how thoroughly this was tested on SQL Server, but I got a lot of errors with the included tool and it appears to have some serious shortcomings (VARCHAR(MAX) doesn't work, and it doesn't quote the names). This is my modified query although I am still having errors due to unique index dependencies.
SELECT 'ALTER TABLE [' + OBJECT_NAME(SC.object_id) + '] ALTER COLUMN [' + SC.name + '] NVARCHAR(' +
CASE WHEN SC.max_length = -1 THEN 'MAX' ELSE CONVERT(VARCHAR(5), SC.max_length) END
+ ')'
FROM SYS.columns SC
JOIN SYS.types ST
ON SC.system_type_id = ST.system_type_id
AND SC.user_type_id = ST.user_type_id
WHERE ST.name ='varchar'
Originally posted by @edwardforgacs in https://github.com/go-gitea/gitea/issues/24105#issuecomment-1533008588

It's SQL 2019 but this won't affect the syntax issues I mentioned.


Redefine Elasticsearch index name for logs

We want to request a feature
To be able to redefine Elasticsearch indices names for logs and also to be able to add a prefix with the date.
It can be helpfully for customisation and for indices rotation.
What is the current behavior?
Now we have a fixed name of the indices:
block-ingestor-logs
index-node-server-logs
graphql-server-logs
subgraph-logs
What is the expected behavior?
We should be able to redefine index name and also add a prefix with the date like we can do it for other tools like:
Fluentbit
    Logstash_Format On
    Logstash_Prefix fluent-bit

will result fluent-bit-2022.03.09
Logstash
logstash-%{+yyyy.MM.dd}

will result in logstash-2022.03.09

The issue is still relevant, therefore we developed a workaround.
Simple edit the graph/src/log/elastic.rs file as here and build an image.
I'm not a Rust developer and more likely there are better ways of achieving the goal, but this solution works for us in Protofire.

Looks like we have at least one workaround, for indices rotation

Elasticsearch - ILM: Manage the index lifecycle
OpenSearch - Index State Management

By using policies (using index age), we should be able to achieve something like
subgraph-logs        # today
subgraph-logs-000001 # day x
subgraph-logs-000002 # day y
subgraph-logs-00000n # day n

And it should help to not drop all the data at once on indices cleanup.
But yeah, indices names overlap it still an issue, especially when we have multiple indexers.

ISM policy is not an option here, because by default indices are being created only once (subgraph-logs, block-ingestor-logs, index-node-server-logs, graphql-server-logs). And if you apply a policy, let's say, delete indices older than 30 days, at some day you'll loose all data.
That's why we applied the workaround described above: with this indices are being created every day with a date postfix (e.g. subgraph-logs-2023.9.15).

I'm referring to the Rollover. If you will apply such a policy, the following will happen

Tomorrow Elasticsearch will create a new index subgraph-logs-000001 from subgraph-logs
Current day data,will still collected in the subgraph-logs
Day after tomorrow, Elastichsearch will create subgraph-logs-000002 from subgraph-logs
And so on...
If we set last step to delete indices older than 30 days, at the 30th day index subgraph-logs-000001 will be deleted and so on.

And same we should be able to do with OpenSearch.

@air3ijai got what you mean and looks like this could be a real solution to the issue. But it seems you are confusing a bit how rollover works. If you want to use an ISM policy with rollover action you need to have an alias (e.g. my-app-logs). An application continues to interact with the alias, whereas the real data is being written to some specific index (e.g. my-app-logs-000001). Then rollover happens, a new index my-app-logs-000002 is created and it becomes a write index. However for an application nothing changed, it even doesn't know that it works with an alias and not a specific index.
Speaking about graph-node, an alias must be with the same name as our initial index (let's take subgraph-logs as an example). But ES/OS doesn't allow to have an index and an alias with equal names.
I made a quick research and prepared a short step-by-step guide for the case with graph-node.
In order to be able to use rollover with subgraph-logs you need to do next:

Stop graph-node
Delete subgraph-logs index (or use _reindex to save the data to an index with another name)
Create an index template:
PUT _index_template/subgraph-logs {   "index_patterns": [        "subgraph-logs*"   ],   "template": {        "settings": {             "plugins.index_state_management.rollover_alias": "subgraph-logs"        }   } }
Create a policy:
PUT _plugins/_ism/policies/rollover_policy_subgraph_logs { "policy": {  "policy_id": "rollover_policy_subgraph_logs",  "description": "rollover_policy_subgraph_logs_30d",  "schema_version": 1,  "error_notification": null,  "default_state": "hot",  "states": [    {      "name": "hot",      "actions": [        {          "rollover": {            "min_index_age": "1d"          }        }      ],      "transitions": [        {          "state_name": "delete",          "conditions": {            "min_index_age": "30d"          }        }      ]    },    {      "name": "delete",      "actions": [        {          "delete": {}        }      ],      "transitions": []    }  ],  "ism_template": {    "index_patterns": [      "subgraph-logs*"    ],    "priority": 100  } } }
Create an index:
PUT subgraph-logs-000001
Create an alias:
POST /_aliases { "actions": [  {    "add": {      "index": "subgraph-logs-000001",      "alias": "subgraph-logs"    }  } ] }
Start graph-node

After this, the policy rollover_policy_subgraph_logs will be applied to all indices (subgraph-logs-000001, subgraph-logs-000002, etc.) automatically and indices older than 30 days will be deleted.


Bubble Min-size setting

Enable setting Min Size with a similar slider (Require it to be smaller than max size),
minimum one pixel
When sliding min-size up:  reaching the max-size, the max-size-slider should adjust
When sliding max-size down: it eventually hits the min-size-slider should adjust down too.

Still needs improvements, a single slider similar to GW would probably make more sense here. But it's possible to control now.


Fix string length computation for issue_command function

When arg is not a ascii char,
len(arg) may be differrent from len(arg.encode("utf-8")).
For example, a Chinese character c,
len(c) is 1, but len(c.encode("utf-8")) is 3,
which will raise an InvalidResponseError because of the wrong length.
This commit should fix this kind of problem.

hmm... looks like #28 and #31 are also dealing with this problem.
I should add a patch which can solve it once for all and this is related to the annoyed problem of unicode and str of Python 2 and Python 3.

@quique0194, @pjrobertson:
Could both of you help me testing if this patch works for both of you in your scenario?
I've tested this patch with this simple script and it worked for me,
I would be appreciate if you can help testing this patch.
(Click Details to see the script)
Thank you.

# -*- coding: utf-8 -*-

import sys
import dryscrape

dryscrape.start_xvfb()
br = dryscrape.Session()
br.visit("https://google.com")

if sys.version_info[0] == 2:
    PY2 = True
    PY3 = False
if sys.version_info[0] == 3:
    PY2 = False
    PY3 = True

def test_py2():
    q = br.at_xpath('//*[@name="q"]')
    q.set(u"canción")
    q.form().submit()
    br.render("py2-unicode.png")

    q = br.at_xpath('//*[@name="q"]')
    q.set("北京")
    q.form().submit()
    br.render("py2-str.png")

    q = br.at_xpath('//*[@name="q"]')
    q.set(b"123")
    q.form().submit()
    br.render("py2-bytes.png")

def test_py3():
    q = br.at_xpath('//*[@name="q"]')
    q.set("北京")
    q.form().submit()
    br.render("py3-unicode.png")

    q = br.at_xpath('//*[@name="q"]')
    q.set("canción".encode("utf-8"))
    q.form().submit()
    br.render("py3-bytes.png")

if __name__ == "__main__":
    if PY2:
        test_py2()
    if PY3:
        test_py3()

    print("Done")

I came across the same problem, and found a very similar solution. I can confirm that the fundamental problem is the computed length of each argument as len(arg) in line 517 of the changed file.
I have reviewed the solution presented in this pull request. I find the updated code well written, and have successfully tested the updated version with both Python2 and Python3 using the provided example script from Dryscrape, as well as a script that I had written myself for a different purpose. In response to @M157q's comment on the use of the unicode identifier after checking for Python2, I believe that this should not be a problem (see my reply to the comment). I have added one comment to the changed file requesting a fix for the indentation.
I suggest to the maintainers of this repository to merge this pull request #33, to reject pull requests #28 and #31, and to mark issues #27 and #30 as fixed (or duplicates where appropriate).

@M157q thank you for the patch and @PhilippVeerport thank you for your detailed analysis. I will try to look at this ASAP.

@M157q @PhilippVerpoort  Thank you for your contribution. Unfortunately I have decided to no longer maintain dryscrape or webkit-server, since properly doing so would require rewriting webkit-server using QtWebEngine. Consider using a different package for your scraping if you do not want to be vulnerable to old WebKit bugs.

@niklasb Thanks for your reply. This is completely fair, but would you consider implementing this change and filing a new release with this bug fix anyway? At least people who do consider for some reason to use this piece of software will not have to go through the same process of manually applying this patch.


Duplicate geom points cause "arrows" to draw in Tangram

What did you see? "Arrows" on lines
What did you expect to see? Clean lines
What map location are you having problems with? http://tangrams.github.io/eraser-map/#16/26.5310/-81.7526
Screenshot?

Discussion: Mostly from @bcamper below:
It happens when two line vertices collapse into the same spot. In the above example, (part of) the problem is duplicate line points / degenerate lines in the tiles, here's an example from 17885/27755/16.
id 69629000, geom: [[[2205,3104],[1849,2611]],[[1849,2611],[1849,2611],[1512,2143],[1512,2143]],[[1512,2143],[1448,2053],[1380,1958],[1120,1596],[980,1408]],[[980,1408],[980,1408],[504,740],[0,46]],[[980,1408],[980,1408]],[[980,1408],[1018,1499],[1028,1591],[1015,1677],[982,1758],[928,1827],[860,1876],[765,1916],[669,1934]],[[1334,2035],[1388,2054],[1433,2080],[1471,2105],[1512,2143]],[[1512,2143],[1512,2143]],[[1849,2611],[1849,2611]],[[1849,2611],[1878,2706],[1888,2803],[1873,2876],[1848,2932],[1809,3008],[1780,3030],[1780,3030]]]

here's a bogus line in there for instance: [[1849,2611],[1849,2611],[1512,2143],[1512,2143]]
Sometimes zoom 16 has the problems, but zoom 17 on prod fixes itself, but zoom 17 on dev continues the problem.
We think the lines are degenerate because they're getting quantized to have dupe points in both MVT and GeoJSON formats. BUT TopoJSON format looks ok (on both dev and prod, and in all cases it affects z16 but not z15 or z17)

MVT: the coordinates are [0, 4096], so it's not surprising some points get duped
GeoJSON: are we doing some kind of decimal place rounding? that could explain it

Brett speculates that it's working in TopoJSON because it has its own quantization/scaling scheme that adapts its precision.

I've fixed the source of the duplicate points in the tile given as an example in mapzen/TileStache#126. Sadly, there are almost certainly other sources of duplicate points (although there is now a test to ensure we don't regress).
We have a lot of processing steps in making a tile, most of which are capable of introducing invalid, empty or degenerate features. Up to and including the final "formatting" stage, where features which are valid in MVT (quantized to 4096, mercator) won't be valid in TopoJSON (finer quantization, lat/lon). Further, it might be possible for formatted features to be valid, but then be quantized or reprojected in client libraries in such a way to make them invalid or degenerate.
I figure we can either add a post-formatting stage which reads the tile back and fixes or discards any invalid geometries, one for each format, or fix the issues at source as and when they pop up. Either way is going to be a lot of work.

Agree it's a tricky issue across client and server. It's true that client-side processing could introduce issues either through quantization or other transforms (and this can occur in Tangram right now), and the tiles by definition can't really prevent that. But I do think it's reasonable goal for the server to provide valid geometries. Ensuring there are no consecutive duplicate points in lines or polygon rings would be a good step towards this IMO, even if there are other known + unknown cases where other degenerate geoms will get through. On the other hand this may not obviate the need for us to do similar client-side checking in Tangram, especially with user-provided data, etc.
FWIW TopoJSON is holding up better than MVT so far (e.g. spot-checking some of the issues we've seen), presumably because it adjusts its scaling factors based on the data, while MVT always samples to a 0-4096 integer resolution (with default extent anyway)?
The different effective resolution of the formats raises an interesting problem: previously the formats have simply been different containers for the same data, but if we remove invalid geometries, we will end up with cases where different formats actually have divergent data when decoded. This isn't necessarily critical, but complicates the mental model a bit too.

But I do think it's reasonable goal for the server to provide valid geometries.

For which definitions of valid, though? I think this needs to be written down, unambiguous and testable, otherwise we'll keep revisiting this issue.

... previously the formats have simply been different containers for the same data ...

I don't think two formats have ever been simply containers for the same data - the formats as we use them define the precision of the points, and so no two formats for the same tile contain the exact same data. Previously, we've included invalid geometry in all formats - sometimes the geometries which are invalid are different between two formats. The options appear to be: adopt a precision model (e.g: 4096 distinguishable points along the boundary) and a validity model (e.g: OGC when calculated on 4096-quantised mercator tiles) for all formats - or have some geometries only present in some formats.
I think the latter will be hugely confusing for us and our users, but the former would mean always using the "lowest common denominator" for precision, which would be a shame for formats which could support higher precision.

Good points. I'd probably lean towards consistency at the expense of
flexibility (e.g. adopt a 4096 resolution and OGC validity) but agree this
needs to be thought through more.
On Mon, Mar 7, 2016 at 12:01 PM, Matt Amos<EMAIL_ADDRESS>wrote:

But I do think it's reasonable goal for the server to provide valid
geometries.
For which definitions of valid, though? I think this needs to be written
down, unambiguous and testable, otherwise we'll keep revisiting this issue.
... previously the formats have simply been different containers for the
same data ...
I don't think two formats have ever been simply containers for the same
data - the formats as we use them define the precision of the points, and
so no two formats for the same tile contain the exact same data.
Previously, we've included invalid geometry in all formats - sometimes the
geometries which are invalid are different between two formats. The options
appear to be: adopt a precision model (e.g: 4096 distinguishable points
along the boundary) and a validity model (e.g: OGC when calculated on
4096-quantised mercator tiles) for all formats - or have some geometries
only present in some formats.
I think the latter will be hugely confusing for us and our users, but the
former would mean always using the "lowest common denominator" for
precision, which would be a shame for formats which could support higher
precision.
—
Reply to this email directly or view it on GitHub
https://github.com/mapzen/vector-datasource/issues/569#issuecomment-193345520
.


Sparkfun Pro Micro Driver error

Hello,
My Problem is that i wanted to do this project with a arduino nano. But the nano is not supported so i ordered a Sparkfun pro Micro with 3.3V and 8mhz. When i first plugged it in windows said that there is a driver issue but in the arduino ide it apperied so i uploaded the sketch for the node pro but now the pro micro is not visiable in the arduino ide and so not visable in icue. I already have tried to install the drivers from sparkfun but windows always says that the best drivers are already installed. Ofcourse i already have removed the drivers and reinstalled them. Can pls someone help me?

Try the first item of the troubleshooting https://github.com/Legion2/CorsairLightingProtocol/wiki/Troubleshooting#i-cant-upload-a-new-sketch-to-my-sparkfun-pro-micro

Did this resolve the problem for you?