Adding TargetValue and MolecularWeight Sampler

This PR supersedes #165 and #170 and resolves #168.
#165 implemented a sampler which would divide molecules based on their molecular weight (either ascending or descending), and #170 added basically the same thing but for arbitrary target values. This PR just refactors #170 as if #165 where already implemented, reducing code duplication quite a bit.
There is also some small internal cleanup, namely 00eeca65a6dab1732380429078e2a4386145b8fa, 98b3efdd900b105481bac0fb932ad3613f70aac4, and 3b8bca1962b0597513f288ea4d6f59c95aae4532 (as well as some long-overdue CI updates).

I have dropped support for Python 3.7 - it is well outside of the maintenance window at this point.
I will also note that the molecular weight is calculated with mordred, which actually wraps the RDKit calculator anyway (so this is identical to what it used to be).

Thanks so much for reviewing and improving PRs #165 and #170! The consolidated code looks great and the unit tests are thorough. I also really appreciate the other cleanup commits to improve the code!
I almost wonder if str_to_mol should be a function somewhere in utils/  rather than a static method in the Scaffold class? Or maybe a static method on the AbstractSampler so we don't have to import the Scaffold class into molecular_weight.py and any potential files in the future? It's minor and even if we change that, it can be in a separate PR so everything looks good here. Merging now!


Fix bug in LongPressGestureRecognizer

It was incorrectly resetting state when it received a
non-allowed pointer but had already accepted a gesture.
Fixes https://github.com/flutter/flutter/issues/81339
Pre-launch Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I signed the [CLA].
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt.
[x] All existing and new tests are passing.

Does this issue exist for other gesture recognizers?

It doesn't look like it.


Succinct Project Description on homepage

User feedback suggest breaking down the PTS description on home into concise bullet points for better readability and highlighting key features.
Before

PiRogue tool suite (PTS) provides a platform combining analysis tools, knowledge management, incident response management and artifact management, which allows NGOs with limited resources to equip themselves at a low cost. The project consists of an open-source tool suite that provides a comprehensive mobile device forensics and network traffic analysis platform targeting mobile devices, both for Android and iOS.

After

PiRogue Tool Suite (PTS) is an open-source platform offering cost-effective mobile device forensics and network analysis tools for NGOs.

Combines analysis, knowledge management, incident response, and artifact  management.
Targets both Android and iOS devices.
Empowers NGOs with limited resources.

@U039b What do you think? Do you have an suggestions to the write up?

Instead of explaining all the key features of PTS directly in the description, I suggest we had a section Features (and maybe another one Use cases) looking like this:

What do you think?

@U039b I think that is a great idea.  Perhaps it would require complete home page overhaul. Including additional features like  #245

Superseded by https://github.com/PiRogueToolSuite/piroguetoolsuite.github.io/issues/282


contrib-sipproxy: rework sipproxy stats

Signed-off-by: Felix Du<EMAIL_ADDRESS>
Commit Message: rework sipproxy stats to improve performance
Additional Description:
Risk Level: Low
Testing: Ut/Mt
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

CI needs to be sorted out. Thanks!
/retest

@dorisd0102  Please help to review this PR.
Thanks.

LGTM

@mattklein123 @jmarantz
Thanks for your comments, all of them are addressed.


Make prometheus stack great again

There is lot of work to with prometheus stack to do:

[ ] replace and use blackbox export instated of uptimekuma
[ ] replace botkube
[ ] add more exporters
[ ] add https://github.com/billimek/prometheus-speedtest-exporter
[ ] add monitoring for main postgres database

and more

https://www.middlewareinventory.com/blog/ssl-expiry-and-uptime-monitor-for-urls-prometheus-blackbox-grafana/


How to extract points from a specific view..

Hello,
I want to extract the points only from the part that is currently visible.
Like a 2D image..  but with 3D coordinates..
Is there a good way?

Hi, sure you can use
settings.use_parallel_projection = True  # if desired
then
https://vedo.embl.es/autodocs/content/vedo/vedo/pointcloud.html#visible_points

Thank you!
The example code works fine..
from vedo import *
settings.use_parallel_projection = True  # if desired
from vedo import Ellipsoid, show, visible_points
s = Ellipsoid().rotate_y(30)
s = Mesh(dataurl+"man.vtk")
s= load('./a.stl')
#Camera options: pos, focal_point, viewup, distance,
camopts = dict(pos=(0,0,25), focal_point=(0,0,0))
show(s, camera=camopts, offscreen=True)
m = visible_points(s)
#print('visible pts:', m.points()) # numpy array
show(s, m, new=True, axes=1) # optionally draw result on a new window
print(m.points())

but my stl file(a.stl) result is strange...

Thank you!
acutally, I want to extract the surface...  Is there a good way?

s2.zip
this is above picture file...  Thank you..

[code]
s2= load('s2.stl')
camopts = dict(pos=(0,0,500), focal_point=(0,0,100)) #
show(s2, camera=camopts, offscreen=True)
m = visible_points(s2)
show(m, new=True, axes=1)
It's a pity that the side surfaces are not fully visible What should I do?..

Hi, I'm afraid this is not a well defined problem! Or at least I cannot think of a meaningful or unique way to do it ..


Tweak GenAI attribution PR check wording

Minor wording tweak to GenAI checklist item.
Contribution checklist
Aim to have all relevant checks ticked off before merging. See the developer's guide for more detail.

[ ] Documentation has been updated to reflect change.
[ ] New code has tests, and affected old tests have been updated.
[ ] All tests and CI checks pass.
[ ] Added an entry to the top of docs/source/changelog.rst
[ ] Conda lock files have been updated if dependencies have changed.
[ ] Said whether Generative AI, such as GitHub Copilot, has been used in this PR.
[ ] Marked the PR as ready to review.

Merging without review, as this is a tiny documentation change that isn't part of the code itself.


All Patterns Min/Max Incorrect

The min/max row at the bottom that displays the max range of prices is kind of taking the wrong data. Below is what I see. The all patterns has a different value for the min/max when it should be the same for all 5 rows.
The app is great! Great job on the interface and rollout! This is just a small bug that doesn't really affect anything, but would be interesting to bring up to you.

This is an interesting one indeed...
Column by column, the all patterns takes the "lowest low" and "highest high" and creates a summary range for that price period. Then, for the GMin it takes the highest low, and the GMax takes the highest high.
The result of that is a weird situation where the GMin value appears to be incorrect, when it technically isn't incorrect at all.
In any case, it's not a very useful data point, so it should be revisited for sure.


Update path.ts to be in sync with node.js 16.14.2

We will ship Electron 17 with node.js 16.13.0 to stable soon so we should also look into bringing our copy of path library to the same version.
Checking for the diff, it seems to be a few commits after https://github.com/nodejs/node/commit/ed45b5164217fb9b0241ec8e9a4e90b0377ca44c and up until https://github.com/nodejs/node/commits/v16.13.0/lib/path.js
//cc @deepak1556

Hm, the first change is already pretty bad for us:
https://github.com/nodejs/node/blob/187a862d221dec42fa9a5c4214e7034d9092792f/lib/path.js
Because it seems to depend on a new primordials thing which is maybe defined globally and probably optimized / cached /snapshotted.
Maybe we should rather look out for actual bug fixes and focus on those...
Changes:

