Brackets 1.12  stoped working on macOS High Sierra.

Hello, I have a problem with Brackets 1.12 on macOS High Sierra.
It just stopped working. I did't do any updates and did't install new applications. I have a gray screen and the menu responds only to closing and minimizing the window. I was trying to remove the new version of the old version, clean up the cache and even updated the OS again. Still not working.
I tried to fixed it with https://github.com/adobe/brackets/wiki/Troubleshooting#launching.
Please, help.
P.S. I also sent email to admin.

@OctoberBloom Can you try renaming the Brackets preferences (don't delete the preferences folder yet) and start Brackets to see if you are still seeing the issue. Brackets preferences folder is located at ~/Library/Application Support/ on Mac.
Also are you seeing this error when launching from Finder?

Thank you! It works again!

Glad you got it working! Closing as solved 👍


MainApplication.java code

I was trying to implement this library and was not working until I realized that in the example the package VisionCameraCodeScannerPluginPackage is being linked manually. Why it is not included in the docs?

Try this https://www.youtube.com/watch?v=sE0MEyFA7E4&list=PLQhQEGkwKZUrempLnmxjt7ZCZJu1W3p2i&index=7 & https://www.youtube.com/watch?v=BFkIIIKgjnE&list=PLQhQEGkwKZUrempLnmxjt7ZCZJu1W3p2i&index=80


fidesctl evaluate fails to parse the fidesdemo resources on 1.1.0+

Bug Description
While upgrading the https://github.com/ethyca/fidesdemo to the latest version, I noticed we've seem to have introduced a bug in the fidesctl evaluate command, because when I attempt to evaluate these YML files, I get an error: https://github.com/ethyca/fidesdemo/tree/update-fidesctl-120-fidesops-110/fides_resources
(venv) ~/git/fidesdemo% make fidesctl-evaluate
Bringing up docker containers...
[+] Running 4/4
 ⠿ Container fidesdemo-redis-1     Running                                                                                0.0s
 ⠿ Container fidesdemo-db-1        Running                                                                                0.0s
 ⠿ Container fidesdemo-fidesops-1  Running                                                                                0.0s
 ⠿ Container fidesdemo-fidesctl-1  Running                                                                                0.0s
localhost:5432 - accepting connections
Evaluating policy with fidesctl...
./venv/bin/fidesctl evaluate --dry fides_resources
Loading resource manifests from: fides_resources
Taxonomy successfully created.
----------
Processing system resources...
Failed to parse system from server:
{'detail': {'error': 'resource does not exist', 'resource_type': 'System', 'fides_key': 'flaskr_system'}}
3 validation errors for System
fides_key
  field required (type=value_error.missing)
system_type
  field required (type=value_error.missing)
privacy_declarations
  field required (type=value_error.missing)
make: *** [fidesctl-evaluate] Error 1

In this project, there are four resources to evaluate: flaskr_system, flaskr_policy, flaskr_postgres_dataset, and google_analytics_system. If you run the evaluate command repeatedly, different resources fail each time, which seems to indicate that it is some kind of parallelization bug?
Steps to Reproduce

git checkout git@github.com:ethyca/fidesdemo.git
cd fidesdemo
git checkout update-fidesctl-120-fidesops-110
make install
make fidesctl-evaluate

Expected behavior
fidesctl evaluate should load the four files from the project and parse & evaluate them successfully. By default, these should also pass the policy without any issues.
Screenshots
n/a
Environment

Version: 1.2.0
OS: Mac OSX Monterey 12.1
Python Version: 3.9.9
Docker Version: 20.10.11

Additional context
Note that this occurs for both fidesctl:1.2.0 and fidesctl:1.1.0, but works fine on fidesctl:1.0.0. This suggests it was a bug in fidesctl:1.1.0, probably with the refactor of evaluations. I suspect the root cause here is the resources being distributed across multiple files, as it looks like our test cases tend to put everything into a single file right now.

After some more troubleshooting, I realized that I had neglected to update the CLI version, so I was running fidesctl:1.0.0 on the CLI but fidesctl:1.2.0 on the webserver.
I then updated the CLI to 1.2.0 via pip and retried this, and it parsed & evaluated successfully (after making some changes to the policy file to use matches instead of inclusion).
So this can be closed, but it does make me want to see a very obvious error when the CLI & webserver versions don't match.


[DOC] - Added ToC to API documentation

It's easier to "discover" the API by having a toc
Perhaps we could generate it for other pages.
Used https://github.com/ekalinin/github-markdown-toc

@clehene Would you be willing to either write a parser using blackfriday or maintain this index? If we don't have tooling or someone maintaining it it will get out of date which is probably a worse situation.

@philips, feel free to close this if you think it won't work as is, as I'm not sure when I'll get time to get back on this.
This said:
I'll look at blackfriday. Are you thinking at a git hook?
I'm interested to get the same for our internal github projects too so I'll think about what would be best.
I'm not sure a maintainer for the API ToC is sustainable. Making ToC updates part of API changes checklist could work.
Alternatively, you could also generate the API documentation from code doc (directly or through something like WADL). That has the advantage that it serves as code documentation too.

Closing due to lack of interest. I suspect that a ToC embedded in the md files would probably cause breakage when ingesting the docs into the coreos website as well /cc @joshix


Merge FreeMagnetismInterface feature enhancement

FreeMagnetismInterface acts in the same way that FreeInterface does. It allows for a freeform connecting spline between magnetic layers to deal with non-trivial magnetic interfaces.
Additional modifications have been put into mono.py in order to make it more useable, however, more work is probably needed in all of the spline functions we have in refl1d - this may be out of scope of this PR.

@acaruana2009 have you tried the new class out?  Does it work as you expect?  Can you serialize/deserialize it?

@acaruana2009 have you tried the new class out? Does it work as you expect? Can you serialize/deserialize it?

Yes, it all seems to work. I haven't done any fits with it yet, but I can load in a file, save out into a session and reload into a session and it keeps chisq intact.


HAP discovery error Error: Could not resolve UUID 00000012-0000-1000-8000-656261617577 to service

Describe The Bug:
After starting homebridge the error message mentioned under "Logs" is displayed. When browsing to /metrics the message "Metrics discovery pending" is displayed.
To Reproduce:
Install and configure plugin. Restart homebridge.
Expected behavior:
No error message and metrics exposed at /metrics.
Logs:
[09/11/2022, 13:15:51] [PrometheusExporter] HAP discovery error Error: Could not resolve UUID 00000012-0000-1000-8000-656261617577 to service
    at uuidToServerName (/usr/lib/node_modules/homebridge-prometheus-exporter/src/metrics.ts:140:11)
    at aggregate (/usr/lib/node_modules/homebridge-prometheus-exporter/src/metrics.ts:51:37)
    at /usr/lib/node_modules/homebridge-prometheus-exporter/src/platform.ts:58:42

Plugin Config:
{
    "bridge": {
        "name": "Homebridge",
        "username": "xxx",
        "port": 51090,
        "pin": "031-45-154"
    },
    "description": "Home Smart Home",
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "auth": "form",
            "theme": "red",
            "temp": "/sys/class/thermal/thermal_zone0/temp",
            "tempUnits": "c",
            "lang": "auto",
            "platform": "config"
        },
        {
            "name": "deCONZ",
            "anyOn": true,
            "configuredName": true,
            "effects": true,
            "hosts": [
                "<IP_ADDRESS>:8081"
            ],
            "lights": true,
            "nativeHomeKitLights": true,
            "nativeHomeKitSensors": true,
            "resource": true,
            "sensors": true,
            "users": {
                "xxx": "xxx"
            },
            "platform": "Hue"
        },
        {
            "name": "Miele@home",
            "clientID": "xxx",
            "clientSecret": "xxx",
            "language": "de",
            "reconnectEventServerInterval": 60,
            "disableStopActionFor": [
                "Dishwasher"
            ],
            "platform": "Miele@home"
        },
        {
            "name": "Shelly",
            "username": "xxx",
            "password": "xxx",
            "admin": {
                "enabled": true
            },
            "devices": [
                {
                    "id": "xxx",
                    "name": "Wohnzimmer Decke",
                    "type": "switch"
                },
                {
                    "id": "xxx",
                    "name": "Arbeitszimmer",
                    "type": "valve",
                    "exclude": false
                }
            ],
            "platform": "Shelly"
        },
        {
            "pin": "031-45-154",
            "debug": false,
            "prefix": "homebridge",
            "port": 36123,
            "refresh_interval": 60,
            "request_timeout": 10,
            "discovery_timeout": 20,
            "platform": "PrometheusExporter"
        }
    ],
    "accessories": [
        {
            "name": "Pihole",
            "auth": "xxx",
            "ssl": false,
            "rejectUnauthorized": true,
            "host": "<IP_ADDRESS>",
            "port": 80,
            "baseDirectory": "/admin/",
            "time": 0,
            "reversed": false,
            "logLevel": 1,
            "accessory": "Pihole"
        },
        {
            "accessory": "PhilipsTV",
            "name": "TV Wohnzimmer",
            "ip_address": "<IP_ADDRESS>",
            "poll_status_interval": "60",
            "model_year": 2016,
            "has_ssl": true,
            "has_ambilight": false,
            "wol_url": "wol://54:2A:A2:FA:B7:2E",
            "username": "xxx",
            "password": "xxx"
        },
        {
            "accessory": "mi-flower-care",
            "name": "Blumenkasten rechts",
            "deviceId": "xxx",
            "interval": 60
        },
        {
            "accessory": "mi-flower-care",
            "name": "Blumenkasten links",
            "deviceId": "xxx",
            "interval": 60
        }
    ],
    "disabledPlugins": [
        "homebridge-mieleathome",
        "homebridge-notification",
        "homebridge-mi-flower-care"
    ]
}

Screenshots:
Environment:

Plugin Version: v.0.0.4
Homebridge Version: v1.5.1
Node.js Version: v18.12.1
NPM Version: v8.19.2
Operating System: Raspbian

The error means that we got a service UUID that is not defined in the HomeKit spec. So far so good. The strange thing is, if I google the UUID or look it up on GitHub, I can only find spurious mentions but nothing definitive what it could be. So my plan right now is to assume it’s some sort of custom, non-standard service and handle it gracefully but that’s all I can do.

Bugfix landed, doing the release dance

0.0.5 published, please try again

Perfect. Now I get the metrics exposed. Thank you very much for your effort and the quick fixes!

Terrific, thank you for the bug reports and your patience. When local assumptions hit reality it can be a bit bumpy.


