Potential permission bug in upsert handler

I just spotted this while working on #2261:
https://github.com/simonw/datasette/blob/569aacd39bcc5529b2f463c89c616e3ada21c560/datasette/views/table.py#L439-L457
That looks wrong to me. Note how the later check does this:
self.ds.permission_allowed(request.actor, "insert-row", resource=(database_name, table_name))

But the earlier checks do this:
self.ds.permission_allowed(request.actor, "insert-row", database_name, table_name)

From looking at the code I think that second example is incorrect, it's using table_name as the default value:
https://github.com/simonw/datasette/blob/569aacd39bcc5529b2f463c89c616e3ada21c560/datasette/app.py#L898-L900

I need tests to demonstrate how this broke things (and prove the fix).
More importantly though, this mistake makes me question if I should redesign the permission_allowed() function before 1.0 to make this kind of mistake less likely in the future.

I could design a keyword-argument-only version of this that uses database_name=, resource_name= - that would avoid conflicting with the existing resource= parameter.

From looking at this search https://github.com/search?q=owner%3Asimonw+%2Fawait+\w%2B\.permission_allowed%2F+-repo%3Asimonw%2Fdatasette&type=code
I think I might be able to at least make default= a keyword-only argument. I think anywhere that is using it as a positional argument is a bug.

These are the tests that should be ensuring that this permission works correctly: https://github.com/simonw/datasette/blob/dcd9ea3622520c99a1f921766dc36ca4c0e3b796/tests/test_api_write.py#L287-L301

Since this looks like it should be a security bug I'm trying to figure out why the incorrect default (the string name of the table) was not being used here.
With the help of the debugger I got to this code:
https://github.com/simonw/datasette/blob/dcd9ea3622520c99a1f921766dc36ca4c0e3b796/datasette/app.py#L902-L918
The default only gets used in that code if not a single one of the permission checks returns True or False - they have to ALL return None for the default to be returned.
Still not sure what's going on here, need to investigate deeper. I should look at how datasette.default_permissions.permission_allowed_default() works next.

I think the test is working because it tests against a token with "all" set for the specific action - I'm not actually testing that the per-database or per-table permissions are being respected here.

Some thing I need to do:

A test that exercises database and table-level variants of the insert-row and update-row permissions
Potentially a mechanism that prevents me from failing to test permissions at the resource level in general
Documentation that very clearly explains how resource level permissions work
Redesign the API for datasette.check_permission() - get rid of that horrible resource as string or tuple-of-strings thing, and make default=` a keyword-only argument

Since this requires changing the signature of that function I'm inclined to rename it instead, and have the old one stick around logging deprecation warnings

I should release a new alpha with the smallest possible fix for this, and then redesign the method in the next release after that.
I could at least make default= a keyword-only argument though, I'm confident that won't break any code that's out there today.

I'm going to add a test that exercises just this upsert thing, and confirm it fails before my fix and passes after it.

Wrote a test that fails with the patch reverted and passes otherwise.

Here's what that test failure looks like
just test -k test_upsert_permissions_per_table -vv

===================================================================== test session starts =====================================================================
platform darwin -- Python 3.10.13, pytest-7.2.1, pluggy-1.0.0 -- /Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/bin/python
cachedir: .pytest_cache
SQLite: 3.45.1
rootdir: /Users/simon/Dropbox/Development/datasette, configfile: pytest.ini
plugins: icdiff-0.6, asyncio-0.20.3, xdist-3.1.0, timeout-2.1.0, anyio-3.6.2
asyncio: mode=strict
collected 1452 items / 1450 deselected / 2 selected

tests/test_api_write.py::test_upsert_permissions_per_table[True] FAILED                                                                                [ 50%]
tests/test_api_write.py::test_upsert_permissions_per_table[False] PASSED                                                                                [100%]

========================================================================== FAILURES ===========================================================================
___________________________________________________________ test_upsert_permissions_per_table[True] ___________________________________________________________

ds_write = <datasette.app.Datasette object at 0x112959000>, allowed = True

    @pytest.mark.asyncio
    @pytest.mark.parametrize("allowed", (True, False))
    async def test_upsert_permissions_per_table(ds_write, allowed):
        # https://github.com/simonw/datasette/issues/2262
        token = "dstok_{}".format(
            ds_write.sign(
                {
                    "a": "root",
                    "token": "dstok",
                    "t": int(time.time()),
                    "_r": {
                        "r": {
                            "data": {
                                "docs" if allowed else "other": ["ir", "ur"],
                            }
                        }
                    },
                },
                namespace="token",
            )
        )
        response = await ds_write.client.post(
            "/data/docs/-/upsert",
            json={"rows": [{"id": 1, "title": "One"}]},
            headers={
                "Authorization": "Bearer {}".format(token),
            },
        )
        if allowed:
>           assert response.status_code == 200
E           assert 403 == 200
E            +  where 403 = <Response [403 Forbidden]>.status_code

tests/test_api_write.py:397: AssertionError
=================================================================== short test summary info ===================================================================
FAILED tests/test_api_write.py::test_upsert_permissions_per_table[True] - assert 403 == 200
======================================================== 1 failed, 1 passed, 1450 deselected in 1.12s =========================================================

The failure here is that when the user is supposed to be able to access the API endpoint using finely grained permissions they get a 403 error.
This is good news, because it means that the failure is a fails-closed rather than a fails-open.


Implement an index which tracks the last UTXO of each NFT

@aguycalled should the index be toggleable or always on? Should it index all nft or just owned ntfs?

ideally toggeable (like addressindex or txindex), and should trak all the nfts


Documentation

Code Cracker
An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties.
Check the official project site on code-cracker.github.io. There you will find information on how to contribute, our task board, definition of done, definition of ready, etc.
Build status Nuget count License Issues open Coverage Status Source Browser
This is a community project, free and open source. Everyone is invited to contribute, fork, share and use the code. No money shall be charged by this software, nor it will be. Ever.
Installing
You may use CodeCracker in two ways: as an analyzer library that you install with Nuget into your project or as a Visual Studio extension. The way you want to use it depends on the scenario you are working on. You most likely want the Nuget package.
If you want the analyzers to work during your build, and generate warnings and errors during the build, also on build servers, then you want to use the Nuget package. The package is available on nuget (C#, VB). If you want to be able to configure which analyzers are being used in your project, and which ones you will ignore, and commit those changes to source control and share with your team, then you also want the Nuget package.
To install from Nuget, for the C# version:
Install-Package CodeCracker.CSharp
Or for the Visual Basic version:
Install-Package CodeCracker.VisualBasic
Or use the Package Manager in Visual Studio.
There is also a version for both named CodeCracker only, but it makes not sense to get it, you should search for the C# or VB version.
If you want the alpha builds that build on each push to the repo, add https://www.myget.org/F/codecrackerbuild/ to your nuget feed.
If you want global analyzers that will work on every project you open in Visual Studio, then you want the Extension. Grab the extension at the Visual Studio Extensions Gallery (C#, VB).
To build from source:
git clone https://github.com/code-cracker/code-cracker.git
cd CodeCracker
msbuild
Then add a reference to CodeCracker.dll from within the Analyzers node inside References, in Visual Studio.
SonarQube Plugin
CodeCracker has a SonarQube Plugin that can downloaded at Plugins HomePage.
#Info (delete this section)
Please see the contributing guide, on the contributing section.
You should notify the maintainers on the issue you are working on before you send a PR.
Rebase and
squash your commits.
Submit one commit only, on top of the branch you are working on, master for bug fixes to the
stable version, vnext to new analyzers and fixers.
Verify if you pass the definition of done.
Always reference issue you are fixing (see bellow, e.g. Fixes #123)
#Start your PR description here (delete this line too)
Fixes # .

Coverage remained the same at 91.659% when pulling fc13c29cb2df52fd8f04126be7eb0f52a0f9f859 on hacking-god:patch-1 into 187501c5fb95fc4a38fc09a7b8fab41a26169264 on code-cracker:master.


Dramatic slow-down in export when using exif data as templates

Not sure if this is expected, but if you use exif data as a filename template, then export slows down dramatically. Without using exif data, export of around 60,000 items takes around 15 minutes. With exif (for example using the camera make) in the filename, export takes almost 1.5 hours to the same USB-C SSD. In both cases the Photos database and the output are on the same APFS disk

This is expected because exiftool must be used to read every single image file to gather the EXIF data for the template

This is expected because exiftool must be used to read every single image file to gather the EXIF data for the template

A small subset of the original image's exif data is imported by Photos into the database at import time.  I added the following new templates which will read from the database, not from the file's actual exif.  This should restore run time for this subset of exif data:
In release v0.39.5

{exif.camera_make}
{exif.camera_model}
{exif.lens_model}

A small subset of the original image's exif data is imported by Photos into the database at import time.  I added the following new templates which will read from the database, not from the file's actual exif.  This should restore run time for this subset of exif data:
In release v0.39.5

{exif.camera_make}
{exif.camera_model}
{exif.lens_model}

Since original images do not change in the Photos library, it would be possible to cache the exiftool dictionary in the export db so that subsequent export sessions with --update do not have to re-run exiftool. exiftool would only need to read metadata for new images since the last update.
pseudo code:
add new 'exiftool' table to ExportDB (there's currently exifdata but that only stores the data used by --exiftool)
when using exiftool: template,
first, query exportdb for file in exiftool table
if found, use that data
else, run exiftool, store the full dictionary in 'exiftool' table, keyed by filename and use this info
If user did something to update exifdata in place (e.g. modified the original files in the Photos library), they would need to delete the export db and re-run --update to re-build the cache

Since original images do not change in the Photos library, it would be possible to cache the exiftool dictionary in the export db so that subsequent export sessions with --update do not have to re-run exiftool. exiftool would only need to read metadata for new images since the last update.
pseudo code:
add new 'exiftool' table to ExportDB (there's currently exifdata but that only stores the data used by --exiftool)
when using exiftool: template,
first, query exportdb for file in exiftool table
if found, use that data
else, run exiftool, store the full dictionary in 'exiftool' table, keyed by filename and use this info
If user did something to update exifdata in place (e.g. modified the original files in the Photos library), they would need to delete the export db and re-run --update to re-build the cache

@narensankar0529 In version v0.42.13 I've added caching for the exiftool data used in the {exiftool} template.  This should speed things up considerably if you're using more than one exiftool field in your template strings.  Of course, this will always be slower than not using {exiftool} since osxphotos will always have to call exiftool once per file to read the initial exif data.  With this new change, the data will at least be cached so if you use more than one exiftool template, osxphotos won't have to call exiftool again.


require newer xxhash

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
with the recent change to vespalib::hash some unit tests failed for me:
staging_vespalib_adaptive_sequenced_executor_test_app
adaptive_sequenced_executor_test.cpp: info:  running test suite 'adaptive_sequenced_executor_test.cpp'
[...]
adaptive_sequenced_executor_test.cpp: info:  status_for_test 'require that task with same string component id are serialized': PASS
adaptive_sequenced_executor_test.cpp:177: error: check failure #1: 'tryCnt < 100' in thread '0(1)' (adaptive_sequenced_executor_test.cpp)
    STATE[0]: 'require that task with different string component ids are not serialized' (adaptive_sequenced_executor_test.cpp:174)
adaptive_sequenced_executor_test.cpp: ERROR: status_for_test 'require that task with different string component ids are not serialized': FAIL

dist/vespa.spec claimed xxhash 0.7.3 should work, but I had to upgrade to 0.8.0.
@vekterli please review
@aressem @geirst FYI

Also, 0.8.0 was when XXH3 became stable across versions, so that might be the real reason.

What about the lines requiring xxhash-libs ? Should they also be changed from 0.7.3 to 0.8.0 ?

yes, i would guess xxhash-libs should also be updated.


Why is the codegen importing a js file instead of a ts file?

Require stack:
  proto/gen/devinternal_connect.ts
  src/connect/connect.ts
  src/connect/server.test.ts

  4 | // @ts-nocheck
  5 |
> 6 | import { GetDeltasRequest, GetDeltasResponse, GetSnapshotResponse, Path, UpsertRequest } from "./devinternal_pb.js";
    | ^
  7 | import { Empty, MethodKind } from "@bufbuild/protobuf";
  8 |
  9 | /**

should it be asking for devinternal_pb.js instead?

https://github.com/bufbuild/connect-es/blob/79c385fc417094c2681cc02b00ac269b1499ee54/packages/protoc-gen-connect-es/README.md#import_extensionjs

I tried to pass import_extensionjs flag in buf opt(s), wouldn't let me.

@timostamm should I use twirp in the meantime?

doh, nevermind.  I had a space in the opt list.  It works now, good2go.


Add Contribution Guidelines

This includes the coding guidelines cited in the opening post of #11, and some additional notes on development practices and IDE setup.

I'm resolving the conflict and doing a rebase now, so that you can merge it anytime you like in one click.

The rebase is done. Feel free to take another look and merge it when you are ready.

The contribution guidelines look good! Just one more thing: there's still utils_Shader to be renamed to utils_CommunityToolboxShader, and we're good to go!

Done. Thank you for the review!


Add ability to set custom styles for view

Hi! I am using react-custom-scrollbars in list with sticky headers, and need to use view with static position. So, i set style through view ref on my componentDidMount (position: static, height: 100%, overflow: auto), but it looks hacky.

You can already do this. See here https://github.com/malte-wessel/react-custom-scrollbars/blob/master/docs/customization.md


feat: properly decode error in fallback scenario, export FallbackServiceError type

Fixes #859. Adapted a piece of error processing from @grpc/grpc-js to use in the fallback scenario.

This is ready for one more look @JustinBeckwith!


CMake builds can't find pthread.h

Describe the bug
A clear and concise description of what the bug is.
-- Looking for pthread.h
-- Looking for pthread.h - not found
CMake Error at /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindThreads.cmake:220 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  Source/GmmLib/CMakeLists.txt:440 (find_package)

To Reproduce
Steps to reproduce the behavior:

nix build nixpkgs.polybar
nix build nixpkgs.intel-gmmlib

Expected behavior
A clear and concise description of what you expected to happen.
Successful builds.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Metadata
Please run nix run nixpkgs.nix-info -c nix-info -m and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 5.4.0-hardened, NixOS, 20.03.git.5bbe102 (Markhor)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3pre6895_84de821`
 - channels(root): `"nixos-20.03pre198214.4cd2cb43fb3"`
 - nixpkgs: `~/Projects/nixpkgs`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