path: refactor to use more primordials
lib: refactor to use validateObject
path: refactor to use more primordials
path: fix posix.relative() on Windows
path: fix POSIX path.resolve() perf regression
typings: add types for internalBindings('fs')
typings: add JSDoc types to lib/path
path: inline conditions

I think only the 2 fix commits stand out from the others 🤔

@sbatten I assume you skipped over https://github.com/nodejs/node/commit/187a862d221dec42fa9a5c4214e7034d9092792f right?

Reopening given unit test failures, I had to revert the change for now.

@bpasero yes I skipped the primordials. I didn't dig into why they do this, but it seemed easy enough to just call the string functions instead.
As for the test failures, new PR https://github.com/microsoft/vscode/pull/169028

Primordials are only meant for Nodejs internal code usage, external users should just replace them with corresponding JavaScript builtins. You can read more about why Nodejs does it here


Create a States class to ease state access

Allow this kind of syntax:
        devices = await client.get_devices()

        for device in devices:
            if device.states:
                if "core:RSSILevelState" in device.states:
                    print(device.states["core:RSSILevelState"].name)
                    print(device.states["core:RSSILevelState"].value)

@iMicknl Code update, you should like :)

@iMicknl Code updated, you should like :)

LGTM! I see you marked it as a draft, so I will let you merge it yourself when you are ready :).

Yes I saw a potential issue for the command in operator. I have to check.

@tetienne we should pin the version in the component and bump it here. Now an update to master can break the component.
Looks like it did now?


sepEndBy'

The parse-feed loop of attoparsec only makes sense for parsers which finish, and sepCap never finishes.
But these might make sense: https://github.com/jamesdbrock/replace-megaparsec/issues/10#issue-487237977

Added Lazy anyTill in #4


Add a max-length to the submissions form inputs

Song metadata is currently encoded in the filename at the time of upload. If a user enters a very long title, S3 CLI/SDK fails to download the file.
There should be a reasonable max-length for each field in the form and a validation message if a user exceeds it.

max lengths were added to all text inputs


User should receive a confirmation dialog box when it is dequeueing all the message from the queue

Environment: Windows/ IntelliJ14.1.2  / Android Studio 1.2
Click Azure.
Click storage.
Expand a Storage Account.
Expand a particular Storage.
Expand Queue.
Select a particular queue.
Add few entity.
Click the dequeue button which dequeue first message from queue , it is asking for confirmation  as shown below in the snapshot .

But when the dequeue / delete button which deletes all the message in the queue , it is dequeueing / deleting all the message in the queue without asking for confirmation.

The user is now receiving a confirmation dialog box for clearing the queue.


[Messaging] hasPermission returns authorized when the status is not determined

Hi,
currently this plugin returns the permission status AuthorizationStatus.AUTHORIZED on iOS when it actually should be AuthorizationStatus.NOT_DETERMINED.
_hasPermission(resolve, reject) {
		if (parseInt(Device.osVersion) >= 10) {
			UNUserNotificationCenter.currentNotificationCenter().getNotificationSettingsWithCompletionHandler((settings) => {
				let status = AuthorizationStatus.NOT_DETERMINED;
				switch (settings.authorizationStatus) {
					...
					case UNAuthorizationStatus.NotDetermined:
						status = AuthorizationStatus.AUTHORIZED;
						break;
				}
				resolve(status);
			});
		} else {
			resolve(AuthorizationStatus.AUTHORIZED);
		}
	}

it should be AuthorizationStatus.NOT_DETERMINED but it is being explicitly overridden in case UNAuthorizationStatus.NotDetermined:

Thank you for finding this 😄

Fixed with https://github.com/NativeScript/firebase/commit/31b8f4b0c717e12e7f1cea2339fc761b7ae006a9 and released in alpha .32

Nice thanks! 🎉


documentation explains the need of 2 stripe accounts, but does not explain why. Why can't we use a single stripe account?

documentation explains the se of 2 stripe accounts, but does not explain why. Why can't we use a single stripe account?

Hunter, with BigCommerce here again.
The app is designed this way so that different merchants, each with their own Stripe accounts, can connect to the app developer’s single Stripe account. Through the installation process the merchant grants permission to the app developer’s Stripe account to take certain actions on the merchant’s Stripe account, for example process subscription charges.
This statement from the accompanying article sums it up “When the app initiates subscription charges, it will use the merchant's dedicated public key with the app's dedicated secret key.  - https://developer.bigcommerce.com/api-docs/partner/subscription-solutions/foundation-guide#configure-stripe  This allows for the granting and revoking of permissions in an automated and secure way rather than manually sharing Stripe API keys.
Stripe uses the term account somewhat loosely, and really it’s like a sub-account (same email address, dashboard, etc.). For situations where the merchant and app developer are the same entity, I would recommend creating the additional (sub)accounts.
I hope that helps clarify this situation. I’ll pass this feedback along to our team so that they can review and potentially find ways to clarify this in the article.


feat: email template

closes FRO-423
To see the rendered email template you can:

install the handlebar preview extension
run pnpm seed, pnpm dev:notification, curl http://localhost:3005/notify, click on the url

closes FRO-423
To see the rendered email template you can:

install the handlebar preview extension
run pnpm seed, pnpm dev:notification, curl http://localhost:3005/notify, click on the url

can you add a print screen on how it looks?


Incorrect word

Going through the README.md file in the first chapter of your book, I couldn't stopping wondering how you came up with this amazing book. Obviously, it would be an understatement to say this book is a great piece. Thumbs up.
However, I noticed two incorrect words, precisely "comotabible" and "avaiable" in the 4th and 5th paragraph of Jupiter Notebook respectively.
Asides that, you have done a perfect job and I can't wait to get your book.

Thanks so much for the kind words! Thanks also for pointing out these typos, just went ahead and fixed them!


Mark recipes as exportable/non-exportable

When just file in one package/repo imports file in other package, some recipes are rather not be imported because they are "internal" logic of imported package.
In my use case I have a monorepo of multiple Nodejs packages and use just to overcome a serious limitation of NPM scripts - inability to import scripts/actions from another package. For example, I have Library package which has 2 recipes:  build (which builds the library itself)  and lint (with [no-cd] attribute) which is meant to be imported by all other packages for linting. So when some other's Justfile imports Librarys Justfile  I don't want to build to appear in its list of recipes.
Ideally the interface would be  to add [export]/[no-export] per-recipe attributes  and global export_all_recipes configuration which makes all Justfile's recipes exportable/non-exportable by default (useful when we want to make all recipes non-exportable and then mark some of them with [export]).
Some notes on why we may want a separate feature for that:

One way to prevent importing Justfiles to run specific "parent" task is to shadow it by overriding with empty recipe. But this breaks the level of abstraction by trasferring the burden of "shadowing" to the importing package while shouldn't be aware the non-exportable recipe in the first place. Also shadowed recipe will clutter just --list listing.
The above example may not be the best demo for the rationale as the impoting package will most probably override build recipe anyway for its own build logic.  But instead of build we could use some more specific task (such as generate-docs).
Non-exportable task differs from private task because it appears in just --list and is meant to be run by user.
One easy way to achieve this is to have separate Justfile with exported tasks (which in above example would contain lint recipe) and import it in other packages. This solution, however, forces us to split just logic into multiple files which breaks one of the best advantages of just over collection of separate shell scripts - ability to put all the logic into single file.