how to start the installation with reindex or reindex-chainstate?

hi, i tried to install the latest version, but i got this error message:

You can set the Reindex-Option in the wallet settings. Then the wallet will try to reindex.

Setting options is not possible because message stops the installaltion

Hi @hashrandy , thanks for your feedback. May I know the OS + version no. you're using? Please give us time to investigate this issue. We'll be releasing a new update coming up soon, we'll update on Telegram. Might be able to resolve your issue. Thank you for your patience!

Had the same issue. After restart of the APP and sync, APP window remains empty, only menu is visible.

Hi @micegit , thanks for your feedback, could you send your app logs please?

Hi @hashrandy @micegit , update v2.1.6 is out https://defichain.com/downloads/.
Do give a thumbs up to this comment if your issue has been resolved, otherwise, you may reopen this issue w new information (include screenshots) and your app logs. Thank you.

Hi @hashrandy @micegit , update v2.1.6 is out https://defichain.com/downloads/.
Do give a thumbs up to this comment if your issue has been resolved, otherwise, you may reopen this issue w new information (include screenshots) and your app logs. Thank you.


Drop unused portion of conditional

Several months ago the if false was added.  I guess my question is: Why not log in the CI environment?

@mkanoor I believe if we drop the null logging, the if false can be removed since it will log to the right location for your diagnostics.  I'm good with removing the null logging if normal logging doesn't slow the travis build down.  👍

Anyway halfway decent way we can check to see if this slows the CI build down dramatically?

@chrisarcand maybe monitor the top of the readme?

@jrafanie Ahh forgot about that, seems good enough to me. 👍

@jrafanie @chrisarcand It's been running like this for about 6 months now...

Oh yeah. 😝


Upgrade to Spring Cloud Dalston

Coverage remained the same at 88.806% when pulling 83060bb62898d19c75748ba350e39b7ebc15fb32 on tgianos:master into 9d4f4c5534fbe11cfea5aefb8fc819f6185dcc65 on Netflix:master.


fix(spark): incorrect deriveRecordType() for Expand

In the Expand relation, the record type was being calculated incorrectly, leading to errors when round-tripping to protobuf and back.

Incorporates the test code changes in draft PR https://github.com/substrait-io/substrait-java/pull/314

Yes, I was on the wrong track entirely with this.  Turns out I needed to transpose the projections matrix that's defined in Spark before conversion to Substrait (and vice-versa).


Verify the container image actually starts

Use the verify phase to run integration tests on the container.

Via travis? See https://github.com/GoogleCloudPlatform/appengine-java-vm-runtime/issues/64

I'll start by making "mvn verify" perform an integration test using the container. The way I did that for the tomcat image was to do the docker build in the packaging phase and then use the integration-test and verify phases to actually test the imaged. That means you can also check changes before committing.
I used the hack with a userland kernel to get this working but if Travis now has built-in docker support that should be easier.


How/where to set/select Package Type fоr Repository

Description
"Enable Repository Packages Registry" is checked. How/where to set/select Package Type fоr Repository. Please share screenshot (link docs, config example..) or this feature is still not implemented, despite its presence in the documentation?
app.ini:
RUN_MODE = dev or RUN_MODE = prod
[packages]
ENABLED = true
https://try.gitea.io/4meck/test1
Gitea Version
1.17.3
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
No response
Screenshots
No response
Git Version
2.31.1
Operating System
Linux 5.14.0-197.el9.x86_64
How are you running Gitea?
docker.io/gitea/gitea:1.17.3 (Podman container)
Database
SQLite

I don't understand your question. If you upload a package to an owner (user or organization), you can open the package settings and link the package to a repository there. Then the package will be displayed in the repository.

I'm sorry, but i can not find in UI "package settings and link the package to a repository there"

https://try.gitea.io/4meck/test1/settings
There are no packages yet.	https://try.gitea.io/4meck/test1/packages
There are no packages yet.	https://try.gitea.io/4meck/-/packages

Browser Version 1.45.127 Chromium: 107.0.5304.110 (Official Build) (64-bit)

My demo repo https://try.gitea.io/4meck/test1 is not empty. (!)
Please tell me, how many files and in what format I need to upload to the repository in order to set the "Package Type" I need and the repository was available via gitea api.

I don't understand your problem. The package registry has nothing to do with the git files in your repository.

The package registry is a list of git repositories by type of package manager and owner (company | user).
Depending on the repository type, the Gitea repository indexer creates an index file (repository list: owner, type, name...)
When calling the /packages/{owner}/{type} API, this file is passed to the client in a generic format, such as composer.json.
Do I understand the mechanism/algorithm/functionality of the package registry correctly?

No, everything is mixed in your explanation. Have a look at the documentation for the specific package type to learn how to use the package registry.


Subscription- Bad State : stream has already been listened to.

Hey, I recently got this problem again.
But this time, 1st time the socket connects and works perfectly fine. But on navigating back and forth to the same widget throws this error.
Are we supposed dispose something even when using hooks generated by codegen ? Am I missing something ?
Originally posted by @Arpit1496 in https://github.com/zino-hofmann/graphql-flutter/issues/1191#issuecomment-1230804072

navigating back and forth to the same widget throws this error.

need a reproducible! You can use https://api.chat.graphql-flutter.dev/graphql

closing for lack of reproducible, feel free to reopen it if you find a good example


add support for scraping metadata from www.wlnupdates.com

Hi! Can you add support for scraping metadata from www.wlnupdates.com ? It has a lot better metadata than novelupdates.com.
Thx!

It's not actually just scraping the metadata from novel-updates but considers it as a supported host and follows the chapter links to the real hosts. So adding "metadata" scraping is not possible. I could add it as a new supported host through.
Same drawbacks as NU apply here aswell:

Sometimes the chapter links point to "pre-chapter" on the real hosts where it's basically just a short notice with a link to the full chapter.
The automatic chapter text detection is not perfect and unwanted copy preventions leak through.

You just need to get all the epub metadata from the novel web page on novelupdates.com or wlnupdates.com. Here is a real world example of an epub output:
<dc:identifier id="book-id" opf:scheme="ISBN">1234567890X</dc:identifier>
    <dc:title id="english">Battle Through the Heavens</dc:title>
    <meta refines="#english" property="title-type">english title</meta>
    <dc:title id="original">斗破苍穹</dc:title>
    <meta refines="#original" property="title-type">original title</meta>
    <dc:title id="alternative">Fights Break Sphere</dc:title>
    <meta refines="#alternative" property="title-type">alternative title</meta>
    <dc:language>en</dc:language>
    <dc:language>cn</dc:language>
    <dc:creator opf:role="aut" >Heavenly Silkworm Potato</dc:creator>
    <dc:creator opf:role="aut" >Tian Can Tu Dou</dc:creator>
    <dc:creator opf:role="aut" >天蚕土豆</dc:creator>
    <dc:creator opf:role="tra" >GravityTales</dc:creator>
    <dc:contributor opf:role="ill" >Hongbin Zhou</dc:contributor>
    <dc:publisher>Qidian</dc:publisher>
    <dc:subject>Action</dc:subject>
    <dc:subject>Adventure</dc:subject>
    <dc:subject>Fantasy</dc:subject>
    <dc:subject>Harem</dc:subject>
    <dc:subject>Martial Arts</dc:subject>
    <dc:subject>Xuanhuan</dc:subject>
    <dc:date opf:event="publication">2018-01-01T00:00:00Z</dc:date>
    <dc:source>urn:isbn:1234567890X</dc:source>
    <dc:description>"In a land where no magic is present. A land where the strong make the rules and the weak have to obey.  Three years ago, Xiao Yan, who had shown talents none had seen in decades, suddenly lost everything. His powers, his reputation, and his promise to his mother. What sorcery has caused him to lose all of his powers? And why has his fiancee suddenly shown up? </dc:description>
 <link href="https://www.novelupdates.com/series/battle-through-the-heavens/" />
  </metadata>

NG only supports rudimentary metadata support (Title, Author, Description, Tags). Both WLNupdates and NovelUpdates do not provide more extensive data than those as well or are servery lacking in most cases. Same goes for novels, NU only hosts translated novels and while WLNupdates also host western ones, it's just not detailed enough to implement it as an automatic metadata provider.

All the metadata above is taken from Novelupdates. Why do you say that is not available?
You can check WlnUpdates API here:
https://github.com/fake-name/wlnupdates/blob/master/app/templates/api-docs.md

I don't think most people really care about metadata further than the cover. The most important parts are in. Publication date and ISBN are only for published novels, which 99% of "supported novels" are not.
Also like I said, for most novels, except popular ones like Battle Through the Heavens which often have official EPUBs, the available data is largely incomplete or equal to that what you can get from the host sites themselves. That is if they are even on wlnUpdates/NU.

Closed until wlnupdates is mature enough.


Update mtuhandler to support platform running nftables

Submariner MTU handler in route-agent programs iptable rules to
clamp tcp mss to PMTU in the Mangle table. We noticed that tcp
mss not being clamped to PMTU when the platform is running nftables
and Globalnet is enabled.
This PR adds iptables rules that force tcp mss clamping in case
Globalnet is configured, the mss value is calculated based on
the MTU of the default interface and the cable driver overhead.
Fixes: https://github.com/submariner-io/submariner/issues/1774
Signed-off-by: yboaron<EMAIL_ADDRESS>

Thanks for this, including the explanation in the commit message!
It seems the unit test needs to be updated (or is it identifying a real issue in the implementation?).

@yboaron can you please handle the backport?

This was backported in https://github.com/submariner-io/submariner/pull/1846.


Chart: import-wordnik-apis

Create a chart that runs import-wordnik-apis in a Kubernetes CronJob.

Fixed by #9


relax assert after new highway release

@jan-wassenberg: would this be a good new constant? The first new failure after a highway release on cross-compile i686 in an emu128 test was occuring at a value for which std::abs(approx[0] - approx[i]) was 2.3...E-7, so I approximately doubled that to have some wiggle room for future updates.

as a more coding style level comment, we probably should move the whole function to something like fast_math-inl.h and test it in a _test.cc file with gtest assertions, rather than recycling JXL_ASSERTs for the purpose.

as a more coding style level comment, we probably should move the whole function to something like fast_math-inl.h and test it in a _test.cc file with gtest assertions, rather than recycling JXL_ASSERTs for the purpose.

Sounds good to me. Should the fast_math-inl.h then only contain CubeRootAndAdd or more functions?

as a more coding style level comment, we probably should move the whole function to something like fast_math-inl.h and test it in a _test.cc file with gtest assertions, rather than recycling JXL_ASSERTs for the purpose.

