Intermittent "Out of range float values are not JSON compliant" errors

It seems like Titiler can get itself in a state where subsequent reads to the same file return JSON errors. I am not sure if this is related to #409 yet.
It seems fairly easy to reproduce, I can reproduce it locally or on titiler.xyz just by repeatedly hitting tilejson.json, after about 2-3 hits it starts returning errors.
If I kill the worker locally it works fine for a few then starts erroring, returning 500's with:
{"detail":"Out of range float values are not JSON compliant"}
For example:
while true; do curl 'http://localhost:8000/cog/tilejson.json?url=http://static2.skysight.io/demo.tiff&bidx=1&bidx=2&bidx=3'; done
{"tilejson":"2.2.0","version":"1.0.0","scheme":"xyz","tiles":["http://localhost:8000/cog/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?url=http%3A%2F%2Fstatic2.skysight.io%2Fdemo.tiff&bidx=1&bidx=2&bidx=3"],"minzoom":1,"maxzoom":7,"bounds":[-180.0,-90.0,180.0,90.0],"center":[0.0,0.0,1]}{"tilejson":"2.2.0","version":"1.0.0","scheme":"xyz","tiles":["http://localhost:8000/cog/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?url=http%3A%2F%2Fstatic2.skysight.io%2Fdemo.tiff&bidx=1&bidx=2&bidx=3"],"minzoom":1,"maxzoom":7,"bounds":[-180.0,-90.0,180.0,90.0],"center":[0.0,0.0,1]}{"tilejson":"2.2.0","version":"1.0.0","scheme":"xyz","tiles":["http://localhost:8000/cog/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?url=http%3A%2F%2Fstatic2.skysight.io%2Fdemo.tiff&bidx=1&bidx=2&bidx=3"],"minzoom":1,"maxzoom":7,"bounds":[-180.0,-90.0,180.0,90.0],"center":[0.0,0.0,1]}{"tilejson":"2.2.0","version":"1.0.0","scheme":"xyz","tiles":["http://localhost:8000/cog/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?url=http%3A%2F%2Fstatic2.skysight.io%2Fdemo.tiff&bidx=1&bidx=2&bidx=3"],"minzoom":1,"maxzoom":7,"bounds":[-180.0,-90.0,180.0,90.0],"center":[0.0,0.0,1]}{"tilejson":"2.2.0","version":"1.0.0","scheme":"xyz","tiles":["http://localhost:8000/cog/tiles/WebMercatorQuad/{z}/{x}/{y}@1x?url=http%3A%2F%2Fstatic2.skysight.io%2Fdemo.tiff&bidx=1&bidx=2&bidx=3"],"minzoom":1,"maxzoom":7,"bounds":[-180.0,-90.0,180.0,90.0],"center":[0.0,0.0,1]}{"detail":"Out of range float values are not JSON compliant"}{"detail":"Out of range float values are not JSON compliant"}{"detail":"Out of range float values are not JSON compliant"}{"detail":"Out of range float values are not JSON compliant"}{"detail":"Out of range float values are not JSON compliant"}{"detail":"Out of range float values are not JSON compliant"}{"detail":"Out of range float values are not JSON compliant"}
Same result on titiler.xyz:
while true; do curl 'https://titiler.xyz/cog/tilejson.json?url=http://static2.skysight.io/demo.tiff&bidx=1&bidx=2&bidx=3'; done
Stacktrace from local server:

  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/fastapi/applications.py", line 199, in __call__
    await super().__call__(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/errors.py", line 181, in __call__
    raise exc from None
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 25, in __call__
    response = await self.dispatch_func(request, self.call_next)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/titiler/core/middleware.py", line 56, in dispatch
    response = await call_next(request)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 45, in call_next
    task.result()
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 25, in __call__
    response = await self.dispatch_func(request, self.call_next)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/titiler/core/middleware.py", line 92, in dispatch
    response = await call_next(request)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 45, in call_next
    task.result()
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 25, in __call__
    response = await self.dispatch_func(request, self.call_next)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/titiler/core/middleware.py", line 38, in dispatch
    response = await call_next(request)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 45, in call_next
    task.result()
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette_cramjam/middleware.py", line 77, in __call__
    await self.app(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/middleware/cors.py", line 78, in __call__
    await self.app(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/exceptions.py", line 82, in __call__
    raise exc from None
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/routing.py", line 580, in __call__
    await route.handle(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/routing.py", line 241, in handle
    await self.app(scope, receive, send)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/routing.py", line 52, in app
    response = await func(request)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/fastapi/routing.py", line 243, in app
    response = actual_response_class(response_data, **response_args)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/responses.py", line 53, in __init__
    self.body = self.render(content)
  File "/home/plantain/titiler/venv/lib/python3.9/site-packages/starlette/responses.py", line 162, in render
    return json.dumps(
  File "/usr/lib/python3.9/json/__init__.py", line 234, in dumps
    return cls(
  File "/usr/lib/python3.9/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python3.9/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)

I think I have tracked this all the way down to rio_tiler, in particular rio_tiler/io/base.py and geographic_bounds.
This method semi-randomly throws "Reprojection failed, err = -20, further errors will be suppressed on the transform object.", in which case it defaults to (-180.0, -90.0, 180.0, 90.0), and occasionally succeeds and returns (-179.9624834120246, -52.94556026404906, inf, inf). The inf breaks the json encoding.
    def geographic_bounds(self) -> BBox:
        """return bounds in WGS84."""
        try:
            bounds = transform_bounds(
                self.crs,
                self.geographic_crs,
                *self.bounds,
                densify_pts=21,
            )
        except:  # noqa
            warnings.warn(
                "Cannot dertermine bounds in WGS84, will default to (-180.0, -90.0, 180.0, 90.0).",
                UserWarning,
            )
            bounds = (-180.0, -90, 180.0, 90)

        return bounds

It looks like this behaviour is known about because in tile_exists there is this illuminating comment:

        try:
            dataset_bounds = transform_bounds(
                self.crs,
                self.tms.rasterio_crs,
                *self.bounds,
                densify_pts=21,
            )
        except:  # noqa
            # HACK: gdal will first throw an error for invalid transformation
            # but if retried it will then pass.
            # Note: It might return `+/-inf` values
            dataset_bounds = transform_bounds(
                self.crs,
                self.tms.rasterio_crs,
                *self.bounds,
                densify_pts=21,
            )

@Plantain thanks for reporting this.
Your file is interesting:

it's not a COG
it uses a CRS/bounds that cannot be transformed to WGS84

In [2]: with COGReader("http://static2.skysight.io/demo.tiff") as cog:
   ...:     print(cog.geographic_bounds)
   ...:     print(cog.geographic_bounds)
   ...:
NoOverviewWarning: The dataset has no Overviews. rio-tiler performances might be impacted.
  warnings.warn(
UserWarning: Cannot dertermine bounds in WGS84, will default to (-180.0, -90.0, 180.0, 90.0).
  warnings.warn(
(-180.0, -90, 180.0, 90)
(-179.9624834120246, -52.94556026404906,<PHONE_NUMBER>7468366, 52.945560264049064)

At first GDAL will raise an exception but success on consecutive tries.
see: https://github.com/cogeotiff/rio-tiler/blob/master/rio_tiler/io/base.py#L52-L69
Locally with GDAL 3.3.3, it works fine but for some reason the GDAL/Version (using rasterio wheels) deployed at titiler.xyz will returned invalid values. I would tend to think that this is either a Data issue or a GDAL issue that was fixed in recent GDAL version.

you tiff has a nodata value and an alpha band which are incompatible

sorry I posted my reply at the same time as yours :-)

This method semi-randomly throws "Reprojection failed, err = -20, further errors will be suppressed on the transform object.", in which case it defaults to (-180.0, -90.0, 180.0, 90.0), and occasionally succeeds and returns (-179.9624834120246, -52.94556026404906, inf, inf). The inf breaks the json encoding.

I think I can make a quick fix for this. I'll closes this issue here and make a PR in rio-tiler

Ok great, thanks for looking into this so quickly. It's generated by GDAL with -of COG, so I will figure out what's going wrong with the .tiff.

FYI:
$ rio cogeo info http://static2.skysight.io/demo.tiff
Driver: GTiff
File: http://static2.skysight.io/demo.tiff
COG: False
Compression: JPEG
ColorSpace: None

Profile
    Width:            17964
    Height:           17964
    Bands:            4
    Tiled:            False
    Dtype:            uint8
    NoData:           0.0
    Alpha Band:       True
    Internal Mask:    False
    Interleave:       PIXEL
    ColorMap:         False
    ColorInterp:      ('red', 'green', 'blue', 'alpha')
    Scales:           (1.0, 1.0, 1.0, 1.0)
    Offsets:          (0.0, 0.0, 0.0, 0.0)

Geo
    Crs:              PROJCS["unknown",GEOGCS["unknown",DATUM["unknown",SPHEROID["GRS 1980",6378137,298.257222096042]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433]],PROJECTION["Geostationary_Satellite"],PARAMETER["central_meridian",-137],PARAMETER["satellite_height",35786023],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],EXTENSION["PROJ4","+proj=geos +sweep=x +lon_0=-137 +h=35786023 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"]]
    Origin:           (-4500020.820204, 4500020.820204)
    Resolution:<PHONE_NUMBER>999999, -501.0043219999999)
    BoundingBox:      (-4500020.820204, -4500020.820203998, 4500020.820203998, 4500020.820204)
    MinZoom:          1
    MaxZoom:          7

Image Metadata
    AREA_OR_POINT: Area
    TIFFTAG_DATETIME: 2021:12:03 05:30:32

Image Structure
    COMPRESSION: JPEG
    INTERLEAVE: PIXEL
    JPEGTABLESMODE: 1
    JPEG_QUALITY: 75

IFD
    Id      Size           BlockSize     Decimation
    0       17964x17964    17964x16      0

COG Validation info
    - The file is greater than 512xH or 512xW, but is not tiled (error)
    - The file is greater than 512xH or 512xW, it is recommended to include internal overviews (warning)

Creating correct COG:
$ rio cogeo create http://static2.skysight.io/demo.tiff demo_cog.tif -p jpeg --add-mask --bidx 1,2,3 --use-cog-driver --overview-blocksize 512

$ rio cogeo info demo_cog.tif
Driver: GTiff
File: /Users/vincentsarago/Dev/DevSeed/titiler/demo_cog.tif
COG: True
Compression: JPEG
ColorSpace: YCbCr

Profile
    Width:            17964
    Height:           17964
    Bands:            3
    Tiled:            True
    Dtype:            uint8
    NoData:           None
    Alpha Band:       False
    Internal Mask:    True
    Interleave:       PIXEL
    ColorMap:         False
    ColorInterp:      ('red', 'green', 'blue')
    Scales:           (1.0, 1.0, 1.0)
    Offsets:          (0.0, 0.0, 0.0)

Geo
    Crs:              PROJCS["unknown",GEOGCS["unknown",DATUM["unknown",SPHEROID["GRS 1980",6378137,298.257222096042]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433]],PROJECTION["Geostationary_Satellite"],PARAMETER["central_meridian",-137],PARAMETER["satellite_height",35786023],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],EXTENSION["PROJ4","+proj=geos +sweep=x +lon_0=-137 +h=35786023 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"]]
    Origin:           (-4500020.820204, 4500020.820204)
    Resolution:<PHONE_NUMBER>999999, -501.0043219999999)
    BoundingBox:      (-4500020.820204, -4500020.820203998, 4500020.820203998, 4500020.820204)
    MinZoom:          1
    MaxZoom:          7

Image Metadata
    AREA_OR_POINT: Area
    OVR_RESAMPLING_ALG: NEAREST
    TIFFTAG_DATETIME: 2021:12:03 05:30:32

Image Structure
    COMPRESSION: YCbCr JPEG
    INTERLEAVE: PIXEL
    JPEGTABLESMODE: 1
    JPEG_QUALITY: 75
    LAYOUT: COG
    SOURCE_COLOR_SPACE: YCbCr

IFD
    Id      Size           BlockSize     Decimation
    0       17964x17964    512x512       0
    1       8982x8982      512x512       2
    2       4491x4491      512x512       4
    3       2246x2246      512x512       8
    4       1123x1123      512x512       16
    5       562x562        512x512       32
    6       281x281        512x512       64

fixed in https://github.com/cogeotiff/rio-tiler/pull/467, will publish a new version of rio-tiler and update titiler stack later today

Regarding "it uses a CRS/bounds that cannot be transformed to WGS84" - is this necessarily a problem?
I uploaded an actual COG in the same projection to static2.skysight.io/demo2.tiff , which gdalwarp will warp quite happily to EPSG:3857, but titiler won't.

Regarding "it uses a CRS/bounds that cannot be transformed to WGS84" - is this necessarily a problem?

No it's not a real problem, at least for earth based dataset. The problem with GOES data (and other geostationary dataset) is that their Field of view is usually bigger than the earth, which is why we can't properly convert the dataset bounds to WGS84 (not WebMercator).

but titiler won't, failing with ({"detail":"tolerance condition error"}) - not sure if that is the same root cause or not.

To me it seems to work well 🤷, some tiles will fail (because we cannot get the bounds right, the tiler will try to read tiles for the whole earth, and some will fail.

Ok - do see the tiles if I hit the tiles themselves, but it fails to load in the viewer for me because of the info request failing.
curl 'https://titiler.xyz/cog/info?url=http://static2.skysight.io/demo2.tiff'
{"detail":"tolerance condition error"}
Is that this issue, or a separate issue?

oh that's another issue but kinda related to the original one.
In [1]: from rio_tiler.io import COGReader

In [2]: with COGReader("http://static2.skysight.io/demo2.tiff") as cog:
   ...:     print(cog.info())
   ...:
---------------------------------------------------------------------------
CPLE_AppDefinedError                      Traceback (most recent call last)
<ipython-input-2-585e24152792> in <module>
      1 with COGReader("http://static2.skysight.io/demo2.tiff") as cog:
----> 2     print(cog.info())
      3

~/Dev/CogeoTiff/rio-tiler/rio_tiler/io/cogeo.py in info(self)
    208             return self.dataset.descriptions[ix - 1] or ""
    209
--> 210         if has_alpha_band(self.dataset):
    211             nodata_type = "Alpha"
    212         elif has_mask_band(self.dataset):

~/Dev/CogeoTiff/rio-tiler/rio_tiler/utils.py in has_alpha_band(src_dst)
    309     if (
    310         any([MaskFlags.alpha in flags for flags in src_dst.mask_flag_enums])
--> 311         or ColorInterp.alpha in src_dst.colorinterp
    312     ):
    313         return True

~/Dev/vincentsarago/rasterio/rasterio/_base.pyx in rasterio._base.DatasetBase.colorinterp.__get__()

~/Dev/vincentsarago/rasterio/rasterio/_err.pyx in rasterio._err.exc_wrap_int()

CPLE_AppDefinedError: tolerance condition error

I'll open an issue in rio-tiler
TBH, when working with GOES dataset, we found that it was easier to first convert them to WGS84 COG and then use them in TiTiler like service.

Ok, thanks for looking into this.

TBH, when working with GOES dataset, we found that it was easier to first convert them to WGS84 COG and then use them in TiTiler like service.

I did try that, but GDAL seems to resample it to a pixel size of 1200 using TILING_SCHEME=GoogleMapsCompatible (substantially less detail), plus it's slower to create especially when most imagery will never be looked at...

@Plantain as mentioned in https://github.com/cogeotiff/rio-tiler/issues/468, this is purely a rasterio/gdal issue.


Interactive

Proposed changes:

changed to ask the user to verify entities as well as intent in interactive learning, fixes #1749

Status (please check what you already did):

[x] made PR ready for code review
[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog

@paulaWesselmann is this different to your fork saving fix? looks like your commits from that are included here too

@akelad yes, sorry I realized that too. The fork changes are already approved by Tom. the only thing else that changed here is the print statement for the user in interactive learning to ask for intent and entity.

I changed it to what we discussed in slack. It's ready for (hopefully) final review now.


Detach interceptors, when page is closed

Resolves the problem discussed in #7, about interceptor being called during the page close.

You can't remove the arrow function events because it breaks the way this is bound in the class.
I've already committed the change https://github.com/ScriptSmith/instamancer/commit/770d2869c12a5ac8b66afeb4678ce5600f27b3d7 which works


Mockup Differential abundance app

When making mockups, consider also https://github.com/VEuPathDB/EdaDataService/issues/188


Switch to Scala 3

Hum, the problem here looks very similar to https://github.com/scala-js/scala-js/issues/4629.
==> X react.common.ReactPropsForwardRefWithChildrenSuite.propsWithChildren.withRef 0.02s scala.scalajs.js.JavaScriptException: TypeError: Cannot read properties of null (reading 'ctor__Ljapgolly_scalajs_react_CtorType')

==> X react.common.ReactPropsForwardRefWithChildrenSuite.propsWithChildren.withRef.withKey 0.00s scala.scalajs.js.JavaScriptException: TypeError: Cannot read properties of null (reading 'ctor__Ljapgolly_scalajs_react_CtorType')


Fix pipeline comparison smart tag family not working as a filter on the Exploration space

Description:
It was missing a camelCase alias="pipelineComparison".
Checklist:
You should check all boxes before the PR is ready. If a box does not apply, check it to acknowledge it.

[x] ISSUE NUMBER. You linked the issue number (Ex: Resolve #XXX).
[x] PRE-COMMIT. You ran pre-commit on all commits, or else, you
ran pre-commit run --all-files at the end.
[x] FRONTEND TYPES. Regenerate the front-ent types if you played with types and routes.
Run cd webapp && yarn types while the back-end is running.
[x] USER CHANGES. The changes are added to CHANGELOG.md and the documentation, if they impact
our users.
[x] DEV CHANGES.

Update the documentation if this PR changes how to develop/launch on the app.
Update the README files and our wiki for any big design decisions, if relevant.
Add unit tests, docstrings, typing and comments for complex sections.

@JosephMarinier Just to make sure I understand (since I'm less familiar with front-end) - names in generatedTypes.ts get generated from alias values from build_named_dataset_filters?

@JosephMarinier Just to make sure I understand (since I'm less familiar with front-end) - names in generatedTypes.ts get generated from alias values from build_named_dataset_filters?

Exactly 👍


bug: '@' character in alternative keywords

Did you check docs and existing issues?

[X] I have read all the todo-comments.nvim docs
[X] I have updated the plugin to the latest version before submitting this issue
[X] I have searched the existing issues of todo-comments.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.10.1
Operating system/version
Artix Linux OpenRC 6.11
Describe the bug
I have found no way to make todo-comments recognize keywords starting by '@', e.g., '@todo', '@note', ...
Furthermore, putting a '@' character in the alternative keywords breaks the entire plugin, making it not recognize any other label, even if there is no '@' in its alternatives. For clarity, consider '@todo' as the only alt for TODO and 'bug' the only alt for FIX. Neither '@todo' nor 'bug' are recognized anymore.
I have also tried changing the recognition pattern, by escaping and by not escaping the '@' character. In both cases, the plugin works correctly with the specified alternatives in keywords, but does not recognize the '@' character. For clarity, consider 'todo' the only alternative for TODO and consider '[[@\b(KEYWORDS)\b]]' the recognition pattern. Then, '@todo' is not recognized by the plugin.
As of now, I have not found any way to have the '@' character be recognized.
Steps To Reproduce
Add the '@' character in one of the alternatives keywords.
Expected Behavior
The '@' is considered as an alphanumerical value and comments starting with '@[KEYWORD]' are highlighted.
Repro
vim.env.LAZY_STDPATH = ".repro"
load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))()

require("lazy.minit").repro({
  spec = {
    { "folke/todo-comments.nvim", opts = {
        signs = true,      -- show icons in the signs column
        sign_priority = 8, -- sign priority
        -- keywords recognized as todo comments
        keywords = {
            FIX = { icon = " ", color = "error", alt = { "@bug" }, },
            TODO = { icon = " ", color = "info", alt = { "@todo" } },
            NOTE = { icon = " ", color = "hint", alt = { "note" } },
            WARN = { icon = " ", color = "warning", alt = { "warning" } },
            HACK = { icon = " ", color = "warning" },
            PERF = { icon = " ", alt = { "performance" } },
        },
        gui_style = {
            fg = 'NONE',       -- The gui style to use for the fg highlight group.
            bg = 'BOLD',       -- The gui style to use for the bg highlight group.
        },
        merge_keywords = true, -- when true, custom keywords will be merged with the defaults
        -- highlighting of the line containing the todo comment
        -- * before: highlights before the keyword (typically comment characters)
        -- * keyword: highlights of the keyword
        -- * after: highlights after the keyword (todo text)
        highlight = {
            multiline = true,                -- enable multine todo comments
            multiline_pattern = '^.',        -- lua pattern to match the next multiline from the start of the matched keyword
            multiline_context = 10,          -- extra lines that will be re-evaluated when changing a line
            before = '',                     -- 'fg' or 'bg' or empty
            keyword = 'wide',                -- 'fg', 'bg', 'wide', 'wide_bg', 'wide_fg' or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg)
            after = 'fg',                    -- 'fg' or 'bg' or empty
            pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex)
            comments_only = true,            -- uses treesitter to match keywords in comments only
            max_line_len = 400,              -- ignore lines longer than this
            exclude = {},                    -- list of file types to exclude highlighting
        },
        -- list of named colors where we try to extract the guifg from the
        -- list of highlight groups or use the hex color if hl not found as a fallback
        colors = {
            error = { 'DiagnosticError', 'ErrorMsg', '#DC2626' },
            warning = { 'DiagnosticWarn', 'WarningMsg', '#FBBF24' },
            info = { 'DiagnosticInfo', '#2563EB' },
            hint = { 'DiagnosticHint', '#10B981' },
            default = { 'Identifier', '#7C3AED' },
            test = { 'Identifier', '#FF00FF' }
        },
        search = {
            command = 'rg',
            args = {
                '--color=never',
                '--no-heading',
                '--with-filename',
                '--line-number',
                '--column',
            },
            -- @todo How to add @ ?
            pattern = [[\b(KEYWORDS)\b]],
        },
    }
 },
    -- add any other plugins here
  },
})

Duplicate of #213


[Feature] Add function of setting shortcut

Description of the new feature / enhancement
It has to be said that this is a good application, but now this software can only map shortcut keys instead of setting shortcut keys. I want to add shortcut keys to run custom commands.
Scenario when this would be used?
I want to quickly open an application, such as the Terminal.
Supporting information
No response

Same request, I really enjoy the ctrl+alt+t to open terminal


Demo: Egg

I think it was obvious that such an example has to exist, it is extremely necessary, I suppose it contributes to the use of the moveTo() function without speed, and use(sprite())
Try in https://egg-demo.lajbel.repl.co/

This is important and needs to be merged immediately

I added a hatching process if you don't mind: https://kaboom2000.slmjkdbtl.repl.co/demo#egg

The miracle of life <3 (i love the egg desing, very good job tga)


vectorstore.similarity_search error / Error: AttributeError: 'str' object has no attribute 'query'

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
The following code:
#Create the connection to Bedrock
bedrock_runtime = boto3.client(service_name='bedrock-runtime',
region_name='us-east-1',
aws_access_key_id='aws_access_key_id', aws_secret_access_key='aws_secret_access_key'
)
os.environ['PINECONE_API_KEY']='pinecone_api_key'
index_name = "whale"
embedding_model = BedrockEmbeddings(client=bedrock_runtime,model_id="amazon.titan-embed-text-v1" )
vectorstore = PineconeVectorStore(embedding = embedding_model, index=index_name)
similar_search_results =  vectorstore.similarity_search(query = "say something...", k = 3)
Raised this following error:
AttributeError: 'str' object has no attribute 'query'
Error Message and Stack Trace (if applicable)
embedding_model = BedrockEmbeddings(client=bedrock_runtime,model_id="amazon.titan-embed-text-v1" )
Traceback (most recent call last):
File "c:\Users\91822\Documents\Python Scripts\test.py", line 22, in
similar_search_results =  vectorstore.similarity_search(query = "say something...", k = 3)
File "C:\Users\91822\AppData\Roaming\Python\Python310\site-packages\langchain_pinecone\vectorstores.py", line 379, in similarity_search
docs_and_scores = self.similarity_search_with_score(
File "C:\Users\91822\AppData\Roaming\Python\Python310\site-packages\langchain_pinecone\vectorstores.py", line 321, in similarity_search_with_score
return self.similarity_search_by_vector_with_score(
File "C:\Users\91822\AppData\Roaming\Python\Python310\site-packages\langchain_pinecone\vectorstores.py", line 338, in similarity_search_by_vector_with_score
results = self._index.query(
AttributeError: 'str' object has no attribute 'query'
Description
I'm trying to do a similarity search on my pinecone vector store through langchain's PineconeVectorStore module. The function is supposed to recieve a string as input  arg named "query". But it is throwing the mentioned error.
System Info
System Information

OS:  Windows
OS Version:  10.0.19045
Python Version:  3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)]

Package Information

langchain_core: 0.3.15
langchain: 0.3.7
langchain_community: 0.3.5
langsmith: 0.1.142
langchain_pinecone: 0.2.0
langchain_text_splitters: 0.3.2

Optional packages not installed

langgraph
langserve

Other Dependencies

aiohttp: 3.9.5
async-timeout: 4.0.2
dataclasses-json: 0.6.7
httpx: 0.27.2
httpx-sse: 0.4.0
jsonpatch: 1.33
numpy: 1.23.2
orjson: 3.10.11
packaging: 24.2
pinecone-client: 5.0.1
pydantic: 2.9.2
pydantic-settings: 2.6.1
PyYAML: 6.0.2
requests: 2.28.2
requests-toolbelt: 1.0.0
SQLAlchemy: 2.0.35
tenacity: 8.2.1
typing-extensions: 4.12.2

When defining "vectorstore" I passed "index" as arg instead of index_name. I changed the code and it worked fine

But still the error was misleading

In your initial code, when you passed a string in index parameter which should actually be pinecone.Index
vectorstore = PineconeVectorStore(embedding = embedding_model, index=index_name)
When you invoke any search function, it calls index.query which is a function from pinecone, but becauuse you passed a String, it tried to call "index" function on a string which is not part of string object. That's why you get the error
'str' object has no attribute 'query', which is not an error from lang-chain but it's a Python error.
Here's the source code for reference https://github.com/langchain-ai/langchain/blob/master/libs/partners/pinecone/langchain_pinecone/vectorstores.py#L338

Got it, Thanks for the explanation


[AWS EKS] HTTPS doesnt work with exposed port 443 or 80

Describe the bug
I'm trying to host dockware/dev for my devs to develop against their REST API.
We're using EKS in AWS. To host:

Deployment that creates pods that expose 443
Service that routes 443 to 443 on pod
Ingress that creates exernal AWS loadbalancer to service port 443. TLS is terminated here, a ACM Certificate is attached to this load balancer. A subdomain example.company.com is bound to this loadbalancer.

Visiting https://example.company.com gives the following error:

Tried changing the port to 80, which results in the following page

Changes being:

Deployment that creates pods that expose 80
Service that routes 80 to 80 on pod
Ingress that creates exernal AWS loadbalancer to service port 80.

To Reproduce
Steps to reproduce the behavior:
Deployment:
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: shopware
  name: shopware
  namespace: shopware
spec:
  replicas: 1
  selector:
    matchLabels:
      app: shopware
  template:
    metadata:
      labels:
        app: shopware
    spec:
      containers:
      - image: dockware/dev:<IP_ADDRESS>
        imagePullPolicy: IfNotPresent
        resources: {}
        name: dev
        ports:
        - name: web-ssl
          containerPort: 443
        env:
        - name: TZ
          value: Europe/London
        - name: SHOP_DOMAIN
          value: example.company.com
        - name: XDEBUG_ENABLED
          value: "1"
        - name: PHP_VERSION
          value: "8.1"
---
apiVersion: v1
kind: Service
metadata:
  name: shopware
  namespace: shopware
spec:
  selector:
    app: shopware
  ports:
  - port: 443
    targetPort: 443
    name: web
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/certificate-arn: <REDACTED>
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
  name: shopware
  namespace: shopware
spec:
  ingressClassName: alb
  rules:
  - http:
      paths:
      - backend:
          service:
            name: shopware
            port:
              number: 443
        path: /
        pathType: Prefix

Expected behavior
As per documentation, exposing port 443 should make HTTPS work.
Desktop (please complete the following information):

OS: Amazon Linux 2 (EKS Node OS, dont think it matters)
Browser: Firefox
Version 119.0.1

Hi
i think its just a thing with HTTPS
can you login into the administration -> sales channel and check if there is also a httpS domain properly configured?
that would help as first step i think

I have the same issue. Is there really no possibility to switch to https only?
@tehseensajjad did you find a solution?
@boxblinkracer it's not possible to access the admin area since all scripts / css are loaded via http and not working.

@boxblinkracer : Could this hardcoded http in line 7 be the issue here? https://github.com/dockware/dockware/blob/master/template/assets/assets/shopware6/files/update_domain.sh.twig#L7

Same issue here on ECS.
I have checked and tried with both https/http and removing http in admin storefront settings, but do not help.
Tried the customer domain in docs, https://docs.dockware.io/development/custom-domains

@m4djack That's great info, thanks!
Based on it, I came up with the following Dockerfile which patches the original Dockware image accordingly:
FROM dockware/dev:<IP_ADDRESS>

RUN sudo sed -i '/<VirtualHost \*:80>/a ServerName ##server_name##\n RewriteEngine On\n RewriteCond %{HTTP:X-Forwarded-Proto} !https\n RewriteRule ^/?(.*) https://%{SERVER_NAME}/\$1 [R=301,L]\n Header always set Content-Security-Policy "upgrade-insecure-requests;"' /etc/apache2/sites-enabled/000-default.conf && \
    sudo sed -i '/000-default.conf/a sudo sed -i "s|##server_name##|\${SHOP_DOMAIN}|" /etc/apache2/sites-enabled/000-default.conf' /entrypoint.sh

(I left out the line that forces HSTS as this already is done by my reverse proxy)

In my configuration my load balancer did not change the remote address nor set the X-Forwarded-* headers and I had to force symphony to use https requests everywhere by adding this to my nginx config
location ~ ^/index\.php$ {
    fastcgi_pass <IP_ADDRESS>:9000;
    include fastcgi.conf;
    # Lie to Symfony about the protocol and port so that it generates the correct HTTPS URLs
    fastcgi_param SERVER_PORT "443";
    fastcgi_param HTTPS "on";
}

https://symfony.com/doc/current/deployment/proxies.html#overriding-configuration-behind-hidden-ssl-termination


use offheapfststore as before

This PR changes to use OffHeapFSTStore, which was changed to OnHeapFSTStore in recent PR https://github.com/apache/pinot/pull/14361/files. The Offheap store does a simple slice to get the FST data, while the Onheap store does a byte-to-byte copy to an onheap byte array in the constructor.

This was the init logic for OffHeapFSTStore in the older lucene lib, and the offset it from this.in.getFilePointer();.
  public OffHeapFSTStore() {
  }

  public FSTStore init(DataInput in, long numBytes) throws IOException {
    if (in instanceof IndexInput) {
      this.in = (IndexInput)in;
      this.numBytes = numBytes;
      this.offset = this.in.getFilePointer();
      return this;
    } else {
      throw new IllegalArgumentException("parameter:in should be an instance of IndexInput for using OffHeapFSTStore, not a " + in.getClass().getName());
    }
  }

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 0.00%. Comparing base (59551e4) to head (9bf392d).
Report is 1327 commits behind head on master.

:exclamation:  There is a different number of reports uploaded between BASE (59551e4) and HEAD (9bf392d). Click for more details.
HEAD has 53 uploads less than BASE

Flag
BASE (59551e4)
HEAD (9bf392d)

integration
7
1

integration2
3
1

temurin
12
1

java-21
7
1

skip-bytebuffers-true
3
1

skip-bytebuffers-false
7
0

unittests
5
0

unittests1
2
0

java-11
5
0

unittests2
3
0

integration1
2
0

custom-integration1
2
0

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #14457       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.76%
=============================================
  Files          2436        3     -2433
  Lines        133233        6   -133227
  Branches      20636        0    -20636
=============================================
- Hits          82274        0    -82274
+ Misses        44911        6    -44905
+ Partials       6048        0     -6048

Flag
Coverage Δ

custom-integration1
?

integration
0.00% <ø> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <ø> (ø)

java-11
?

java-21
0.00% <ø> (-61.63%)
:arrow_down:

skip-bytebuffers-false
?

skip-bytebuffers-true
0.00% <ø> (-27.73%)
:arrow_down:

temurin
0.00% <ø> (-61.76%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Documentation Link Unavailable

The linked documentation is no longer available. I've asked Salesforce Support and they are unable to access or provide an updated link. Are you able to provide an updated link to documentation here by chance?
The link you have posted on main page (that no longer works):
Documentation Link: https://salesforce.quip.com/KXBRArvmUQcG

@SmithStyleDev - unfortunately I am no longer with the company and I am unable to find someone to update the link.

Hi @SmithStyleDev - unfortunately I am no longer with the company and am unable to find someone to update a link.


Ability to exclude files from check

I can't figure out how to exclude files or directories from the check (I have some source files I must not change, but create many cppcheck warnings).
cppcheck has a switch --config-exclude, but if I add --config-exclude=/absoulet/path/to/exclude_dir to "custom parameters" in the Settings it doesn't have an effect: warnings from source files in exclude_dir still show in QtCreator.
PS: Big thanks for this plugin :) It allows me to catch problems early.

Hi.  --suppress="*:<file_name_wildcard>" should help.
As i understood from documentation, cppcheck doesn't count ifdefs found in --config-exclude, but checks files anyway.

Fantastic! Thank you! I misread the manual. No more spam from auto-generated source files


runtime: TestGCFairness2 "want OK, got goroutine 1 did not run" flake on OpenBSD

TestGCFairness2 (0.12s)
    proc_test.go:351: want OK
	    , got goroutine 1 did not run

https://storage.googleapis.com/go-build-log/bc7889a5/openbsd-amd64-gce58_a614fab1.log
/cc @aclements @RLH
I don't see any evidence that this is a known flake in the issue tracker, so filing a bug and tagging Go1.8Maybe in case it's of interest.

Also seen in CL 32447: https://storage.googleapis.com/go-build-log/d1cd8dd4/openbsd-amd64-gce58_ac08be40.log.

I've got this on trybots a number of times in the past day.

@bradfitz All openbsd-amd64?

IIRC. Email finds at least:
https://storage.googleapis.com/go-build-log/a5085c96/openbsd-amd64-gce58_66ea63b8.log
https://storage.googleapis.com/go-build-log/9c33aed7/openbsd-amd64-gce58_313f81fd.log
(they failed slightly differently)

I can not duplicate it on my Ubuntu box. I suspect that it is openbsd time
or time slice problem. Any history of problems in this area?
On Tue, Nov 1, 2016 at 1:22 PM, Brad Fitzpatrick<EMAIL_ADDRESS>wrote:

IIRC. Email finds at least:
https://storage.googleapis.com/go-build-log/a5085c96/
openbsd-amd64-gce58_66ea63b8.log
https://storage.googleapis.com/go-build-log/9c33aed7/
openbsd-amd64-gce58_313f81fd.log
(they failed slightly differently)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/17712#issuecomment-257630425, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7Wny9ILYzUtS2VIZYU2nzma6ZRF7Fsks5q53VJgaJpZM4KlpiC
.

Just flaked for me at https://storage.googleapis.com/go-build-log/ad82e14d/openbsd-amd64-gce58_81897bfd.log

Looks like BSD is the only place that flakes.
On Tue, Nov 1, 2016 at 6:30 PM, Quentin Smith<EMAIL_ADDRESS>wrote:

Just flaked for me at https://storage.googleapis.
com/go-build-log/ad82e14d/openbsd-amd64-gce58_81897bfd.log
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/17712#issuecomment-257718706, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA7Wn0Ok8ge9MaXYFjYm86U6NUp1GwQFks5q572dgaJpZM4KlpiC
.

@RLH I'm not aware of clock time precision problems on OpenBSD, but OpenBSD's scheduler has been the culprit of flakes in the past.  For example, see #14183.

and another flake of TestGCFairness2 on OpenBSD AMD64: https://storage.googleapis.com/go-build-log/a9a27137/openbsd-amd64-gce58_5d2f625d.log

@mdempsky I spent the past few hours investigating this with @RLH. This is indeed fallout from OpenBSD's usleep granularity. Austin's d35dfd405eaa21654807fac3891e198538d3c402 causes the test to no longer block in GC assists, which means only preemptions cause goroutine switches. Those preemptions are supposed to happen every 10ms, but on OpenBSD the sysmon thread is trying to sleep for 20µs and is actually sleeping for 20ms, so preemptions are taking 50+ms to happen.
I just sent a CL that allows up to 1s for the test to complete, which should deflake it on OpenBSD. I'll repurpose this bug for investigating the OpenBSD scheduler behavior; I don't understand why sysmon requires 2+ passes through the loop (at 20ms each) before it decides to preempt a thread that has been running for >10ms.

@quentinmit Ah, yeah, that explanation makes sense.  I was wondering how scheduler granularity could affect the test, since it didn't obviously rely on sleeping (other than the 30ms sleep, which is itself fine).

Looks like a lot of runtime's usleep calls might be significantly oversleeping on OpenBSD, and maybe Windows based on the comment in runqgrab.

 Do you happen to know the parent revision? (In particular, if it's before or after 21c114e.)

No, its git parent is well before that test tweak.
(Btw, the failure log contains a git hash at the top you can paste into Gerrit's search.)


overwrite option appears to be ineffective for insert.

I am running ADB 3.3.23 and python-arango 4.4.0
            cache.insert(
                {
                    "_key": _key,
                    "url": url,
                    "expires": to_iso_z(expires),
                    "content": result
                },
                overwrite=True
            )

where the _key is a string UUID(),  the content field is a dict that was produced from json.loads() and the other fields are strings.  It looks like the overwrite flag gets pointed to adb:
http://<IP_ADDRESS>:8529 "POST /_db/environment/_api/document/cache?returnNew=0&silent=0&overwrite=1&returnOld=0 HTTP/1.1" 409 185

but it crash-n-burns if there is already a document in there with the same _key
arango.exceptions.DocumentInsertError: [HTTP 409][ERR 1210] unique constraint violated - in index 0 of type primary over ["_key"]; conflicting key: 26e1b42c-52fd-5a79-9456-ec909c8bb732

I debugged this one myself.  Looks like ADB 3.3 does not support the overwrite flag for insert operations.  Instead of upgrading my ADB (don't want to trash my system for the weekend),  I used the following fallback:
            self._adb.aql.execute("""
                UPSERT {_key: @key} INSERT @document REPLACE @document IN cache"
            """,bind_vars={"key": _key, "document": document})


Update TOC.yml

Push to live

Docs Build status updates of commit 3fcd112:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/TOC.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Plugin doesn't remember passwords

Hi there:
I've been facing a problem using this plugin. Every time I open the IDE and go to Pull Requests or WorkItems tabs in Versioning area, the plugin ask me for credentials, I authenticate and check the Remember option, but my credentials are forgotten when I close de IDE.
Nevertheless, the option Checkout from Version Control -> Team Services Git remembers my password as expected.
This is my current scenario:
IntelliJ IDEA 2017.2
Build #IU-172.3317.76, built on July 15, 2017
Plugin: Visual Studio Team Services version 1.122.0
Windows 10 workstation, not part of Windows Domain
Thank you

Hi @rguillens,
Thanks for reporting your issue. Just a couple additional questions. First are you using multiple repositories with different Team Services accounts in IntelliJ or is it the same repository and the same account all the time? Also, in the Settings menu, do you have the option to store your passwords in KeePass enabled? You shouldn't be prompted upon every start of the IDE so this is unexpected behavior and we can figure out the issue.

Thanks,
-Leah

Hi:
I use multiple repositories, but just one account and one Team Services Server. Store password on KeePass option is enabled.
Thanks

@rguillens I'm going to try and reproduce this on my end and see if I can get the same result. If so that will make it easier to debug going forward. Thanks again for letting us know and I'll get back to you with some answers.
-Leah

Hi @rguillens,
I made some changes and I think I have fixed the issue. Would you mind testing out this custom build of the plugin with the fix and see if there is any difference? All you need to do is download this
plugin.idea-1.122.0-PwFix.zip zip but don't un-zip it. In the IDE, go to File -> Settings -> Plugins and then choose "Install plugin from disk" and select the downloaded zip file. Then restart the IDE to pick up the changes. After that see if your passwords are saved when you open and close the IDE.
Thanks,
-Leah

Release 1.123.0 should solve this issue. Please reopen if you're still seeing the problem persist.
Thanks again,
-Leah


Create a button for switching between light mode and dark mode (FindCSI)

Problem:
People "need" dark mode in all websites nowadays
Solution:
A simple button click wherein user can switch to dark mode for the website

I'd like to be assigned to this issue

Hello, please me to this issue.


[<IP_ADDRESS>-g] Wrong fee calculation when transfer from private to public

I tried to transfer all my XSPEC from my private (49.95 coins) to my public wallets.
Tried 49.95 with ring size 16, got an error message saying there is a 0.01 fee. Fine, tried 49.94, message now is 0.02 fee. Tried 49.93, message is 0.03. Stopped here.
Find below the screenshots

Improved behavior, but could not entirely fix it. The dynamic nature of the fees in combination with the random selection algorithm of ATXOs makes it difficult.

fixed with 2.0.6


Add ability to pass offset and URL

I'm not 100% sure this is possible, but it is in theory. We should be able to pass an offset and URL to a binary that allows somebody to just program that binary onto their board. This can make it much easier than it already is.

This is possible as that's how we do it with ESP Web Tools.
The files do need to be hosted with the correct CORS headers for JavaScript to be able to read the content.

Excellent, thanks for the input.


support other languages/syntax

I would like to customize your code to support other languages.
One is XML and variants such as RDF.
A second is JSON and JSON-LD.
A third is Turtle used to define SPARQL queries as used on Wikidata.
Example: https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries
Would you identify the resources I need to modify to support the above?
Thanks in advance.
/jay gray

Dear Jay Gray,
This support would be more in the realm of the syntax highlighter used. Prism.js appears to support more of these than highlight.js (https://prismjs.com/#supported-languages):

xml (RDF not supported)
json (JSON-LD not supported)
turtle or sparql
If you want to add the language yourself, this may be useful.

I would suggest adding the indentation plugin as well as any others you want as these languages are quite indentation-heavy.
Demo: https://codepen.io/WebCoder49/pen/BamoWoa

Thank you for the CodePen. I can use this short term.
My plan is to run your code in an iFrame juxtaposed with a discussion about target code.
Previously, we generated an SVG using Carbon: https://carbon.now.sh/
Your solution is superior.
Also, am plan to use your code in a form, where a button triggers the formatted text in the form.
For example, put a button in the form that triggers the SPARQL query as displayed.
The Turtle syntax is basically the same as SPARQL, so we're good there.
RDF is XML with namespace declarations, so we can adapt the XML example
Thanks again for this product.
/jay


sensor: shell float output broken w/ CONFIG_NEWLIB_LIBC=y

Describe the bug
Executing sensor get TEMP1 on FRDM_K64 returns:
uart:~$
channel idx=12 die_temp = %.6f
channel idx=30 voltage = %.6f
uart:~$

I've traced the printf call from drivers/sensor/sensor_shell.c to subsys/shell/shell_fprintf.c and expect the error to be related to the following code snippet:
#if !defined(CONFIG_NEWLIB_LIBC) && !defined(CONFIG_ARCH_POSIX)
  (void)z_prf(out_func, (void *)sh_fprintf, (char *)fmt, args);
#else
  z_vprintk(out_func, (void *)sh_fprintf, fmt, args);
#endif

I was however not able to resolve the issue.
To Reproduce
Steps to reproduce the behavior:
$ echo CONFIG_ADC=y >> zephyr/samples/sensor/sensor_shell/prj.conf
$ echo CONFIG_TEMP_KINETIS=y >> zephyr/samples/sensor/sensor_shell/prj.conf
$ echo CONFIG_NEWLIB_LIBC=y >> zephyr/samples/sensor/sensor_shell/prj.conf
$ west build -p -b frdm_k64f zephyr/samples/sensor/sensor_shell
$ west flash
$ miniterm.py --raw /dev/ttyACM0 115200
$ sensor get TEMP1

Expected behavior
uart:~$ sensor get TEMP1
channel idx=12 die_temp =  33.710000
channel idx=30 voltage =   3.293000
uart:~$

Impact
showstopper: sensor get can not be used at all.
Environment (please complete the following information):

Ubuntu 18.04
zephyr-sdk-0.11.3
eb9a1843248c35ebda66d8857264f92000eefcc9

Thanks for reporting this; I'd discovered it some time back while supporting a slack question, but didn't follow up.
Should be resolved by #27655, which also explains why this was done.

That was a quick fix. Thank you very much.


Datepicker: Unable to enter date manually

When I click on Date input, I'm not able to enter date manually. Datepicker opens and forces me to select date.
It reproduces on this example https://react.lightningdesignsystem.com/components/date-pickers/

i would like to work on this!

@apshada Great! Here is the user story.
User should be able to type a date when mouse clicking into input without calendar grabbing focus.
Pattern update:

[ ] .focus of calendar should not occur on focus of input
[ ] Calendar should open on click of input, but NOT open when tabbing into input
[ ] Typing in input should close calendar
[ ] onBlur of input and input's Calendar icon should close calendar (I think Combobox has re-use).
[ ] onClick/enter on the input's calendar icon should open and .focus() on calendar (currently doing this)
[ ] Calendar date selection should close calendar (currently doing this)

You can see this pattern here under Date Input:
https://developer.salesforce.com/docs/component-library/bundle/lightning-input/example
Adding @jcjuett for verification of the accessibility of the pattern proposal.

if date picker takes text input then it willl solve this bug

@jcjuett please verify the pull request for proposal

@apshada Your PR is missing that the calendar should still open on click, but not grab focus. Please review the pattern update bullet points.

@interactivellama I added a commit to address this since the previous PR was closed. Please let me know if it needs any revisions.

Hello, anyone has resolved this feature ?


ID duplicated - Node was already added to the cluster

Trying to launch a container into my swarm gives me the following error:
ID duplicated. HAAX:6AZ2:5ISX:5XRJ:WDUL:LXXO:OUXD:2WJF:NBAG:ONYR:6SY4:47QP shared by xxx.30.1.xx2 and xxx.30.1.xx1
I have my Swarm Host and two separate ec2 instances as my swarm nodes. I create my swarm, add each node to the swarm, and then start swarm -debug manage token://<cluster_id> --host=<IP_ADDRESS>:2375 on my host.
I continue to see the "ID duplicated ..." error on my Swarm Host and trying to run new containers only seem to hit one of my nodes.  What am I missing here?

Did you clone the instances by any chance?
That ID is generated the first time the Docker daemon is launched.
The fix is to remove ~/.docker/key.json and let Docker re-generate the ID.

That was the issue, thanks for the clarification.

In ubuntu14.04, I find only 'key.json' in `/etc/docker/key.json', BUT if I delete it, docker daemon can'nt start anymore! How to solve it ?

for centos： to remove /etc/docker/key.json

@heartpandora :+1:

For Ubuntu 14.04, remove /etc/docker/key.json
Tested on an Ubuntu EC2 instance.

Yes, this solve my problem, thx @jayantbh


Unexpected refresh

I get unexpected refreshes when opening a dialog in the web view after any swipe down

Hi! I checked your updates, they work fine, but the example didn't work anymore, attached dragGesturePullToRefresh.setContext(context) to the wrong context, not to the RefreshIndicator context. Please show your code.

Hello,
sorry for the late reply!
the problem was a refresh when I scrolled upward anywhere in the  web model or popup
the fix was to use RefreshIndicatorTriggerMode.onEdge

Hello, sorry for the late reply!
the problem was a refresh when I scrolled upward anywhere in the  web model or popup
the fix was to use RefreshIndicatorTriggerMode.onEdge

Which part do you change to RefreshIndicatorTriggerMode.onEdge
mine show similar behavior when scrolled upward the scroll bar appear

Same problem here, scrollPos.dy is always equals to 0.
I use the correct context.
Project use Riverpod & Hooks.


Support Composer 2 in ddev

Composer 2 is almost here, and lots of people would like to try it out. See @ultimike's blog and PHPWatch article
We plan to have Composer 2 in the web container as soon as it's released, but we'd love to have your reports right now about how it works for you, and any information about compatibility issues.
You can already use Composer 2 with DDEV-Local, there are two different ways.

ddev exec: Just try it out (and lose it when you stop the project): ddev exec sudo composer self-update --snapshot - then you can use ddev composer (or composer inside the web container) as long as the session lasts (until you ddev stop or ddev poweroff or whatever.
add-on Dockerfile: Add this .ddev/web-build/Dockerfile and ddev start - you'll have composer 2 every time you start the project:

ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN composer self-update --snapshot

Post-start hook: Add this to your .ddev/config.yaml and composer will be updated on every start (a bit slower than the second option, which only happens once instead of on every start)

hooks:
 post-start:
   - exec: sudo composer self-update --snapshot

I tested the self-update process recently while developing a v2 composer plugin. Seemed to work fine. But there are still a lot of plugins that don't support it yet. Have we considered having a composer and composer2 command as distinct options for this bridge time?
While I see some benefit to that, it also isn't clear how long we'd have to keep both and its always easy to add something and more difficult to remove it later.

I tried it out with suggestion 1.) but it didn't appear to be fully compatible with cweagans/composer-patches
For example:
ddev composer require drupal/bootstrap
Using version ^3.23 for drupal/bootstrap
./composer.json has been updated
Running composer update drupal/bootstrap
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires cweagans/composer-patches 9999999-dev, found cweagans/composer-patches[dev-master] but it conflicts with another require.
Use the option --with-all-dependencies to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You are using a snapshot build of Composer 2, which may be the cause of the problem. Run composer self-update --stable and then try again. In case it solves the problem, please report an issue mentioning Composer 2.

The latest cweagans/composer-patches, version 1.6.7 is not compatible with composer 2.
https://packagist.org/packages/cweagans/composer-patches
composer-plugin-api: ^1.0
But the the fix (composer 2 compatibility) is already committed.
So for now, you need "cweagans/composer-patches": "dev-master" in your composer.json file to use it with composer 2.

Have we considered having a composer and composer2 command as distinct options for this bridge time?

In that case composer1 command is needed also, as the composer command should default to v2 soon.

I'm assuming that both composer1 and composer2 will need to be bundled. Probably composer2 will have to be a separate option for some time, because there will be many packages that are incompatible for quite some time.

I like the idea of adding an option into .ddev/config.yaml that will install composer 2 if desired (just using the temp Dockerfile technique, same as webimage_extra_packages) and then gradually move it to where composer 2 is the default.

Ooops, the idea in https://github.com/drud/ddev/issues/2383#issuecomment-698557484  would be incompatible with uses of Dockerfile, which wouldn't be acceptable.

Since a new composer version has just dropped people are fussing about the version again, see #2563, I should mention these things:

composer is updated in ddev on every new release
You can easily update it any time with either a .ddev/web-build/Dockerfile or a post-start hook
You can pin the version that you use (best for teams)

So:
.ddev/web-build/Dockerfile:
ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN composer self-update

That runs only once (on image build), and may result in different versions for your team depending on when they do their first ddev start
so better is
ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN composer self-update 1.10.15

or for composer 2:
ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN composer self-update 2.0.0-RC2

You can also do the same with a post-start hook, but then it runs on every start

Relevant and useful article: Preparing your site for Composer 2
https://www.drupal.org/docs/develop/using-composer/preparing-your-site-for-composer-2

Just a followup note that composer 2 is fully supported in ddev v1.16. ddev config --composer-version=2 for example, followed by ddev start. The default composer version remains v1.

Or add
composer_version: "2"

to your config.yaml

Those are the same thing @a-r-m-i-n 😄

I know. But the Syntax is not the same (dash vs. underscore) so I thought it does not hurt, to mention this.

I've never quite figured out why all the items in config use underscores but we use dashes in the config commands :)

Hi, is there a way to make composer 2 the default for my whole system? So I can downgrade to composer 1 only if needed?

Hi @mhuber84 for now, composer 1 is the default, because composer 2 still breaks lots of people's builds. I'd like composer 2 as default also. It's possible the time is near.
For now, just ddev config --composer-version=2 on either an existing or new project.

It may be worth noting that if this configuration isn't getting picked up, one of your packages may be specifying composer1. I just ran into this with drupal/core-dev 8.x specifying ^1.9.1.

@rfay Now that composer 2 is the default, is there a way to downgrade ddev-local to composer 1?
I just tried ddev config --composer-version=1  but it didn't make any changes in the .ddev folder to files that are committed to the repo (I don't know if it might have modified files that are excluded via gitignore).
❯ ddev composer -- --version
Composer version 2.0.13 2021-04-27 13:11:08

❯ ddev config --composer-version=1
You are reconfiguring the project at /Users/jameswilson/App/MYAPP.
The existing configuration will be updated and replaced.
Found a drupal8 codebase at /Users/jameswilson/App/MYAPP/web
Ensuring write permissions for myapp
Existing settings.php file includes settings.ddev.php
Configuration complete. You may now run 'ddev start'.

❯ ddev composer -- --version
Composer version 2.0.13 2021-04-27 13:11:08

You have to do a ddev start after making the change.

Thanks.  That worked. Brilliant!
$ ddev composer -- --version
Composer version 2.0.13 2021-04-27 13:11:08
$ ddev config --composer-version=1
$ ddev restart
$ ddev composer -- --version
Composer version 1.10.22 2021-04-27 13:10:45

Is it possible to configure composer 2.2 ?
Composer 2.3.0 dropped support for PHP <7.2.5 and you are running 5.6.40-57+0~20211119.60+debian11~1.gbp8a9bd1, please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.
but setting
composer_version: "2.2"
But after ddev restart its still using 2.3
 ddev composer -- --version                                                                                ⏎ ✖ ✹ ✚
Composer 2.3.0 dropped support for PHP <7.2.5 and you are running 5.6.40-57+0~20211119.60+debian11~1.gbp8a9bd1, please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.
composer [--version] failed, composer command failed: exit status 1. stderr=

Please open new issues for new questions, but current ddev supports major versions:
ddev config --composer-version=2.2
or
composer_version: 2.2
That will get composer 2.2.18 currently after you restart.
Or, of course, use a supported version of php in php_version.
See composer_version in https://ddev.readthedocs.io/en/latest/users/configuration/config_yaml/


feat: 2023 review

Prerequisites checklist

[x] I have read the contributing guidelines.

What is the purpose of this pull request?

What changes did you make? (Give an overview)
Added a blog post reviewing our year and including financials.
Related Issues
Is there anything you'd like reviewers to focus on?

Thanks for the edits!
Forgot to ask: please don't merge when approved, as I'll do that on Wednesday when it's ready to publish.

@mdjermanovic yea, it's most likely a timezone difference, I'll re-run the numbers in UTC and we can do that going forward so at least we have a stake in the ground.
 For instance, when we get a donation from an online casino, that shows up as both a credit and a debit, so unless you're balancing those out, the numbers won't come out correctly.

 For instance, when we get a donation from an online casino, that shows up as both a credit and a debit, so unless you're balancing those out, the numbers won't come out correctly.

Yeah, I filtered those out by REFUND and REFUNDED in respective columns.

As a check, these are the last transactions in 2022 and 2023:
"datetime","shortId","shortGroup","description","type","kind","isRefund","isRefunded","shortRefundId","displayAmount","amount","paymentProcessorFee","netAmount","balance","currency","accountSlug","accountName","oppositeAccountSlug","oppositeAccountName","paymentMethodService","paymentMethodType","expenseType","expenseTags","payoutMethodType","merchantId","orderMemo"
"2022-12-30T10:26:03","834d6aea","9910611e","Monthly contribution from Guest","CREDIT","CONTRIBUTION","","","","$1.00 USD",1,-0.54,0.46,271670.08,"USD","eslint","ESLint","guest-e7e936cc","Guest","PAYPAL","SUBSCRIPTION",,"",,,
"2023-12-30T11:13:40","923f01e3","522ede27","Monthly contribution from Guest","CREDIT","CONTRIBUTION","","","","$1.00 USD",1,-0.54,0.46,266669.63,"USD","eslint","ESLint","guest-e7e936cc","Guest","PAYPAL","SUBSCRIPTION",,"",,,

The difference in column "balance" is $266669.63 - $271670.08 = -$5000.45
So I think our total income + our total expenses should be = -$5000.45.

For reference, here's how I'm calculating the numbers:

Data

Downloaded csv file has 2128 lines.
Starts with:
"datetime","shortId","shortGroup","description","type","kind","isRefund","isRefunded","shortRefundId","displayAmount","amount","paymentProcessorFee","netAmount","balance","currency","accountSlug","accountName","oppositeAccountSlug","oppositeAccountName","paymentMethodService","paymentMethodType","expenseType","expenseTags","payoutMethodType","merchantId","orderMemo"
"2023-12-30T11:13:40","258f276d","522ede27","Host Fee to Open Source Collective","DEBIT","HOST_FEE","","","","-$0.10 USD",-0.1,0,-0.1,266669.53,"USD","eslint","ESLint","opensource","Open Source Collective",,,,"",,,

Ends with:
"2023-01-01T01:05:05","dd4daefe","0fb6f583","Monthly contribution from Jordan Harband (Backer)","CREDIT","CONTRIBUTION","","","","$5.00 USD",5,-0.45,4.55,271674.53,"USD","eslint","ESLint","ljharb","Jordan Harband","STRIPE","CREDITCARD",,"",,,

Script
import { parse } from 'csv-parse/sync';
import fs from "node:fs";

const money = number => number.toLocaleString("en-US", { style: "currency", currency: "USD" });

const tidelift = 30_077.84;

const OC = "Open Collective";
const GITHUB_SPONSORS = "GitHub Sponsors";
const TIDELIFT = "Tidelift";
const ADS = "Carbon Ads";
const THANKS_DEV = "Thanks.dev";
const STACKAID = "Stackaid.us";

const income = {
    [OC]: 0,
    [GITHUB_SPONSORS]: 0,
    [TIDELIFT]: tidelift,
    [ADS]: 0,
    [THANKS_DEV]: 0,
    [STACKAID]: 0
};

const MAINTENANCE = "Maintenance and Development";
const TSC_STIPEND = "TSC Stipend (Tidelift)";
const TRIAGE = "Triage and Support";
const TECHNICAL_WRITING = "Technical Writing";
const CONTRIBUTOR_POOL = "Contributor Pool";
const HEALTH_INSURANCE = "Health Insurance";
const OC_FEE = "Open Source Collective Fee";
const ECOSYSTEM = "Ecosystem/Dependencies";
const COMMUNITY_MANAGEMENT = "Community Management";
const PAYMENT_PROCESSOR_FEE = "Payment Processor Fee";
const GOOGLE_WORKSPACE = "Google Workspace";

const expenses = {
    [MAINTENANCE]: 0,
    [TSC_STIPEND]: -tidelift,
    [TRIAGE]: 0,
    [TECHNICAL_WRITING]: 0,
    [CONTRIBUTOR_POOL]: 0,
    [HEALTH_INSURANCE]: 0,
    [OC_FEE]: 0,
    [ECOSYSTEM]: 0,
    [COMMUNITY_MANAGEMENT]: 0,
    [PAYMENT_PROCESSOR_FEE]: 0,
    [GOOGLE_WORKSPACE]: 0,
}

const donations = {};

const input = fs.readFileSync("./transactions.csv", "utf8");
const parsed = parse(input);
const dataset = parsed.slice(1).filter(line => line[6] !== "REFUND" && line[7] !== "REFUNDED");

for (const line of dataset) {
    const description = line[3].toLowerCase();
    const kind = line[5];
    const amount = Number(line[10]);
    const paymentProcessorFee = Number(line[11]);
    const account = line[17];

    switch (kind) {
        case "CONTRIBUTION":
            if (amount > 0) {
                if (account === "buysellads") {
                    income[ADS] += amount;
                } else if (account === "thanks-dev"){
                    income[THANKS_DEV] += amount;
                } else {
                    income[OC] += amount;
                }
                expenses[PAYMENT_PROCESSOR_FEE] += paymentProcessorFee;
            } else {
                expenses[ECOSYSTEM] += amount;
                if (!donations[account]) {
                    donations[account] = amount;
                } else {
                    donations[account] += amount;
                }
            }
            break;
        case "ADDED_FUNDS":
            if (account === "github-sponsors") {
                income[GITHUB_SPONSORS] += amount;
            } else if (account === "stackaid") {
                income[STACKAID] += amount;
            } else {
                throw new Error("Unexpected added funds");
            }
            break;
        case "HOST_FEE":
            expenses[OC_FEE] += amount;
            break;
        case "EXPENSE":
            if (description.includes("maintenance")) {
                expenses[MAINTENANCE] += amount;
            } else if (description.includes("triage")) {
                expenses[TRIAGE] += amount;
            } else if (description.includes("writing")) {
                expenses[TECHNICAL_WRITING] += amount;
            } else if (description.includes("contributor pool")) {
                expenses[CONTRIBUTOR_POOL] += amount;
            } else if (description.includes("health")) {
                expenses[HEALTH_INSURANCE] += amount;
            } else if (description.includes("community org")) {
                expenses[COMMUNITY_MANAGEMENT] += amount;
            } else if (description.includes("google")) {
                expenses[GOOGLE_WORKSPACE] += amount;
            } else {
                throw new Error("Unexpected expense");
            }
            expenses[PAYMENT_PROCESSOR_FEE] += paymentProcessorFee;
            break;
    }
}

console.log("Income");
let totalIncome = 0;
for (const [key, value] of Object.entries(income)) {
    console.log(`| ${key} | ${money(value)} |`);
    totalIncome += value;
}
console.log(`| **Total** | **${money(totalIncome)}** |`);

console.log("Expenses");
let totalExpenses = 0;
for (const [key, value] of Object.entries(expenses)) {
    console.log(`| ${key} | ${money(value)} |`);
    totalExpenses += value;
}
console.log(`| **Total** | **${money(totalExpenses)}** |`);

console.log("Donations");
let totalDonations = 0;
for (const [key, value] of Object.entries(donations)) {
    console.log(`| ${key} | ${money(value)} |`);
    totalDonations += value;
}
console.log(`| **Total** | **${money(totalDonations)}** |`);

Output
Income
| Open Collective | $118,381.30 |
| GitHub Sponsors | $25,190.89 |
| Tidelift | $30,077.84 |
| Carbon Ads | $6,380.89 |
| Thanks.dev | $524.61 |
| Stackaid.us | $91.00 |
| **Total** | **$180,646.53** |
Expenses
| Maintenance and Development | -$66,910.37 |
| TSC Stipend (Tidelift) | -$30,077.84 |
| Triage and Support | -$10,307.78 |
| Technical Writing | -$8,155.00 |
| Contributor Pool | -$4,500.00 |
| Health Insurance | -$13,447.41 |
| Open Source Collective Fee | -$9,206.88 |
| Ecosystem/Dependencies | -$24,400.00 |
| Community Management | -$15,599.84 |
| Payment Processor Fee | -$2,854.51 |
| Google Workspace | -$187.35 |
| **Total** | **-$185,646.98** |
Donations
| typescript-eslint | -$11,800.00 |
| rollup | -$1,800.00 |
| lint-staged | -$1,800.00 |
| eslint-plugin-import | -$1,800.00 |
| jsx-eslint | -$1,800.00 |
| debug | -$1,800.00 |
| sindresorhus | -$1,800.00 |
| ajv | -$1,800.00 |
| **Total** | **-$24,400.00** |

@mdjermanovic I did share the spreadsheet with you in Google Drive (mentioned it in Discord).


Add shared::dxgi1_5

translate was "shared/dxgi1_5.h".
It is a difference of the dev branch.
Purpose is "um::dcomp" implementation.

updated.
It is now planned to

"shared::dcomptypes"
"um:dcompanimation"
"um:dcomp".

Must make a "dcomp-sys" at the end, but not well understood how to create.

Must make a "dcomp-sys" at the end, but not well understood how to create.

Functions are no longer going in -sys crates due to the 0.3 overhaul. Instead you define the functions in the modules directly in winapi like everything else.

Functions are no longer going in -sys crates due to the 0.3 overhaul.

Ok. Gather the pieces first.

PR has conflicts.

[dev branch] AppVeyor build failed.
Do wait for build success?
If in a failed state again conflict.

The CI failure is my fault. I'll fix it today.

Clear conflicts. pass msvc target.

Could you perhaps not run build.rs through rustfmt? I really don't like the result.

Oh, I'm sorry. reproduces.

repair request, Add shared::dxgi1_5(rev2) #387
#385 close.


Build multi-architecture docker images

It would be great if the ARM instruction set was supported in the docker builds published to dockerhub.  This would enable easy use routinator on small devices such as raspberry pi and also modern cloud such as AWS graviton instances.

Hi @bladeswords,
Thanks for the request, the description of potential use cases and most of all for a PR!
As it happens I just extended the Krill GitHub Actions workflows to publish multi-arch Docker images to Docker Hub for several ARM variants.
I'll take a look at your PR.
Ximon

Amazing, if you can reuse what you did for Krill - keep it going.  It does seem like a better way forward over using QEMU.


Querying Documents with LINQ doesn't work when using JsonProperty name Attribute

public class User
{
   [JsonProperty("first_name")]
   public string FirstName { get; set; }
}

session.Query<User>().Where(x => x.FirstName == "SomeUser")
Added a user with the name "SomeUser" before, but result is 0.
It works without the JsonProperty attribute.

@mabeh Marten is JSON serializer agnostic. That means that it's unaware of the JSON.NET properties and its serialization consequences. SQL queries are generated based on the .NET lambda, so if you have property serialized with a different name than .NET property name then it won't be able to find it in the database.

Thanks for the answer


Add url fragment field to Document class

Fixes #1686

Thanks for the PR.
I'm not sure that / why this needs to be a new method. Why should it not just be in the Document.location() string? If the user wants to parse component of that as a URL (say the host or the path), they can create a URL object and allow the native methods to parse it. It seems redundant and incomplete to special case the fragment / ref / hash like this.
Similarly, in the Connection object, I think it'll be best to grab it from the URL object to persist, vs trying to parse it in Data Util.

I initially thought that for existing programs that rely on the Document.location() and update to its new version (jsoup new version), they may have assumed that the return string contains no fragment id. So, I thought changing this behavior may cause trouble (is it called forward compatibility?).
But now I think they can update their code with a simple substring.
This means, they have to update their code if the new behavior is problematic for them.
Please change/fix the code as you wish.
My solution may not be the best one.

Thanks, but won't merge as the fragment is already preserved, and I don't see a need to add this new method.


Link should check event.currentTarget

In the  component's origin check, it was checking event.target.origin.
While using the component, I quickly discovered it doesn't work correctly if you give the Link any non-text children.
For example:
        Link({to: '/', go: actions.router.go },[
          h('img', {class: 'logo', src: '/static/logo.svg'})
        ]),

In this code, when you click the image link, the event.target is actually the img tag, since you clicked it.  event.currentTarget should be used instead, since it always references the element which has the event listener.
Reference docs:  https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget

Codecov Report

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

@@          Coverage Diff          @@
##           master    #17   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          31     31
  Branches        3      3
=====================================
  Hits           31     31

Impacted Files
Coverage Δ

src/Link.js
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

I suppose I should note this behavior is also fixable using CSS, by setting "pointer-events: none" on the link children.
Not sure if that will sway your opinion on this!


Left Analog Stick isnt recognized in configuration

So in the log of XOutput I see that it recognizes the X and Y axis, but when I go to configure it, for some reason it just doesn't show it. I tried to map the axis in the settings file but a weird thing happens: Left Stick only moves when I have LT or RT pressed at the same time. It worked fine before I reset my windows.
XOutput.log

Can you tell me which version you used before Windows reset?

Please make sure that DirectX and all the drivers are up to date. Reopen if needed.


[Request] Basic Authentication

I'm unable to add basic authentication to my hosts, for example:
<EMAIL_ADDRESS>Is passed as <IP_ADDRESS>, I think the clever work in getting aquatone to take multiple types of input is cleaning the basic authentication from the line. Any chance this feature could be added?

I think it should work if you give the targets as URLs (e.g<EMAIL_ADDRESS>as the user:pass@ portion is part of the URI scheme and not hostnames.


Single-Task Results on CelebA Dataset

Hi, could you provide the single-task results on the 40-task CelebA dataset? I am running experiments of an MTL method and want to compare the $\Delta_m$ with FAMO and other baselines. Unlike Cityscapes, NYUv2, and QM9, the single-task results on CelebA seem not to be contained in the codes in this repo. Although I can run single-task experiments, the obtained results may be slightly different from the results in your paper. Then, the comparison of $\Delta_m$ may be unfair. I would greatly appreciate it if you could provide me with more details about the single-task results on CelebA. Thanks in advance!

Hi, here are the single-task results for the 40 tasks:
[0.6736886  0.68121034 0.81524944 0.5760289  0.7205613  0.8555076
 0.38203922 0.58225113 0.787647   0.8321292  0.5029583  0.68694085
 0.6781237  0.5240381  0.5161666  0.95694304 0.6968786  0.67976356
 0.8808315  0.8582131  0.97034    0.93267566 0.5057539  0.40307626
 0.9703734  0.48644206 0.60786104 0.5261031  0.56907415 0.59815097
 0.6858371  0.924108   0.5424991  0.7406311  0.71019936 0.87365365
 0.9305602  0.33704284 0.7647628  0.91907   ]

Please let me know if you have any further questions :)

Thanks! That helps a lot!

Sorry to bother you again. Which epoch do you choose to compute the final $\Delta_m$? Could you let me know if you used the results from the last epoch or the best epoch (obtained from the best averaged validation accuracy over 40 tasks)?

I used the best epoch.

Hi, sorry to bother you. Could you provide the per-task results on CelebA of the other 11 baselines and your FAMO, as listed in Table 3 in your paper? I am trying a MTL method and want to compare the Mean Rank (MR). But the computation of MR involves the per-task results, so I am reaching out to request these data. Thanks for your understanding.

Hi, here are the single-task results for the 40 tasks:
[0.6736886  0.68121034 0.81524944 0.5760289  0.7205613  0.8555076
 0.38203922 0.58225113 0.787647   0.8321292  0.5029583  0.68694085
 0.6781237  0.5240381  0.5161666  0.95694304 0.6968786  0.67976356
 0.8808315  0.8582131  0.97034    0.93267566 0.5057539  0.40307626
 0.9703734  0.48644206 0.60786104 0.5261031  0.56907415 0.59815097
 0.6858371  0.924108   0.5424991  0.7406311  0.71019936 0.87365365
 0.9305602  0.33704284 0.7647628  0.91907   ]

Please let me know if you have any further questions :)

Hi, sorry to bother you. I'm wondering if these results are single-task learning or FAMO. Because I rerun the FAMO code on celebA and got a very low delta compared with these numbers, which is around 0.15%. Thanks!

Hi, here are the single-task results for the 40 tasks:
[0.6736886  0.68121034 0.81524944 0.5760289  0.7205613  0.8555076
 0.38203922 0.58225113 0.787647   0.8321292  0.5029583  0.68694085
 0.6781237  0.5240381  0.5161666  0.95694304 0.6968786  0.67976356
 0.8808315  0.8582131  0.97034    0.93267566 0.5057539  0.40307626
 0.9703734  0.48644206 0.60786104 0.5261031  0.56907415 0.59815097
 0.6858371  0.924108   0.5424991  0.7406311  0.71019936 0.87365365
 0.9305602  0.33704284 0.7647628  0.91907   ]

Please let me know if you have any further questions :)

Hi, sorry to bother you. I'm wondering if these results are single-task learning or FAMO. Because I rerun the FAMO code on celebA and got a very low delta compared with these numbers, which is around 0.15%. Thanks!

Yes, they are the single-task learning results I got on my side. FAMO may get a better result on your side :) I am averaging over 3 seeds so maybe you are lucky this time? Can you run another baseline like CAGrad or NashMTL to confirm?

Hi, sorry to bother you. Could you provide the per-task results on CelebA of the other 11 baselines and your FAMO, as listed in Table 3 in your paper? I am trying a MTL method and want to compare the Mean Rank (MR). But the computation of MR involves the per-task results, so I am reaching out to request these data. Thanks for your understanding.

Here is the link to all results, you can use torch.load to load it and then it is a dictionary with self-explanatory key/values.
https://drive.google.com/file/d/1scf9icIhW8jqdH750ywKKTrevG5TF9Jp/view?usp=sharing

Hi, here are the single-task results for the 40 tasks:
[0.6736886  0.68121034 0.81524944 0.5760289  0.7205613  0.8555076
 0.38203922 0.58225113 0.787647   0.8321292  0.5029583  0.68694085
 0.6781237  0.5240381  0.5161666  0.95694304 0.6968786  0.67976356
 0.8808315  0.8582131  0.97034    0.93267566 0.5057539  0.40307626
 0.9703734  0.48644206 0.60786104 0.5261031  0.56907415 0.59815097
 0.6858371  0.924108   0.5424991  0.7406311  0.71019936 0.87365365
 0.9305602  0.33704284 0.7647628  0.91907   ]

Please let me know if you have any further questions :)

Hi, sorry to bother you. I'm wondering if these results are single-task learning or FAMO. Because I rerun the FAMO code on celebA and got a very low delta compared with these numbers, which is around 0.15%. Thanks!

Yes, they are the single-task learning results I got on my side. FAMO may get a better result on your side :) I am averaging over 3 seeds so maybe you are lucky this time? Can you run another baseline like CAGrad or NashMTL to confirm?

Thanks a lot for the reply! I ran my evaluation again with the single-task learning results and (famo, 20000) from the results you shared, but still got a very low delta, around 1.75. Here is my evaluation function according to the equations in the paper.
def calculate_delta(famo, stl):
    sum = 0
    for i in range(famo.shape[0]):
        sum += -1 * (famo[i] - stl[i]) / stl[i] * 100

    return sum / famo.shape[0]

I think I might make some wrong in the evaluation function. Could you share your evaluation function? I would much appreciate that.

Thanks for your time and I think I have solved the problem. There is a typo in the paper. The numbers in ''MR'' column and ''delta m'' column are swapped in CelebA table. The calculated number 1.75% is correct.

Close the issue :)


能不能加一个参数，让图片下载走cdn

https://github.com/deadblue/elevengo/blob/e333aed2efca747efe66f47344c57deb06ba8167/lowlevel/api/image.go#L10

This way, it eliminates the need to make 115 API requests or include cookie information, allowing for a direct connection.
This way, accessing images doesn't require verifying 115's authentication (cookies) or making API requests, reducing the QPS for 115. I can reserve the QPS for accessing video files and other resources, minimizing the number of 115 API requests made.
因为这样访问图片 不需要去验证115的身份(cookies) 不需要发起api请求 减少访问115的qps 我可以把qps留给访问视频文件等 减少发起115 api请求

I see that, but still don't know how to integrate this into current rclone system. Any other apps using this API?
params = {
"cid": int(cid),
"offset": 0,
"type": "",
"limit": 10000,
"format": "json",
"aid": 1,
"o": "file_name",
"asc": 0,
"show_dir": 1
}
url = 'http://web.api.115.com/files'
r = requests.get(url, params=params, headers=header, cookies=d_cookie)
print(r.json())

{'data': [{'fid': '296353059', n': 'Jurassic.World.2015.BluRay.2160p.x265.10bit.HDR.4Audio.mUHD-FRDS-fanart.jpg', 'u': 'http://thumb.115.com/thumb/79F45B2_100?s=R8fyVb&t=1734165872'}}

http://thumb.115.com/thumb/79F45B2_0?s=R8fyVb&t=1734165872
100 改成 0 是cdn下载地址不用cookie可以下载

You are suggesting that we'd better to use url given by u field when listing, as a download link to reduce API usage?-----------

You can add a parameter control, the cdn picture is transcoded not the original picture

That's all I know


[DiscordCoreAPI] Update to version 2022-06-18.

Describe the pull request

What does your PR fix?

It adds support for Discord's latest API endpoints. I also refactored some of the core architecture - instead of using 1 thread per connection in the instance of sharding, it utilizes a threadpool now. I've also: reworked some of the exception handling, improved the cmake build system to handle itself more effectively, and removed the need for 2 of the dependencies.

Which triplets are supported/not supported? Have you updated the CI baseline?
<Linux, Windows>, Yes

Does your PR follow the maintainer guide?
Yes.

Yes I have.

The upstream cmake seems has some bugs:
In debug:
-- Installing: D:/packages/discordcoreapi_x64-uwp/share/discordcoreapi/DiscordCoreAPIConfig.cmake
-- Installing: D:/packages/discordcoreapi_x64-uwp/share/discordcoreapi/DiscordCoreAPIConfigVersion.cmake
...
-- Installing: D:/packages/discordcoreapi_x64-uwp/share/discordcoreapi/DiscordCoreAPITargets.cmake
-- Installing: D:/packages/discordcoreapi_x64-uwp/share/discordcoreapi/DiscordCoreAPITargets-debug.cmake

Theses files should be installed into D:/packages/discordcoreapi_x64-uwp/debug/share/discordcoreapi.
The installation code should be:
install(EXPORT DiscordCoreAPITargets ... DESTINATION share/discordcoreapi)
install(FILES DiscordCoreAPIConfig.cmake DESINTATION share/discordcoreapi)
install(FILES DiscordCoreAPIConfigVersion.cmake DESINTATION share/discordcoreapi)

Did you test cmake usage?

Yes I did - it works as intended.


fix: autolinking when using Xcode 12

Latest Xcode 12 fails to build while without a module to depend on React-Core directly instead of React. This change requires React Native 0.60.2 or newer. For more details please check: https://github.com/facebook/react-native/issues/29633#issuecomment-694187116

Thanks!


can't addWebpackModuleRule

using 0.9.1
If I put the following, it doesn't have any effect

   addWebpackModuleRule({
     test: /\.ttf$/,
     loader: require.resolve("url-loader"),
     options: {
       name: 'static/media/[name].[hash:8].[ext]',
     },

   }),

I f I put the same code into node_modules/react-scripts/config/webpack.config.js right before the file-loader, it works..
I'm so puzzled can't figure it out...
When I say 'it doesn't work', on chrome network tab, I can't even see the font request
I think the require.resolve is not resolving url-loader correctly?

OMG.. it works after I do yarn remove url-loader so the one I installed was causing problem... why is that.. :(


Feature request: EndNode

A node which kills the interpreter. The idea behind is to have an obvious ending point for the node setup.

Nodes can now call the self._return(value=0, priority=0) method to explicitly end the graph interpretation.
value can by of any type that has a string representation.
priority can be set to values greater 0 in cases were two nodes are executed simultaneously to define which return value has priority.
Calling the method will cause a pop-up window to appear in the editor notifying the user which node returned which value.
Starting Floppy with the --test  flag will cause the editor to shut down after hitting a returning node and will the string representation of the return value to stderr in a form like this:
['return value', 'returning node']


Add Post

Please add this post:
Frame Cease-less User-Interactive Concept in Rust Programming
Post URL: https://blog.knoldus.com/frame-cease-less-user-interactive-concept-in-rust-programming/
Blog Homepage: https://blog.knoldus.com
Author Name: Pawan Singh Bisht, Knoldus Inc.
Categories: Language

Please add this post:
Frame Cease-less User-Interactive Concept in Rust Programming
Post URL: https://blog.knoldus.com/frame-cease-less-user-interactive-concept-in-rust-programming/
Blog Homepage: https://blog.knoldus.com
Author Name: Pawan Singh Bisht, Knoldus Inc.
Categories: Language

Thank you for your submission. I have read you post and decided not to post it at this time as it is mostly contains content covered in chapter 2 of the the Rust book.


Argument name in the Arguments table doesn't match yaml name

It takes some guessing to do the mental map from the YAML name to the Argument description. Would it make sense to make that relation more explicit?

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

ID: 622daa35-c6a1-dac3-17ee-3f9308fc60cd
Version Independent ID: 2c28a59b-8ef5-d7ab-46a6-58748ec552f5
Content: Azure File Copy task - Azure Pipelines
Content Source: docs/pipelines/tasks/deploy/azure-file-copy.md
Product: devops
GitHub Login: @alexhomer1
Microsoft Alias: ahomer

Seconded. I've been working at this for awhile and it's pretty confusing.

@DavidStaheli - is there a way we can autogenerate the docs to include yaml property name for the task arguments in the Docs? I can raise a PR for this specific issue, however it would be appropriate if we can automate.


Oracle now provides a "Oracle Client for Microsoft Tools" installer

Oracle now provides a MSFT tools installer:
https://www.oracle.com/database/technologies/net-downloads.html#
This installer allows us to deprecate the manual steps here:
https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-connect-oracle-database#64-bit-power-bi-desktop
Users should first be directed to the MSFT tools version of the installer as this performs the registration automatically.

Thanks for your comment, @lesliemui. This issue has been assigned to the doc author for review.

@davidiseminger this is the same issue I mentioned in my PR https://github.com/MicrosoftDocs/powerbi-docs/pull/4395 I should have checked the issue list before requesting the merge

Thank you for your feedback - and as I mentioned, after discussing internally it was determined that this might work, in many cases, but there are other cases (outside of what you have experience) where their configuration isn't specifically supported by Microsoft.


linux-kernel-module cataloger doesn't extract version

What happened:
I scanned usr/lib using the newest syft (1.0.7)
I see that some packages are extracted without versions. I would like to know if this is the expected behavour.
What you expected to happen:
All packages contain versions.
Steps to reproduce the issue:

build a basic ec2
scan with syft /usr/lib
Anything else we need to know?:
I'm attaching some additional information:

  "id": "4c09ac4b6900071d",
      "name": "ceph",
      "version": "",
      "type": "linux-kernel-module",
      "foundBy": "linux-kernel-cataloger",
      "locations": [
        {
          "path": "/modules/5.10.217-205.860.amzn2.aarch64/kernel/fs/ceph/ceph.ko",
          "accessPath": "/modules/5.10.217-205.860.amzn2.aarch64/kernel/fs/ceph/ceph.ko",
          "annotations": {
            "evidence": "primary"
          }
        }
      ],
      "licenses": [
        {
          "value": "GPL",
          "spdxExpression": "",
          "type": "declared",
          "urls": [],
          "locations": [
            {
              "path": "/modules/5.10.217-205.860.amzn2.aarch64/kernel/fs/ceph/ceph.ko",
              "accessPath": "/modules/5.10.217-205.860.amzn2.aarch64/kernel/fs/ceph/ceph.ko",

Environment:

Output of syft version: 1.0.7
OS (e.g: cat /etc/os-release or similar): linux arm (ec2)

any ETA for this bug ? got the same issue

Having the same issue, is there any solution in the horizon?

Same issue here, looking forward for a solution.

NOTE: here's a dockerfile to reproduce this issue:
FROM amazonlinux:2023.5.20240624.0@sha256:5bf791027b4659e73c33a88a3fa2b314b8e2c0ee60cb1088a097171ee7f180db
RUN yum update && \
  yum install -y tar gzip kernel.x86_64

Ok, I've done some digging into this. I think there just isn't any version information in many of these kernel modules (including ceph). If you run Syft against the image mentioned above, you'll see a LOT of kernel modules which don't have versions. In fact, the vast majority don't have versions. Using ceph as an example, Syft extracts this modinfo (the modinfo CLI reports the same thing), but it doesn't have a version field:
license=GPL
description=Ceph filesystem for Linux
author=Patience Warnick<EMAIL_ADDRESS>author=Yehuda Sadeh<EMAIL_ADDRESS>author=Sage Weil<EMAIL_ADDRESS>parm=disable_send_metrics:Enable sending perf metrics to ceph cluster (default: on)
alias=fs-ceph
srcversion=152EEABE682FDEA0A59808B
depends=libceph,fscache,netfs
retpoline=Y
intree=Y
name=ceph
vermagic=6.1.94-99.176.amzn2023.x86_64 SMP preempt mod_unload modversions

So, what should Syft do here? I don't think vermagic or srcversion fields are reporting the ceph version, are they?
It seems to me, if a user has a cataloger enabled we should surface packages, even if they don't have a version. But vuln matching with packages without versions seems like it's likely to have false positives, so maybe we might want to make Grype default to skip matching when no version is present, but provide an option to enable it? (I think this issue originated from: https://github.com/anchore/grype/issues/1956)
I'm happy to hear thoughts about this.

Hi!
Thanks for your answer.
From your experience, does it makes sense packages from the kernel will be without versions? sound weird? how can they see the differences between packages without having this kind of information?
btw, I remember once that a package didn't have a name in this cataloger, but I can't reproduce it.
regarding grype - I am not sure skipping the packages is the best practice, need to think about it..

I don't know a lot about kernel modules, but generally speaking: executable code works fine without having a version identifier. I assume these were obtained from known sources and compiled to the appropriate format but just didn't have anything that included the version information in the build.
I'm also assuming the srcversion is some sort of Git hash (or other similar SCM identifier), so a distro could probably use that to understand what code was built. But this doesn't give enough information by itself to be useful as a version for vuln matching in Grype or really for identifying the version of the software to a human. It's possible there is some online/data lookup that could resolve a real version identifier from the srcversion, but we're certainly not doing that today and I don't know offhand how involved that would be (it might be pretty difficult if each distro has a different SCM copy of these in different locations, etc.; and maybe they don't even have versions as such but just rely on the SCM hashes). So, without any sort of further data, we're a bit stuck in what Syft is able to surface.

Hi,
here is a Dockerfile which worked for me (the example above didn't work for me):
FROM amazonlinux:2023.5.20240624.0@sha256:5bf791027b4659e73c33a88a3fa2b314b8e2c0ee60cb1088a097171ee7f180db

# Update repositories and install necessary packages
RUN yum update -y && \
    yum install -y tar gzip && \
    yum search kernel | grep 'kernel-' && \
    yum install -y kernel

# Optionally, you can list installed packages to confirm
RUN rpm -qa | grep kernel

From my point of view it looks weird so many packages are without version, I suggest to further check it.. I wonder if the parser is missing something.


[WIP] Feature: modules

closing for now, would need to be retargeted to our Next.js refactor if we pick it back up


Alex test2

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/mspnp/architecture-center, working directory: W:\5usk-s, target branch: alex-root, target branch commit: 16e90261586072f08cba80b5bcd2a34681f97f42, source branch: alex-test2, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Return only kept invoices data in summary

What:

Return only kept invoices data in summary

Why:

So that we don't return summary from deleted invoices

Merging to fix CI, @shalapatil  / @swaathi please do a post merge review.


Apple Virt macOS 11 -> 12 default values not saved

Describe the issue
https://github.com/utmapp/UTM/commit/5bcbb7af51b4420249b56401cf4ca53ea2ff395b allows importing and running an Apple Virt VM created on macOS 11, but the new config with default values isn't saved, so after closing and reopening UTM it shows as Unavailable.
Configuration

UTM Version: 3.2.4
OS Version: 12.3.1
Intel or Apple Silicon? M1

That’s weird that it would be unavailable. Wouldn’t the same code just run again?

Oh, sorry, I think this is being caused by the shortcut problem.
Is there a way to move the an Apple Virt VM into the sandbox?

You should be able to with “clone” then delete the original.

Thanks, that worked!


assertionEngine can't be used with robotframework 4.0

When upgrading robotframework 3.2.2 to 4.0 a message is displayed preventing the upgrade.
"robotframework-assertion-engine 0.0.4 requires robotframework(4.0.0,>=3.2.2, but you have robotframework 4.0 which is incompatible)"
I guess pip is not liking 4.0.0 instead of 4.0

This is already fixed in master, but is not yet released. When I get back home, I will push release out.

Well, publishing new release did took few days, but now 0.0.5 is out.