I think this is something that I'd like to solve with modules, not imports. I think the fundamental thing which is needed here is namespacing, and modules already provide namespacing. The issue with modules is that they don't provide a lot of other things, see #2252, which are necessary to replace imports.


Unable to re-deploy a function

Description
I am not able to re-deploy an existing function
Steps to reproduce
time functions deploy proxyRequest --trigger-http
ERROR: Function proxyRequest in location us-central1 in project avian-altar-160417 already exists

real	0m14.672s
user	0m12.829s
sys	0m1.111s

Duplicate of #48


How to visualize segmentation results “soft-segmentation map”

@wangm-ting the soft segmentation map are basically prediction probability maps. You can visualize it in Matplotlib or save them as nifti fromat (nii.gz) and plot them in 3D-Slicer.


Add Toast

It has a nice simulator, which means anyone working on the code will be able to run their code and see what happens right away!

This effectively is a superset of Issue "Add GradleRIO"


npm install should be using npm ci

As of NPM 5.7.0 there's a new command for npm called ci which uses the package-lock.json to decide which dependencies to install. A normal npm install will just overwrite package-lock.json with the latest acceptable versions of the dependencies (and their dependencies) and tell the user that X packages has been updated. This is ok-ish for promoted builds, but works poorly where you do a specific production build and expect dependencies to be the same unless someone explicitly updates the dependency-"manifest".
I believe that changing the default behaviour from install to ci would be better in the long run, but it's a major change, creating a flag that toggles between install and ci that defaults to the old behaviour would probably be preferable. Especially since the flag didn't exist until 5.7.0.

As a workaround, I created manually the npmCi task in the build script:
task npmCi(type: NpmTask) {
    dependsOn npmSetup
    npmCommand = ["ci"]
    inputs.file("package.json")
    inputs.file("package-lock.json")
    outputs.dir("node_modules")
}

The built-in ci task would be great but implicitly substitute 'install' with 'ci' is wrong, at least it will break projects without package-lock.json.

A normal npm install will just overwrite package-lock.json with the latest acceptable versions of the dependencies (and their dependencies) and tell the user that X packages has been updated.

It's not true.

I have a proposed solution in a fork. https://github.com/node-gradle/gradle-node-plugin/pull/5
If anyone would like to have a look at it that'd be great!
The idea is to add a task that changes the command of npmInstall. In my case I used npmCi

Perhaps a less intrusive solution would be to add a configuration option to node { ... } that would toggle the behavior of the npmInstall task.  This could be toggled pretty easily when running in CI.  For example, for CircleCI:
node {
  ...
  ci = System.env.CI
}

So is it possible now to use npm ci? If I add another task, implicitely npmInstall will still be triggered, correct?

Yes it is possible. And no, the npm install task is not triggered automatically.


FIX: import catboost module if present, else create local module mockup

This PR makes sure that catboost is properly defined in the local namespace of private module _explainer.py. No impact on the public API, but eliminates a warningduring the Sphinx documentation build.

Understood the change, want to understand the need for try except in the import step

catboost is not a required module, so we use try: … except: … to gracefully handle the case that catboost is not available


Registry tool: TestResolve fails on main using local configuration

Steps to produce:

Delete the local configuration:registry config configurations create temp && registry config configurations delete local
Create a new shell session without setting any environment variables related to the registry.
Recreate and activate the local configuration using the local auth script: source auth/LOCAL.sh
Run the tests: make test or specifically go run ./cmd/registry/cmd/resolve

Output:
2023/01/05 14:28:40 Client will use an embedded registry with a SQLite3 database
  INFO[0000] Applying testdata/manifest.yaml
 FATAL[0000] Failed parse              error=invalid spec name "projects/controller-demo/locations/global/apis/petstore/versions/1.0.1/specs/openapi.yaml@9f78c06b": must match "^projects/([A-Za-z0-9-.]+)/locations/global/apis/([A-Za-z0-9-.]+)/versions/([A-Za-z0-9-.]+)/specs/([A-Za-z0-9-.]+)$" uid=158b97a1
 FATAL[0000] Failed parse              error=invalid spec name "projects/controller-demo/locations/global/apis/petstore/versions/1.1.0/specs/openapi.yaml@a0fbf4a9": must match "^projects/([A-Za-z0-9-.]+)/locations/global/apis/([A-Za-z0-9-.]+)/versions/([A-Za-z0-9-.]+)/specs/([A-Za-z0-9-.]+)$" uid=55f1c8a5
  WARN[0001] Task failed: Execute command: registry compute complexity projects/controller-demo/locations/global/apis/petstore/versions/1.1.0/specs/openapi.yaml@a0fbf4a9 error=failed running command
  WARN[0001] Task failed: Execute command: registry compute complexity projects/controller-demo/locations/global/apis/petstore/versions/1.0.1/specs/openapi.yaml@9f78c06b error=failed running command
 FATAL[0000] Failed parse              error=invalid spec name "projects/controller-demo/locations/global/apis/petstore/versions/1.0.0/specs/openapi.yaml@67e2b65f": must match "^projects/([A-Za-z0-9-.]+)/locations/global/apis/([A-Za-z0-9-.]+)/versions/([A-Za-z0-9-.]+)/specs/([A-Za-z0-9-.]+)$" uid=6f20260f
  WARN[0001] Task failed: Execute command: registry compute complexity projects/controller-demo/locations/global/apis/petstore/versions/1.0.0/specs/openapi.yaml@67e2b65f error=failed running command
  INFO[0001] Applying testdata/manifest_receipt.yaml
  INFO[0001] Applying testdata/manifest.yaml
--- FAIL: TestResolve (1.18s)
    --- FAIL: TestResolve/normal_case (1.04s)
        resolve_test.go:296: Returned unexpected diff (-want +got):
              []string{
            - 	"projects/controller-demo/locations/global/apis/petstore/versions/1.0.0/specs/openapi.yaml@67e2b65f/artifacts/complexity",
            - 	"projects/controller-demo/locations/global/apis/petstore/versions/1.0.1/specs/openapi.yaml@9f78c06b/artifacts/complexity",
            - 	"projects/controller-demo/locations/global/apis/petstore/versions/1.1.0/specs/openapi.yaml@a0fbf4a9/artifacts/complexity",
              }
FAIL
FAIL	github.com/apigee/registry/cmd/registry/cmd/resolve	2.462s
FAIL

Is anyone else experiencing this? Every other test in the suite passes, but this one consistently fails for me.