theses build on master, do you mind updating your channels?

nix build nixpkgs.polybar builds from your channels, not the repo, you're looking for:
nix build -f . polybar

I modified the NIX_PATH to point to my local copy.
nixpkgs on  develop [⇕$]
➜ git fetch upstream master
From https://github.com/NixOS/nixpkgs
 * branch                    master     -> FETCH_HEAD
g%

nixpkgs on  develop [⇕$]
➜ git reset --hard upstream/master
HEAD is now at d016a507ea5 ocamlPackages.{owl-base,owl}: init at 0.7.1

nixpkgs on  develop [⇕$]
➜ echo $NIX_PATH
/etc/nixos:nixpkgs=$HOME/nixpkgs:nixpkgs-overlays=$HOME/nixos-configuration/overlays:nixos-config=$HOME/nixos-configuration/machines/windows

nixpkgs on  develop [⇕$]
➜ nix build nixpkgs.polybar
builder for '/nix/store/0rkjb0fw1gcjk0jxyk8rbmh689wsnp91-polybar-3.4.1.drv' failed with exit code 1; last 10 log lines:
  Call Stack (most recent call first):
    /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
    /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindThreads.cmake:220 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
    cmake/03-libs.cmake:5 (find_package)
    CMakeLists.txt:53 (include)

  -- Configuring incomplete, errors occurred!
  See also "/build/source/build/CMakeFiles/CMakeOutput.log".
  See also "/build/source/build/CMakeFiles/CMakeError.log".
[0 built (1 failed), 0.0 MiB DL]
error: build of '/nix/store/0rkjb0fw1gcjk0jxyk8rbmh689wsnp91-polybar-3.4.1.drv' failed

nixpkgs on  develop [⇕$] took 4s
➜ nix build -f . polybar
builder for '/nix/store/0rkjb0fw1gcjk0jxyk8rbmh689wsnp91-polybar-3.4.1.drv' failed with exit code 1; last 10 log lines:
  Call Stack (most recent call first):
    /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
    /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindThreads.cmake:220 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
    cmake/03-libs.cmake:5 (find_package)
    CMakeLists.txt:53 (include)

  -- Configuring incomplete, errors occurred!
  See also "/build/source/build/CMakeFiles/CMakeOutput.log".
  See also "/build/source/build/CMakeFiles/CMakeError.log".
[0 built (1 failed)]
error: build of '/nix/store/0rkjb0fw1gcjk0jxyk8rbmh689wsnp91-polybar-3.4.1.drv' failed