Sounds good to me. Should the fast_math-inl.h then only contain CubeRootAndAdd or more functions?

fast_math-inl.h already exists I believe (perhaps it is named in a slightly different way)

I agree that magnitude of epsilon is fine, and can be expected to happen from replacing SCALAR with EMU128.

Just to clarify, EMU128 then does not guarantee that when running non-lane-crossing operations with inputs being vectors with identical lanes then the result will also have identical lanes? If so, where is this behaviour documented? It seems at best very surprising.

@jan-wassenberg can probably answer those questions, any thoughts here, especially in context of https://github.com/google/highway/issues/765?


Web Browser "Right Click" Pop-up Menu With Weird Border

Regression?
No
Description
When I right click using any internet web browser like chrome, firefox, chromium, etc. I see a thick transparent border around the pop-up menu.
How to reproduce
Open a browser while running hyprland as your desktop environment. Right click anywhere on the browser. Experience a T H I C C transparent border around pop-up menu.

its blur. you can use ignorealpha to something like 0.1 to rid of it
make sure the browser is in wayland native mode (chromium doiesnt do it by default, see wiki)

ignorealpha didnt work for me. I disabled blur and it fixed.

I went to chrome://flags/, Set Preferred Ozone platform to "Wayland". solved the issue


Make it installable with pip

See https://docs.python.org/3.1/distutils/packageindex.html and http://stackoverflow.com/questions/9411494/how-do-i-create-a-pip-installable-project for the procedure.
While we are at it, I also suggest changing the name (as in setup.py) to "pysais". pip install pysais is easier to type and remember than pip install Py-SAIS (capitalized + hyphen + allcaps).

I would also be very interested if the package is installable with pip.

Ok. I will remove some functions from the module that are actually being used in a different project make it installable via pip.


Port multi-buffer tests

Make maximum fragment length configurable and add various fragmentation
tests, in addition to the existing multi-buffer tests.

+1 assuming you fix the nits.


Question: How to circumvent DEPTH_ZERO_SELF_SIGNED_CERT error?

Setup

http-proxy-middleware: 0.18.0
server: browser-sync 2.24.5

proxy middleware configuration
var apiProxy = proxy('/api', {target:'http://www.example.org', changeOrigin:true});

I encountered this issue and was wondering if there is a way to configure this module to do the same.

Setting the secure option to false does the trick.


„Preview links I click on“ in German is not completely shown on my mobile

Describe the bug
When I use Gobo.cf on my iPhone in German, the „Preview links I click on“ („Link-Vorschau anzeigen“) box is not completely visible.
To Reproduce
Steps to reproduce the behavior:

Go to gobo.cf on a mobile
Use German

Expected behavior
You can see the „Preview links I click on“ („Link-Vorschau anzeigen“) box correctly.
Screenshots

The text on the box in the bottom right is not completely shown.
Can you create a fix?
Maybe.

The rot of this is a bigger problem, so I will close this and move the discussion to #65.


installation: more invenio-knowledge import fixes

Fixes one more invenio-knowledge import that slipped in
8761850b100bd92f268ff542a73e7841d8643837.

Signed-off-by: Tibor Simko<EMAIL_ADDRESS>

:+1:


set GYP_CROSSCOMPILE flag by CROSS_COMPILING

I guess the calculation of the CPU bits is still to be corrected when cross compiling?
Thanks for exploring all this.


[TEST] nsfw 相关的测试出错

node12 才会偶现这个报错。
Summary of all failing tests
FAIL packages/file-service/__tests__/node/file-service-watcher.test.ts
  ● nsfw-filesystem-watcher › Should receive file changes events from in the workspace by default.

    ENOENT: no such file or directory, open '/tmp/keymaps-service-test/.sumi/keymaps.json'

  ● nsfw-filesystem-watcher › Should not receive file changes events from in the workspace by default if unwatched

    NSFW was unable to start watching that directory.

  ● 测试重命名、移动、新建相关 › 重命名文件，需要收到原文件DELETED 和 新文件的ADDED

    ENOENT: no such file or directory, lstat '/tmp/node-fs-root2022221-3770-n9uu8p.zw4s'

  ● 测试重命名、移动、新建相关 › 移动文件，需要收到原文件DELETED 和 新文件的ADDED

    ENOENT: no such file or directory, lstat '/tmp/node-fs-root2022221-3770-7u7myy.u8dnq'

  ● 测试重命名、移动、新建相关 › 同目录移动文件，需要收到原文件DELETED 和 新文件的ADDED

    ENOENT: no such file or directory, lstat '/tmp/node-fs-root2022221-3770-kszdor.pcucq'

FAIL packages/debug/__tests__/browser/view/watch/debug-watch-tree.model.service.test.ts
  ● Debug Watch Tree Model › refresh method should be work

    Caught error after test environment was torn down

    expect(received).toEqual(expected) // deep equality

    - Expected  - 3
    + Received  + 1

    - Array [
    -   "file:///tmp/node-fs-root2022221-3770-1pzfqj8.qhwdk/for_rename_1",
    - ]
    + Array []

      239 |     await sleep(sleepTime);
      240 |
    > 241 |     expect([...addUris]).toEqual(expectedAddUris);
          |                          ^
      242 |     expect([...deleteUris]).toEqual(expectedDeleteUris);
      243 |   });
      244 |

      at Object.<anonymous> (packages/file-service/__tests__/node/file-service-watcher.test.ts:241:26)
          at runMicrotasks (<anonymous>)

Test Suites: 2 failed, 3 skipped, 280 passed, 282 of 285 total
Tests:       6 failed, 51 skipped, 2574 passed, 2631 total
Snapshots:   0 total
Time:        1246.943 s

https://github.com/opensumi/core/runs/5621377207?check_suite_focus=true
https://github.com/opensumi/core/runs/5621476661?check_suite_focus=true

感觉像是某种 Jest 测试的时序问题

又出现了：https://github.com/opensumi/core/runs/5642837707?check_suite_focus=true

再也没有见过了


Istio canary upgrade doesn't work as the doc

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
I tried to perform canary upgrade on data plane using stable revision label: https://istio.io/latest/docs/setup/upgrade/canary/#stable-revision-labels
Here are outputs
# upgrade from v1.20 to 1.21
cd istio-${ISTIO_VERSION}/
export PATH=$PWD/bin:$PATH
istioctl version

$ istioctl install  \
    -f overrides.yaml  \
    --set values.global.tag=1.20.0 \
    --revision=1-20-0

$ istioctl tag set prod-stable --revision 1-20-0
Revision tag "prod-stable" created, referencing control plane revision "1-20-0". To enable injection using this
revision tag, use 'kubectl label namespace <NAMESPACE> istio.io/rev=prod-stable'

# also install v1.21.0 in parallel
ISTIO_VERSION=1.21.0
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=${ISTIO_VERSION} TARGET_ARCH=x86_64 sh -
cd istio-${ISTIO_VERSION}/
export PATH=$PWD/bin:$PATH
istioctl version

client version: 1.21.0
istiod version: 1.20.0
pilot version: 1.19.0
data plane version: 1.20.0 (6 proxies)

cd ../

$ istioctl install  \
    -f overrides.yaml  \
    --set values.global.tag=1.21.0 \
    --revision=1-21-0

$ istioctl tag set prod-canary --revision 1-21-0

$ istioctl tag list
TAG         REVISION NAMESPACES
prod-stable 1-20-0
prod-canary 1-21-0

kubectl get po,svc -n istio-system -l app=istio-egressgateway

# check two versions of istid deployed
$ kubectl get po,svc -n istio-system -l app=istiod
NAME                                 READY   STATUS    RESTARTS      AGE
pod/istiod-75ff4b6c4d-r8566          1/1     Running   3 (11d ago)   96d
pod/istiod-canary-7f95c9956b-4dzpg   1/1     Running   0             56s # <------ canary

NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                 AGE
service/istiod          ClusterIP   <IP_ADDRESS>   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP   303d
service/istiod-canary   ClusterIP   <IP_ADDRESS>    <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP   55s # <------ canary

$ kubectl get mutatingwebhookconfigurations
NAME                            WEBHOOKS   AGE
datadog-webhook                 3          303d
istio-revision-tag-default      4          303d
istio-sidecar-injector          4          303d
istio-sidecar-injector-canary   2          43s # <------ canary
pod-identity-webhook            1          348d
vpc-resource-mutating-webhook   1          348d

# Commands for Data Plane
istioctl proxy-status | grep "$(kubectl -n istio-system get pod -l app=istio-ingressgateway -o jsonpath='{.items..metadata.name}')" | awk '{print $10}'

$ k create ns stage-v1-21-0
namespace/stage-v1-21-0 created

$ kubectl label ns prod istio.io/rev=prod-stable
$ k describe ns prod

$ kubectl label ns stage-v1-21-0 istio.io/rev=prod-canary

kubectl label namespace stage-v1-21-0 istio-injection=enabled

$ k describe ns stage-v1-21-0
Name:         stage-v1-21-0
Labels:       istio.io/rev=prod-canary
              kubernetes.io/metadata.name=stage-v1-21-0

This somehow doesn't work, despite following the doc
$  istioctl ps
NAME                                                           CLUSTER        CDS        LDS        EDS        RDS          ECDS         ISTIOD                             VERSION
istio-egressgateway-5645b5c95d-hjfzr.istio-system              Kubernetes     SYNCED     SYNCED     SYNCED     NOT SENT     NOT SENT     istiod-1-21-0-5d6c57cdf6-ngtkf     1.21.0
istio-ingressgateway-848d667689-q5qdl.istio-system             Kubernetes     SYNCED     SYNCED     SYNCED     NOT SENT     NOT SENT     istiod-1-21-0-5d6c57cdf6-ngtkf     1.21.0
istio-private-ingressgateway-7644fb548d-8gkwq.istio-system     Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED       NOT SENT     istiod-1-21-0-5d6c57cdf6-ngtkf     1.21.0

# doesn't work. Ref: https://istio.io/latest/docs/setup/upgrade/canary/#default-tag
$ istioctl tag set prod-stable --revision 1-21-1 --overwrite
Error: cannot modify tag: cannot find MutatingWebhookConfiguration with revision "1-21-1"

### Version

