Our test result reporting does not take into account fails after test done

Currently, then you run the full coordinated run on desktop, you might see the end report suggesting that everything passed, but in the logs, there might be output like:
DEBUG createPeerListener: error on incoming stream - Error: Channel destroyed

ok 331 response body should match testData

ok 332 must be started

not ok 333 .end() called twice
  ---

    operator: fail

    at: end Thali_CordovaPlugin/test/www/jxcore/bv_tests/testThaliMobileNativeWrapper.js:157:35)

  ...

The tape test report reports these as failures, but we don't, because we report to coordination server after each test if there were failures, but don't take into account in case a failure in test occurs after the test itself has completed.
This is not super critical and often the issue is just not cleaning up all events handlers at the end of each test. However, this results into tape test report suggest failures we our coordination server thinks all went fine.

@yaronyg: From my perspective, this can be left to icebox, but wanted to create this issue so that you and others become aware of it.

Yeah, I saw this yesterday when I was running tests. I actually found and fixed the tests but this particular bug would be a real pain to fix since it requires us to go run back to the coordinate and undo a success. Certainly something for the icebox.

@artemjackson This is a relatively easy first bug for you. The issue is that when we run a test in node there are three parts to each and every test. There is setup, the test and then tear down. When we run a 'coordinated' test our coordinated test framework which lives under test/TestServer waits for each device to connect to it and say "I'm ready to run setup". So the test server just waits until everyone says "I'm reading to run setup" and then once it gets o.k. from everyone it's been told to expect then it sends out a command 'run setup'. Once everyone says 'I ran setup' then it says 'run test' and same thing with 'run teardown'. It will keep going until the tests are done. All of this logic btw is defined in test/TestServer/UnitTestFramework.js.
The problem is that we have had failures in tear down that don't seem to be noticed by CI. Looking here it seems like we should notice when a test fails. And when I look here it looks like the client is sending information on setup and teardown success or failure. So what's going on?
Did the bug get fixed and we didn't notice?
So the immediate work item is to add tests to testUnitTestFramework that confirm if we throw an exception or if we fail a test (e.g. call t.fail() for example inside of setup or teardown) then the unit test framework will properly notice this.
Then you need to setup a local test of the coordinator (e.g. the code in test/TestServer) to make sure that if we get an error in setup or teardown that this will be properly reflected in the test results.

@yaronyg I've added a test file that fires test failures during the setup and teardown.
According to manually running coordinated tests logs all failures were properly handled by UnitTestFramework.
So, there are some questions.

Should I add an unit-test that checks proper flow of error handling in the UnitTestFramework?
If so, there should be an ability to inject a testServer instead of hard-coding it. With injection of the testServer it will be possible to mock it for testing proper error handling of the UnitTestFramework.

We really need to write a test that validates that we properly detect failures in setup and teardown but it's not high enough priority at the moment given that manual testing shows that we handle it properly.


Remove unnecessary Casting

Travis CI error is not related (not to selt: make it uniform the maven targets executed in GH actions and Travis CI)


Update video.rst

Reviewed: Minor changes made. Please let em know if you want me to revert the changes made to the button text.

The emboldening of button text is perfect.


ADB protocol changed, newer versions no longer use checksum

New Android versions no longer use checksums for the protocol, this results in an out-of-range DataView access:
https://android.googlesource.com/platform/system/core/+/master/adb/adb.h#47
// ADB protocol version.
// Version revision:
// 0x01000000: original
// 0x01000001: skip checksum (Dec 2017)
#define A_VERSION_MIN 0x01000000
#define A_VERSION_SKIP_CHECKSUM 0x01000001
#define A_VERSION 0x01000001

I added a very crude workaround for this in my fork at https://github.com/klausw/webadb.js/commits/master , but I think this would need more work to be integrated more cleanly. The current send/receive methods are static, so there's no clean way to pass along a runtime-detected version flag.
Many thanks for the tool by the way! My planned use case is to run adb tcpip 5555 so that I can use wireless debugging on ChromeOS/Crostini which currently doesn't support USB access.

FYI, the version I had yesterday wasn't working right, but now it seems to be successfully connecting to a Pixel XL.

Hey hey, thank you for the heads up on the protocol but what's your use case? tcpip, I don't get it.

I'm using a Chromebook as a development system, and that doesn't currently have any way to use ADB via USB unless you change it to developer mode. ADB's TCP/IP mode works fine, either from the Crostini Linux environment or via SSH port forwarding from a remote system.
The issue is that you need ADB-via-USB to activate ADB TCP/IP mode, and it's not persistent across phone reboots. This simple hack makes it possible to do this step from the Chromebook so that I don't need access to a separate computer to do this.


[Feature Request] Can not listen form onsubmit event?

Existing Component
Yes
Component Name
el-form
Description
I encountered a problem using the el-form build build form, when the user input is completed press Enter, automatically submitted. The I want to try to intercept this behavior, I try to monitor the onsubmit form event, but failed, and I did not find the amount from the document description.

https://github.com/ElemeFE/element/blob/dev/FAQ.md

😅

@Leopoldthecoder Thanks.


website taking much time to open and bad hovering effect

Website takes much time to load and the animation while loading the website is not good. secondly the hovering effect on cards can be done better the zoom-in effect is slower .
we can add any other text or animation or illustration while loading the website and change the timings of hovering effect

@jinalraghwani18 Can you please raise this issue using the issue templates So that the issue will be more clearer. Waiting for this issue


Improved the Audio Interaction for the Demo

Added a useSound command line flag that controls whether to use speech output or not.
Made most speech output run in the background (i.e., non-blocking)
Added a useAlexa parameter that dictates whether to wait to receive a food name from Alexa, or just ask for command line input
Slightly changed the speech outputs over the course of the demo

The merge order should be:

emprise/gen3-integration --> main
amaln/batch_size_params --> main (this should be paired with the corresponding AIKIDO PR)
amaln/audio_improvements --> main

(The second merge is not a strict dependency, but will make merging easier)

The second commit are some additional changes made for the demo. I'm ambivalent about whether they are included in this PR or not -- I can spin off a separate PR if reviewer(s) prefer.

Ready for re-review


mysqldump: Got errno 32 on write

mysqldump: Got errno 32 on write
[2018/08/02 14:36:47] [info] main.go:95 context is done with context canceled, closing
[2018/08/02 14:36:47] [info] river.go:313 closing river
[2018/08/02 14:36:47] [info] canal.go:224 closing canal
[2018/08/02 14:36:47] [info] binlogsyncer.go:140 syncer is closing...
[2018/08/02 14:36:47] [info] binlogsyncer.go:155 syncer is closed
[2018/08/02 14:36:47] [info] master.go:54 save position (, 0)