The only thing i can think of is that you have an overlay affecting those packages.
[17:21:14] jon@jon-desktop /home/jon/projects/nixpkgs (master)
$ nix build -f . polybar intel-gmmlib && echo "Success"
Success

Removing my overlays still makes no difference, it "builds" by downloading from the binary cache but when manually checking the output it still fails.
CMake Error at /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /nix/store/k51qmb95hjvdqd0mk1rb3nba5dmwhnv4-cmake-3.15.4/share/cmake-3.15/Modules/FindThreads.cmake:220 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/03-libs.cmake:5 (find_package)
  CMakeLists.txt:53 (include)

-- Configuring incomplete, errors occurred!
See also "/build/source/build/CMakeFiles/CMakeOutput.log".

Encountered this while making a flake for VoxelEngine-Cpp
Error message:
➜  Latest (Git) git:(main) ✗ ./run.sh
mkdir: cannot create directory ‘build’: File exists
CMake Error at /nix/store/q1nssraba326p2kp6627hldd2bhg254c-cmake-3.29.2/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /nix/store/q1nssraba326p2kp6627hldd2bhg254c-cmake-3.29.2/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /nix/store/q1nssraba326p2kp6627hldd2bhg254c-cmake-3.29.2/share/cmake-3.29/Modules/FindThreads.cmake:226 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /nix/store/q1nssraba326p2kp6627hldd2bhg254c-cmake-3.29.2/share/cmake-3.29/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)
  /nix/store/0airi7ppyn8qrf9xp1m1wx03qq6ragkg-glfw-3.4/lib/cmake/glfw3/glfw3Config.cmake:2 (find_dependency)
  CMakeLists.txt:136 (find_package)

-- Configuring incomplete, errors occurred!
make: *** No targets specified and no makefile found.  Stop.
./run.sh: line 6: build/VoxelEngine: No such file or directory

My current flake:
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system: {
        devShells.default = with nixpkgs.legacyPackages.${system}; mkShell {
          nativeBuildInputs = [ cmake pkg-config ];
          buildInputs = [ libglvnd glfw glew zlib xorg.libpthreadstubs libpng libvorbis openal luajit  ];
          #                                              ^ Doesn't work
        };
    });
}

Fixed it by adding this to CMakeLists.txt as in https://stackoverflow.com/questions/54587052/cmake-on-mac-could-not-find-threads-missing-threads-found (yeah, it's for mac, but nix seems to have the same issue):
find_program(NIXOS "nixos-version")
if(NIXOS)
  set(CMAKE_THREAD_LIBS_INIT "-lpthread")
  set(CMAKE_HAVE_THREADS_LIBRARY 1)
  set(CMAKE_USE_WIN32_THREADS_INIT 0)
  set(CMAKE_USE_PTHREADS_INIT 1)
  set(THREADS_PREFER_PTHREAD_FLAG ON)
endif()


inlay_hints error when removing a file with NvimTree

I'm getting the following error when removing a file, that is opened in a buffer, using NvimTree:
Error executing vim.schedule lua callback: ...m/plugged/rust-tools.nvim/lua/rust-tools/inlay_hints.lua:14: Invalid buffer id: 5
stack traceback:
        [C]: in function 'nvim_buf_clear_namespace'
        ...m/plugged/rust-tools.nvim/lua/rust-tools/inlay_hints.lua:14: in function 'clear_ns'
        ...m/plugged/rust-tools.nvim/lua/rust-tools/inlay_hints.lua:245: in function 'render'
        ...m/plugged/rust-tools.nvim/lua/rust-tools/inlay_hints.lua:165: in function 'handler'
        ...Cellar/neovim/0.7.2_1/share/nvim/runtime/lua/vim/lsp.lua:1025: in function ''
        vim/_editor.lua: in function <vim/_editor.lua:0>

To reproduce the error, open NvimTree, open a .rs file, delete the file by hitting d in NvimTree. I also tried to reproduce the bug by removing the buffer with :bd and :bw but everything worked fine.
I think adding a vim.api.nvim_buf_is_valid(bufnr) to https://github.com/simrat39/rust-tools.nvim/blob/master/lua/rust-tools/inlay_hints.lua#L14 should fix the issue. Let me know if that makes sense, also I can submit a PR if you want.

Yup, that should work. Feel free to PR!


No hostname(s) and/or IP address(es) is registered on backend's URL when the Docker service is created as --endpoint-mode dnsrr in Docker swarm mode

Do you want to request a feature or report a bug?
I think this is a bug.
What did you do?
I created the Docker service in --endpoint-mode dnsrr with 3 replicas as the backend service. The frontend's rule is PathPrefix. If I remove the --endpoint-mode dnsrr which means that the endpoint mode will be in VIP, it will automatically register the VIP in the backend's URL.
What did you expect to see?
The service name or the IP addresses of all the tasks (containers) created should be registered on the backend's URL.
What did you see instead?
There is no address in the URL. It just show as http://:$port_number
Output of traefik version: (What version of Traefik are you using?)
Traefik Linux AMD64 v1.2.3
What is your environment & configuration (arguments, toml, provider, platform, ...)?
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "example.com"
watch = true
exposedbydefault = true
usebindportip = true
swarmmode = true

Seems to be a duplicate of #1463

I don't think this issue is a duplicate to #1463 for 3 main reasons:

Traefik is running as a Docker service with at least 3 replicas and using the default --endpoint-mode as VIP on the same swarm cluster and overlay network;
My backend services are running in --endpoint-mode dnsrr which does not publish ports outside of its cluster;
There is no hostname or IP address in my backend's URL, meaning only the transport protocol and port number appears in the URL (e.g. http://:12345).

Same problem here.
level=debug msg="Creating server server-r-backend-1-c5d61adc at http://:80 with weight 0"

If the --endpoint-mode is VIP (which is the default) in Docker swarm mode (backend), the Traefik labels traefik.backend.loadbalancer.sticky and traefik.backend.loadbalancer.method are useless. That is why in order to make use of these labels and their features, we need to use the --endpoint-mode as dnsrr. Unfortunately, this bug is somehow a blocker for us.

I'm facing the same issue here, as described by @bintut
here is my compose yml file in v3.4 format:
whoami-ingress:     image: emilevauge/whoami     deploy:       endpoint_mode: dnsrr       mode: replicated       replicas: 2       placement:           constraints: [ node.role == worker ]       labels:              - "traefik.enable=true"              - "traefik.logLevel=DEBUG"              - "traefik.frontend.rule=Host:whoami.labz.roks"              - "traefik.port=80"              - "traefik.backend=whoami"              - "traefik.passHostHeader=true"              - "traefik.frontend.entryPoints=http"              - "traefik.backend.loadbalancer.swarm=true"              - "traefik.backend.loadbalancer.method=drr"     networks:       - traefik_net

Here is the content of my traefik.toml and docker version is :
Client:
Version:      17.09.0-ce
API version:  1.32
Go version:   go1.8.3
Git commit:   afdb6d4
Built:        Tue Sep 26 22:41:23 2017
OS/Arch:      linux/amd64
Server:
Version:      17.09.0-ce
API version:  1.32 (minimum version 1.12)
Go version:   go1.8.3
Git commit:   afdb6d4
Built:        Tue Sep 26 22:42:49 2017
OS/Arch:      linux/amd64
Experimental: false
# traefik.toml
################################################################
# Global configuration
################################################################

logLevel = "DEBUG"
defaultEntryPoints = ["http"]
[entryPoints]
  [entryPoints.http]
  address = ":80"

[web]
address = ":8080"
[web.auth.basic]
  users = ["admin:$apr1$8WpDE4Vj$kg80BCH1uB9kiZrS8tlyZ0"]

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "labz.roks"
watch = true
swarmmode = true
exposedbydefault = false