```Text
$ istioctl version
client version: 1.21.0
istiod version: 1.20.0
pilot version: 1.19.0
data plane version: 1.20.0 (6 proxies)

Additional Information
No response

I see that you are calling the failed istioctl cmd with revision 1-21-1 instead of 1-21-0 that you have created earlier. Is that intentional?

I see that you are calling the failed istioctl cmd with revision 1-21-1 instead of 1-21-0 that you have created earlier. Is that intentional?

Wasn't intentional, but would it make a difference?

Yes because a mutatingwebhook with revision 1-21-1 will not exist otherwise. The webhook is crated in the previous step that you executed with revision 1-21-0

Ok I see.
Btw, would you also look into & respond to my other open issue: https://github.com/istio/istio/issues/50597?


I haven't been incurring any losses in combat twice in a row, the first time I had even lost. Is that supposed to be that way?

The flavour text (which is too long btw, we should keep it below three lines max) is telling me that heavy losses occured, but the table below doesn't register any losses.

got it


Record Stops

Recording stops after some time (ca. 10 minutes).

Then the WAN IP is blocked.

Playback does not work any longer unless the WAN IP is reconfigured (new uplink connection). Continue at 1.

Using streamripper verbatim (which is shelled by somafm) leads to the same results.


Unable to play H264 video stream of main profile

Unable to play H264 video stream of main profile

@githubhanjunjun Is there a solution

h264-live-player is based on Broadway.js, which is based on Android's h264 decoder, which can only decode a baseline stream.
User shengbinmeng created an ffmpeg version which can decode main streams, available here as Decoder-ff.js: https://github.com/shengbinmeng/javascript-ts-player/tree/master/js
It uses the same API so you can just replace Decoder.js with this file and re-bundle with npm run dist inside the vendor directory. The new http-live-player.js will be able to decode main streams.

Or if you like, just replace http-live-player.js with my pre-compiled version.

@x0a Thank you so much!


Add initial openSUSE support

Signed-off-by: Logan Bond<EMAIL_ADDRESS>
What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area cmd

/area pkg

/area docs

/area tests

What this PR does / why we need it:
Adds initial support for OpenSUSE 🙂
Which issue(s) this PR fixes:

Fixes # N/A
Special notes for your reviewer:
I have a companion PR on kernel-crawler open to add support there too. Kernel-crawler's output helped build the URLs for this PR: https://github.com/falcosecurity/kernel-crawler/pull/59
Does this PR introduce a user-facing change?:
Adds initial OpenSUSE support 🙂

Add initial OpenSUSE support!

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: EXONER4TED
Once this PR has been reviewed and has the lgtm label, please assign dwindsor for approval by writing /assign @dwindsor in a comment. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Here's some samples I ran through:
╰─❯ _output/bin/driverkit docker --output-module /tmp/test.ko --kernelrelease 5.3.18-lp152.19.2.x86_64 --target opensuse -l debug
...
...
...
 Please note: this buffer will be mapped twice in the process virtual memory, so pay attention to its size.
DEBU parm:           max_consumers:Maximum number of consumers that can simultaneously open the devices (uint)
DEBU parm:           verbose:Enable verbose logging (bool)
DEBU log pipe close                                error=EOF
INFO kernel module available                       path=/tmp/test.ko

Fixing a few more resolving URLs, but then it should be good for review.

Fixed the remaining possible URLs, here are a couple more examples (with kernels 6.0+!):
╰─❯ _output/bin/driverkit docker --output-module /tmp/test.ko --kernelrelease 6.0.5-3.1.g7359656.x86_64 --target opensuse -l debug
...
...
...
 Please note: this buffer will be mapped twice in the process virtual memory, so pay attention to its size.
DEBU parm:           max_consumers:Maximum number of consumers that can simultaneously open the devices (uint)
DEBU parm:           verbose:Enable verbose logging (bool)
DEBU log pipe close                                error=EOF
INFO kernel module available                       path=/tmp/test.ko

Example 2:
╰─❯ _output/bin/driverkit docker --output-module /tmp/test.ko --kernelrelease 6.0.3-1.1.x86_64 --target opensuse -l debug
...
...
...
 Please note: this buffer will be mapped twice in the process virtual memory, so pay attention to its size.
DEBU parm:           max_consumers:Maximum number of consumers that can simultaneously open the devices (uint)
DEBU parm:           verbose:Enable verbose logging (bool)
DEBU log pipe close                                error=EOF
INFO kernel module available                       path=/tmp/test.ko

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: dwindsor, EXONER4TED
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [dwindsor]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: e8ec95252c72e3a400424d90f757f3c010fcc41d


Set up Power BI desktop for developing a visual (missing setting)

PowerBI Desktop (Version: 2.116.884.0 64-bit (April 2023)):
"Developer Mode" check box is not present ... Only "Develop a visual" to say to Override some session visual. It is quite misleading... not sure if this setting corresponds to the actual set up of developer mode.

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

ID: 42b50f4b-5e10-6fef-ad73-612996d2001a
Version Independent ID: 8eda699d-40de-e20b-d030-719a6c4e2ff2
Content: Setting up an environment for developing a Power BI visual - Power BI
Content Source: powerbi-docs/developer/visuals/environment-setup.md
Service: powerbi
Sub-service: powerbi-custom-visuals
GitHub Login: @mberdugo
Microsoft Alias: monaberdugo

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

Thanks for pointing this out, @kubow. There were some recent changes in the UI. The Developer mode section was indeed renamed to Develop a visual. I'll update the documentation.


Concrete playback in-place fails if user is not using nightly

The underlying issue for #1680 was never fixed. Kani indeed doesn't crash anymore, but concrete playback still doesn't work. We should fix that.

BTW, to go around this issue, use --concrete-playback=print.


Cells with formulas

A spreadsheet I am reading contains formulas.
For example cell H32 contains a formula =+F32*G32, which evaluates to 26670.
Having a look inside the Cell constructor I can see the element for the cell contains both the formula and calculated value:
<c r="H32" s="97" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <f>+F32*G32</f>
  <v>26670</v>
</c>

However the Value property on the cell XElement contains the string "+F32*G3226670".
Can we detect when a formula is in use, and read the calculated value as the value of the cell?

Any luck?

Yikes, was a bit jet lagged last week, thanks for the reminder.
On 13 Nov 2017 8:29 AM, "Tim Sirmovics"<EMAIL_ADDRESS>wrote:

Any luck?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mrjono1/FastExcel/issues/21#issuecomment-343769447,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALffthY-SC92rPF0I2Z24PuzdsvcZsO_ks5s12M2gaJpZM4QQiQs
.

Fixed in my branch https://github.com/Sibz/FastExcel/tree/Cells-with-formulas
You can clone that repo and build, or download the compiled DLL here:
FastExcel-CellFixTest.zip
Please let me know how your test goes, and if all is well I will submit pull request.

Hi Sibz,
Thanks for that.
I tried out your change, it didn't work as the v element has a namespace so the Name == "v" comparisons fail.
I updated these to Name.LocalName == "v" and it works, can you update the branch and i'll test again?
Thanks,

oops, fixed in branch now.

Thanks - looks to be working ok now.


Statistics page error when only having data for one day

What happened
having added 3 data sets for the same day, statistics show "Error: IntegerDivisionByZeroException" as "Measurements per Day" (fixed after adding the second data set for "yesterday")
Additional context
full problem report by Izzy here

With this should come a separate class for analyzing the data.


[Snyk] Upgrade org.apache.logging.log4j:log4j-core from 2.22.1 to 2.23.1

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade org.apache.logging.log4j:log4j-core from 2.22.1 to 2.23.1.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 2 versions ahead of your current version.
The recommended version was released a month ago, on 2024-03-06.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

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

Project coverage is 41.63%. Comparing base (2ddab2c) to head (2c2bb34).
Report is 6 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #25      +/-   ##
============================================
- Coverage     41.80%   41.63%   -0.17%
+ Complexity       88       87       -1
============================================
  Files            40       40
  Lines           610      610
  Branches         39       39
============================================
- Hits            255      254       -1
- Misses          345      346       +1
  Partials         10       10

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


Remaining "code" and "state" parameters in URL

In the Tonr 2 application (that uses the OAuth 2 authorization code flow) I access http://localhost:8080/tonr2/sparklr/photos. I am redirected to Sparklr for authorizing Tonr to access Sparklr resources and am eventually redirected to http://localhost:8080/tonr2/sparklr/photos?code=CODE&state=STATE.
This is a bug IMHO and the user should eventually be redirected to http://localhost:8080/tonr2/sparklr/photos (without code and state parameters) because when he e.g. bookmarks the URI with code/state parameters this may result in errors later on.

I believe that there should be an additional 302 redirect to the original URI that the user requested after AuthorizationCodeAccessTokenProvider has obtained the access token from the authorization server.

I guess I see the point here, but there is nothing in the spec that helps us decide what to do. Also AFAIK the URL in question is bookmarkable (did you try it?).

Actually, the URL is not practically bookmarkable, since the state parameter is invalidated (implicitly) as soon as you e.g. restart the application server. In that case, the user sees the Possible CSRF detected message, because the server doesn't know the state that was passed via the URL.
Some sites, e.g. https://packagist.org/login/, just redirect the user after the OAuth authorization server sends the user to the redirect URI (with the code and state parameters) to some URL that doesn't contain those parameters.
RFC 6749 (esp. section 4.1) doesn't mention what to do after the user-agent has been redirected to the client application. I believe, it's totally up to the implementing client what to do next.

Any change has to be implemented on the client app unless I'm missing something, and some users and developers don't like the "flicker" that comes from redirecting, so we'd have to make it optional. I suppose with those constraints maybe the ClientContextFilter could be modified to do a redirect after obtaining the token. Would that be the best way? Or maybe a forward would work just as well?

When investigating possible places where to implement this, I was a bit confused by the way the preserved state is used in OAuth2ClientContext. Eventually, I added a throw new UserRedirectRequiredException(...) at the end of OAuth2RestTemplate#getAccessToken (after the catch block, inside the if (accessToken == null || accessToken.isExpired()) { ... } block.
The problem is, where do we store the original URL that the user tried to access?

where do we store the original URL that the user tried to access?

In the OAuth2ClientContext (https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/java/org/springframework/security/oauth2/client/OAuth2ClientContext.java#L45), which is normally in the HTTP session (https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/java/org/springframework/security/oauth2/config/annotation/web/configuration/OAuth2ClientConfiguration.java#L65).

As I understand it, OAuth2ClientContextFilter cannot simply redirect the user to the original URL since the filter would do this before OAuth2RestTemplate had a chance to fetch the code and state from the URL. Did I get this right?

Correct I think, although the rest template doesn't really need the URL, it only needs the AccessTokenRequest to be initialized, which you can achieve by injecting it into the filter and calling a method on it. Maybe something along those lines, with a forward (not a redirect because then you would definitely lose the state) would work?

Hi, this issue is still open. Is there any chance that Spring will provide a solution in the future, maybe as an option as @dsyer suggested?

+1 also having the same issue where code=CODE&state=STATE parameters are intermittently flowing through to the client with a 200 status code, instead of resolving to a 302 redirect. This is causing oauth2 authorization flows to not be completed.

When refresh token expires for the first time and I click on a request then I can see state and code being appended to the url. When I wait enough for the refresh token to expire for the second time and click on refresh I am redirected to http://localhost:8080/?state=MLw32A&state=7oFEYr&code=JNoIOl.
I have debugged a found that the preservedState was http://localhost:8080/?state=MLw32A (which is not correct). Here MLw32A is state of the old request and thus I get a csf error. Is it an open bug ? Is it a desirable behaviour? Is there a way to modify the preserved state ?

@devajani Did you find any work around for this? Am getting the same issue.

@devajani Did you find any work around for this? Am getting the same issue.

We solved it by removing the state from the url onload of the page. Sounds like a dirty solution :/ but it was a quick fix.

Correct I think, although the rest template doesn't really need the URL, it only needs the AccessTokenRequest to be initialized, which you can achieve by injecting it into the filter and calling a method on it. Maybe something along those lines, with a forward (not a redirect because then you would definitely lose the state) would work?

What about such flow:

Before redirecting to AuthorizationUri we save the original URI
1.1. We can do this by overriding OAuth2ClientContextFilter.redirectStrategy
Then in the callback method we get the access token with available code & state information.
After the access token is cached in OAuth2ClientContext we can redirect to the original URI without code & state query parameters.

Here is my implementation:
@Bean
OAuth2ClientContextFilter oAuth2ClientContextFilter(OAuth2ClientContextFilter oAuth2ClientContextFilter) {
	oAuth2ClientContextFilter.setRedirectStrategy(new DefaultRedirectStrategy() {

		@Override
		public void sendRedirect(HttpServletRequest request, HttpServletResponse response, String url) throws IOException {

			final String currentUri = (String) request.getAttribute("currentUri");
			final HttpSession session = request.getSession(false);

			if (session != null) {
				// SPRING_SECURITY_SAVED_REQUEST = org.springframework.security.web.savedrequest.HttpSessionRequestCache#SAVED_REQUEST
				// Making it SimpleSavedRequest instead of DefaultSavedRequest makes HttpSessionRequestCache ignore it (matchesSavedRequest returns false)
				//so it lands on our callback smoothly.
				session.setAttribute("SPRING_SECURITY_SAVED_REQUEST", new SimpleSavedRequest(currentUri));
			}

			super.sendRedirect(request, response, url);
		}
	});

	return oAuth2ClientContextFilter;
}

@Controller
@RequiredArgsConstructor
class CallbackControllerController {

	private final OAuth2RestTemplate restTemplate;

	@GetMapping("/callback")
	String callback(HttpSession httpSession) {

		if (httpSession != null) {
			final SavedRequest savedRequest = (SavedRequest) httpSession.getAttribute("SPRING_SECURITY_SAVED_REQUEST");
			httpSession.removeAttribute("SPRING_SECURITY_SAVED_REQUEST");

			// This gets an access token using the code and state values which are in the query parameters and
			//stores the access token in OAuth2ClientContext automatically. Hence, we can redirect to previous URL without
			//code & state params.
			restTemplate.getAccessToken();

			// Recall that savedRequest.redirectUrl is set from currentUri which is stripped off of its query parameters
			//in OAuth2ClientContextFilter#calculateCurrentUri
			return "redirect:" + savedRequest.getRedirectUrl();
		}

		throw new RuntimeException("No session!");
	}
}

I'll close this now since we don't seem to make any progress here.


Feature suggestion: compatibility with scikit-learn API

Thanks for the work!
Did you consider to implement the scikit-learn API for clustering scrictly?
In your case this would mean to implement methods fit and fit_predict. The benefit would be that it is easier to get started with your code when you know scikit-learn already, and that one could swap clustering algorithms easily.
UMAP follows this API also: https://umap-learn.readthedocs.io/en/latest/basic_usage.html and keras implements a special wrapper https://keras.io/scikit-learn-api/. It appears that the scikit-learn API becomes a quasi standard in Python based ML libraries.
As your code is already published, you could avoid breaking existing code by offering a helper module like n2d.sklearn which would implement the suggested changes.

Hey! This is a great idea! Some sort of compatibility with sklearn would make this way more useable, and just changing the methods in the N2D wrapper class could get all that going! I’ve got to knock out a research proposal this weekend but I will keep this issue open until we figure something out! Feel free to make a PR if you want to help out :)

Love the idea of n2d.sklearn, ill think about if that’s worth it or not (only been around for about a week, so I doubt there’s a lot of production use so far) over the next couple of days, but definitely think this is a great idea to move forward!

Started a sklearn branch! Will get this together over the next week or so :)

Got the code properly set up, once I update the documentation and examples will merge with master!


Changes to RP node of TOC

Fixed a parent node that was linked to a URL.
@Rick-Anderson Also changed name of RP Intro article node from Overview to Introduction, thinking that may better reflect the extent of the content in this article (Overview implies something more superficial). Feel free to change it back if you don't think the change will have the desired effect.

Intro is better than overview but not idea. I don't think we can come up with anything better than that. the most accurate is "Intro for good developers".


chore: adds VPC gateway endpoint via the CDK for ddb

Issue #, if available: #305
Description of Changes
This change adds a VPC gateway endpoint via the CDK for DynamoDB.
Description of how you validated changes
This change was validated by confirming the VPC endpoint was returning with the correct VPC Id and Service Name.
Steps to reproduce:

account activate -v
[from console] VPC > endpoints > confirming Service Name and VPC ID

Checklist

[x] If this change would make any existing documentation invalid, I have included those updates within this PR
[x] I have added unit tests that prove my fix is effective or that my feature works
[x] I have linted my code before raising the PR
[x] Title of this Pull Request follows Conventional Commits standard: https://www.conventionalcommits.org/en/v1.0.0/

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

It seems like an unexpected number of files has changed? My suggestion would be to git "rebase" your actual change which is probably quite small onto the HEAD of the remote mainline branch.


devicemapper: Implement deferred deletion capability

Fixes #16380
This patch series implements devicemapper deferred device deletion capability. By default it is turned off and one can enable it by passing parameter "--storage-opt dm.use_deferred_deletion=true". This requires deferred removal to be turned on. In fact without that deferred deletion does not make much sense. So pass following to docker daemon.
"--storage-opt dm.use_deferred_deletion=true --storage-opt dm.use_deferred_removal=true"

@vbatts @rhatdan Please have a look.

enableDeferredRemoval        = false

enableDeferredDeletion       = false

Do we need both flags or should DeferredRemoval imply Deferred Deletion?  Is there ever a case where you would not want both?

We have have deferred removal without deferred deletion. So we need both the flags. But deferred deletion without deferred removal might not make much sense. So one suggestion mike snitzer gave that when user specifies use_deferred_deletion=true, then automatically set user_deferred_removal=true internally.
As I can't see a use case of deferred deletion without deferred removal enabled, I will make this change.

My point being isn't using deferred removal without deferred deletion just opening you up to a bug where the deletion fails?  Why would you not want to use deferred deletion all the time?

There are couple of reasons.

There might be bugs in this new logic. So people might want to disable deferred device deletion for the time being.

Using deferred deletion leads to deletion of container root directory and that in turn leads to deletion of that container rootfs mount point from all the mount namespaces. It is possible that some people might like old behavior where container deletion fails instead.

Not being able to delete a container because it is busy in some namespace is not a bug necessarily. We are offering two behaviors for device deletion now. Synchronous and asynchronous and depending on what behavior one wants, users can choose either.

18 commits is too much for review. It should be 2-3 at most.

@LK4D4
Ok, I will shrink it down to 2-3 commits. I like it to keep them nicely broken for my own sanity so that I can look at small pieces of code and figure out why a patch is required. Keep cleanups and bug fixes and code re-organization in separate patches. That way one can look at the core piece.
But, as docker project rather prefers a single large patch as compared to broken down smaller pieces,  will do that.

@LK4D4
If you are looking for a single patch view, You just have to click on "Files Changed" tab and then you can review it. Right?
So breaking down into smaller logical pieces seems to give you best of both the worlds. Those who prefer looking at smaller patches, they can review it per commit and those who want to look at single
large patch they can just go to "Files Changed" view?

I have written very nice commit logs with each patch. And these will be useful in future too when somebody is wondering why a particular change has been done. Squishing everything into 2-3 commits will mean that you will lose all these changelogs.

@rhvgoyal you are the one who needs to be able to maintain this code.  Don't compromise on what enables you to work most effectively, now and in the future should you need to revisit the "why?"s of your change, purely because some reviewer(s) have some bizarre notion of patchset granularity.  Keep up the good work! ;)

Ping @vbatts @rhatdan for code review/approval

Pushed patches again. Fixed couple of error messages and also added documentation to docker man page.

 return fmt.Errorf("devmapper: Can't activate device %v as it is makred for deletion", info.Hash)

Typo marked

+// Cleanup the deleted devices during startup. It assumes that all the
+// all devices have been loaded into hash table.
+// Should be called with devices.Lock() held. Will drop the lock for
+// deivice deletion and return with lock acquired.
Spelling and typos

	if enableDeferredDeletion && !devices.deferredRemove {
+		logrus.Infof("devmapper: Deferred deletion can not be enabled as deferred removal is not enabled.")
+	}
+
+	if devices.deferredRemove && enableDeferredDeletion {
+		logrus.Debugf("devmapper: Deferred deletion support enabled.")
+		devices.deferredDelete = true
+	}

Should these be combined into a single fblock.  Still not convinced that this should not be an error situation.  DeferredRemove false DeferredDeletion true.

@rhatdan
So for the case of deferred_remove=false deferred_deletion=true, right now I am just giving warning and keeping deferred_deletion=false.
So you are suggesting that instead error out saying that deferred deletion can't be used? I think that's doable if that provides better semantics.

I am thinking most likely this is a configuration problem by the admin, so why continue.

@rhatdan
I fixed typos. Also changed the code so that it will error out if deferred deletion is requested but it can not be enabled.
We had the similar behavior for deferred removal code. If user requested it but either kernel does not support it or libdm does not support it we will not enable it and docker will continue to run. But now I have changed it and if user requested deferred removal and it can not be enabled, then docker will fail.

Something went wrong. It is not seeing my commits. Trying to fix it.

@rhatdan
I have changed the patches to move the discard check location. PTAL.

LGTM
@vbatts PTAL

all-in-all, LGTM. A couple of questions marked though.
@rhvgoyal I love the clarity in your commits.

@vbatts I have taken care of your comments. Updated the description of two functions. PTAL.

LGTM. and janky had passed, but appears to be having issues.

ping @thaJeztah @moxiegirl

Hi all,
I just moved this pull request to code-review. Only one docker maintainer LGMTed this pull request. This change is significantly big to require at least two maintainers to give it the :+1:.

@calavera ah you're right. I thought I saw another one, but it was @rhatdan

Yes I would not trust him.  :^)

@rhatdan, @vbatts no worries. It was in my queue to review and I was surprised that it moved to docs review already. I have a few comments, one might be about a bug :smile_cat:

@rhvgoyal I really like all the information you added to your commits, it's very helpful. However, I agree with @LK4D4 that all the commits will need to be squashed before merging this to master. This doesn't mean that I want you to remove all those comments, don't get me wrong. I'd like to keep all that information in the resulting commit.
I agree that @rhvgoyal should maintain this code, since he wrote it, and he should be able to understand what he did. But there are a group of people that should be able to work efficiently with this code. That might mean to move the code around, or it could imply to be able to revert it in the case we found regressions/bugs. The best way to do that is to have as less commits as possible.
@snitm This is not a random request by a random reviewer. This is the commit policy we follow along the whole project. I agree that some of the changes could stand out by themselves, but unfortunately all these commits are too much coupled to each other, and it's a single feature after all.
Finally, I hope you can stop encouraging people from ignoring the project maintainers comments. At the end of the day, the group of people working on the project in a daily bases are the ones that have to deal with this code. Not only this specific code but also other requests from other users and our own roadmap. Having consistency in the way people contribute to the project helps us be more efficient in our job. Encouraging people to do whatever they want does not help us.

@calavera I really don't want to derail progress on the review of @rhvgoyal's code with a tangent about a docker contributor's changes should or shouldn't be managed.  It just strikes me as very odd that there is some perceived benefit to folding a series of commits, with separate headers, into a single commit.  In the end my point is: there is value in seeing how the code evolved and to preserve that evolution.  If a revert is needed (or the changes across all related commits need to be inspected) in bulk there is always:
git diff commit1^..commentN
git diff commit1^..commentN | patch -p1 -R && git commit -a
Having the project maintainers impose a rigid "one commit per feature" is, IMHO, needless redtape but whatever floats your docker boat.. but ignore me, as you guys were with this review! ;)

@calavera
Once I have got LGTM from code review perspective, and from doc perspective, I will reduce these commits to fewer commits. and merge their commit logs too.

@calavera @moxiegirl I have taken care of your comments and pushed patches again. PTAL.

Thanks @rhvgoyal LGTM

I've noticed that some errors start with the prefix devmapper: but others not. I'd like to be consistent, so either we add the prefix to all of them or we remove it from the ones we already have. Unfortunately, I think that problem is not specific to this pull request. It would be great if we could consolidate those messages.
Otherwise LGTM.

Moved back to docs review :tada:

@calavera I noticed that too. I have opened a separate issue to track it. I agree it is a good idea to make all messages have same prefix. Once this PR gets merged, I will open another one to fix it.
https://github.com/docker/docker/issues/16667

@calavera @vbatts Ok, I have merged the patches and came up 3 patches for merging.
I feel docker team should rethink about their policy of limiting patches to 2-3 max. It works well for small fixes but if somebody is trying to do a proper feature, then it just forces one to write a big blob of code in a single patch and I really I can't see how that is a good thing overall.
We have been following the policy of broken down patches in linux kernel and it works very well. So there is a precedent for sure. There needs to be a very good reason to defend this docker policy. So far I have not seen a good argument to support the policy.

Ok, I don't want to squash all the changes into smaller patches. So based on the discussion on #docker-dev, I am going to route smaller set of changes into individual PRs.
First of the series of PR is here. Please have a look.
https://github.com/docker/docker/pull/16683

@rhvgoyal need rebase
I'll review in the meantime

@rhvgoyal I thinking about cleanup deferred loop. Goroutines is extremely cheap in go, so maybe we can start one goroutine which will wake up every 30 seconds(with time.Tick) and check if there are some stuff for deleting. This will simplify code and logic overall, I think it might be even good idea to split generic package for that task later.
WDYT?

@LK4D4 So we want to a continuous running thread and get rid of logic of scheduling the thread. I think that is doable. And that should get rid of need of calling scheduleDefDeletion() once there are deleted devices. We will have to start the worker thread during startup.
But we will still need the capability to stop the thread during Shutdown(). That means we still will have to design worker thread in such a way so that it sets up a channel with parent and listens for any signal to stop the thread. When Shutdown() is called, we want to make sure worker thread has exited.
I have taken care of rest of the comments. I will push those patches for now and then work on this alternate proposal and see how does it look.

@rhvgoyal Yeah, you can Stop() time.Ticker, this will stop goroutine. You can store ticker in DeviceSet, should be nice and clean. At least looks now, for ticker.C in GC goroutine and ticker.Stop() in Shutdown()

@LK4D4 I have rebased the patches. Out of 6 got merged in other PRs and I have merged one patch in existing patches. So we are left with 11 now. I think I will open 1-2 more PRs and get to reduce the number further.
I have implemented your suggestion of using time.Ticker and this seems to be working well. Please have a look at the last patch.

@rhvgoyal gofmt complaining.
Ticker stuff looks cool for me, but there are still some unrelated commits in PR.
Also, I found that locking logic is extremely tangled in devicemapper package. Probably it's trying to be more granular than it should be and that brings complexity of code and increase chance of introducing deadlock. But that's definitely not a problem of this PR.

@lk4d4 I will look into gofmt issue. Surprisingly on my machine gofmt is not flagging anything wrong. May be it has something to do with gofmt version.
I have generated another PR to push 3 commits. I have I will have to generate 1-2 more PRs to make sure that only deferred deletion related patches remain in this PR.
I will look into simplifying locking even further. But as you say, that's subject for another PR after these changes get merged.

@rhvgoyal I think we run gofmt with -s argument. Version can be problem too.

@LK4D4 I have taken care of your review comments and pushed again. I hope go formatting issues have been taken care of. I have run "gofmt -s -w". If not I will have to look deeper.
I have merged first three patches and they are lined up to be merged in a separate PR.
https://github.com/docker/docker/pull/16727
PTAL.

PR #16727 got merged. I dropped top level patch and rebased patches and pushed again. Now I am left with 8 patches in the series.
I have created another PR #16799 for top 3 patches to break down setupBaseImage() function into smaller pieces. Once that gets merged I will drop top 3 patches. Hopefully then rest of the 5 patches can be merged as part of this PR.

@rhvgoyal btw can you reword last commit a little? It's actually not a thread, but goroutine.

@lk4d4 will do.

In last patch, renamed references to thread with goroutine

rebase please

@lk4d4 @vbatts Now only last 5 patches are remaining in this PR. They all are related to this deferred device deletion feature. I am hoping that this PR can now be merged as it is without having the need to break it down further. PTAL.

thanks so much @rhvgoyal, docs LGTM (and Mary already LGTM'd above https://github.com/docker/docker/pull/16381#issuecomment-144191542)
@LK4D4 @vbatts if the patch-set looks good to you, I think it's ready to merge

LGTM

:tada: thanks!


Rewrite reorder

I have decided the reordering logic needs to be rewritten. I effectively take a bubble sort style approach to get the nodes in the correct shape. The offset counting is very error prone and difficult to debug so I've avoided that where possible.
As an extension to this, I would like to extend the capability of virtual-dom to insert at an index. Currently we use the diff(null, newVnode) feature to create the inserts. I would like to avoid inserting the items at the end and insert all new items at the correct index at creation time.
Having better insert semantics will remove all re-order overhead for inserts. We really need some benchmarks for this. I am interested to see how more or less efficient this becomes.

Coverage decreased (-0.2%) to 97.27% when pulling 3481d6e8d3d489830677521c0b58631b9df640ca on rewrite-reorder into 3ea4f0e6afe6ff01c056513d3b5743c540b45419 on master.

The offset counting is very error prone and difficult to debug so I've avoided that where possible.

i agree - it's error prone but i want to make sure we don't lose the optimizations it could provide.

I would like to avoid inserting the items at the end and insert all new items at the correct index at creation time.

this will help a lot

We really need some benchmarks for this.

i agree.  my assumption has been that moving nodes in the DOM is more expensive than calculating a minimal reorder but we don't have any benchmarks.  however, even if the cost of moving nodes is not expensive it should still be minimized because of the side-effects caused by removing a node from the DOM - specifically blur handlers and loss of focus if the activeElement is removed and interfering with CSS transitions.
i was most of the way through my own rewrite/refactor which was largely continuing with the existing approach of calculating an insert offset.  for a while i've thought that some of the problems could be alleviated with a better diff (particularly by inserting new nodes where they belong) but i hadn't wanted to disturb that code.  so, i'm glad you've had a look at this for yourself.
i'll try to take a look at this today and provide some feedback.

i love the new patch format for moves - it's actually a more testable format which should help us.
it looks like we can't avoid doing the insert offset logic - even though the implementation is different, the logic has just been moved from patch to diff.  however, this has the benefit that multiple patch implementations can benefit from the good work done in diff, so moving to diff is a good thing.  the reason i hadn't suggested this previously is because i believe this should qualify as a breaking change in the API so, we should bump the major version when we release this.
this implementation has lost some of the optimizations which were previously in place.  i think we need to strive for being both correct and efficient.  i'm going to build on what you have to add some test cases that test for optimizations thanks to the new patch format.
the first one i've tested that fails is when an element moves to a later position.
in this case, the bad thing to do is to bubble all the later elements ahead of this one until it gets into position.  as an example, if you had a list of nodes [0,5,1,2,3,4] that needs to become [0,1,2,3,4,5] the optimal set of moves is
[
  { from: 1, to: 6 }
]

but the current logic will produce
[
  { from: 2, to: 1 },
  { from: 3, to: 2 },
  { from: 4, to: 3 },
  { from: 5, to: 4 }
]

as i mentioned in my previous comment, the number of moves is not just about efficiency but it's about avoiding breaking expectations around nodes being continuously in the document.
i'm working on more test cases and also ways to improve the diff logic for reordering.

@neonstalwart I have outstanding changes I'm going to push - basically I am going to produce an array of numeric indices, and then try implementing an in-place quick sort over the numbers. It will be much easier to optimize the sorting when we actually have something numeric to work with

push away - i'm looking into this now

Unfortunately the files are currently sleeping on my personal machine at home, and I'm at work, just thought I would give you a heads up.
If you're interested on working on something right now, I would try implementing a generic sort function that takes an array of numbers and sorts them, returning a set of moves. If not, I will probably implement this https://www.cs.auckland.ac.nz/software/AlgAnim/qsort1a.html

Rigorous tests are also clearly needed. When rewriting this I found that some fundamental bugs were caught by one assert alone. In one example, an error I made caused free items to be inserted multiple times. The assert statements pairwise compared the expected vs actual items 0, 1, and 2. It never bothered to check the expected length of the result, so items 3 and 4 in the result which never should have existed were not causing test failures. I only caught this in the "unnecessary patches" test, which saw that patches were created despite the arrays being identical. (2 inserts were created).
Would love to see some improvements to the reordering tests.

Seems like if the goal to to minimize the number of moves, quicksort is not the best option.
It's also worth asking if a swap is as expensive as two moves in the DOM.

@Matt-Esch i'm working on calculating moves based on using

aChildren - our starting point
bChildren - our goal
aKeys - used to determine if a node in bChildren was added
bKeys - used to determine if a node in aChildren has been removed

i'm not sure we can use a standard sorting algorithm
my first attempt today started with
    var a = Object.keys(aKeys).sort(function (a, b) { return aKeys[a] - aKeys[b]  })
    var b = Object.keys(bKeys).sort(function (a, b) { return bKeys[a] - bKeys[b]  })

which gives me 2 arrays of keys ordered by their position in their respective children arrays but i keep coming back to needing to use offsets.
you don't seem to be in favor of using offsets (and i agree that they are hard to get right) but i don't see how we can calculate the moves needed without doing some accounting for:

nodes scheduled to be removed - they affect the to index for anything following them
newly added nodes - they affect the from and the to index for anything following them
nodes moving towards the end of the array - these can only be done after we've scanned all the way to their destination so that we can adjust their to index to account for things like newly added nodes that sit between the from and to.

so, this doesn't work yet, but the current shape of it is like this:
    var moves = []
    // adjusts the from position to consider nodes which will move later or have been added
    var offset = 0
    var length = Math.max(aChildren.length, bChildren.length)
    var aNode
    var bNode

    for (var l = 0; l < length; l++) {
        // aChildren is our initial list and we progressively mutate it in-place to become bChildren. work is done in
        // order from to values of 0 to bChildren.length - 1. this means that we always keep the destination in the
        // visited part of the output. anything that needs to move beyond the current index will be moved when we visit
        // the destination index

        aNode = aChildren[l - offset]
        bNode = bChildren[l]

        if (bNode && bNode.key) {
            // aKeys tells us the source location of the node
            var from = aKeys[bNode.key]
            var to = l + offset

            if (from != null) {
                // an earlier node is moved later, do it now and reduce the offset
                if (from < to) {
                    moves.push({ to: to, from: from + 1 })
                    offset--
                }
                else if (from + offset > to) {
                    moves.push({ to: to, from: from + offset })
                }
            }
            // a node was added so our offset needs to be adjusted
            else {
                offset++
            }
        }

        // account for nodes that are still there but will be removed later
        if (aNode && aNode.key && bKeys[aNode.key == null]) {
            offset++
        }
    }

@Zolmeister the goal is not to minimize moves, it's to minimize the overall time. Of course, we assume that DOM moves are expensive. But that's no excuse to use an O(N^3) algorithm in diff to compute the optimal solution. In-place quick sort has an upper bound of O(N^2) but generally performs better.
I would really like to do the following:

remove any old items
sort the remaining items
insert the new items in place

@neonstalwart I will need to brain cycles to parse your logic, will get back to you

my latest as of the end of today...
    var moves = []
    // adjusts the from position to consider nodes which will move later or have been added
    var offset = 0
    var nodesRemoved = 0
    var nodesSkipped = 0
    var nodesAdded = 0
    var forwardOffsets = {}
    var forwardMoves = 0
    var length = Math.max(aChildren.length, bChildren.length)
    var aNode
    var aKey
    var bNode
    var bKey

    for (var l = 0; l < length; l++) {
        // aChildren is our initial list and we progressively mutate it in-place to become bChildren. work is done in
        // order from to values of 0 to bChildren.length - 1. this means that we always keep the destination in the
        // visited part of the output. anything that needs to move beyond the current index will be moved when we visit
        // the destination index

        aNode = aChildren[l]
        aKey = aNode && aNode.key
        bNode = bChildren[l]
        bKey = bNode && bNode.key

        if (aKey && bKeys[aKey] == null) {
            nodesRemoved++
        }

        offset = nodesRemoved + nodesAdded + nodesSkipped

        if (bKey) {
            // aKeys tells us the source location of the node
            var from = aKeys[bKey]
            var to = l + offset + 1

            if (from != null) {
                // move a node from earlier in the list towards the end
                if (from + offset < to - 1) {
                    nodesSkipped--
                    forwardMoves--
                    moves.push({ to: to - nodesSkipped, from: from + forwardOffsets[from] })
                }
                // move a node from later in the list towards the front
                else if (from + offset > to) {
                    moves.push({ to: to - 1, from: from + offset })
                    forwardMoves++
                }
            }
            // a node was added so our offset needs to be adjusted
            else {
                nodesAdded++
            }
        }

        // node will move forward later - skip it for now
        if (aKey && bKeys[aKey] > l) {
            // store current offset from the original position
            forwardOffsets[l] = nodesRemoved + nodesAdded + forwardMoves
            nodesSkipped++
        }
    }

it's still not quite right - 2 tests fail.
before this is all over, there will be more rigorous testing but first i want to get the current tests working with this approach since it is O(n) for diff.  for performance i really hope we can avoid anything worse than O(nlogn) and we don't break expectations for existence of nodes in the document (this is the most important to me).

Coverage decreased (-0.2%) to 97.27% when pulling 407ec427d0878c198cceafef6e001cceedec2542 on rewrite-reorder into 3ea4f0e6afe6ff01c056513d3b5743c540b45419 on master.

I pushed the next optimization which uses the single iteration over b to index the free nodes instead of searching for them. So we should now be able to construct the sort order for a after inserts and use that to make easy decisions about swaps.

Coverage decreased (-0.3%) to 97.18% when pulling b9b490d07bc44084b26ec7410d247e1c541cf0b2 on rewrite-reorder into 3ea4f0e6afe6ff01c056513d3b5743c540b45419 on master.

@neonstalwart I added numeric index sorting to this branch to show what I mean.
The current caveat is that because all nodes are numerically indexed, deleted nodes are sorted. An update should be made to pre remove and deleted nodes from the array if sorting is going to take place and only do so if there are moves.
I'd like to merge in your tests and compare the different approaches for performance. I'd also like to solicit feedback on the sorting algorithm itself. If you have some test cases you'd like to know the moves for I'd be happy to generate them.

@Matt-Esch this smells pretty good but i need some time to digest it - i'm busy for most of today.
i think pre-removing nodes is going to help any algorithm - they just get in the way of what might otherwise be some simpler logic.  i agree with the order you already mentioned as ideal

remove any old items
sort the remaining items
insert the new items in place

it may be worth the time to do this now if you've got ideas for how you want to do this.

If you have some test cases you'd like to know the moves for I'd be happy to generate them.

the tests where i've used assertReorderEquals are my attempt to ensure we're creating minimal/sensible moves.  it would be good to find a general way to add an assertion for the minimal number of moves to the permutation/fuzzy testing (i have an idea for how to do this but no time currently to work through it) but at least if you could include something similar that does a manual assertion for some of the manual tests (like i have) that would be a good start.

I have another thought I want to pursue when I get a chance this coming week.
the basis of it involves changing the patch to be 2 phases:

remove all nodes to be reordered. maintain a hash of these nodes that allows us to retrieve each one by their key during the next phase.
insert all nodes in their final position

I believe the diff can then be done in O(N) with 2 passes

iterate from right to left over the simulate array and identify the nodes that are out of position, record that they need to be removed (an array of indices) and splice them from the array. by working right to left, the effect of removing an item minimizes the impact on the indices of the unvisited part of the array. in order to determine if a node is out of position, this pass needs to maintain some counters to help calculate the effective position of a node.

iterate from left to right over the simulate array to determine the insert index for each of the nodes. record this as a list of { key, index} objects

solutions involving using counters to help determine effective positions have proven to be harder than they first seem but I'm willing to try another one in the hope we can achieve O(N)

I changed my mind. the first phase of the diff has to be left to right in order to determine if a node is out of position.

Coverage increased (+0.01%) to 97.48% when pulling 707bb562b15d9e306aae04a7b286571bf6302d05 on rewrite-reorder into 3ea4f0e6afe6ff01c056513d3b5743c540b45419 on master.

@neonstalwart I added your tests to my pr, they are really good and helped me catch a case I forgot about.
I've taken to eagerly removing nodes from the array before sorting. This means that in some cases we end up with extra moves.
I'm using move { from: nodeIndex, to: -1 } to indicate deletes. If the only moves that are made are deletes, I return an empty moves set, relying on the generated destroy patches to do so instead. This does highlight that there could be some redundancy in the remove operations at the moment. (i.e. nodes which can just be removed from the DOM will still have patches to remove them).
Inserting into the correct position is going to be much harder as we are relying on indexing and the children diff mechanism to worth through all of the new item machinery.

@neonstalwart let me know if you get a few minutes to review this change. I'm getting eager to land a v2 ;)

@Matt-Esch did you see my latest at #199?


feat!: Rename base profiles

Codecov Report

Merging #69 (1cac4d3) into develop (5225fa4) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 1cac4d3 differs from pull request most recent head 27b759a. Consider uploading reports for the commit 27b759a to get more accurate results

@@           Coverage Diff            @@
##           develop      #69   +/-   ##
========================================
  Coverage    98.34%   98.34%
========================================
  Files           34       34
  Lines         6811     6811
========================================
  Hits          6698     6698
  Misses         113      113

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 5225fa4...27b759a. Read the comment docs.


Update youtube ID regex

Should match more links : https://regex101.com/r/hUW6zY/1

You should not touch the ID check: [a-zA-Z0-9-_]{11}, as all YouTube IDs have strictly that range.

Is [a-zA-Z0-9_] more performant than \w ?
As far as I'm concerned, \w is easier to read.

Should be, as \w is an alias of a-zA-Z. But the difference is down to nanoseconds. The current RegExp matches nothing in Regex101, can you update the test? Also try with this one link (it uses a _, which is uncovered in your RegExp):
https://www.youtube.com/watch?v=DfTUs-s_XkI

\w includes _

It works : https://regex101.com/r/hUW6zY/7

Althought it's a monolithic RegExp, it seems to be working. However, it still has a little flag in its validation.

However, it looks good to me.

Check this one, fixes the issue above. https://regex101.com/r/hUW6zY/8

wut ?

Had the same issue dont know how i fixed it


Vertical velocities

Adding vertical velocities to the Advection schemes

Only scipy version of vertical velocity has been implemented yet. jit doesn't work at all. Needs to be fixed, hoping @mlange05 can lead the way

I feel that we're almost there with the vertical velocities. Python 2.7 works completely (including vertical velocities in JIT, it seems!), there is just a strange python3 bug. @mlange05 could you have a quick look at some point?


Add layered configuration

It would be nice to have a global emake.toml to support true "defaults". It should optionally layer with the local emake.toml if both exist.

For clarity, this was partially addressed via 51f9471a65ebc0fc19718377a946e0c23aa34033, which added global configuration support, but merging configurations is still unsupported. In other words, if emake.toml exists in the working directory at all, the global config is completely disregarded.
Ideally, the global and local configurations should be merged in some way; how exactly this should be achieved is unclear. Some loose thoughts for now before I forget:

For settings like config.extra_args, should a local configuration append-to or replace the value defined in the global configuration?
Should an escape hatch be added (perhaps in a meta group) to disable merging? I think there should be some sort of escape hatch, but I'm not sure what the most ergonomic solution is yet.


Add reflection config for JMX runtime

DefaultChannelId uses reflection to access the JMX runtime. I'm not sure why that is necessary, but assuming it is, this change, makes it work in a GraalVM native image.
See also https://github.com/spring-projects/spring-boot/issues/22313

@netty-bot test this please

The reflection hacks are necessary because that method is not available on (some versions of?) Android. 🤷

@dsyer thanks a lot... Can you please sign our ICLA and let us know once done:
https://netty.io/s/icla

Done.

@dsyer thanks a lot


Update tests.yaml

Think it's a linux-y package manager issue, this would be my first guess.

Ha, beautiful, thanks!


Fix function comments based on best practices from Effective Go

Every exported function in a program should have a doc comment. The first sentence should be a summary that starts with the name being declared.
From effective go.
I generated this with CodeLingo and I'm keen to get some feedback, but this is automated so feel free to close it and just say "opt out" to opt out of future CodeLingo outreach PRs.

@googlebot sweet I'll get onto that. Regarding the content, it looks like these changes, few as they are, are pretty solid. Let me know if you find this useful :smile: and let me know if CI fails and there's anything you want me to do!
Note: I've only updated functions that I know CodeLingo can rewrite nicely, but you can install it from the GitHub marketplace to review your PRs automatically and find all issues.


How can I generate my own float data?

I wanna train a CNN using my float data, which has 1.2million samples and 57600*6 per sample. How can I generate the data file for MxNet? I wanna generate it using my another C++ program, without any MxNet functions. What's the simplest file format?

try csv and mxnet.io.CSVIter

I think csv isn't a good method. it is about 1.5TB in bin mode.

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!
Also, do please check out our forum (and Chinese version) for general "how-to" questions.


add a silent /health for k8s probes

Is your feature request related to a problem? Please describe.
I get a lot of logs from the liveness probe in kubernetes, as discussed in https://github.com/static-web-server/static-web-server/discussions/236
Describe the solution you'd like
@joseluisq suggested that a silent /health could be a solution — I agree with that.
Describe alternatives you've considered
Using a HEAD request on /, but k8s doesn't (yet) support that in probes.
Additional context
Add any other context or screenshots about the feature request here if needed.

Resolved by https://github.com/static-web-server/static-web-server/pull/238


java.lang.UnsupportedOperationException: Illegal combination of indexes for vector

Exception in thread "main" java.lang.UnsupportedOperationException: Illegal combination of indexes for vector
at org.nd4j.linalg.indexing.ShapeOffsetResolution.tryShortCircuit(ShapeOffsetResolution.java:113)
at org.nd4j.linalg.indexing.ShapeOffsetResolution.exec(ShapeOffsetResolution.java:325)
at org.nd4j.linalg.api.ndarray.BaseNDArray.get(BaseNDArray.java:3671)
at org.nd4j.linalg.api.ndarray.BaseNDArray.put(BaseNDArray.java:1787)
at org.deeplearning4j.nn.params.GravesLSTMParamInitializer.init(GravesLSTMParamInitializer.java:62)
at org.deeplearning4j.nn.layers.factory.DefaultLayerFactory.getParams(DefaultLayerFactory.java:107)
at org.deeplearning4j.nn.layers.factory.DefaultLayerFactory.create(DefaultLayerFactory.java:64)
at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.init(MultiLayerNetwork.java:361)
at org.deeplearning4j.examples.recurrent.character.GravesLSTMCharModellingExample$.main(GravesLSTMCharModellingExample.scala:83)
at org.deeplearning4j.examples.recurrent.character.GravesLSTMCharModellingExample.main(GravesLSTMCharModellingExample.scala)

We'll need more info than that.
I assume you have modified the example somehow?

Thanks for quick response. I used the latest snapshot DL core jars and is
working now.
On Monday, July 25, 2016, Alex Black<EMAIL_ADDRESS>wrote:

We'll need more info than that.
I assume you have modified the example somehow?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deeplearning4j/nd4j/issues/1138#issuecomment-234865765,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APV5VGWvEs8n1cvT5xzld3Dfei1GgGXeks5qZGXxgaJpZM4JT0Pt
.

--
Thnx $ Regards,
Charls Joseph


Common Data Model for Test Server Implementations

All public available OData services are more or less buggy and don't encompass all the OData functionality. Hence, it would be nice to have custom test server implementations. The following technologies come to mind:

C# / AspNet (we can borrow from magic-odata here)
CAP (typical bookshop example already exists in example folder)
Olingo

Shortly discussed with @ShaneGH the need to provide a common data model which is suitable to test as many OData features as possible. And this is what this ticket is about: Defining this common data model.
@ShaneGH you already provided the first step in your test implementation with the legendary OneOfEverything model, so that all data types are testable (Edm.Binary and Edm.Stream are special cases for me outside of that model). More thoughts and ideas?

Yeah, for sure. The magic-odata model started as a fairly simple blog and grew organically based on use cases.
I'll go through it and pull out link specific parts of it to specific test cases

@texttechne to start with, here are some scenarios which would be overkill to code into a server, but would be useful to verify that the code gen works correctly with:

<Schema Namespace="%Namespace has % awkward characters%"
<EntityContainer Name="%Container has % awkward characters%"
<EntityContainer Name="%Container has % awkward characters%"
<EntityType BaseType="A different namespace than the container schema namespace"
<EntitySet EntityType="A different namespace than the container schema namespace"
<Singleton EntityType="A different namespace than the container schema namespace"
<NavigationProperty Type="A different namespace than the container schema namespace...
<NavigationProperty Type="Collection(A different namespace than the container schema namespace...
<FunctionImport Function="A different namespace than the container schema namespace...
<Parameter Type="A different namespace than the container schema namespace...
<Parameter Type="Collection(A different namespace than the container schema namespace...
<ReturnType Type="A different namespace than the container schema namespace...
<ReturnType Type="Collection(A different namespace than the container schema namespace...


Installation

Is there anyway to install on kali linux (raspberry pi 4)?

You might have luck compiling from the source.  Instructions can be found here.

You might have luck compiling from the source. Instructions can be found here.

1libcamera-dev` package not found