The cause seems to be environmental but unrelated to the registry tool configuration. This build job passed after running registry config configurations create local --registry.address='<IP_ADDRESS>:8080' --registry.insecure then go test ./..., but when I do the same locally on the same commit (always in a fresh shell, after making sure the local config doesn't already exist), the test fails. My environment doesn't have any registry variables in it. What else do our tests depend on in the environment?

Just observing: the logs show registry compute complexity failing because something is expecting the name of a spec and getting the name of a spec revision. @theganyo made some changes related to name parsing, but that was at least a month ago.

After following the listed steps:
$ go test ./cmd/registry/cmd/resolve
ok      github.com/apigee/registry/cmd/registry/cmd/resolve     2.139s

I don't believe that go test rebuilds the registry binary, so if you just pulled a new version and ran the tests, your registry might be out-of-date.

Rebuilding all the binaries in the project resolved the issue. go test does recompile every package in the import dependencies before running tests, but that doesn't reinstall the registry binary on the local machine. The failures happened because registry resolve uses os.Exec to call the locally installed binary which was out-of-date.
Ideally TestResolve would test registry resolve without also making assertions about the behavior of registry compute complexity, but I'm not sure what a more minimal test would even look like. Maybe it would've been better if TestResolve used a manifest that called apg registry create-artifact instead of registry compute complexity since the former is more stable? Probably not worth addressing.

Seems related to #451


nice to have: spectre checker as a module

Issue description
spectre checker requires one to load the cpuid module for best results. If spectre checker would be a module, users wouldn't need to know that.
Similar for the requirement to have readelf (binutils package) available, which is a missing dependency of the spectre checker script.
Preferred interface is the standard programs.spectre*.enable = true; interface
I already have this working on my machine, so this is just a "nice to have"-thing.
Technical details
Applies to 18.03 and master.

Are referring to spectre-meltdown-checker? I'm running sudo spectre-meltdown-checker without cpuid loaded and I don't get an error message. What's the output you're getting? Which version of the script are you running using which command?

Yes, it's an optional dependency, btw.
I just ran sudo spectre-meltdown-checker.
IIRC, it was: https://github.com/speed47/spectre-meltdown-checker/blob/master/spectre-meltdown-checker.sh#L1497.

@coretemp Interested in writing such a module? Should be doable in a few minutes.


Behaviour of .env in regards to buildDepends changed in 20.03

Describe the bug
Haskell derivations: behaviour of .env in regards to buildDepends changed in 20.03. Projects relying on the old behaviour will break.
A number of Haskell projects I work on use pkgs.haskell.lib.addBuildDepends to make test dependencies and build tools available in the environment when invoking nix-shell.
PR https://github.com/NixOS/nixpkgs/pull/76349 changed the implementation of the .env attribute which subtly changes the effect addBuildDepends has. Using addBuildTools instead is a workaround for this (or possibly the function I should've been using all along).
I believe I was using addBuildDepends incorrectly but it is difficult to be sure, because the expected usage of addBuildDepends and addBuildTools is not documented (AFAIK).
Using
  drv = pkgs:
    pkgs.haskell.lib.addBuildDepends
      (pkgs.haskellPackages.callCabal2nix "minimal-env-issue" ./. {})
      (with pkgs.haskellPackages; [ ghcid ] ++ (with pkgs; [ minio ]));

In 19.09, (drv.env.buildInputs ++ drv.env.nativeBuildInputs) produces:
[ "/nix/store/83gw88ngcwyq0y06nmcs12svd6ymk5mp-minio-2019-02-26T19-51-46Z"
, null
, "/nix/store/q4q62h0ab7ag0k161cgqknbp7s9qxfhd-ghc-8.6.5"
, "/nix/store/q4q62h0ab7ag0k161cgqknbp7s9qxfhd-ghc-8.6.5"
, "/nix/store/9sl95r0rrqs8mqs2jd22ydwyi8zs8imb-remove-references-to"
, "/nix/store/rj07rp9iwzn1f69ap6c1nsgghz3w16xy-ghc-8.6.5-with-packages"
, "/nix/store/q4q62h0ab7ag0k161cgqknbp7s9qxfhd-ghc-8.6.5"
, "/nix/store/9sl95r0rrqs8mqs2jd22ydwyi8zs8imb-remove-references-to"
]

In 20.03, (drv.env.buildInputs ++ drv.env.nativeBuildInputs) produces:
["/nix/store/2j8yfxhhyhs6am6ras9q18rnj1hjqngw-ghc-8.6.5-with-packages"]

minio is present in 19.09 but not 20.03. Interestingly, ghcid is not present in either.
If we instead use addBuildTools:
  drv = pkgs:
    pkgs.haskell.lib.addBuildTools
      (pkgs.haskellPackages.callCabal2nix "minimal-env-issue" ./. {})
      (with pkgs.haskellPackages; [ ghcid ] ++ (with pkgs; [ minio ]));

we get the following results in 19.09:
[ null
, "/nix/store/q4q62h0ab7ag0k161cgqknbp7s9qxfhd-ghc-8.6.5"
, "/nix/store/q4q62h0ab7ag0k161cgqknbp7s9qxfhd-ghc-8.6.5"
, "/nix/store/9sl95r0rrqs8mqs2jd22ydwyi8zs8imb-remove-references-to"
, "/nix/store/83gw88ngcwyq0y06nmcs12svd6ymk5mp-minio-2019-02-26T19-51-46Z"
, "/nix/store/rj07rp9iwzn1f69ap6c1nsgghz3w16xy-ghc-8.6.5-with-packages"
, "/nix/store/q4q62h0ab7ag0k161cgqknbp7s9qxfhd-ghc-8.6.5"
, "/nix/store/9sl95r0rrqs8mqs2jd22ydwyi8zs8imb-remove-references-to"
, "/nix/store/mi7hxdc3jllkvn3svvqvcllq72fl0g57-ghcid-0.7.5"
, "/nix/store/83gw88ngcwyq0y06nmcs12svd6ymk5mp-minio-2019-02-26T19-51-46Z"
]

and in 20.03:
[ "/nix/store/bp9ij10sl87lrsyxmixqd6fyy30l5gxf-ghc-8.6.5"
, "/nix/store/nd4licplxl9p5v1m7y5dpri2f0cj99j5-ghcid-0.7.7"
, "/nix/store/fkjdvl6k71d6xdybvzpd4qlnain01l3w-minio-2019-10-12T01-39-57Z"
]

minio and ghcid are present in both.
So, using addBuildTools in 20.03 and 19.03 does exactly what I want (with the 20.03 version being a bit cleaner).
The "fix" for this issue might just be to document the intended usage of: buildDepends, setupHaskellDepends, libraryHaskellDepends, executableHaskellDepends, buildTools, libraryToolDepends, executableToolDepends, testToolDepends and benchmarkToolDepends a bit more clearly (if not already - sorry, I couldn't find any).
To Reproduce
Steps to reproduce the behavior:

Download this gist (direct download).
unzip it and cd into the directory.
Execute the following commands in a nix-shell:

# To determine if the async haskell package has correctly been added to the environment
ghc-pkg list | grep async
# To determine if a haskellPackage added with `addBuildDepends/Tools` is present
ghcid --version
# To determine if a regular package added with `addBuildDepends/Tools` is present
minio version

where the nix-shell invocation is one of:
# 19.09, addBuildDepends
nix-shell --pure -A drv-19-09.env
# 20.03, addBuildDepends
nix-shell --pure -A drv-20-03.env
# 19.09, addBuildTools
nix-shell --pure -A drvFix-19-09.env
# 20.03, addBuildTools
nix-shell --pure -A drvFix-20.03.env

A number of convenience make targets are available too.

Expected behavior
I expected addBuildDepends to make minio and ghcid available in my .env shell.

cc @Ericson2314 as the author of #76349, @jmininger (who I think wrote the original version), and @matthewbauer (who did an extensive review)

We should probably have documentation for this, or at the very least a note in the release notes for 20.03.

Side question: how did you print the result of addBuildDepends in the context of your actual package?

Side question: how did you print the result of addBuildDepends in the context of your actual package?

So I created a small nix file something like:
file.nix
let
  pkgs = import (fetchGit (import ./pkgs.nix)) { };

  drv = pkgs:
    pkgs.haskell.lib.addBuildDepends
      (pkgs.haskellPackages.callCabal2nix "minimal-env-issue" ./. {})
      (with pkgs.haskellPackages; [ ghcid ] ++ (with pkgs; [ minio ]));

  drvFix = pkgs:
    pkgs.haskell.lib.addBuildTools
      (pkgs.haskellPackages.callCabal2nix "minimal-env-issue" ./. {})
      (with pkgs.haskellPackages; [ ghcid ] ++ (with pkgs; [ minio ]));
in
{
  inherit drv drvFix;
}

Then:
nix repl file.nix
> (drv.env.buildInputs ++ drv.env.nativeBuildInputs)

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/go-no-go-meeting-nixos-20-03-markhor/6495/23

I think this looks correct to me. Nevermind the build-time vs run-time distinctions I am usually harping about. The most important thing to understand for this is just like the regular generic builder always did, the env now respects the different type of inputs parameters stating Haskell vs non-Haskell, and uses that instead of the predicate it used to sift between the combination of everything before.
tl;dr buildDepends and <comp-flavor>Depends items always don't become buildInputs in env, and instead get passed on to the ghcWithPackages, while extraLibraries and <comp-flavor>SystemDepends do become buildInputs. On the build-time deps side, including the tools, whether or not something was written in Haskell doesn't matter, so they all become nativeBuildInputs.


Deepgram Hackathon Idea

Goal
Reduce the amount of audio being transcribed that does not contain speech in the friend apps.
Approach
Use a Voice Activity Detector (VAD) in the apps to decide what to transcribe.

Silero VAD
Flutter Version of Silero VAD

Example

20sec of silence followed by 10 seconds of speech

Today

All 30 seconds are transcribed

With a VAD

Only 10 seconds are transcribed

If you apply this logic to 12 hours per day of recording most likely only a small percentage of the day contains speech
Benefits

Longer battery life for your phone
Less silence being transcribed

To be implemented in the backend

Backend sounds good will close this one


Multisend implementation from Michael (test pull request for build integration)

test pull request

test

test

test

retrigger


[download_dsyms ] No dSYM files found on App Store Connect - this usually happens when no recompiling has happened yet

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description

Log shows that the 255 build was found, but the url to dsym is empty.
DEBUG [2019-03-07 13:29:27.92]: Build_version: 255 matches 255, grabbing dsym_url
DEBUG [2019-03-07 13:29:29.10]: dsym_url:
INFO [2019-03-07 13:29:29.10]: No dSYM URL for 255 (1.0)
Command executed

fastlane --verbose build_alpha
Complete output when running fastlane, including the stack trace and command used

 INFO [2019-03-07 13:09:38.48]: ------------------------------------------------------------------------------------------------------------------
INFO [2019-03-07 13:09:38.48]: --- Successfully uploaded package to App Store Connect. It might take a few minutes until it's visible online. ---
INFO [2019-03-07 13:09:38.48]: ------------------------------------------------------------------------------------------------------------------
INFO [2019-03-07 13:09:38.49]: Successfully uploaded the new binary to App Store Connect
INFO [2019-03-07 13:09:38.49]: If you want to skip waiting for the processing to be finished, use the `skip_waiting_for_build_processing` option
INFO [2019-03-07 13:10:28.04]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:11:12.87]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:11:57.16]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:12:43.30]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:13:26.62]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:14:11.35]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:14:55.74]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:15:40.30]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:16:23.92]: Waiting for App Store Connect to finish processing the new build (1.0 - 255)
INFO [2019-03-07 13:17:07.58]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:17:55.30]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:18:40.80]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:19:25.09]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:20:08.10]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:20:50.76]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:21:36.85]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:22:22.63]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:23:07.63]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:23:52.68]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:24:35.96]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:25:20.10]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:26:04.28]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:26:48.80]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:27:33.51]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:28:18.16]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
INFO [2019-03-07 13:29:03.18]: Successfully finished processing the build 1.0 - 255
INFO [2019-03-07 13:29:06.35]: Distributing new build to testers: 1.0 - 255
INFO [2019-03-07 13:29:07.53]: Successfully distributed build to Internal testers 🚀
INFO [2019-03-07 13:29:07.53]: ----------------------------
INFO [2019-03-07 13:29:07.53]: --- Step: download_dsyms ---
INFO [2019-03-07 13:29:07.53]: ----------------------------
INFO [2019-03-07 13:29:07.54]: Login to App Store Connect (user@*************)
Reading keychain entry, because either user or password were empty
Loading session from '/Users/jenkins/.fastlane/spaceship/user@***********/cookie'
Looking for App Store Connect Team with ID ********
INFO [2019-03-07 13:29:10.13]: Login successful
INFO [2019-03-07 13:29:10.98]: Looking for dSYM files for bundle.identifier v1.0 (255)
DEBUG [2019-03-07 13:29:20.69]: Found train (version): 1.0 , comparing to supplied version: 1.0
DEBUG [2019-03-07 13:29:27.84]: Found build version: 186 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.84]: build_version: 186 doesn't match: 255
DEBUG [2019-03-07 13:29:27.84]: Found build version: 182 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.84]: build_version: 182 doesn't match: 255
DEBUG [2019-03-07 13:29:27.84]: Found build version: 189 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 189 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 181 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 181 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 192 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 192 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 185 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 185 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 188 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 188 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 187 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 187 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 190 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 190 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 184 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 184 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 183 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 183 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 199 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 199 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 200 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 200 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 194 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 194 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 202 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 202 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 196 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 196 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 193 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 193 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 204 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 204 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 201 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 201 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 198 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.85]: build_version: 198 doesn't match: 255
DEBUG [2019-03-07 13:29:27.85]: Found build version: 197 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 197 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 9 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 9 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 7 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 7 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 6 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 6 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 4 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 4 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 19 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 19 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 25 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 25 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 20 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 20 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 16 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 16 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 27 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 27 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 58 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 58 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 60 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 60 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 62 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 62 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 75 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 75 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 61 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 61 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 93 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 93 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 97 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 97 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 96 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 96 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 66 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 66 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 76 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 76 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 68 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 68 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 85 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.86]: build_version: 85 doesn't match: 255
DEBUG [2019-03-07 13:29:27.86]: Found build version: 83 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 83 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 64 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 64 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 73 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 73 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 72 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 72 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 67 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 67 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 74 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 74 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 69 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 69 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 71 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 71 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 65 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 65 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 88 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 88 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 101 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 101 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 84 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 84 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 92 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 92 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 91 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 91 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 87 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 87 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 89 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 89 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 70 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 70 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 103 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 103 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 104 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 104 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 99 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 99 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 95 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 95 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 94 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 94 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 77 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 77 doesn't match: 255
DEBUG [2019-03-07 13:29:27.87]: Found build version: 90 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.87]: build_version: 90 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 106 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 106 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 105 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 105 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 86 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 86 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 102 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 102 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 100 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 100 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 98 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 98 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 117 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 117 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 111 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 111 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 114 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 114 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 109 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 109 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 110 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 110 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 112 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 112 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 108 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 108 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 115 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 115 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 113 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 113 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 107 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 107 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 116 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 116 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 12 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 12 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 15 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.88]: build_version: 15 doesn't match: 255
DEBUG [2019-03-07 13:29:27.88]: Found build version: 13 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 13 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 14 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 14 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 11 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 11 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 10 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 10 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 17 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 17 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 23 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 23 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 18 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 18 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 21 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 21 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 31 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 31 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 24 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 24 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 28 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 28 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 22 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 22 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 26 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 26 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 29 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 29 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 33 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 33 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 34 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 34 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 248 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 248 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 239 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 239 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 244 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 244 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 241 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 241 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 242 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.89]: build_version: 242 doesn't match: 255
DEBUG [2019-03-07 13:29:27.89]: Found build version: 238 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 238 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 246 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 246 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 245 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 245 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 235 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 235 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 240 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 240 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 250 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 250 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 251 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 251 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 247 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 247 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 243 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 243 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 32 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 32 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 30 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 30 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 38 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 38 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 56 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 56 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 35 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 35 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 36 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 36 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 37 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 37 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 44 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 44 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 43 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 43 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 48 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 48 doesn't match: 255
DEBUG [2019-03-07 13:29:27.90]: Found build version: 45 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.90]: build_version: 45 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 47 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 47 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 53 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 53 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 46 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 46 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 52 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 52 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 55 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 55 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 49 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 49 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 50 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 50 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 51 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 51 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 54 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 54 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 59 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 59 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 158 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 158 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 150 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 150 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 174 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 174 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 169 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 169 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 170 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 170 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 165 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 165 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 173 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 173 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 171 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 171 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 159 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 159 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 164 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 164 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 166 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 166 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 160 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 160 doesn't match: 255
DEBUG [2019-03-07 13:29:27.91]: Found build version: 180 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.91]: build_version: 180 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 178 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 178 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 154 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 154 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 175 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 175 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 179 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 179 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 163 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 163 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 157 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 157 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 168 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 168 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 167 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 167 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 161 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 161 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 177 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 177 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 172 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 172 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 176 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 176 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 253 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 253 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 254 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 254 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 249 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: build_version: 249 doesn't match: 255
DEBUG [2019-03-07 13:29:27.92]: Found build version: 255 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:27.92]: Build_version: 255 matches 255, grabbing dsym_url
DEBUG [2019-03-07 13:29:29.10]: dsym_url:
INFO [2019-03-07 13:29:29.10]: No dSYM URL for 255 (1.0)
DEBUG [2019-03-07 13:29:29.10]: Found build version: 3 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.10]: build_version: 3 doesn't match: 255
DEBUG [2019-03-07 13:29:29.10]: Found build version: 8 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.10]: build_version: 8 doesn't match: 255
DEBUG [2019-03-07 13:29:29.10]: Found build version: 2 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.10]: build_version: 2 doesn't match: 255
DEBUG [2019-03-07 13:29:29.10]: Found build version: 5 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 5 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 221 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 221 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 223 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 223 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 214 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 214 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 217 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 217 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 219 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 219 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 209 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 209 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 222 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 222 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 211 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 211 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 220 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 220 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 210 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 210 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 207 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 207 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 203 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 203 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 226 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 226 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 225 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 225 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 212 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 212 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 208 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 208 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 213 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 213 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 227 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 227 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 218 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 218 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 234 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.11]: build_version: 234 doesn't match: 255
DEBUG [2019-03-07 13:29:29.11]: Found build version: 231 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 231 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 228 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 228 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 215 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 215 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 216 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 216 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 224 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 224 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 229 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 229 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 205 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 205 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 230 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 230 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 232 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 232 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 206 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 206 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 233 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 233 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 151 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 151 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 140 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 140 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 139 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 139 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 148 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 148 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 144 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 144 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 147 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 147 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 149 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 149 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 142 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 142 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 156 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 156 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 155 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.12]: build_version: 155 doesn't match: 255
DEBUG [2019-03-07 13:29:29.12]: Found build version: 152 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 152 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 146 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 146 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 143 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 143 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 141 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 141 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 153 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 153 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 145 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 145 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 137 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 137 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 129 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 129 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 130 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 130 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 132 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 132 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 122 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 122 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 127 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 127 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 126 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 126 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 121 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 121 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 135 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 135 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 118 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 118 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 120 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 120 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 119 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 119 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 131 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.13]: build_version: 131 doesn't match: 255
DEBUG [2019-03-07 13:29:29.13]: Found build version: 123 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 123 doesn't match: 255
DEBUG [2019-03-07 13:29:29.14]: Found build version: 128 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 128 doesn't match: 255
DEBUG [2019-03-07 13:29:29.14]: Found build version: 133 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 133 doesn't match: 255
DEBUG [2019-03-07 13:29:29.14]: Found build version: 136 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 136 doesn't match: 255
DEBUG [2019-03-07 13:29:29.14]: Found build version: 134 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 134 doesn't match: 255
DEBUG [2019-03-07 13:29:29.14]: Found build version: 138 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 138 doesn't match: 255
DEBUG [2019-03-07 13:29:29.14]: Found build version: 124 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 124 doesn't match: 255
DEBUG [2019-03-07 13:29:29.14]: Found build version: 125 , comparing to supplied build_number: 255
DEBUG [2019-03-07 13:29:29.14]: build_version: 125 doesn't match: 255
ERROR [2019-03-07 13:29:29.14]: No dSYM files found on App Store Connect - this usually happens when no recompiling has happened yet