please list full logs above the errno 32.
How do you run the application?

qureshi@qureshi:~/go_work/src/github.com/siddontang/go-mysql-elasticsearch$ go-mysql-elasticsearch
[2018/08/02 20:19:26] [info] binlogsyncer.go:111 create BinlogSyncer with config {1001 mysql <IP_ADDRESS> 3306 root   utf8 false false  false false 0 0s 0s 0}
[2018/08/02 20:19:26] [info] dump.go:140 try dump MySQL and parse
[2018/08/02 20:19:26] [info] status.go:53 run status http server <IP_ADDRESS>:12800
[2018/08/02 20:19:26] [info] dump.go:190 exec mysqldump with [--host=<IP_ADDRESS> --port=3306 --user=root --password=123 --master-data --single-transaction --skip-lock-tables --compact --skip-opt --quick --no-create-info --skip-extended-insert --hex-blob --default-character-set=utf8 go_elastic user_master]
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Got errno 32 on write
[2018/08/02 20:19:27] [info] main.go:95 context is done with context canceled, closing
[2018/08/02 20:19:27] [info] river.go:313 closing river
[2018/08/02 20:19:27] [info] canal.go:224 closing canal
[2018/08/02 20:19:27] [info] binlogsyncer.go:140 syncer is closing...
[2018/08/02 20:19:27] [info] binlogsyncer.go:155 syncer is closed
[2018/08/02 20:19:27] [info] master.go:54 save position (, 0)
[2018/08/02 20:19:27] [error] canal.go:210 canal dump mysql err: make insert ES request err table go_elastic.user_master has no column name tag, close sync
[2018/08/02 20:19:27] [error] river.go:299 start canal err make insert ES request err table go_elastic.user_master has no column name tag, close sync
qureshi@qureshi:~/go_work/src/github.com/siddontang/go-mysql-elasticsearch$

you can google mysqldump: Got errno 32 on write

I tried all solution but didn't work, If I found I will post here for others.

seem you can disable mysqldump and see whether this is the problem for the mysqldump or others.

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
panic: interface conversion: interface {} is nil, not string
goroutine 26 [running]:
go-mysql-elasticsearch/vendor/github.com/siddontang/go-mysql/dump/dump.go:204 +0x1a9
mysqldump: Got errno 32 on write


Added details about tag support for AWS log driver

Describe the proposed changes
Added details about the new flag for AWS logging. Pending https://github.com/docker/docker/pull/27707 is merged.
Project version
1.13 milestone hopefully
Related issue or PR in another project
No issue, but docker/docker PR: https://github.com/docker/docker/pull/27707
Please take a look
cc @johndmulhausen @mstanleyjones @londoncalling @samuelkarp
ps: Previous PR was deleted since it used the wrong branch

FYI you could have kept the old PR and just rebased it on a new branch. I can show you how if it comes up again. Github makes it pretty easy.

Thanks, @FrenchBen ! :)


UI: Catalog (Launch Page) drop-down menus do not dismiss

Version: v2.2.0
What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

At the global level (or project) launch Apps, click the Launch button to view the catalog listings.
Click on either of the drop-down menus. Pick something.

Result:
The drop downs will not dismiss (go away) after you pick something. They stay on the screen until you manually click off the menu.

Version: Master (4/11/19) ImageID: 0d755e769e77
This is now working as expected. The drop-down menus now dismiss after you pick an item from them.


Enhancement: Allow for a shared cache among local ctrld instances

I'm currently waiting for a few Raspberry Pis in the mail to set up to run ctrld, but once they arrive, I plan on setting them up with identical configurations for HA purposes.  But, it'd be nice if they shared a cache for DNS entries (particularly for situations where the option to serve stale entries is enabled, as it could yield different results depending on which host was reached).
So, I'd like to propose adding an option to allow configuring multiple local instances to share a cache.  Something like Redis could be an option, but it'd kind of be a pain to set up a separate software stack just for DNS (especially as a cluster for HA), so maybe allow a configuration option to allow the instances to identify each other by IP address and then they can elect a node to hold the cache for as long as that node continues to be available or some such?

I fail to see the point of adding such complexity, all for the sake of a cache. Cache is exactly that - a cache, and should not be used with TTLs higher than 3600, as it can break some sites if it's set any higher than that. Running 2 ctrld processes on the same machine is completely pointless, and having a remote Redis instance just to serve cached responses is a massive overkill, building master election mechanism is even more crazy.

I'm not talking about two instances on the same machine, but two instances on separate machines on the same local network.  But, if it's more complexity than is desired for the project, that's fair.


Request: Token Speed Highlighting for GURPS GGA 0.17.7

Thank you for an excellent module!
It works in most ways with GURPS GGA 0.17.7 https://github.com/crnormand/gurps except to Token Speed Highlighting.
In GURPS, your Move changes based on your Basic Move and then Encumbrance, and you can also "sprint".  This is best shown as a basic distance in hexes you can move as normal move (perhaps in green) and then an extra hex (perhaps in orange) for a "sprint" and then in red beyond that.  Elevation Ruler doesn't pick up on the Move score for the token so the colour never changes.
It also gives a negative number (in brackets) that doesn't seem to correspond to the GURPS range modifiers, it seems to increase by 1 a little early.  Not sure where it picks those numbers up from?

Added in v0.9.12. The negative number in brackets is the system, not ER, I think. I think it refers to the number of action points (or whatever is the GURPS equivalent) the move would cost?

Added in v0.9.12. The negative number in brackets is the system, not ER, I think. I think it refers to the number of action points (or whatever is the GURPS equivalent) the move would cost?

OMG!  Such speed and it's working beautifully!  Thank you so much! :-)


Chat-Sign * is not displayed in the message if this message consists only of emojis

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to URL https://staging.new.expensify.com/
Login with any account
Go to any chat
Send message that consists of only three emojis
Click Edit message
Add some * between emojis

Expected Result:
If we consider * as a markdown (bold), then it does nothing for emoticons and it need to be displayed in the message (as in Slack for example).
Actual Result:
Sign * is not displayed in the message if this message consists only of emojis
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/4d910fe1-ab36-4939-9295-5d1927e924d9
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
* is not displayed in the message if this message consists only of emojis.
What is the root cause of that problem?
The root cause of this issue is that we render bold syntax for text consists only of emojis. For example input
*😄*😄*😄*

is translated into html
😄😄😄