And here is the traefik UI showing that the backend lack an ip adress (http//:80) , so I guess that's the problem here. since it can't resolve the service IPs address, the response after a few second end up being : Bad Gateway !

Same result with a curl call :
curl -v  -H Host:whoami.labz.roks http://<IP_ADDRESS>

 About to connect() to <IP_ADDRESS> port 80 (#0)
   Trying <IP_ADDRESS>...
 Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)
 GET / HTTP/1.1
 User-Agent: curl/7.29.0
 Accept: */*
 Host:whoami.labz.roks

 HTTP/1.1 502 Bad Gateway
 Content-Length: 11
 Content-Type: text/plain; charset=utf-8
 Date: Tue, 24 Oct 2017 21:52:35 GMT
 Connection #0 to host <IP_ADDRESS> left intact

Closed by #2490.


[pinia-plugin-persistedstate] Error: [nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin

Describe the bug
This issue arises when the same page is opened in a new tab repeatedly more than three times.
[pinia-plugin-persistedstate] Error: [nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug
Reproduction
no
System Info
System:
    OS: Ubuntu 22.04.4 LTS
    CPU: 64-bit
  Binaries:
    Node: 20.10.0
    npm: 10.2.3
    nuxt: 3.10.3
  Browsers:
    Edge: Chromium (122.0.2365.52)
    Internet Explorer: 11.0.19041.3636

Used Package Manager
npm
Validations

[x] Follow our Code of Conduct
[x] Read the Contributing Guide.
[x] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[x] The provided reproduction is a minimal reproducible of the bug.

Please provide a proper reproduction.

Can we reopen this? I have now facing a smiliar situation here. And I have a repro too.
For me, this is happening if the value is mutated from nuxt plugin. The store was acting finicky but when the debug: true was set, the actual underlying issue surfaced.
Repro: https://stackblitz.com/edit/nuxt-starter-kmist8?file=plugins%2Fdemo.ts

@prazdevs
Experiencing this today. Running the latest version of this plugin


Pass user agent from Lambda -> Google Analytics

Context
Currently every request that doesn't come from the GDS client library is marked as "API"
This masks the fact that traffic could be coming from browsers, bots (like pingdom), or non-gds client libraries.
Changes proposed in this pull request
This passes the value along so we can filter on it.
https://trello.com/c/aXdyrWK2/2901-add-user-agent-to-lambda-event-as-custom-dimension
Guidance to review
I'm not actually using a custom dimension because GA has a user agent field that you can override.. The user agent is now stored in custom dimension 6.
The first lambda should log the user agent to cloudwatch (test with sam local invoke CloudfrontLogAPIKeyFunction -e log-api-key-to-cloudwatch/example.json)
The second lambda should read this value and include it in the call to GA.
sam local invoke StoreAPIUsageFunction -e cloudfront-logs-api-key-to-google-analytics/examples/logs-no-key.json

can we update the test events to reflect these fields?

I'm pausing this while I'm on holiday, but if anyone wants to try deploying it please feel free to.


Refactor test for 1004 regression

Issue Number
#1004
Overview

[ ] I have refactored the script testing #1004 to make it more clear (it was not clear to me until I figured that it is a tx to self address). Added clearer description and additional check for in_ledger tx
[ ] updated start_node script

Comments

bors r+


"ImportError: cannot import name 'Mapping' from 'collections'"

Issue 6:
Description of changes:
Updated requirements per issue submission.
Tested against 3.9 and 3.10 both complete
iamctl -h
Had to sync requires.txt with requirements.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

does not work, requires updating setup.py as well. will bring in a PR myself


⚠ Bofrost.fr has degraded performance

In 6f8579b, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1705 ms

Resolved: Bofrost.fr performance has improved in 3400c55 after 6 minutes.


Updated ThingsBoard Arduino SDK link

Hi, the link of the repository was changed from https://github.com/thingsboard/thingsboard-arduino-mqtt-sdk to https://github.com/thingsboard/thingsboard-arduino-sdk

@ArduinoBot Uplated.

@ArduinoBot Created new release.

Done in https://github.com/arduino/library-registry/pull/2443#issuecomment-1413765208


Vue2.x transition elelment jump to origin unexpected

when I make the following animation,I want the list animated from 0px to 50px on x-axis when the element changed the state from display none to display block ,but the result is that the list animate from 0px to 50px,then to 0px,I mean that it jumped to its origin,I don’t konw why? The link is
https://codepen.io/xiaoguifly/pen/NaoRQd


Conda CI

maybe use tox? Can I make a virtualenv version that doesn't rely on conda? Nice cross-platform abilities, local vs remote testing compatibility

maybe use github action https://github.com/marketplace/actions/setup-miniconda instead. seems easiest but most locked-in to vendor.

update: the way mud-examples is doing this is much better, uses conda that comes with the build image github actions supplies.


Add "gd" command to print decimal numbers

Description
It shows a byte in decimal format.
Name
You would prefer another name since gd is mapped as "Goto local Declaration" in Vim.

Thank you!


Custom formula conversion to quick entry errors

Sorry about the formatting, copy/pasted from discord while on my phone
Not sure if bug or typo, but I used this in the "With" line of the custom formula:
R_FIRE > 50 AND R_EARTH > 50 AND R_LIGHTNING > 50 AND R_WATER > 0 AND R_LIGHT > 0 AND R_DARK > 0 AND R_ICE > 0 AND R_WIND > 0
and got a build with negative water resist. To be clear, I wanted fire, earth, and lightning resist to be 50+, and all other elemental resists to be positive (greater than 0).
http://ffbeEquip.com/builder.html?server=GL#311184c0-858f-11e9-a1b8-7b53378612e4
I think it has to do with the goal being converted back to the quick entry boxes, which ignore zeros. You can probably avoid it by setting them to >-1 rather than 0

Confirmed, still an issue.


Can't change language

How i can change the language? i download the language file from https://github.com/mozilla/pdf.js/tree/master/l10n (its a .ftl file)
and a ref like this:
<link href="static/components/vue-pdf-app/locale.ftl" rel="resource" type="application/l10n" />
but still dont work,
can someone help me please!?

Try using viewer.properties from an older version

@cleysonmayrink
Hi,try searching for relevant files in past versions.
url:  https://github.com/mozilla/pdf.js/tree/v2.12.313/l10n
ref like this:
<link href="<%= BASE_URL %>static/components/vue-pdf-app/viewer.properties" rel="resource" type="application/l10n" />

the older version still dont work in my program, how to fix it?


Build failing (C++, macOS, bazel, clang)

What version of gRPC and what language are you using?
C++, gRPC v1.38.0 (54dc182082db941aa67c7c3f93ad858c99a16d7d)
What operating system (Linux, Windows,...) and version?
macOS 10.14.6
What runtime / compiler are you using (e.g. python version or version of gcc)
$ bazel version
Build label: 4.1.0-homebrew
Build target: bazel-out/darwin-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Tue Jan 1 00:00:00 1980 (315532800)
Build timestamp: 315532800
Build timestamp as int: 315532800

$ clang --version
Apple LLVM version 10.0.1 (clang-1<IP_ADDRESS>)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

.bazelrc
build --cxxopt=-std=c++17
build --repo_env=CC=clang

What did you do?
Tried to upgrade gRPC dep in bazel from 1.33.2 to 1.38.0.
Relevant WORKSPACE bit:
http_archive(
    name = "com_github_grpc_grpc",
    # 54dc182082db941aa67c7c3f93ad858c99a16d7d = v1.38.0
    urls = ["https://github.com/grpc/grpc/archive/54dc182082db941aa67c7c3f93ad858c99a16d7d.tar.gz"],
    # sha256 = "7af41e04a545f1c5d379b5b8dab73c1b4df1a2f1beb9a5f025bec061bb63ca5d",
    strip_prefix = "grpc-54dc182082db941aa67c7c3f93ad858c99a16d7d",
)

load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")

grpc_deps()

load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")

grpc_extra_deps()

What did you expect to see?
Build should succeed.
What did you see instead?
$ bazel build --sandbox_debug //.../target
DEBUG: Rule 'com_github_grpc_grpc' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "f909e389ab49861cfa11c48d2fa658bc169cfd775dcbe93205af654079bf8926"
DEBUG: Repository com_github_grpc_grpc instantiated at:
  /Users/$USER/git/project/WORKSPACE:75:13: in <toplevel>
Repository rule http_archive defined at:
  /private/var/tmp/_bazel_$USER/ddf2dbed86f28eaf3fe363d9182fa438/external/bazel_tools/tools/build_defs/repo/http.bzl:336:31: in <toplevel>
INFO: Analyzed target //.../target:target (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: /private/var/tmp/_bazel_$USER/ddf2dbed86f28eaf3fe363d9182fa438/external/com_github_grpc_grpc/BUILD:1421:16: Compiling src/core/ext/xds/xds_api.cc failed: (Aborted): sandbox-exec failed: error executing command
  (cd /private/var/tmp/_bazel_$USER/ddf2dbed86f28eaf3fe363d9182fa438/sandbox/darwin-sandbox/2381/execroot/__main__ && \
  exec env - \
    APPLE_SDK_PLATFORM=MacOSX \
    APPLE_SDK_VERSION_OVERRIDE=10.15 \
    DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
    PATH=/usr/local/opt/flex/bin:/Users/$USER/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/MacGPG2/bin:/Applications/Wireshark.app/Contents/MacOS:/usr/local/opt/flex/bin:/Users/$USER/.cargo/bin:/Users/$USER/.go/bin:/usr/local/opt/go/libexec/bin:/Users/$USER/.go/bin:/usr/local/opt/go/libexec/bin \
    SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk \
    TMPDIR=/var/folders/pn/jby7dbnj3091wr78t_vkwr140000gn/T/ \
    XCODE_VERSION_OVERRIDE=<IP_ADDRESS>C505 \
  /usr/bin/sandbox-exec -f /private/var/tmp/_bazel_$USER/ddf2dbed86f28eaf3fe363d9182fa438/sandbox/darwin-sandbox/2381/sandbox.sb /var/tmp/_bazel_$USER/install/c0c7e70efd15418a8d8a4b06f63d986c/process-wrapper '--timeout=0' '--kill_delay=15' external/local_config_cc/wrapped_clang '-D_FORTIFY_SOURCE=1' -fstack-protector -fcolor-diagnostics -Wall -Wthread-safety -Wself-assign -fno-omit-frame-pointer -O0 -DDEBUG '-std=c++11' 'DEBUG_PREFIX_MAP_PWD=.' -iquote external/com_github_grpc_grpc -iquote bazel-out/darwin-fastbuild/bin/external/com_github_grpc_grpc -iquote external/upb -iquote bazel-out/darwin-fastbuild/bin/external/upb -iquote external/com_google_protobuf -iquote bazel-out/darwin-fastbuild/bin/external/com_google_protobuf -iquote external/com_google_absl -iquote bazel-out/darwin-fastbuild/bin/external/com_google_absl -iquote external/zlib -iquote bazel-out/darwin-fastbuild/bin/external/zlib -iquote external/com_googlesource_code_re2 -iquote bazel-out/darwin-fastbuild/bin/external/com_googlesource_code_re2 -iquote external/boringssl -iquote bazel-out/darwin-fastbuild/bin/external/boringssl -isystem external/com_github_grpc_grpc/include -isystem bazel-out/darwin-fastbuild/bin/external/com_github_grpc_grpc/include -isystem external/com_github_grpc_grpc/src/core/ext/upb-generated -isystem bazel-out/darwin-fastbuild/bin/external/com_github_grpc_grpc/src/core/ext/upb-generated -isystem external/com_github_grpc_grpc/src/core/ext/upbdefs-generated -isystem bazel-out/darwin-fastbuild/bin/external/com_github_grpc_grpc/src/core/ext/upbdefs-generated -isystem external/zlib -isystem bazel-out/darwin-fastbuild/bin/external/zlib -isystem external/boringssl/src/include -isystem bazel-out/darwin-fastbuild/bin/external/boringssl/src/include -MD -MF bazel-out/darwin-fastbuild/bin/external/com_github_grpc_grpc/_objs/grpc_xds_client/xds_api.d '-frandom-seed=bazel-out/darwin-fastbuild/bin/external/com_github_grpc_grpc/_objs/grpc_xds_client/xds_api.o' -isysroot __BAZEL_XCODE_SDKROOT__ -F__BAZEL_XCODE_SDKROOT__/System/Library/Frameworks -F__BAZEL_XCODE_DEVELOPER_DIR__/Platforms/MacOSX.platform/Developer/Library/Frameworks '-mmacosx-version-min=10.15' '-std=c++17' -no-canonical-prefixes -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -target x86_64-apple-macosx -c external/com_github_grpc_grpc/src/core/ext/xds/xds_api.cc -o bazel-out/darwin-fastbuild/bin/external/com_github_grpc_grpc/_objs/grpc_xds_client/xds_api.o)
In file included from external/com_github_grpc_grpc/src/core/ext/xds/xds_api.cc:21:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:644:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4325:5: error: static_assert failed due to requirement 'is_constructible<grpc_core::XdsApi::LdsUpdate::FilterChainData>::value' "Can't construct object in make_shared"
    static_assert( is_constructible<_Tp, _Args...>::value, "Can't construct object in make_shared" );
    ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4710:29: note: in instantiation of function template specialization 'std::__1::shared_ptr<grpc_core::XdsApi::LdsUpdate::FilterChainData>::make_shared<>' requested here
    return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
                            ^
external/com_github_grpc_grpc/src/core/ext/xds/xds_api.cc:2214:12: note: in instantiation of function template specialization 'std::__1::make_shared<grpc_core::XdsApi::LdsUpdate::FilterChainData>' requested here
      std::make_shared<XdsApi::LdsUpdate::FilterChainData>();
           ^
1 error generated.
Error in child process '/usr/bin/xcrun'. 1
Target //.../target:target failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 26.820s, Critical Path: 8.96s
INFO: 195 processes: 3 internal, 192 darwin-sandbox.
FAILED: Build did NOT complete successfully

Anything else we should know about your project / environment?
I might be doing something very silly here; any help is appreciated!

Interesting that you have this problem with both gRPC 1.33 (Oct 2020) and 1.38, it's either a long-standing problem or something specific to your environment. I don't see anything about the definition of FilterChainData that would remove the default public constructor.
Do you have any local changes to FilterChainData? Any modifications to xds_api.cc or .h? Do you get the same error building gRPC itself? bazel build --cxxopt=-std=c++17 --repo_env=CC=clang :grpc_xds_client

Interesting that you have this problem with both gRPC 1.33 (Oct 2020) and 1.38

The issue doesn't happen on 1.33.2, only with 1.38.

Do you have any local changes to FilterChainData? Any modifications to xds_api.cc or .h?

No changes, I'm just using this as a dependency through Bazel.

Do you get the same error building gRPC itself? bazel build --cxxopt=-std=c++17 --repo_env=CC=clang :grpc_xds_client

I'll give it a shot and report back in a bit.

Do you get the same error building gRPC itself? bazel build --cxxopt=-std=c++17 --repo_env=CC=clang :grpc_xds_client

I'll give it a shot and report back in a bit.

Yes, same error:
$ bazel build --cxxopt=-std=c++17 --repo_env=CC=clang :grpc_xds_client
INFO: Running bazel wrapper (see //tools/bazel for details), bazel version 3.7.1 will be used instead of system-wide bazel installation.
DEBUG: /private/var/tmp/_bazel_aapeli/e9971891b437903d381a036ec06fccbc/external/bazel_toolchains/rules/rbe_repo/version_check.bzl:68:14:
Current running Bazel is ahead of bazel-toolchains repo. Please update your pin to bazel-toolchains repo in your WORKSPACE file.
DEBUG: /private/var/tmp/_bazel_aapeli/e9971891b437903d381a036ec06fccbc/external/bazel_toolchains/rules/rbe_repo/checked_in.bzl:125:14: rbe_default not using checked in configs; Bazel version 3.7.1 was picked/selected but no checked in config was found in map {"0.20.0": ["8.0.0"], "0.21.0": ["8.0.0"], "0.22.0": ["8.0.0", "9.0.0"], "0.23.0": ["8.0.0", "9.0.0"], "0.23.1": ["8.0.0", "9.0.0"], "0.23.2": ["9.0.0"], "0.24.0": ["9.0.0"], "0.24.1": ["9.0.0"], "0.25.0": ["9.0.0"], "0.25.1": ["9.0.0"], "0.25.2": ["9.0.0"], "0.26.0": ["9.0.0"], "0.26.1": ["9.0.0"], "0.27.0": ["9.0.0"], "0.27.1": ["9.0.0"], "0.28.0": ["9.0.0"], "0.28.1": ["9.0.0"], "0.29.0": ["9.0.0"], "0.29.1": ["9.0.0", "10.0.0"], "1.0.0": ["9.0.0", "10.0.0"]}
DEBUG: /private/var/tmp/_bazel_aapeli/e9971891b437903d381a036ec06fccbc/external/bazel_toolchains/rules/rbe_repo/version_check.bzl:68:14:
Current running Bazel is ahead of bazel-toolchains repo. Please update your pin to bazel-toolchains repo in your WORKSPACE file.
DEBUG: /private/var/tmp/_bazel_aapeli/e9971891b437903d381a036ec06fccbc/external/bazel_toolchains/rules/rbe_repo/checked_in.bzl:125:14: rbe_msan not using checked in configs; Bazel version 3.7.1 was picked/selected but no checked in config was found in map {"0.20.0": ["8.0.0"], "0.21.0": ["8.0.0"], "0.22.0": ["8.0.0", "9.0.0"], "0.23.0": ["8.0.0", "9.0.0"], "0.23.1": ["8.0.0", "9.0.0"], "0.23.2": ["9.0.0"], "0.24.0": ["9.0.0"], "0.24.1": ["9.0.0"], "0.25.0": ["9.0.0"], "0.25.1": ["9.0.0"], "0.25.2": ["9.0.0"], "0.26.0": ["9.0.0"], "0.26.1": ["9.0.0"], "0.27.0": ["9.0.0"], "0.27.1": ["9.0.0"], "0.28.0": ["9.0.0"], "0.28.1": ["9.0.0"], "0.29.0": ["9.0.0"], "0.29.1": ["9.0.0", "10.0.0"], "1.0.0": ["9.0.0", "10.0.0"]}
INFO: Analyzed target //:grpc_xds_client (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: /Users/aapeli/git/grpc/BUILD:1437:16: C++ compilation of rule '//:grpc_xds_client' failed (Exit 1): wrapped_clang failed: error executing command external/local_config_cc/wrapped_clang '-D_FORTIFY_SOURCE=1' -fstack-protector -fcolor-diagnostics -Wall -Wthread-safety -Wself-assign -fno-omit-frame-pointer -O0 -DDEBUG '-std=c++11' -iquote . -iquote ... (remaining 65 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox wrapped_clang failed: error executing command external/local_config_cc/wrapped_clang '-D_FORTIFY_SOURCE=1' -fstack-protector -fcolor-diagnostics -Wall -Wthread-safety -Wself-assign -fno-omit-frame-pointer -O0 -DDEBUG '-std=c++11' -iquote . -iquote ... (remaining 65 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
In file included from src/core/ext/xds/xds_api.cc:21:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:644:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4325:5: error: static_assert failed due to requirement 'is_constructible<grpc_core::XdsApi::LdsUpdate::FilterChainData>::value' "Can't construct object in make_shared"
    static_assert( is_constructible<_Tp, _Args...>::value, "Can't construct object in make_shared" );
    ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory:4710:29: note: in instantiation of function template specialization 'std::__1::shared_ptr<grpc_core::XdsApi::LdsUpdate::FilterChainData>::make_shared<>' requested here
    return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
                            ^
src/core/ext/xds/xds_api.cc:2255:12: note: in instantiation of function template specialization 'std::__1::make_shared<grpc_core::XdsApi::LdsUpdate::FilterChainData>' requested here
      std::make_shared<XdsApi::LdsUpdate::FilterChainData>();
           ^
1 error generated.
Target //:grpc_xds_client failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 6.508s, Critical Path: 6.32s
INFO: 139 processes: 13 internal, 126 darwin-sandbox.
FAILED: Build did NOT complete successfully

This makes the build work:
diff --git a/src/core/ext/xds/xds_api.cc b/src/core/ext/xds/xds_api.cc
index 36f2044712..c9bd5e3745 100644
--- a/src/core/ext/xds/xds_api.cc
+++ b/src/core/ext/xds/xds_api.cc
@@ -2252,7 +2252,8 @@ grpc_error_handle FilterChainParse(
         "typed_config");
   }
   filter_chain->filter_chain_data =
-      std::make_shared<XdsApi::LdsUpdate::FilterChainData>();
+      std::shared_ptr<XdsApi::LdsUpdate::FilterChainData>(
+          new XdsApi::LdsUpdate::FilterChainData());
   error = HttpConnectionManagerParse(
       false /* is_client */, context, http_connection_manager, is_v2,
       &filter_chain->filter_chain_data->http_connection_manager);