Environment

✅ fastlane environment ✅
Stack

Key
Value

OS
10.13.6

Ruby
2.3.7

Bundler?
false

Git
git version 2.19.0

Installation Source
/usr/local/bin/fastlane

Host
Mac OS X 10.13.6 (17G65)

Ruby Lib Dir
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib

OpenSSL Version
LibreSSL 2.2.7

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
10.1

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
`./fastlane/Fastfile`

  lane :build_alpha do |options|
    build_app(scheme: app_name, include_bitcode: true, configuration: 'Alpha')
    upload_to_testflight(skip_waiting_for_build_processing:false)
    download_dsyms(version: version, build_number: build)
  end

fastlane gems

Gem
Version
Update-Status

fastlane
2.117.1
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.0.0

slack-notifier
2.3.2

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
1.8.0

unicode-display_width
1.3.0

terminal-table
1.8.0

plist
3.4.0

CFPropertyList
2.3.6

public_suffix
2.0.5

addressable
2.5.2

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.6.4

tty-cursor
0.5.0

tty-spinner
0.8.0

babosa
1.0.2

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

excon
0.60.0

faraday
0.14.0

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20170404

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.1

gh_inspector
1.1.2

mini_magick
4.5.1

multi_json
1.13.1

multi_xml
0.6.0