1libcamera-dev` package not found

Can you be more specific here please?  Did you follow the build/install instructions I linked to earlier? If yes, at what stage did it fail?

i just switched back to raspberry Pi orignal os but in future i will be working on it again till then i will close it

I tried it on kali again but this time i got error on this command
meson build --buildtype=release -Dpipelines=raspberrypi -Dipas=raspberrypi -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=enabled -Ddocumentation=disabled

Error:
Dependency libexif skipped: feature android disabled
Dependency libjpeg skipped: feature android disabled
Dependency libevent_pthreads skipped: feature cam disabled
Dependency libevent_pthreads skipped: feature lc-compliance disabled
Run-time dependency libtiff-4 found: YES 4.4.0
Dependency gtest skipped: feature lc-compliance disabled
Run-time dependency qt5 (modules: Core, Gui, Widgets) found: NO (tried pkgconfig)

src/apps/qcam/meson.build:4:0: ERROR: Dependency "qt5" not found, tried pkgconfig

A full log can be found at /home/kali/libcamera/build/meson-logs/meson-log.txt
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

You will need to install the qt5 libraries to get libcamera/qcam building correctly:
sudo apt install -y qtbase5-dev libqt5core5a libqt5gui5 libqt5widgets5

Note that this is not really a libcamera-apps specific issue.  As such, would you be able to create a new issue at https://github.com/raspberrypi/libcamera/issues if you are still having problems please?


Can't read external sd card

I have installed Bubble 1.0.2 from F-Droid and like it very much. Unfortunately I can't access the external sd card. It simply isn't possible to choose anything other than /storage/emulated/0
I have a Samsung Galaxy Tab Pro 10.1 and I'm using Cyanogenmod 12.

Thanks for the feedback. Seems like you have more than 1 external storage directories. Will add support for multiple directories soon.

Awesome,
I just grabbed this as well, i am on a sony z2 tab and have the same issue.
On my device they mount as
/storage/sdcard0 - internal 16gb "sdcard"/storage
/storage/sdcard1 - sdcard
/storage/usbdisk - usb disk

I'm no android dev, but looks like you can check for this with a public static boolean "isExternalStorageEmulated"
It should return true if the "ExternalStorage" is internal like on my devices.
Here is an example using "System.getenv("SECONDARY_STORAGE")" to find the external sdcard.
https://github.com/shivarajp/AndroidDirectoryChooserExample
Sorry if this is no help.

I have the same issue. Just allow "..." to go to sub-directories, of course except at the root of the file system.

OK, I decided not to overthink the issue, and did as @RyDroid suggested. v1.1.0 now supports browsing whole filesystem.

Great, it works perfectly for me.

Works great for me, thanks!

Thank you, this fixes the issue.