It's not clear to me why it works though...

If I do a PR, could that be merged?

The issue doesn't happen on 1.33.2, only with 1.38

My mistake, I misinterpreted your description above. Does the same problem occur when you build with --cxxopt=-std=c++11? I haven't been able to reproduce this problem on my mac, so I'm not yet convinced it's a gRPC bug. The solution you suggested incurs an extra allocation, which would be nice to avoid (See https://abseil.io/tips/134).

Does the same problem occur when you build with --cxxopt=-std=c++11?

Just tested, it works with --cxxopt=-std=c++11. Would you know of a way to make bazel build this dep with c++11?

I haven't been able to reproduce this problem on my mac, so I'm not yet convinced it's a gRPC bug. The solution you suggested incurs an extra allocation, which would be nice to avoid (See https://abseil.io/tips/134).

Fair enough. I'm no expert in C++, and I'm not sure how to debug it further (open to suggestions). Maybe there's a way to get clang to spit out more info on why it think it can construct it in make_shared? Maybe this is a bug in the version of clang I'm on, I don't know.
If this is not affecting anyone else, then feel free to close the issue. It'd of course be nice to not have to use a fork, but bazel makes it pretty easy to just point to a different commit and this is a tiny patch, so it's not a big deal.
Thanks heaps for the help and for gRPC in general!