What changes do you think we should make in order to solve the problem?
To fix this issue, we should skip rendering bold syntax if the text only consists of emojis. To achieve this, we can define a new regex EMOJIS_ALL after this line
EMOJIS_ALL: /^([\p{Extended_Pictographic}\u200d\u{1f1e6}-\u{1f1ff}\u{1f3fb}-\u{1f3ff}\u{e0020}-\u{e007f}\u20E3\uFE0F]|[#*0-9]\uFE0F?\u20E3)*$/gu,

to check if text consists of only emojis. And check if the text part of bold syntax contains emojis only in the replacement method
We change it
replacement: (match, g1) => (g1.includes('
') || this.containsNonPairTag(g1) ? match : `<strong>${g1}</strong>`),

to
replacement: (match, g1) => {
    // We remove spaces in g1 before test regex EMOJIS_ALL
    if (g1.replace(/\s/g, '').match(CONST.REG_EXP.EMOJIS_ALL)) {
        return match;
    }
    return g1.includes('
') || this.containsNonPairTag(g1) ? match : `<strong>${g1}</strong>`;
},

By doing so, we won't render bold syntax for input
*😄*😄*😄*

and won't break existing unit test cases of expensify-common.
If you want to verify more corner cases of this issue, below test cases will be helpful
*😄😄😄*

*😄😄 😄*

*😄😄😄
😄😄😄*

italic and strikethrough rule have similar issue, so we can apply same fix for them as well.
What alternative solutions did you explore? (Optional)
N/A

I'll test soon

@mountiny and @aimane-chnaif -- Based on this GH: https://github.com/Expensify/App/issues/14676#issuecomment-1571973632 I think we should close this GH. We are planning to not allow formating, right? Please let me know if I'm wrong and we can keep this one open.

yes, I think we can close this super narrow usecase


Large Font size

Checklist

[X] I am able to reproduce the bug with the latest version.
[X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
[X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
[X] This issue contains only one bug, that only occurs in Squawker

Affected version
v3.6.0/1 (regression)
Steps to reproduce the bug

Try to change Font size under Theme page in Settings
Cant have a font size smaller than 44px

Expected behavior
Range used to consist of much smaller sizes.
Actual behavior
Cant select smaller than 44px
Screenshots/Screen recordings

Logs
No response
Affected Android/Custom ROM version
Android 10
Affected device model
No response
Additional information
Updating to these versions will have the smaller font sizes still selected, but will break when changed+saved.

This is fixed in the last build.
You could install this build if you cannot wait for a new version.


request call permission, can't click to allow

easypermission version -> 0.2.1     phone model -> nexus5  6.0     has bean root
    @AfterPermissionGranted(REQUEST_PHONE_PER)
    private void methodRequestPhonePer() {
        String[] perms = {Manifest.permission.READ_PHONE_STATE};
        if (EasyPermissions.hasPermissions(this, perms)) {
            // login
            login();
            return;
        }
        EasyPermissions.requestPermissions(this, getString(R.string.per_phone), REQUEST_PHONE_PER, perms);
    }

    private void login() {
        new LoginPresenter(TaskProvider.provideTasksRepository(this), this);
        mPresenter.start();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
    }

    @Override
    public void onPermissionsGranted(int i, List<String> list) {
        login();
    }

    @Override
    public void onPermissionsDenied(int i, List<String> list) {
        PermissUtils.somePermissionPermanentlyDenied(this, list);
    }

@BinarySatan what do you mean "can't click to allow"?

@samtstern  yes,  It should be problem with my cell phone.
when I refuse a permission, request permission again and click no longer ask, allow button  grayed。

@BinarySatan can you try it on another device maybe?  There's no reason for the allow button to be disabled, I don't think this is an issue with EasyPermissions.

@BinarySatan it's been a few weeks since your last update so I am going to close this issue.  If you have more information, please comment and I will re-open.


App threw an error during load

Electron app throwing on start

[0] App threw an error during load
[0]
[0] Error: Attempted to register a second handler for 'print-pdf'
[0]     at IpcMainImpl.handle (node:electron/js2c/browser_init:193:337)
[0]     at Object../apps/electron-app/src/app/events/electron.events.ts (/dist/apps/electron-app/main.js:326:47)
[0]     at __webpack_require__ (/dist/apps/electron-app/main.js:3647:41)
[0]     at /dist/apps/electron-app/main.js:3703:85
[0]     at /dist/apps/electron-app/main.js:3754:3
[0]     at Object.<anonymous> (/dist/apps/electron-app/main.js:3759:12)
[0]     at Module._compile (node:internal/modules/cjs/loader:1116:14)
[0]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1169:10)
[0]     at Module.load (node:internal/modules/cjs/loader:988:32)
[0]     at Module._load (node:internal/modules/cjs/loader:829:12)

could you please provide a piece of code that throws the error? thanks!


log to stdout by default (#34)

log to stdout by default (#34)

Codecov Report

Merging #747 (f005d33) into main (7d9f590) will decrease coverage by 0.10%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #747      +/-   ##
==========================================
- Coverage   80.38%   80.27%   -0.11%
==========================================
  Files          98       97       -1
  Lines       10701    10687      -14
==========================================
- Hits         8602     8579      -23
- Misses       1609     1622      +13
+ Partials      490      486       -4

Impacted Files
Coverage Δ

pkg/cluster/config.go
94.82% <100.00%> (+0.28%)
:arrow_up:

pkg/util/dynamicobject/dynamicobject.go
75.00% <0.00%> (-16.67%)
:arrow_down:

pkg/object/httpserver/runtime.go
58.46% <0.00%> (-2.50%)
:arrow_down:

pkg/filters/filters.go
67.34% <0.00%> (-2.05%)
:arrow_down:

pkg/filters/validator/basicauth.go
77.41% <0.00%> (-1.39%)
:arrow_down:

pkg/cluster/member.go
71.88% <0.00%> (-0.13%)
:arrow_down:

pkg/cluster/cluster.go
60.10% <0.00%> (ø)

pkg/util/jmxtool/common.go
81.33% <0.00%> (ø)

pkg/protocols/httpprot/http.go
85.93% <0.00%> (ø)

... and 7 more

Help us with your feedback. Take ten seconds to tell us how you rate us.


MusicControls notification doesn't notice app being killed

I noticed that the MusicControls notification keeps getting shown when my app is "killed" by Android after a period of inactivity. If the app is "paused", i.e. put in the background, and I terminate it manually (by swiping it from the recent apps list), the MusicControls notification is closed after a short delay (1-3 sec).
If I keep it in the background, e.g. over night, the app will get killed silently at some time. Apparently, MusicControls does not notice this, and prev/play/next buttons will no longer work. Clicking the track image will restart the app, splash screen and all, though.

Hello,
Thank you for this precise description. I experienced the same issue, but I was not able to find a proper solution :(
There is a "notification killer service" in the plugin that should kill the notification when the app dies. It seems that the service detects when the user manually kills the app, but not when the system does it after some time ...

I'm by no way an expert in Android system programming, but if I understand correctly, Android may literally "kill" an app running in the background at any time without further notice. Since this doesn't seem to trigger the "notification killer service", I can think of two possible solutions:

prevent an app in the background from being killed as long as the MusicControls notification is active; https://github.com/katzer/cordova-plugin-background-mode seems to do something like that, but I guess this would open a whole can of worms (store compliance included)

add a "ping" broadcast that's sent by the MusicControls notification every N seconds; this wouldn't be passed to Cordova event callbacks, but handled directly by MusicControlsBroadcastReceiver, by updating the notification. If a "ping" message is not handled by the app for a given amount of time, the notification can assume the app is "dead" and exit (or whatever the killer service does).

As I said, I don't know much about Android native programming, so I don't know if my proposed solution/workaround is feasible in any way...


Self test, and CI for PRs

It could be neat to have a small self contained "self test" (and a CI with it, e.g. Travis, for all PRs) like:
docker build -t fabric8/s2i-java:latest
s2i build s2i-java-example fabric8/s2i-java fabric8/s2i-java-example

and then ideallly, not 100% sure how to do this best, something like:
docker run -p 8080:8080 vorburger:s2i-java-example &
# TODO how to do simplest possible HTTP GET http://localhost:8080 and fail/pass?
# TODO how to best stop docker again
kill $!

I'm happy to move the https://github.com/vorburger/s2i-java-example repo under https://github.com/fabric8io-images, or even just directly contribute that into this repo into some place like s2i/java/example, if either could be of interest or help to get this done.

and, more minor but while we are at it might as well, if we do something like this, then I guess it should fish-pepper right as part of it, to avoid mistake in contributions changing images/ but not templates/ (I initially made that mistake locally).

and to avoid e.g. "fixing the jboss community image but breaking the RHEL image" (or the other way around..) which @jamesnetherton picked up on e.g. in https://github.com/fabric8io-images/s2i/pull/114, I guess this really should run both the images/jboss as well as the images/rhel ... but that fails for me:
Sending build context to Docker daemon 82.43 kB
Step 1/28 : FROM jboss/openjdk18-rhel7:1.1-7
Trying to pull repository docker.io/jboss/openjdk18-rhel7 ...
Trying to pull repository registry.fedoraproject.org/jboss/openjdk18-rhel7 ...
Trying to pull repository registry.access.redhat.com/jboss/openjdk18-rhel7 ...
Trying to pull repository docker.io/jboss/openjdk18-rhel7 ...
repository docker.io/jboss/openjdk18-rhel7 not found: does not exist or no pull access```

Yes, an example makes much sense. 'happy to add it directly to this repository, to keep it simple. Fancy doing a PR ?
wrt/ pulling from registry.access.redhat.com you probably need access to the Red Hat registry. Haven't tried this since quite some time as it build by the product team. @jamesnetherton  Any idea what the requirements are for building the rhel based images ?

Fancy doing a PR ?

see https://github.com/fabric8io-images/s2i/pull/127 for a start and lets discuss any feedback on that? You'll figure that the idea is that running the test.sh performs this "self test" initially described above here. (And as of this moment right now, that will actually fail - because of #113 - great, TDD at it's best! :smiling_imp:)

wrt/ pulling from registry.access.redhat.com you probably need access to

unless @jamesnetherton can provide some guidance how to do this right upstream, lets just wrap this up at least for the community image, and forget about self testing the rhel based image here, for now? Just because from what little I understand of such matters, I somewhat doubt that there is an easy way (with like a test credential or something?), for a test script of the java/images/rhel/ here in an upstream project like this. Probably not worth it then - but having automated test coverage at least for the community image (i.e. java/images/jboss/) would be a great step already I guess.

https://github.com/fabric8io-images/s2i/pull/136 contributes a working test.sh, which we could probably now use from some service like CircleCI, or Travis. I see that this project actually has a circle.yml, but that does not seem to cause any builds to run on PRs ... does anyone know why? Is there any preference for CircleCI, or can I go ahead and see if we can get this working on https://travis-ci.org, which I have a little bit of experience with?

We are currently quite happy with circle, so not really keen on changing to travis.
The reason why the build is running only on master or on tags is that because the build is only used for pushing images to Docker hub. Obviously, you dont want to push an image for a PR build.
But its easy to add a CI test for PR as well. Let's get test.sh fixed first and then check how to adapt circleci.yml ...

Let's get test.sh fixed first and then check how to adapt circleci.yml ...

@rhuss with #136 merged, we could do this now? Dunno exactly what is needed - more than #149 ?

@rhuss thought about this again while working on the Java 11 stuff (#160) ... running the [./test.sh] (https://github.com/fabric8io-images/s2i/blob/master/test.sh), just improved in #183, on all PRs would be really useful for non-regression ... if you would be able to find the cycles to get that set up on CircleCI, that would be really cool!

I currently manually run ./test.sh on every change manually locally to make sure I don't break anything, but others of course will not (and I would also prefer if PRs would self-verify, instead you having to trust me).

This may be as simple as adding ./test.sh to https://github.com/fabric8io-images/s2i/blob/master/.circleci/config.yml ...

Fixing #223 req for #149 would wrap this up.


[BUG] Rename everything in the package from discord to discord_self

Summary
We can't use both versions of Discord because of the package name
Reproduction Steps
Try importing discord when you have both installed.
Code
Relevant code that shows the bug.
import discord

Expected Results
It should import only one but doesn't do it because I have both versions
This could be fixed if you added bot: bool back to the source code but atleast default it to False.
Because that's the whole reason I want 2 of the versions, because you don't support bot.
Actual Results
Imports bot discord
System Info
Run python -m discord --version and paste the information below.
- discord.py v1.7.3-final
- aiohttp v3.7.4.post0
- system info: Linux 4.9.186-perf-g10af704 #1 SMP PREEMPT Sun Dec 27 14:28:21 WIB 2020

Checklist
Let's make sure this issue is valid!

[X] I am using the latest released version of the library.
[X] I am using a user token.
[X] I have shown the entire traceback and exception information.
[X] I've removed my token from any code.

Additional Information
Put any extra context, weird configurations, or other important info here.

did it myself.


Proof-of-concept: pretty print URLRequest body when JSON

A few things to consider:

Should this be baked into .raw or should it have another name so that people can choose. This might be important if people really want to snapshot exactly what is in the URLRequest.

Should we check for application/json or should we always try pretty printing?

Should we check for application/json or should we always try pretty printing?

Maybe even more general testing a "\bjson\b" regex would work, since people may be using things like text/json or application/json; charset=utf8.


chore(docs): Updates to token contract

Updates to the docs around recent token contract changes (https://github.com/AztecProtocol/aztec-packages/pull/9606)
closes https://github.com/AztecProtocol/dev-rel/issues/444

Docs Preview
Hey there! 👋 You can check your preview at https://673bad85ce47bb3293b30260--aztec-docs-dev.netlify.app


Add application detection rules ordering

For application detection rules, there is an API which enables a user to define the ordering of application detection rules.
Add support for this API in Dynatrace Monitoring as Code.

That's the API: https://www.dynatrace.com/support/help/dynatrace-api/configuration-api/rum/application-detection-configuration/reorder-rules/

Ordering functionality will be, according to swagger docs, available with all settings 2.0 configuration. There is insertAfter parameter.

Rule ordering can be achieved as a workaround by using references between configurations: https://dynatrace-oss.github.io/dynatrace-monitoring-as-code/Guides/ordering_app_detection_rules
Settings 2.0 API supports ordering via insertAfter (but might not be in scope of initial Settings support)
As such closing the old feature idea for handling this on the config api


ChannelCandidateInvestigator should store more information

Based on discussion here
clboss should record why it made such proposal to make channel to a node such as by distance, earningfee, listpays. It should also keep track of how often a node is found by EarnedFee, ListPays or other matrics.
Not sure if now it only stores 30 nodes, but there shouldn't be limit. When clboss has fund and ready to make channels, it should calculate the score from all information to pick top nodes.

Not sure if now it only stores 30 nodes, but there shouldn't be limit.

A thing I have been contemplating actually would be to periodically remove older entries.  The logic here is that a recommendation made long in the past may have gotten stale in the meantime, so it is better to just remove older entries in favor of newer ones.

I was going through that table looking for nodes to open channels with. The first thing I considered was the median fee that the node set. Many on the list set pretty high fee, so they are unlikely to route a lot, and would be costly to rebalance. Then I looked for their patrons to see if I should make channels with them instead, basing on the fee/channel sizes to my original target nodes. Some were still not suitable, so I looked further by doing getroute (excluding some useless drained channels that I opened by mistake) to the recommended nodes and their patrons and getroute among themselves. Finally I found 1 node that set low fee with less than 3 hops away from my targets. So I just opened a big channel to this one instead.
Of course this could lead to centralization, but it's very practical. If clboss cares of decentralization it can try to find 3 of these nodes, for example, to have good reachability & redundancy to all the nodes & patrons on the list. So then it can remove/or mark the nodes on the list as solved.
So when clboss has some fund and ready to open N channels, should it do some getroutes and data crunching to find the N candidates among the candidates instead of lottery ?


Add OpenFaaS to -> event-based compute

I’d like to suggest OpenFaaS for the project landscape in the event-based compute section. https://github.com/openfaas
OpenFaaS is a framework for building Serverless functions for Docker and Kubernetes. It has over 3k GitHub stars and was the top trending Golang project for several days in August.
As the author I’m planning to give an overview to the Serverless WG at the next meeting - Aug 24th 2017.
Logo: Logos with side text or stacked is available in SVG/EPS format or other on request.
logos.zip

URL updated to https://github.com/openfaas

Thanks, Alex. It will be in the next version.

Great. Do you have a timeline?

Next couple weeks, hopefully.
--
Dan Kohn<EMAIL_ADDRESS>Executive Director, Cloud Native Computing Foundation https://www.cncf.io
+1-415-233-1000 https://www.dankohn.com
On Fri, Oct 6, 2017 at 2:47 AM, Alex Ellis<EMAIL_ADDRESS>wrote:

Great. Do you have a timeline?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cncf/landscape/issues/137#issuecomment-334672770, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AC8MBvdYBBOdNRu2huXCHzDRvCTIAu-uks5spcz1gaJpZM4O6kNt
.

Hi @alexellis, closing as this update was included in the most recent version. https://github.com/cncf/landscape#current-version

Shawn thank you - looks great. 👍


JOSS: Mathematics section

While referring the reader to relevant sources is a good approach to keeping the paper concise, the section needs to be filled with at least an overview and a discussion of why each of the sources listed are relevant
cc https://github.com/openjournals/joss-reviews/issues/3490

Addressed in https://github.com/klevis-a/kinematics-vis/commit/36b7553d6086dc6f7d01d2cc24d1452f0ecb879c.


SetMeterProvider panics if two connections are open

Describe the issue
Dependabot opened the following PR upgrading several opentelemetry dependencies in an open source project I'm maintaining.
Accepting the change causes panics for some reasons that are unclear to me, but that I managed to reproduce in a simpler script here.
Here's the list of upgrades.

Package
From
To

go.opentelemetry.io/otel/exporters/prometheus
0.51.0
0.52.0

go.opentelemetry.io/otel/exporters/stdout/stdouttrace
1.29.0
1.30.0

go.opentelemetry.io/otel/sdk
1.29.0
1.30.0

go.opentelemetry.io/otel/sdk/metric
1.29.0
1.30.0

go.opentelemetry.io/otel/trace
1.29.0
1.30.0

go.opentelemetry.io/otel/metric
1.29.0
1.30.0

I am opening the issue in this project because it only manifests with this tracing library, and splunk-otel-go version 1.19.0 with otel libraries at version 1.29.0 did not manifest this behavior.
Steps to reproduce the issue:
Use https://github.com/blkt/panicrepro to reproduce.
Branch main panics.
Branch working-version does not panic.
Attempted solutions and workarounds
No workarounds were attempted.
Expected behavior
Opening two connections should not cause any sort of panic.
Environment
Complete the following information:

OS version: macOS 14.6.1
Go version: 1.23.1
splunk-otel-go version: 1.20.0

This looks related to https://github.com/open-telemetry/opentelemetry-go/issues/5827

@blkt, are you still able to reproduce it with https://github.com/signalfx/splunk-otel-go/releases/tag/v1.22.0?

@pellared we're already using version v1.22.0 in production, works for us.
https://github.com/mindersec/minder/blob/main/go.mod#L65-L66


RESOURCE_EXHAUSTED

dalle-backend      | --> Starting DALL-E Server. This might take up to two minutes. Traceback (most recent call last):aded (0.000 MB deduped)ed (0.000 MB deduped) dalle-backend      |   File "app.py", line 65, in <module> dalle-backend      |     dalle_model = DalleModel(args.model_version) dalle-backend      |   File "/app/dalle_model.py", line 70, in __init__ dalle-backend      |     self.params = replicate(params) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/flax/jax_utils.py", line 56, in replicate dalle-backend      |     return jax.device_put_replicated(tree, devices) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/jax/_src/api.py", line 2940, in device_put_replicated dalle-backend      |     return tree_map(_device_put_replicated, x) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/jax/_src/tree_util.py", line 200, in tree_map dalle-backend      |     return treedef.unflatten(f(*xs) for xs in zip(*all_leaves)) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/jax/_src/tree_util.py", line 200, in <genexpr> dalle-backend      |     return treedef.unflatten(f(*xs) for xs in zip(*all_leaves)) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/jax/_src/api.py", line 2928, in _device_put_replicated dalle-backend      |     buf, = dispatch.device_put(x, devices[0]) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 1202, in device_put dalle-backend      |     return device_put_handlers[type(x)](x, device) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 1234, in _device_put_device_array dalle-backend      |     x = _copy_device_array_to_device(x, device) dalle-backend      |   File "/usr/local/lib/python3.8/dist-packages/jax/_src/dispatch.py", line 1261, in _copy_device_array_to_device dalle-backend      |     moved_buf = backend.buffer_from_pyval(np.asarray(x.device_buffer), device) dalle-backend      | jaxlib.xla_extension.XlaRuntimeError: RESOURCE_EXHAUSTED: Failed to allocate request for 392.75MiB (411828224B) on device ordinal 0
I use 2x 1060 6GB version so I don't understand why it fails to allocate 400MB of memory

I got the same error for 380 but just have a single 2080 super

There is a temporary workaround which is recreating the image then it will work for a few hours-days

There is a temporary workaround which is recreating the image then it will work for a few hours-days

Although I suppose I'm too new to docker to know what you mean.


Elasticsearch stat collection

This is probably not really merge ready, but wanted you guys to see this in case it is useful to any of you.  Works great for my purposes.   This lets me graph the instance levels in kibana.
Probably needs to be an optional submodule but I'm not really good with modules.
Hope this is useful ;)

nice. id foresee a config option for output to ES (like Email) where you would store the server, port, index name, etc. alternatively, you could rewrite this library into or use an existing beat


Fix for Maps.Search: Remove test delay call once service race conditi…

Fixes Azure/azure-sdk-for-net#31019
Remove unnecessary test delay

I remember removing the test delay will cause the tests flacky. That's why we added the test delay.

Let's try to merge it and see if the following test will fail again or not.


Ray in controller

Hi There,
In the following line of code, and the one after that there are calls to the "ray" function, but that function is not available.
link to code where issue occurs
I just clean installed this package into my project (PHP8/L8) and got the following error:
Error
Call to undefined function Spatie\MailPreview\Http\Controllers\ray()
https://standaard-cms-v3.test/spatie-mail-preview?file_type=eml&mail_preview_file_name=969172_subject

Probably you did not install the ray package properly.
Please open up an issue at spatie/ray mentioning a small app to demonstrate the problem.

Hi @freekmurze,
sorry if i don't understand correctly, but why should i install the ray app to use Laravel mail preview? It is a dev package according to the composer. Composer didn't install Ray, only when i manually installed ray the project works fine.
imho this package should also work fine without Ray? Or ray should be a dev dependancy.

I'm confused... It's already a dev dependency: https://github.com/spatie/laravel-mail-preview/blob/7c24bad39919f0c66c3a9310a7db9749545c4eaf/composer.json#L26
So if you require laravel-mail-preview regularly, composer shouldn't pull in the ray package.

I'm confused... It's already a dev dependency:
https://github.com/spatie/laravel-mail-preview/blob/7c24bad39919f0c66c3a9310a7db9749545c4eaf/composer.json#L26
So if you require laravel-mail-preview regularly, composer shouldn't pull in the ray package.

Indeed, it does not pull ray. But i changed my last line in previous comment. I think Ray SHOULD be a regular dependency instead of dev, this because in the code there is a direct link to Ray so the function should exists to let the laravel-mail-preview package work properly.

I've removed the stray ray calls and tagged a new version.


Task5

Issue: #6
Task 5 completed, used ls and ls -a commands
Screenshot
https://drive.google.com/file/d/1lO8A9v_n765Pu8AjIwaNvJY1vHkjELGE/view?usp=sharing

Hey @PriyamJChakrabarty
Thanks for opening this PR 🚀. Mentor will review your pull request soon and till then, keep contributing and stay calm.
Thanks for contributing in OpenCode'24 ✨✨!

Hey @PriyamJChakrabarty
Your PR has been merged 🥳🥳 and you have earned 10 points.
Thanks for contributing in OpenCode'24 ✨✨


Less strict search matching

"If I wanna search shapes I always have to enter the whole name:
WS-C2960X-24TS-l
WS-C2960* or something easier as JS-Regex would be great so that "normal" user also can use the search. "

Please re-open this issue. Icons with a plural name are not intuitively searchable if you forget or don't know in advance that the canonical name has a trailing "s". A lot of Azure icons in the default image pack (as of 20.7.4) have plural names. Some examples:

endpoint analytics
storage accounts
data clusters
azure workbooks
language services
bot services
log analytics workspaces

search
singular result
plural result

storage accounts

azure data clusters

we don't know how to implement this in JS.

This will be added in the next release (https://www.codedrome.com/the-soundex-algorithm-in-javascript/)

Released in 21.2.4


Update Get-MailDetailATPReport.md

@chrisda

Docs Build status updates of commit b768fea:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-MailDetailATPReport.md
:white_check_mark:Succeeded
View (exchange-ps)

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

@faoquong, are we saying that the StartDate parameter only accepts a date value and not a date-time value? Your correction seems to imply that, but there are lots of other words in the description also need to be updated (which I can do no problem).
And is EndDate affected by this?

Docs Build status updates of commit 066ebdf:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-MailDetailATPReport.md
:white_check_mark:Succeeded
View (exchange-ps)

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

Docs Build status updates of commit 9029d44:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-MailDetailATPReport.md
:white_check_mark:Succeeded
View (exchange-ps)

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


A formal null middleware or an acceptable work around

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
This may seem a strange request - support for a feature to basically do nothing, but here is the background
As Traefik operates by defining a single middleware to a router or instead defining a chain of middleware as a group that can then be assigned to a router I am currently defining a number of different chains that can be switched between for a deployment depending on where within the dev-CI-production pipeline the deployment is. So a development deployment would have little or no security, CI systems may have different features depending on the testing task and production would have all the features enabled.
Being based on a docker-compose file the selection is handled by just setting an environment variable that forms part of the
definition via standard parameter expansion.
The only issue is that there is no formal null/do-nothing middleware defined within Treafik, so you can not easily handle the case where you do not want any action taken. Instead, you have to complicate the process by removing the whole line that does the assignment of a middleware chain to a router, which then in turn changes the structure shown by the Traefik console.
Another option would be to define a one-entry chain with one of the current middlewares in such a way as to cause it to not change the data flow, but I do not know the platform well enough to know which of the available middlewares has the lowest overhead or the least number of side effects on things like logging.
Does anyone have any ideas?

Hello,
To keep the repository focused, we ask that all questions be asked in the community forum. It is pretty active, so you might find that your question has already been answered there.
If not, you can ask and get help from other community members pretty quickly.

As Traefik operates by defining a single middleware to a router or instead defining a chain of middleware as a group

it's not exactly true: you can assign multiple middleware to a router without a chain.
https://doc.traefik.io/traefik/routing/routers/#middlewares
You don't need a chain to use multiple middleware. The chain is useful for reusing a group of middleware.
You can create a plugin based on one we created to handle something close to your use case: https://plugins.traefik.io/plugins/634ed49499550ba2e3b43d5c/noop
Or you can just use the headers middleware with a "fake" header.
Please join the forum if you need to discuss more about that.

This has converted into more of a suggestion that the doc be improved.
The reply
it's not exactly true: you can assign multiple middleware to a router without a chain
Allowed me to re-read the only docs to understand that this is in fact possible. So the docs could be improved by making this far clearer.
At the same time if the assignment to a standard router could be more than a single middleware I also tried the case of not assigning any middleware, which in fact works very much like having a null middleware available - as in there is an assignment recorded without any errors being thrown.

The documentation says:

You can attach a list of middlewares to each HTTP router.

The examples are using list syntax.
There is no example or mention of the chain middleware in this section.
https://doc.traefik.io/traefik/routing/routers/#middlewares
I don't see how to improve this.

I think you can write that as you are fully aware of what "list" means in the context of Traefik's use of YMAL, not all of us have that level of understanding so need to find lots of detail in the docs to give us the hints to fill in our knowledge gaps.
The section you linked to states  "Middlewares are applied in the same order as their declaration in router."
But how as it is not clear in this section? So the logical step is to click on the middleware link
Now you have a section that shows chained middleware in the image and some text that states "Middlewares that use the same protocol can be combined into chains to fit every scenario". So we are getting somewhere
But there are again no examples provided of a chain, just a single assignment, so you know you can chain middlewares, but are not sure how, so you put chain in the search and get to an example of how to build a chain.middleware.
At no point in this discovery process do the docs just say (or show) that you can list 0..n middlewares against a defined router. Instead, they lead you to the chain.middleware feature, which is a nice feature but not really needed in most deployments.
An additional complication is that the area of the docs that you linked to is also without Docker YAML examples, instead a link is provided to a more general Docker area that I did not even notice until writing this reply as I followed the path above.
If I had access to the docs I would make the following changes

Change the YAML and TOML examples to have more than one middleware entry, this would then show the concept of a 'list' in action, while also better matching the supporting text and the example that is given in the independent Docker example (which I missed until just now).

Make it clear that it is possible to define a router middleware entry with no middleware listed  (basically a null list).

The last one comes from the fact that many Docker/Kubernetes deployments are dynamic in nature and often driven by variable values. So for my environment, the middleware configured for a system instance changes based on where it fits in the deployment pipeline, but all 12 different deployments are using the same docker-compose file, they just have different environment variable values set when docker compose is run.
So within my docker-compose.yml file, I have labels assigned to containers like this
  - "traefik.http.routers.SalesPlatform_frontend-secure.middlewares=${DOCKER_TRAEFIK_MW_FE_WEBSITE}"

I just set DOCKER_TRAEFIK_MW_FE_WEBSITE to the list of middlewares I want loading by the deployment in question.
(I'm writing this as wordy as I can so that it may be picked up by search engines and possibly help others).

If you want you can open a PR to improve this section based on your suggestions.
Click on this link.

With the slight problem that my knowledge of the correct layout of the 3 different types of config files is limited to the docker format. I have no example of how the direct YAML and TOML files should look to extend them to be better examples.


Please add the supported QoS level of the library in the readme

I had to unfortunately discard this library because the old version did not support the highest QoS levels.
Now I see there is an interesting update, but neither in the release notes or in the readme.md I can see the current supported level of QoS.
Could you please add this info in the readme.md please?
If now it is supported, it would be nice pointing to the docs/wiki/test case/sample with some clue on how to use it.
Thanks!

Do you mean Client or Server? The library supports all QoS levels. Do you have more details about what you are missing or do not understand?

Hi @chkr1011 I mean both.
I extensively tried to use the library with QoS level 2 but it did not provide the "exactly once" behavior. Even QoS level 1 gave me problems.
I opened an issue a very long time ago: https://github.com/dotnet/MQTTnet/issues/1303 and there are other issues of people trying to use QoS >=1 successfully. The workaround I wrote is not a real solution which shuld be inside the library itself.
One of the reason why I opened this thread is because you once wrote that sessions were needed to fully support QoS+storage in the library: https://github.com/dotnet/MQTTnet/issues/374#issuecomment-1023600244. It read the new library does have support for sessions and I am wondering if the library provides a transparent management of the QoS behavior.
If the library supports it and you believe that it works, please provide the related samples and docs as I am not alone here.


[BUG] Labels are not displayed on UI (in multi image) view following export

System information

OS Platform and Distribution: Ubuntu 20.04.4 LTS
Python version (python --version): 3.9.12
FiftyOne version (fiftyone --version): 0.21.0
FiftyOne installed from (pip or source): pip

Commands to reproduce
Commands used for exporting of the dataset.
import fiftyone as fo

# We'll also limit number of samples to give an idea of underlying
# data and not export entire dataset

num_samples = 1000

dataset = fo.load_dataset("das-labeled-dataset")
samples = dataset.limit(num_samples)

# The directory to which to write the exported dataset
export_dir = "test_output/export"

# The name of the sample field containing the label that you wish to export
# Used when exporting labeled datasets (e.g., classification or detection)

label_field = "sub_category"

# The type of dataset to export
dataset_type = fo.types.FiftyOneImageClassificationDataset

# Export the dataset
samples.export(
    export_dir=export_dir,
    dataset_type=dataset_type,
    label_field=label_field,
)

Commands used for importing of the above exported dataset, where the exported data above has been zipped and shared externally, and requires the receiver of the exported dataset above to unzip the files and use commands below for importing:
import fiftyone as fo

# The directory containing the source images
data_path = "image_data"

# The path to the labels JSON file
labels_path = "labels.json"

# The type of the dataset being imported
dataset_type = fo.types.FiftyOneImageClassificationDataset

# Import the dataset
dataset = fo.Dataset.from_dir(
    dataset_type=dataset_type,
    data_path=data_path,
    labels_path=labels_path,
)

session = fo.launch_app(dataset)

Describe the problem
In reality, the export of the dataset appears to work just fine, rather it is the UI that appears to be causing the problem when the app is launched. What is happening is that the labels (i.e., 'sub_categories') on the bigger  (multi image) view of the UI are not displaying. The field ground_truth appears to be the default naming mechanism, even if my label_field is named something different (i.e., sub_categories).
It is possible for the end user (receiver of the exported dataset) to still still filter by ground_truth (i.e., the sub_category labels I want to display) and the multi-view display of all associated images will change accordingly.
Additionally, If you select a single image for review (by clicking on it) you will then see the appropriate (and expected) behavior where the ground_truth (i.e., sub_category labels) are displayed properly over the image.
What areas of FiftyOne does this bug affect?

[x] App: FiftyOne application issue
[ ] Core: Core Python library issue
[ ] Server: FiftyOne server issue

Willingness to contribute
The FiftyOne Community encourages bug fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the FiftyOne codebase?

[ ] Yes. I can contribute a fix for this bug independently
[x] Yes. I would be willing to contribute a fix for this bug with guidance from the FiftyOne community
[ ] No. I cannot contribute a bug fix at this time

Hi Kathryn,
Have you tried you setting the dataset_exporter to LabeledImageDatasetExporter?

Hi @kathrynberger. I am following the steps you shared just with the cifar10 zoo dataset and am unable to reproduce. Do you see any errors in the browser developer tools?
import fiftyone as fo
import fiftyone.zoo as foz

# Export
dataset = foz.load_zoo_dataset("cifar10", max_samples=10)
export_dir = "cifar10_test"
dataset.rename_sample_field("ground_truth", "sub_category")
dataset.export(
    export_dir=export_dir,
    dataset_type=fo.types.FiftyOneImageClassificationDataset,
    label_field="sub_category",
)

# Import
dataset = fo.Dataset.from_dir(
    dataset_type=fo.types.FiftyOneImageClassificationDataset,
    data_path=f"{export_dir}/data",
    labels_path=f"{export_dir}/labels.json",
)

@benjaminpkane thanks for your feedback on this one, I appreciate it!

I've run the code above with the cifar10 zoo dataset and it performs as expected (labels are shown on multi-image view). The only error I found is that the renaming of the sample field does not work, it still displays ground_truth (see screenshot).

I've followed the code shared above to export the my dataset and experience the same unexpected behavior (no labels shown on multi image view, but if a single image is explored the label is shown) as referenced in screenshots above. Again, I noticed only the .rename_sample_field functionality not working in this DatasetView.

import fiftyone as fo

# Export
num_samples = 10
dataset = fo.load_dataset("das-labeled-dataset")
samples = dataset.limit(num_samples)

export_dir = "test_output/export"

# samples.rename_sample_field("ground_truth", "sub_category") # Error: 'DatasetView' object has no attribute 'rename_sample_field'

samples.export(
    export_dir=export_dir,
    dataset_type=fo.types.FiftyOneImageClassificationDataset,
    label_field="sub_category",
)

# Import
dataset = fo.Dataset.from_dir(
    dataset_type=fo.types.FiftyOneImageClassificationDataset,
    data_path=f"{export_dir}/data",
    labels_path=f"{export_dir}/labels.json",
)

No easily identifiable errors were displayed when looking into the browser's (Chrome) developer tools. In fact, the Layout-> Grid overlays looks correct, however - if label is selected in either dev tools or the UI itself nothing happens. See screenshot.

I've attached the exported sample file (with images removed) to help with trouble-shooting. Again, I appreciate the assistance on sorting out this issue, thank you!
test_output.zip


[requires.io] dependency update on dev branch

The one notable change is the jump from lxml v3 to v4. All the tests appear to pass, and I'm unclear from the lxml changelog what's happened that is not backwards-compatible. As such, this seems like a reasonable change so that we can gain the benefits of future updates.


V1.16.x fix logging

Cherry pick https://github.com/grpc/grpc/pull/17064 onto the v1.16.x branch in anticipation of cutting a patch.

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,967,222      Total (=)      1,967,222

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,889,383      Total (<)     10,889,391

 No significant differences in binary sizes

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,967,222      Total (=)      1,967,222

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,889,392      Total (>)     10,889,389

 No significant differences in binary sizes

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Looks like the objective C tests failed due to a config file that is not present on this branch:
com.google.devtools.kokoro.config.ConfigException: Build config /tmp/workspace/workspace/grpc/core/pull_request/macos/grpc_basictests_objc_dbg/src/github/grpc/tools/internal_ci/macos/pull_request/grpc_basictests_objc_dbg.cfg does not exist

I conferred with @srini100 and we agreed to ignore these failures for now as they should only affect objective C releases. Any further 1.16 releases of objective C will have to address this issue.

Looks like we hit a transient error:
W: Failed to fetch http://ftp.debian.org/debian/dists/jessie-backports/Release.gpg  Unable to connect to ftp.debian.org:http:

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,967,222      Total (=)      1,967,222

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,889,384      Total (=)     10,889,384

 No significant differences in binary sizes

Corrupt JSON data (indicates timeout or crash):
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10

[microbenchmarks] No significant performance differences

/Volumes/BuildData/tmpfs/src/github/grpc/workspace_objc_macos_opt_native/src/objective-c/tests/InteropTests.m:416: error: -[InteropTestsLocalCleartext testCancelAfterBeginRPC] : ((call.state) equal to (GRXWriterStateFinished)) failed: ("1") is not equal to ("3")

Looks like we hit https://github.com/grpc/grpc/issues/16497 again.


Add empty init.py to server module

After running python setup.py install and then running instamatic I got the following error:
Traceback (most recent call last):
  File "S:\instamatic-1.1.0dev\python36\Scripts\instamatic.temserver-script.py", line 11, in <module>
    load_entry_point('instamatic==1.1.0.dev0', 'console_scripts', 'instamatic.temserver')()
  File "S:\instamatic-1.1.0dev\python36\lib\site-packages\pkg_resources\__init__.py", line 565, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "S:\instamatic-1.1.0dev\python36\lib\site-packages\pkg_resources\__init__.py", line 2631, in load_entry_point
    return ep.load()
  File "S:\instamatic-1.1.0dev\python36\lib\site-packages\pkg_resources\__init__.py", line 2291, in load
    return self.resolve()
  File "S:\instamatic-1.1.0dev\python36\lib\site-packages\pkg_resources\__init__.py", line 2297, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'instamatic.server'

I believe this is due to the server module not having an __init__.py so it's not copied during the install phase to site-packages. I could manually resolve this by copying the server module from the source directory to S:\instamatic-1.1.0dev\python36\Lib\site-packages\instamatic-1.1.0.dev0-py3.6.egg\instamatic.

Thanks for that @PaulVanSchayck !