rubyzip
1.2.2

security
0.1.3

xcpretty-travis-formatter
1.0.0

dotenv
2.2.1

bundler
1.16.1

faraday_middleware
0.12.2

naturally
2.1.0

simctl
1.6.4

google-cloud-env
1.0.5

google-cloud-core
1.2.7

uber
0.1.0

declarative
0.0.10

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.1

mime-types-data
3.2016.0521

mime-types
3.1

jwt
2.1.0

signet
0.11.0

little-plugger
1.1.4

logging
2.2.2

memoist
0.16.0

os
0.9.6

googleauth
0.6.2

httpclient
2.8.3

google-api-client
0.23.9

digest-crc
0.4.1

google-cloud-storage
1.15.0

emoji_regex
0.1.1

json
2.1.0

io-console
0.4.5

libxml-ruby
2.9.0

atomos
0.1.3

claide
1.0.2

colored2
3.1.2

nanaimo
0.2.6

xcodeproj
1.8.1

psych
<IP_ADDRESS>

generated on: 2019-03-07

https://github.com/fastlane/fastlane/pull/14137 may help?

I first have this happen
INFO [2019-03-07 13:29:03.18]: Successfully finished processing the build 1.0 - 255
INFO [2019-03-07 13:29:06.35]: Distributing new build to testers: 1.0 - 255
INFO [2019-03-07 13:29:07.53]: Successfully distributed build to Internal testers 🚀
Then I try to download dsym.
Not sure this is this #14137 case.