It will be interesting to see if this issue pops up again, maybe there aren't many folks compiling c++17 code on clang < v11. If it is an llvm bug, you might consider upgrading clang if you can, but if this becomes a bigger issue, we may need to work around it. Closing this issue for now. It's worth noting that gRPC uses std::make_shared in a dozen or so places, and evidently this is the only place causing issues.
Hunting for a similar problem in the llvm bug tracker, I'm not sure if this is related but I found https://bugs.llvm.org/show_bug.cgi?id=38033 which produces a similar error when compiling with -std=c++17. Comparing compiler behaviors a bit (https://gcc.godbolt.org/z/3x483hW7f), this same problem occurs on clang 10.0.1 with -std=c++17 enabled, but it's not a problem starting with clang 11.

This problem also occurs with xcode 11.3 with -std=c++17.


revamp synth to handle variation in regrets

Questions

rm f_tolerance ??

Seems to be doing diff things from epsilon?
pros/cons. Having both gives us control over diff things. we do use epsilon quite widely as it is
=> would like everyone's opinion here

reuse palette functions in in forecast_implied setting ??

Should we reuse the following functions in CalcForecastImpliedInferences() of synth_palette_forecast_implied.go ??
weightAccumulator()
CalcWeightedInference()

double-check that the palettes don't mutate with each builder step
allPeersAreNew — which to use ??

this is related to the edge case tickets
see: weightAccumulator() in synth_palette_weight.go
should we use allPeersAreNew or dynamically use allInferersAreNew vs allForecastersAreNew

Also todo

Double-check comments and error logs on functions
Double-check error handling strategy esp within the builder and where it is used

thus far just used in GetNetworkInferencesAtBlock()

Test

unit test coverage galore
stress test again

rm f_tolerance

If it's not in the paper, it shouldn't be in our codebase. I don't recall seeing that parameter in the paper and I just searched for it and don't see it ... so

Im wondering where fTolerance came from then, but yeah happy to simplify and get rid of fTolerance

I think for question 4 you have to check allInferersAreNew || allForecastersAreNew because otherwise inside CalcWeightedInference you are taking an average across all inferer and forecaster weights including some that are weighted properly and some that are weighted as "1". That's going to give unexpected results.


Fails to load with Next JS

When clicking on "URQL" in dev tools I receive these errors (These are emitted in the chrome, not the console):
"TypeError: Cannot read property 'map' of undefined", source: chrome-extension://urql-devtools/panel.js (45493)

"Uncaught TypeError: Cannot read property 'map' of undefined", source: chrome-extension://urql-devtools/panel.js (45543)

"Uncaught (in promise) TypeError: Failed to fetch", source: chrome-extension://urql-devtools/panel.js (46210)

import { createClient, dedupExchange, fetchExchange } from 'urql'
import { devtoolsExchange } from '@urql/devtools'
import { cacheExchange } from '@urql/exchange-graphcache'

const IS_PROD = process.env.NODE_ENV === 'production'
const IS_BROWSER = typeof window !== 'undefined'

import 'isomorphic-fetch'

export const createUrqlClient = () => {
  const exchanges = [dedupExchange, cacheExchange(), fetchExchange]

  if (IS_BROWSER) {
    exchanges.push(devtoolsExchange)
  }

  return createClient({
    url: IS_PROD ? `https://x.there.team/api` : `http://localhost:7001/api`,
    exchanges,
  })
}

Debugging aid:

React dev tools works fine.
window.__urql__.url is set correctly in console.
Introspection is enabled, I checked with Apollo Server's Playground.

I have the same problem, was just about to create an issue when I saw this one.

Gave this a look and it seems that event.panels is undefined. This is hard for me to grasp since we seem to always return one https://github.com/FormidableLabs/urql-devtools/blob/ff617d93458afc74dce31ab1e249680ecb88efde/src/panel/context/Events.tsx#L204 we could guard it but this seems like a deeper issue, I'll try to setup a minimal reproduction.

@JoviDeCroock Thank you. FWIW, I got the error by the most minimal example with just one query { dummy: String } and no Mutation.

I've tried this and it seems that the devtools (and exchange) need a new release, when using the one from the chrome store I see your error. When using my local version it just works (hence why I was getting confused)

@JoviDeCroock Could you also release a new version of the exchange? My fix for the SSR would probably be good to have for NextJS usage as well 🙂

@JoviDeCroock Thanks for the quick reply, looking forward to the new releases 🙂 since I'm trying to debug some issues with the graphcache right now it would really come in handy to have the DevTools 😁

@lukasluecke Thank you too for debugging graphcache! I'm noticing an issue with catch-and-network not caching, I'm also needed the devtool for this :)

@momakes Might be related to my issue then - it also involves some unexpected cache misses 😅 not really a huge issue, since it will just load the data in that case - but I'll try to figure it out anyway 🙂

@lukasluecke @momakes if you want we can talk about the (maybe) bug on spectrum. If it helps you can use the following template to try and minimally reproduce the issue: https://codesandbox.io/s/urql-issue-template-client-iui0o
If you can describe the issue I can also give it a shot. Thanks for the issue reporting, helps us ensure to give you all a good experience!

@JoviDeCroock I will create an issue and / or reproduction once I know it's actually an issue with the cache - which would probably be easier to find out, if I can use the dev tools 😉 It might just as well be a problem with my project 🙈

For the time being you can use the network tab it should show similar things to the devtools but less structured and without the meta.
Pinging the needed people for that publish in the meantime

@JoviDeCroock The problem with the network tab is, that the data returned is correct - it's jsut that there should not be a request at all. Sadly the reproduction template (or in this case, the linked GraphQL server) only has list queries, no item queries. I'll create an issue describing my general issue in the graphcache repository meanwhile 🙂

I think this is fixed now with the newest version. At least it works for me

Thanks for notifying, yes it should be! If anyone else runs into it feel free to ping

I have this warning in nextjs
DevTools failed to load source map: Could not load content for chrome-extension://mcfphkbpmkbeofnkjehahlmidmceblmm/content_script.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME

@edw19 this looks to be unrelated - feel free to create a new issue if it's impacting your ability to use devtools :+1:


Convolution dim shuffling

In the FrameLevel forward you guys do:
    def forward(self, prev_samples, upper_tier_conditioning, hidden):
        (batch_size, _, _) = prev_samples.size()

        # (batch, seq_len, dim) -> (batch, dim, seq_len)
        input = prev_samples.permute(0, 2, 1)

        # (batch, dim, seq_len)
        # use conv1d instead of FC for speed
        input = self.input_expand(input)

        # (batch, dim, seq_len) -> (batch, seq_len, dim)
        input = input.permute(0, 2, 1)

        # add conditioning tier from previous frame
        if upper_tier_conditioning is not None:
            input += upper_tier_conditioning

        # reset hidden state for TBPTT
        reset = hidden is None
        if hidden is None:
            (n_rnn, _) = self.h0.size()
            hidden = self.h0.unsqueeze(1) \
                            .expand(n_rnn, batch_size, self.dim) \
                            .contiguous()

        # -
        (output, hidden) = self.rnn(input, hidden)

        # permute again so this can upsample for next context
        output = output.permute(0, 2, 1)
        output = self.upsampling(output)
        output = output.permute(0, 2, 1)
        return (output, hidden)

are the comments I added  correct?

I'd like to just use the Linear layer instead of the Conv1d first for understanding purposes. However, the dimensions don't line up when I do it that way. Any thoughts on how to reframe this in terms of a Linear layer?

I assume the transposes you do are so that the convolutions work out? is that standard when using Conv1d instead of Linear layer?

@koz4k

basically something like (pseudocode):

# batch = 7, steps=12, dim=100
x = np.shape(7, 12, 100)

# Linear way
out_linear = x.view(-1, 100)
out_linear = linear(out_linear) # say fc maps from 100 -> 200 in dim
out_linear = x.view(7, 12, 200)

# Conv way
conv_out = x.permute(0, 2, 1)
conv_out = conv1d(conv_out)
conv_out = x.permute(0, 2, 1)

Yes, should work this way. permute is there so that it works with Conv1d.


OkHttp 3

Since client-hc uses OkHttp 3, is there a reason why directions-api-clients/java is still with OkHttp 2?
It's a bit inconvenient (specially on Android) to include double similar http libs, if want to use both clients together.

Indeed but we just use the automatically created client from swagger. Maybe they released a new version with a more recent okhttp or there is already an issue?

I had a look into swagger code gen and they have different library versions available for java:
library
            library template (sub-template) to use (Default: okhttp-gson)
                jersey1 - HTTP client: Jersey client 1.19.4. JSON processing: Jackson 2.8.9. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
                feign - HTTP client: OpenFeign 9.4.0. JSON processing: Jackson 2.8.9
                jersey2 - HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.8.9
                okhttp-gson - HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.8.1. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
                retrofit - HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.3.1 (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.
                retrofit2 - HTTP client: OkHttp 3.8.0. JSON processing: Gson 2.6.1 (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)
                resttemplate - HTTP client: Spring RestTemplate 4.3.9-RELEASE. JSON processing: Jackson 2.8.9
                resteasy - HTTP client: Resteasy client 3.1.3.Final. JSON processing: Jackson 2.8.9

If we would choose retrofit2, we would get OkHttp3, but we would also get a different Gson version (not sure if this matters). I just tried that here.
I haven't tested it though, just ran the generation and as usual swagger generates a huge change :).
@devemux86, do you think your issue would be resolved with this update?
BTW: I used Swagger-Codegen 2.2.3, which is still the current stable and it could not find the language R, maybe the current state of this repo was generated with a different version of the swagger codegen?

BTW: I used Swagger-Codegen 2.2.3, which is still the current stable and it could not find the language R, maybe the current state of this repo was generated with a different version of the swagger codegen?

Yeah, it was included recently and had to use master.

If understand correctly the generated code, it uses OkHttp 3 and introduces new dependency for Retrofit?

If understand correctly the generated code, it uses OkHttp 3 and introduces new dependency for Retrofit?

Yes :). Probably also not a good solution for Android?

Probably also not a good solution for Android?

At least would have same OkHttp 3 version. :slightly_smiling_face:
BTW the old one mentions Retrofit too, though not required in client.

The simplest would be to create a PR at swagger codegen, they usually merge fast and this does not sound like a big change. Or at least create an issue there ;)


Confusing diagram

In the diagram it is confusing to call a tenant "My tenant" as it is not clear who "my" is referring to: the reader, the author, another party. Perhaps what is meant is "service provider".
[Enter feedback here]

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

ID: 49413641-0c1f-9862-9113-9b24f39b6dd9
Version Independent ID: ed547d74-59ed-0f48-ba0d-825370d792a8
Content: Limit cross-tenant private endpoint connections in Azure - Cloud Adoption Framework
Content Source: docs/ready/azure-best-practices/limit-cross-tenant-private-endpoint-connections.md
Service: cloud-adoption-framework
Sub-service: ready
GitHub Login: @marvinbuss
Microsoft Alias: mabuss

Thanks for reporting - this issue is under review. This is a Microsoft Internal DevOps Bug ID # 494923

It is also not clear to me which organisation the rougue administrator is part of. Are they part of the customer's organisation? The text also mentions "another AD tenant" but the diagram only shows one labelled "My Tenant" and one labelled "Customer Tenant". I guess then the other tenant is not shown in the diagram? And finally, the diagram shows connections C and D but these are not mentioned near the diagram. Connection C appears later in the text, so I assume it is right to show it in the diagram but D is not discussed at all, I think. When you first study the diagram you ask yourself why C and D are not mentioned.

Having thought about the diagram, I now think "My tenant" is what is referred to in the text as "another AD tenant" and "Customer Tenant" is what is referred to in the introduction as "corporate AD tenant" before it changes to "Customer Tenant". I think I understand now, but I will leave the comments for you to evaluate. This scenario has got nothing to do with one party being a Private Link service provider and one being a "customer" as I originally interpreted the diagram.