Update paragon-ntfs to 14.0.543

Thank you for the contribution. It was merged directly as edd64d0f8f744051ec9ebf7493711a131da4b4e1 to keep commit history cleaner. Your contribution is still credited to you.


When compile ofmeet-summary.jsp in eclipse there report can't find urlEncode function

I replace urlEncode with URLEncoder.encode and compile success

I'm guessing that Eclipse fails to pick up the urlEncode method that is provided by the 'admin' taglib.
The ofmeet builds (including the continuous integration) does pre-compile these pages. As these builds do not fail, this problem appears to be an Eclipse issue, not an Openfire issue.

Yes ,in Openfire 4.2.3 have this urlEncode tag.I want to debug openfire-meetings in eclipse,Is there any help documents?


Migrate to Furo theme for Sphinx

I was looking to transition this to using Furo, but I don't know how to work with this repository at the moment, so I couldn't quite test how it works.

Merged via https://github.com/saltstack/salt-extensions-index/commit/5f4f8bdf57bbaec433b2e1a1a46a9aafd35d5655


Added Docker build badge

Added Docker badge with docker hub link #8

Thanks for the PR. Unfortunately, the commit's badge as-is linked to jrottenberg/ffmpeg, so I could not accept the PR as-is. I appreciate it anyway, thanks! 👍
I am sorry it took me this long to respond!


fix: show placeholder if value is empty

📝 Description

show placeholder if value is empty

💣 Is this a breaking change (Yes/No):

[ ] Yes
[x] No

🚧 How to migrate?
Don't need.
📝 Additional Information
lol

测试用例修复下


ValueError: PosixPath('.') has an empty name

On uploading the image I get ValueError: PosixPath('.') has an empty name
Appears to be related to https://github.com/ultralytics/yolov5/issues/2246
Source: An Image created from requests.get download will not have im.filename property set, thus Path(im.filename) will fail.
Solution: Just write a dummy filename into the image's property.

I believe this is because we are creating the PIL image from bytes, so filename parameter is missing. Attempting to set it using  file.filename = 'tmp.jpg' was not successful

Resolved with hacky workaround:
  img_bytes = file.read()
  img = Image.open(io.BytesIO(img_bytes))
  img.save('/tmp/tmp.jpg')

  # Reopen
  img = Image.open('/tmp/tmp.jpg')
  results = model(img, size=640)

Created https://github.com/ultralytics/yolov5/issues/2702

The underlying issue was resolved in https://github.com/ultralytics/yolov5/pull/2708


blazor not start with vscode

Hi
I have vscode 1.33.1 & C# extension 1.19.0 and dotnetcore 3.0.100-preview3-010431
I created a blazor project named Blazorr and build it.
But when I open project with vscode and start (F5) , it give us error :
A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'E:\Projects\Blazorr\bin\Debug\netstandard2.0'.
Failed to run as a self-contained app. If this should be a framework-dependent app, add the E:\Projects\Blazorr\bin\Debug\netstandard2.0\Blazorr.runtimeconfig.json file specifying the appropriate framework.
The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.
The program '[9964] Blazorr.dll' has exited with code -2147450749 (0x80008083).

Thanks for contacting us, @mammadkoma.
@NTaylorMullen can you please look into this? Thanks!

@mammadkoma you would probably get a faster response on StackOverflow.

@mammadkoma this may be helpful: https://stackoverflow.com/questions/38085430/the-library-hostpolicy-dll-was-not-found

Where is buildOptions and emitEntryPoint in my project? I can not find them.

New dotnetcore and blazor versions released but problems exists.

@mammadkoma are you able to run Blazor outside of VSCode? Aka dotnet run?

Yes dotnet run command works successfully.

I tested in both my labtop and my work pc and blazor template project not create correct launch file and don't start and get errors:
1. A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'E:\Projects\Blazorr\bin\Debug\netstandard2.0'.Failed to run as a self-contained app. If this should be a framework-dependent app, add the E:\Projects\Blazorr\bin\Debug\netstandard2.0\Blazorr.runtimeconfig.json file specifying the appropriate framework.The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.The program '[9964] Blazorr.dll' has exited with code -2147450749 (0x80008083).
2. The type or namespace name 'App' could not be found (are you missing a using directive or an assembly reference?) (CS0246) [Blazor]

Thanks @mammadkom, I can reproduce your issue. I'll look into it more.

@SteveSandersonMS this issue looks to be due to how VSCode boots a .NET Core app. It essentially does dotnet bin/path/to/debug/TheTFM/SomeBlazorApp.dll. I'm not sure what Blazor adds to the dotnet run pipeline but it looks like that's required in order to run the application. Is this something that's fixable on our side? If not, we'll need to make changes on the O# side to make F5 work in VSCode.
@mammadkoma if you want to semi-workaround your issue for now you can change your launch.json's program/args section to be:
            "program": "dotnet",
            "args": ["run", "${workspaceFolder}/bin/Debug/netstandard2.0/Preview4Blazor.dll", "--no-build" ],

Would this need to use the blazor dev server?

@SteveSandersonMS this issue looks to be due to how VSCode boots a .NET Core app. It essentially does dotnet bin/path/to/debug/TheTFM/SomeBlazorApp.dll. I'm not sure what Blazor adds to the dotnet run pipeline but it looks like that's required in order to run the application. Is this something that's fixable on our side? If not, we'll need to make changes on the O# side to make F5 work in VSCode.
@mammadkoma if you want to semi-workaround your issue for now you can change your launch.json's program/args section to be:
            "program": "dotnet",
            "args": ["run", "${workspaceFolder}/bin/Debug/netstandard2.0/Preview4Blazor.dll", "--no-build" ],

Thank you
program & args options worked and F5 starts project in my browser.
              "program":"dotnet",
              "args": [
                    "run",
                    "${workspaceFolder}/bin/Debug/netstandard2.0/Blazorr.dll",
                    "--no-build"
              ]