Hi @marvinbuss,
I would change the term "My Tenant" to "Rogue Tenant" in the diagram and make a comment in that same section that Connections C and D represent the connections the customer usually wants to allow.
There is one more problem: Their labels imply you are visualizing a process (workflow) through directed arrows. Arrows are suitable to show references, dependencies, or links but not to display processes (unless the objects they are linking are process steps). So, the labels on the arrows need to be changed to "Manually approved Private Link" and "Auto-approved Private Link".

Thanks for the super valuable feedback. Let me quickly discuss with the team and get the changes in, if everyone is ok with it.
Thanks a lot @kasimrehman !


Why is this product not available on Mac?

What's the Problem?
There is absolutely no reason why this product is not available on Mac other than the fact Microsoft wants everyone to use windows, even though almost 100% of Silicon Valley uses Macs.
Solution/Idea
Compile for Macs. This is obviously a web app with a browser shell. Therefore, you should be able to make it available on Apple Macs
Alternatives
Make it available on Apple Mac. What more is there to say?
Priorities

Capability
Priority

This proposal will allow developers to accomplish W
Must

This proposal will allow end users to accomplish X
Should

This proposal will allow developers to accomplish Y
Could

This proposal will allow end users to accomplish Z
Won't

DevToys Version
No response
Comments
No response

Hi Cassy, this is not a web app with a browser shell, if you look at the code you will see its written in entirely c# with the UWP, which works only on Windows.
See #156 for further discussion as to why DevToys is currently only available on Windows

Hi Cassy,

no reason why this product is not available on Mac other than the fact Microsoft wants everyone to use windows

First, this app isn't made by Microsoft. It's made by me a friend in our spare time. So saying that Microsoft wants everyone to use windows because this particular app isn't on Mac is wrong.

This is obviously a web app with a browser shell.

No, it is not. This app is a UWP app. It is native 92% native code. Please learn the difference between web app and UWP here.
In addition to the fact that this is not a web application, there are many other reasons as mentioned here: https://github.com/veler/DevToys/issues/156#issuecomment-1018298004


Allow for custom dropzone area

This PR is related to felixrieseberg/React-Dropzone-Component/pull/102.
It essentially allows customizing the dropzone area by passing a jquery compatible selector in the config object.

...aaaaaand in it goes. Thank you very much ✨


Get mDNS working for services

xref: https://www.amazon.com/Zero-Configuration-Networking-Definitive-Guide/dp/0596101007
services include (note there is some overlap between these):

logging
persistence
messaging (MQTT)
graphing
analysis

We need to come up with namespace design as the plan is to bake in service names/patterns into the software components and have them register with mDNS and look up services that they in turn depend on using mDNS also. This is expected to run headless and my preference is for things that can run just with local networking or even with sporadic local networking (e.g. log to memory -> relog to local non-volatile -> report back data (incrementally/idempotently) to mesh/cloud when networking  is up.


[Question]: what is the mean of the concept of community?

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
when i copy the code from the example,but i do not comprehend the process，so please try to explain the all of the line is do what and what is the communities ,and tell me the meaning of creating the communities？
code：
def build_communities(self):
    """Builds communities from the graph and summarizes them."""
    nx_graph = self._create_nx_graph()
    community_hierarchical_clusters = hierarchical_leiden(
        nx_graph, max_cluster_size=self.max_cluster_size
    )
    self.entity_info, community_info = self._collect_community_info(
        nx_graph, community_hierarchical_clusters
    )
    self._summarize_communities(community_info)

I have found the code as follow code:

from llama_index.core.query_engine import CustomQueryEngine
from llama_index.core.llms import LLM
from llama_index.core import PropertyGraphIndex
import re
class GraphRAGQueryEngine(CustomQueryEngine):
graph_store: GraphRAGStore
index: PropertyGraphIndex
llm: LLM
similarity_top_k: int = 20
def custom_query(self, query_str: str) -> str:
    """Process all community summaries to generate answers to a specific query."""

    entities = self.get_entities(query_str, self.similarity_top_k)

    community_ids = self.retrieve_entity_communities(
        self.graph_store.entity_info, entities
    )
    community_summaries = self.graph_store.get_community_summaries()
    community_answers = [
        self.generate_answer_from_summary(community_summary, query_str)
        for id, community_summary in community_summaries.items()
        if id in community_ids
    ]

    final_answer = self.aggregate_answers(community_answers)
    return final_answer

def get_entities(self, query_str, similarity_top_k):
    nodes_retrieved = self.index.as_retriever(
        similarity_top_k=similarity_top_k
    ).retrieve(query_str)

    enitites = set()
    pattern = r"(\w+(?:\s+\w+)*)\s*{[^}]*}{[^}]*}{[^}]*}\s*->\s*([^(]+?)\s*{[^}]*}{[^}]*}{[^}]*}\s*->\s*(\w+(?:\s+\w+)*)"

    for node in nodes_retrieved:
        matches = re.findall(pattern, node.text, re.DOTALL)

        for match in matches:
            subject = match[0]
            obj = match[2]
            enitites.add(subject)
            enitites.add(obj)

    return list(enitites)

def retrieve_entity_communities(self, entity_info, entities):
    """
    Retrieve cluster information for given entities, allowing for multiple clusters per entity.

    Args:
    entity_info (dict): Dictionary mapping entities to their cluster IDs (list).
    entities (list): List of entity names to retrieve information for.

    Returns:
    List of community or cluster IDs to which an entity belongs.
    """
    community_ids = []

    for entity in entities:
        if entity in entity_info:
            community_ids.extend(entity_info[entity])

    return list(set(community_ids))

def generate_answer_from_summary(self, community_summary, query):
    """Generate an answer from a community summary based on a given query using LLM."""
    prompt = (
        f"Given the community summary: {community_summary}, "
        f"how would you answer the following query? Query: {query}"
    )
    messages = [
        ChatMessage(role="system", content=prompt),
        ChatMessage(
            role="user",
            content="I need an answer based on the above information.",
        ),
    ]
    response = self.llm.chat(messages)
    cleaned_response = re.sub(r"^assistant:\s*", "", str(response)).strip()
    return cleaned_response

def aggregate_answers(self, community_answers):
    """Aggregate individual community answers into a final, coherent response."""
    # intermediate_text = " ".join(community_answers)
    prompt = "Combine the following intermediate answers into a final, concise response."
    messages = [
        ChatMessage(role="system", content=prompt),
        ChatMessage(
            role="user",
            content=f"Intermediate answers: {community_answers}",
        ),
    ]
    final_response = self.llm.chat(messages)
    cleaned_final_response = re.sub(
        r"^assistant:\s*", "", str(final_response)
    ).strip()
    return cleaned_final_response

And what is the meaning of the code as follow?What is it matching?
pattern = r"(\w+(?:\s+\w+))\s({[^}]})\s->\s*([^(]+?)\s*({[^}]})\s->\s*(\w+(?:\s+\w+)*)"
@dosu

How to get all the nodes from the local Neo4jPropertyGraphStore？@dosu


Qt: Save as PDF

With little effort, Qt can write perfectly nice PDF files. Fonts are embedded automatically.
I think this is a neat alternative to SVG printing.

(there is also a class called QSvgGenerator, but it is less useful because it can not embed fonts, or convert text into paths).

(btw, I didn't manage Skia integration. Latest Skia code seems to have diverged too far).

Would you mind submitting another PR on the openmath branch?


Support $inc field update operator

Closes #520

Draft state, tests fail. I assume it is not ready for review

I should set PR reviewers when it's ready?

Draft state, tests fail. I assume it is not ready for review

I should set PR reviewers when it's ready?

Agree, bcz when I check pull request review even if the state is draft I see it.

I tried to implement dot notation support for $inc operator. It seems that it require a lot of changes to several structures including Document and Array. Maybe it's better to do it in separate PR? @AlekSi WDYT?

@rumyantseva PTAL and merge with the right commit body if it looks good to you


Update stable version in repo from 0.0.13 to 0.3.1

Think about update stable version to 0.3.1
Version: stable=0.0.13 (83 days old) => latest=0.3.1 (15 days old)
Installs: stable=249 (59.29%), latest=75 (17.86%), total=420
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 0.3.1 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 0.3.1 but the current stable version is already 0.3.1.
So this issue should be closed.
@mcm1957 for evidence


Continuous Integration

Implement a  Continuous Integration for Eclipse Plugins using Travis-CI.

I'm closing this issue as a great deal of time has passed. If there is renewed interest just reopen or make a new issue and link to this one.