@NTaylorMullen It's what @pranavkm said - to launch a Blazor standalone app, you have to use the Blazor dev server (because there's nothing else to act as the server - your app code is purely what runs in the browser, and is not the web server itself).
The Microsoft.AspNetCore.Blazor.DevServer package includes MSBuild props that modify the behavior of dotnet run so that it launches the dev server. I don't know why VS code doesn't launch .NET apps by running dotnet run (since that's the standard).

Gotcha, alright going to log an issue over on the omnisharp-vscode side of the world to properly detect Blazor apps and "do the right thing" when generating assets to run a .NET Core app that happens to be Blazor.

Given that this is external going to track the resolution of this work here: https://github.com/OmniSharp/omnisharp-vscode/issues/3024


chore: project assets for text files are now documents (not artifacts)

Description
Txt is now a document not an artifact:
Utilizing the code editor for txt files

Setting as draft because i still need to test, im not familiar with the code-editor yet so i need to make sure its okay for text files and that this will save back correctly

If we're making .txt's documents, we should also move .md's in as well as I know that Pascale wants to be able to use README.md's to enrich.

If we're making .txt's documents, we should also move .md's in as well as I know that Pascale wants to be able to use README.md's to enrich.

https://github.com/DARPA-ASKEM/terarium/pull/1992/files#diff-8a3c209b372c58b5dd6788202c6fd60c3c59db9ca6c5b7e6ab77da6025c45ee3R366


CLOSE_WAITs with Netty 4.0.35 or higher.

I'm using a Netty based in a TCP socket server app that serves slow clients connecting over cell modems.
With Netty 4.0.35 or higher or 4.1, the server app comes to a grinding halt  after a few hours .
and netstat shows too many sockets in the CLOSE_WAIT OR SYN_RECV states.
With 4.0.34, I've never seen this issue, even after many weeks.. without a restart.
Google search suggests CLOSE_WAIT is a sign of the Server application not responding correctly to close initiated by the clients.  But the server application code seems to be calling the channel close method in all scenarios.
Additional info:

EPOLL or no-EPOLL on Ubuntu-14 does not seem to make any difference and we're using the most current 64-bit Oracle JRE 1.8.

I have KEEP_ALIVEs disabled  and TCP_NODELAY enabled on the NIO Transport.

Unfortunately I've been unable to get  tshark captures when the issue happened.

Any systematic way to troubleshoot this issue will be gratefully appreciated.
Thank you,
Ram

@ramtg - To clarify you are observing this issue with the latest Netty release? Can you provide a reproducer for this issue? Are you using autoRead? It would be interesting to see a heap dump and how many channels are still kicking around and also compare this against what channel's Netty has notified with channelInactive. What does a stack trace look like (are any EventLoop threads blocked)?

@ramtg ping

Yes, I observed the issue with the latest Netty 4.1.1 as well as  Netty 4.0.35 and higher.
No, I'm not using autoRead.
No, I don't have a reproducer yet, since we use a custom TCP protocol.
I'll  need to spend sometime to make a reproducer.
Currently my app is still  [stuck :-( ]  on Netty 4.0.34 with which I haven't seen this issue ever.
but  I'll capture a heap/stack dump if I ever hit the issue again IF I get a chance to try out Netty 4.1.1 again.
Thank you,
Ram

No, I'm not using autoRead.

If you are not using auto read is it possible there is a condition that you are not calling read()? Doing a read is typically how we detect that the peer has disconnected.

Currently my app is still [stuck :-( ] on Netty 4.0.34 ... I'll need to spend sometime to make a reproducer.

Plz ping us back when you can provide more data and hopefully we can help!

@Scottmitch
Correction:  I reviewed my application code. I didn't find an explicitly call  'setAutoRead()' anywhere.
Does that mean autoRead would then be true, by default ?

@ramtg - Autoread is enabled by default.

I think this ticket is related to this one (or even duplicated it). Would it be a problem to close a connection in one of the lifecycle methods (like channelActive or exceptionCaught) by calling ctx.channel().close() instead of ctx.close() (where ctx has type ChannelHandlerContext)?

ping @Scottmitch, @normanmaurer

BTW, Is it a problem if I for example set channel's auto_read property to false and for some reason, a client decides to close the connection? Would the server socket connection be closed normally?

@wahisoufiane, @ramtg - Is there any chance you guys could reproduce the problem?

@maseev   My app uses autoRead(true) (the default) and unfortunately I haven't had a chance to make a reproducer yet, since my app uses a custom message demarcation protocol.  The CLOSE_WAIT issue has been seen with only 4.0.35 or higher as well as 4.1.

@ramtg That's pretty sad. I'm experiencing the same problem and haven't been able to find a reproducer so far.

Would it be a problem to close a connection in one of the lifecycle methods (like channelActive or exceptionCaught) by calling ctx.channel().close() instead of ctx.close() (where ctx has type ChannelHandlerContext)

@maseev  - The primary difference is where the close method calls start in the pipeline.

ctx.close() - the "next" outbound handler
ctx.channel().close() - from the "beginning" of the pipeline.
This should not be a "problem" either way, but if one of your handlers overrides ChannelOutboundHandler.close(..) and doesn't propagate the close to the next handler in the pipeline this may be a bug.

BTW, Is it a problem if I for example set channel's auto_read property to false and for some reason, a client decides to close the connection? Would the server socket connection be closed normally?

It would be helpful to clarify if the peer that "sets the auto_read" to false is defined as the client or the server in this example. In general to detect a socket is closed "gracefully" by your peer you have to do some action on the socket ... this is generally accomplished by asking the selector to notify you when the action can be done ... then you try the action and figure out the socket is closed. If the socket is not closed "gracefully" (ethernet unplugged, power gets cut abruptly, tcp protocol not followed) you will have to have some sort of keep alive to detect a "zombie socket".

@Scottmitch

It would be helpful to clarify if the peer that "sets the auto_read" to false is defined as the client or the server in this example.

In this example, I meant that the auto_read property was set to false on the server side, as part of the backpressure implementation. I think it's worth mentioning that the same property is set to true in the channelWritabilityChanged method when the channel becomes readable again.

hi,I want to know what's the difference between ctx.channel().close() and ctx.close(), for example, in the service side, I want to elegant close client connection, ctx.channel().close() or ctx.close() is the most effective closing?Expect to answer.
thank you

@Scottmitch I just noticed, that IdleStateHandler calls the destroy() method only twice - when channelInactive or handlerRemoved is called. What will happen if the exception is thrown? Those scheduled features will continue to call lifecycle methods because read or write timer expires even though the connection is lost?

@christ258 Scottmitch explains the difference between ctx.channel().close() and ctx.close() here https://github.com/netty/netty/issues/5477#issuecomment-234106289
@maseev exception thrown from where? If a channel if closed as a result of the developer implementing exception caught and closing the channel ( either by ctx.channel().close() or ctx.close() ) I assume channelInactive will be called on all handlers in the pipeline (not from the position of the close invocation which will include IdleStateHandler) killing the timers.

@johnou
thank you,

@wahisoufiane, @ramtg I was able to track and fix this problem recently. It turned out that the problem was in the application logic (so, it wasn't Netty)  which apparently blocked the eventLoop threads from time to time. So, when the clients disconnected from the server, the event loop threads were blocked for a substantial period of time. Because of that, I'd constantly seen these TCP connections in CLOSE_WAIT state.
I would recommend you to grab YourKit profiler (which by the way has a free 15-days evaluation period). It has a nice feature that can detect deadlocks in your in your applications.
Hope this helps.

@maseev - Thanks for explaining ... this is not the first time I have seen blocking the I/O thread cause these symptoms.
@ramtg  - Can you confirm if you observe similar behavior?

@Scottmitch : I upgraded my app back to Netty 4.1.4 a week ago and
I haven't yet seen CLOSE_WAIT or SYNC_RECVD issue so far.
Also  I'll review and profile my code to make sure the Netty threads are not blocked for too long.
Thank you.
Ram

thanks for following up @ramtg!
BTW our friends at Twitter posted a blog post on this issue https://finagle.github.io/blog/2016/09/01/block-party/