Do not relabel if user did not request it for non local volumes

Signed-off-by: Dan Walsh<EMAIL_ADDRESS>

I think this is a better fix then https://github.com/docker/docker/pull/20829
Since it will fail if the user requests a relabel.  Should fix the rexray problem.
We are automatically labeling local volumes, but if the user uses other different volumes, he should request relabeling.  Then we can fail if the volume does not support the labeling.

also ping @clintonskitson

I tried above patch above, seems it could not work. Failed with following error
$ sudo ./docker-1.11.0-dev run -ti --volume-driver=rexray -v testtwo:/test busybox
permission denied
./docker-1.11.0-dev: Error response from daemon: Container command could not be invoked..

And docker logs are
Mar 02 09:24:17 sw-s5lcdlw5ktj-0-jserl73ppvan-swarm-node-lscjkrmyn6rx.novalocal docker-1.11.0-dev[2005]: time="2016-03-02T09:24:17.166285982Z" level=debug msg="Closing buffered stdin pipe"
Mar 02 09:24:16 sw-s5lcdlw5ktj-0-jserl73ppvan-swarm-node-lscjkrmyn6rx.novalocal docker-1.11.0-dev[2005]: time="2016-03-02T09:24:16.971304507Z" level=error msg="Handler for POST /v1.23/containers/b63e68846a4dc663bbcfa0e5efb8f336afc7d5c0e491c75c782decf108e0a802/start returned error: Container command could not be invoked."
Mar 02 09:24:15 sw-s5lcdlw5ktj-0-jserl73ppvan-swarm-node-lscjkrmyn6rx.novalocal docker-1.11.0-dev[2005]: time="2016-03-02T09:24:15.150251640Z" level=error msg="Error unmounting container b63e68846a4dc663bbcfa0e5efb8f336afc7d5c0e491c75c782decf108e0a802: not mounted"
Mar 02 09:24:15 sw-s5lcdlw5ktj-0-jserl73ppvan-swarm-node-lscjkrmyn6rx.novalocal docker-1.11.0-dev[2005]: time="2016-03-02T09:24:15.148944616Z" level=warning msg="failed to cleanup ipc mounts:\nfailed to umount /var/lib/docker/containers/b63e68846a4dc663bbcfa0e5efb8f336afc7d5c0e491c75c782decf108e0a802/shm: invalid argument"
Mar 02 09:24:15 sw-s5lcdlw5ktj-0-jserl73ppvan-swarm-node-lscjkrmyn6rx.novalocal docker-1.11.0-dev[2005]: time="2016-03-02T09:24:15.134551045Z" level=error msg="error locating sandbox id 7f3371375e5711701ad91e76eafd0ad82fb30c42ee2574d36b41b4bf5356155e: sandbox 7f3371375e5711701ad91e76eafd0ad82fb30c42ee2574d36b41b4bf5356155e not found"
Mar 02 09:24:08 sw-s5lcdlw5ktj-0-jserl73ppvan-swarm-node-lscjkrmyn6rx.novalocal docker-1.11.0-dev[2005]: time="2016-03-02T09:24:08.140166342Z" level=debug msg="devmapper: UnmountDevice(hash=5a0cb8fafadc7a8861896e510f5132fde57bcd73b7766eebf60b3e173fda249a) END"
Mar 02 09:24:08 sw-s5lcdlw5ktj-0-jserl73ppvan-swarm-node-lscjkrmyn6rx.novalocal docker

@HackToday Could you print out the name of the bind.Driver and the bind.Mode before the Requires Relabel check?

@rhatdan  I would have access environment tomorrow, right now, at home, I could not access that. :(

@HackToday Ok, this patch is supposed to prevent all non local volumes from doing the relabel, unless the user requests it.  The code above adds 'z" to the bind.Mode if the Driver is local which forces the relabel.  In the current code, the relabel is forced on all volume drivers which I believe is causing the issue with rexray, and other volumes that do not support XATTR (SELinux) labels.
I like this change better since we will still get failures if a user tries to mount a volume like rexray and specifies :Z or :z

@rhatdan Confirmed, this patch works as well.

Excellent, I think this is the patch that should be merged into docker.

This fixes https://github.com/docker/docker/issues/18005 ?

Yes it should.

hi @rhatdan  as another issue https://github.com/docker/docker/issues/20855 which prevent me from verify your fix here, But I think if coreos works, it should work with atomic, Right?
Also, for our cases, since this fix can only be merged in 1.11.0 or 1.10.*, But atomic not integrated such new version, Is it possible to have some work-around for atomic ? (means, still enable selinux, but need user do something when run containers with volume driver)

If this gets merged into 1.11.0 we will cherrypick it into our docker-1.10 for Fedora and RHEL, or if it ends up in 1.10.3 we would upgrade to this.

ping @cpuguy83 @calavera

LGTM

LGTM

:+1 looks good.

Nice.

@rhatdan is this patch merged in 1.10.3?

@miry yes; just follow the link above: https://github.com/docker/docker/pull/21011

For some reason I need to run in privileged to access the folder.
$ docker run -ti --volume-driver=rexray -v testtwo:/test:rw busybox
/ # touch /test/1
touch: /test/1: Permission denied

$ docker run --privileged -ti --volume-driver=rexray -v testtwo:/test:rw busybox
/ # touch /test/1
/ #

@miry could you open an issue for that? Better than discussing it on a merged PR; make sure to provide info about your setup (at least docker version and docker info)


Improve readability of Sarif result message in Error List

Comments from Michael:

We're truncating messages in the error list so that they're too short. Let's increase that.
We should try to force the error list forward (make it visible and active) if anything was sent to the UI.

let's check if we can improve this as well!


FormViewAdapter for custom control

Hi,
first of all: thank you for this great library! I'm surprised that it hasn't gotten more traction yet. It is by far the best solution for combining reactive forms and ngrx that I've seen yet.
I have a question regarding custom controls. The documentation states...

However, since many third party libraries are using the ControlValueAccessor already, ngrx-forms integrates with these libraries by converting the value accessor internally into a view adapter

To me, this reads like "if the custom control component implements ControlValueAccessor, everything should work out of the box". However, in my project this fails with No valid view adapter!. And when looking at the view adapters in src/view-adapter I don't understand how it could work as all adapters have a selector like selector: 'input:not([type=checkbox])[ngrxFormControlState],textarea[ngrxFormControlState]',, so of course no adapter can be found for my custom component.
Am I missing something?

Maybe, what I'm missing is "export the value accessor". How do you export the value accessor? From what I understand about building custom controls, the value accessor is just an interface that my control component implements?

🤦 nevermind...
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => FileUploadControlComponent),
            multi: true
        }

This, of course, has to be part of the @Component(...) annotation of the custom form control, not in the @NgModule(...)


Current version throws a Bad Request error when properties in the mobile app data model are passed to it that do not exist in the service data model

The 0.2x version of mobile apps net server allowed you to pass an object to say, an insertasync method, that had properties that did not exist in the server model and the insert would work fine. Now, in the last two versions, 0.3 and 1.0 GA, when I pass an object that has extra properties that exist in the app data model but not the service data model, I get a bad request response from the server without any specifics to what is causing the issue directly (you have to dig deep into the response httpmessages to find the properties that show "an error occurred". If I go through and add [JsonIgnore] to the properties on the client data model, it works correctly. I can understand it's better to not include extra data to pass to the service that is going to be ignored anyway, but is there a better way to determine what fields are causing the issue (better errors). Can we have it still work even if extra properties are passed, but log a warning instead?

This is due to the inclusion of https://github.com/Azure/azure-mobile-apps-net-server/blob/8c5b6b52b12b8d9f04a0be8b2fabfb749d7c0919/src/Microsoft.Azure.Mobile.Server/Config/MobileAppControllerAttribute.cs#L69

I tried setting that to false and still had the same result: serializerSettings.CheckAdditionalContent = false;.

Where did you try setting it? Right now the MobileAppControllers create a new set of SerializerSettings so anything you set up outside of the controller won't be applied. For example, if you check this.Configuration.Formatters.JsonFormatter.SerializerSettings.CheckAdditionalContent from within a controller, it will likely still be true.
There are (less-than-ideal) ways to customize this for all controllers. I'm actually looking at improving this right now and added an issue to track it: https://github.com/Azure/azure-mobile-apps-net-server/issues/48
I can write up the steps to do this for all controllers, but first can you try doing something like this in one of your controllers and see if it gets things working the way you want?
protected override void Initialize(HttpControllerContext controllerContext)
{
    base.Initialize(controllerContext);
    this.Configuration.Formatters.JsonFormatter.SerializerSettings.CheckAdditionalContent = false;
}

I set it inside the public static void ConfigureMobileApp(IAppBuilder app) method originally, which did not work. I just tested it in one of my controllers and that still did not work.
I removed the [JsonIgnore] from a property "Points" and added the line you mentioned in the Initialize method of the controller. The same exception occurred. The images linked below show the detailed exception information showing the value of the CheckAdditionalContent as false.
https://www.dropbox.com/s/q4wm1zublicyqp7/Screenshot 2015-12-08 13.39.34.png?dl=0
https://www.dropbox.com/s/7yhwuouo6j68c7h/Screenshot 2015-12-08 13.41.05.png?dl=0

Actually I think the setting you may want to change is this.Configuration.Formatters.JsonFormatter.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;

That looks like the more appropriate call. I'll give it a test and let you know my results.

I've added a nicer fix for this. It's not yet released on nuget but you can clone and build the solution if you want to try it out. I wrote up some background here: https://github.com/Azure/azure-mobile-apps-net-server/wiki/Configuring-MobileAppController-and-TableController-Settings


Confusion about Cuda install docs for Mac

Environment info
Operating System: Mac OSX 10.11
The docs have 2 issues related to this section at the top:
"The GPU version works best with Cuda Toolkit 8.0 and cuDNN v5. Other versions are supported (Cuda toolkit >= 7.0 and cuDNN >= v3) only when installing from sources. Please see Cuda installation for details. For Mac OS X, please see Setup GPU for Mac."

The link to "Setup GPU for Mac" doesn't work; presumably the href target is missing or misspelled.

The Setup GPU for Mac section is included in the "Install Tensorflow from Source" part of the docs. Several people I know interpreted that to mean that GPU support is only available when installing from source. Furthermore, in the same section is a requirement to use homebrew, and many people I know refuse to use homebrew, so they assumed that Tensorflow was unusable on mac for them.

I recommend separating out the Setup GPU for Mac instructions to a separate page, unless it truly is dependent on installing from source. If it is, that should also be clarified.

The link problem is the same as #6389

Part 1 of this issue has been fixed.

Part 2 of this has also been fixed, see:
https://www.tensorflow.org/install/install_mac


Trailing comma on last array element of body

Hi,
Installed 0.2.0 and tested on a piece of code. I got a trailing comma on the last array element of the body:
	"body": [
		"if ( \\$post instanceof WP_Post ) {",
		"    echo '<!--';",
		"    var_dump( \\$post );",
		"    echo '-->';",
		"}",
	],

I think that's a problem, right?

Oh, OK.
I'll fix it. Thanks for noting that.

I think the problem was solved.
If you encountered a similar issue, feel free to reopen this issue.


add tealsql and tealsql_cli

tealsql-> a library for both lua and teal that will have its types get automatically generated (thanks to tealr)
tealsql_cli ->a cli tool that can turn .sql files into teal modules containing the correct types for the input and output of the queries. As well as functions to run the sql. Typesafe sql? YES PLEASE! :tada:
Both aren't ready for their first release but should be in a good enough state to be played with.

Yay, congrats for the tools! Merged!


Why do ‘’  and '' have the same label?

Hi Vincent,
First of all thank you for your work on this framework, I am learning Seq2Seq for ASR.  I am so confused about why you use the same label to represent  '' and ''?
in nabu/neuralnetworks/models/ed_decoders/rnn_decoder.py
expanded_targets = tf.pad(targets.values()[0], [[0, 0], [1, 0]],                                   constant_values=output_dim-1)
in nabu/neuralnetworks/trainers/loss_functions.py  (cross_entropy_eos)
final_targets = tf.tile([output_dim-1], [batch_size])
what differences using two labels and using the same label have?
Thank you and have a good day!
Damon

There is no big differnce. I guess you can do both. I chose to use the same label because otherwise the sos label would never be decoded by the decoder and thus the corresponding weights in the softmax would never get gradients and that is a bit of a waste (same thing for the eos as input).

Thanks for your answer! It's very helpful!


Applied Visual Design, Challenge 16 broken (Set the font-size for Paragraph Text)

The solution is not accepted and therefore the challenge cannot be solved.

Link

Browser Name: Firefox
Browser Version: 85.0.2
Operating System: Archlinux

Hello there,
The challenge, and code passes for me. I have tested this in both Firefox, and Chrome. So, I assume the issue is potentially with something like a browser extension affecting the tests on the page. In this case, I suggest you disable browser extensions with access to freecodecamp.org.
In general, I recommend you open a topic on the forum, and only once it is determined to be a bug there, open an issue on this repo. You can use the Get Help > Ask for Help button to create an auto-populated post with your current code.
Hope this helps


RI-457 Add +u and -u around virtualenv activate

There are issues with the legacy python-virtualenv package and
activating venvs. This adds +u before and -u after activating the venv.
Issue: RI-457

Thank you for submitting a pull request to this project!
Once all check jobs have passed and the pull request has received a
sufficient number of reviews, the repository's gate jobs can be triggered by
adding a comment of check_component_gate to this pull request.
When the gate jobs have completed successfully, this pull request will get
merged automatically.

recheck_trusty_swift_deploy

16:09:56 Cloning into 'openstack-ansible'...
16:10:16 error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
16:10:16 fatal: The remote end hung up unexpectedly

recheck_trusty_swift_deploy

recheck_trusty_swift_deploy


Script hangs in headless mode

Greetings,
I tried running the following snippet from command line:
from pycromanager import Core, start_headless
from pymmcore_plus import find_micromanager

import logging

logging.basicConfig(level=logging.INFO)

logger = logging.getLogger()

mm_app_path = find_micromanager()

logger.info("Found Micro-Manager at: " + mm_app_path)

config_file = mm_app_path + "/MMConfig_demo.cfg"

# Start the Java process
start_headless(mm_app_path, config_file)

logger.info("Started Micro-Manager headless, creating core... ")

core = Core()

logger.info("Done")

The script executes fine but after the last logging line the CLI hangs and I have to manually insert a keyboard interrupt to make the script stop. Am I doing something incorrectly?
Python version: 3.8.10
Pycromanager version: 0.28.1
MM Studio version: 2.0.2 20230819 (nightly build)
MMCore version: 10.4.0
Device API version 71, Module API version 10

Hi Jacapo, try:
from pycromanager.acq_util import cleanup
cleanup()

At the end to shut down the headless process.
Probably this needs to be added to the documentation (https://github.com/micro-manager/pycro-manager/issues/673)

Hi @henrypinkard , thanks for replying. I tried it, it still hangs after calling cleanup

You're right. That function wasn't working. I just fixed it https://github.com/micro-manager/pycro-manager/pull/674/
I also changed the name to stop_headless

@jacopoabramo
I've just made some fixes to this in the latest versions (pypi/nightly build), let me know if you run into any more problems

Oh it appears this is because core doesn't get garbage collected. I just was able to get this to work properly by adding in core = None. This is a bit confusing...I'm going to see if there's a way for this to happen automatically:
this script works for me:
config_file = mm_app_path + "/MMConfig_demo.cfg"

print('starting headless')
start_headless(mm_app_path, config_file)
print('creating core')
core = Core()
core = None
stop_headless()
print('ending')

Okay I think this is actually fixed now by https://github.com/micro-manager/pycro-manager/pull/700. You shouldn't need to set core = None. Let me know if this works for you

Hi @henrypinkard , that did the trick. Now the test script works either with or without the stop_headless method. Closing the issue.


The available replacement with get_sub_field()

Hi @devlifeX , I would like to know the available way to replace get_sub_field() which is default call inside flexible content, with your get method. Is this working?

Hi @codetot, it's only work with get_field(), but you can extend it for other functions, it's easy.


Update to Angular 6 and rxjs 6

It seems to be working fine with me.. I deleted rxjs-compat.

Thx for this. Very nice of you. Unfortunately, there have been several PRs for updating to ng6 and I can only accept one.


JTA-JPA example project test failure

Post upgrade to Quarkus 2.13.0 we see:
Error:  Tests run: 2, Failures: 0, Errors: 1, Skipped: 1, Time elapsed: 10.107 s <<< FAILURE! - in org.acme.JtaTest
Error:  testXA  Time elapsed: 0.013 s  <<< ERROR!
java.lang.RuntimeException: java.lang.RuntimeException: Failed to start quarkus
Caused by: java.lang.RuntimeException: Failed to start quarkus
Caused by: java.lang.IllegalStateException: ARJUNA032012: No recovery system in which to register XAResourceRecovery instance

See also https://github.com/apache/camel-quarkus/pull/4121#issuecomment-1254664264.

@zhfeng - relates to your observation in #4121.


Dependabot ignores version constraint for i386 Docker image

Package ecosystem

Docker

Package manager version

N/A

Language version

N/A

Manifest location and content prior to update

https://github.com/atc0005/go-ci/blob/d1aeb7e2b0317eac35f3e8d15a7908f5ddf9e80a/stable/build/alpine-x86/Dockerfile

dependabot.yml content

https://github.com/atc0005/go-ci/blob/d1aeb7e2b0317eac35f3e8d15a7908f5ddf9e80a/.github/dependabot.yml#L174-L200

Updated dependency

Currently using i386/golang:1.17.9-alpine3.14 (set manually), Dependabot offers i386/golang:1.18.1-alpine3.14

What you expected to see, versus what you actually saw

expected no offer of Dockerfile update as 1.17.9 is the latest Go 1.17 image at this time (https://github.com/atc0005/go-ci/pull/608)
expected an update from 1.17.8 to 1.17.9 instead of 1.17.8 to 1.18.1 as https://github.com/atc0005/go-ci/pull/601 applied (which I later manually reversed once I realized that I merged an invalid PR)

Native package manager behavior

N/A

Images of the diff or a link to the PR, issue or logs
Current PR:

https://github.com/atc0005/go-ci/pull/608

Previous PR:

https://github.com/atc0005/go-ci/pull/601

As noted earlier, the current PR is unexpected as the version constraint should be preventing 1.18 from being offered for all but the unstable Dockerfile (different directory path, different Dependabot config block). The prior PR was incorrect as the version constraint was expected to result in an offer of an update version update for the same series (1.17.x instead of 1.18.x).

Try setting the dependency name to i386/golang in dependabot.yml:
    ignore:
      - dependency-name: "i386/golang"

@jakecoffman:  Try setting the dependency name to i386/golang in dependabot.yml:
    ignore:
      - dependency-name: "i386/golang"

Thanks for the help! The suggested changes appear to work as intended.

https://github.com/atc0005/go-ci/pull/610
https://github.com/atc0005/go-ci/pull/611

https://github.com/atc0005/go-ci/pull/612


Fix: correct error format after json marshal

Please provide a description of this PR:
ref: https://github.com/istio/istio/issues/36358

[x] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

Hi @whalecold. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/assign @howardjohn

/ok-to-test

@whalecold: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@whalecold: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test release-notes_istio

unit-tests_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test release-notes_istio

/test unit-tests_istio

@whalecold: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test unit-tests_istio

release-notes_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/release-notes-none

@whalecold: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test release-notes_istio

unit-tests_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@whalecold: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test unit-tests_istio

release-notes_istio
5616ad7084d0a4fcb600b88bb2f0b8104fac865f
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@whalecold: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
67e7d2a6470ae7a20706de715196d55c482cced2
link
true
/test unit-tests_istio

release-notes_istio
bf809a1398f5cbdc4a7af22d2a9f2ddd0b56dc6c
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/release-notes-none

/ok-to-test

Hi, could you please add the release-notes-none label to the pull request ?

/test release-notes_istio

@whalecold: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
bf809a1398f5cbdc4a7af22d2a9f2ddd0b56dc6c
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test release-notes_istio

@whalecold: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
99bbfe5322a22a22c1d2d7aeb0228b03676729d0
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu hi, can you help merge this pull request

We're having the same issue, could this fix be pushed through?

/retest

@whalecold: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
61846d83e1c49e877967c81ca7da9e7e25646250
link
unknown
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@whalecold: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
61846d83e1c49e877967c81ca7da9e7e25646250
link
unknown
/test gencheck_istio

lint_istio
61846d83e1c49e877967c81ca7da9e7e25646250
link
unknown
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@whalecold: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
61846d83e1c49e877967c81ca7da9e7e25646250
link
unknown
/test gencheck_istio

lint_istio
61846d83e1c49e877967c81ca7da9e7e25646250
link
unknown
/test lint_istio

integ-telemetry-mc_istio
61846d83e1c49e877967c81ca7da9e7e25646250
link
unknown
/test integ-telemetry-mc_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/cherry-pick release-1.13

@jacob-delgado: once the present PR merges, I will cherry-pick it on top of release-1.13 in a new PR and assign it to you.

In response to this:

/cherry-pick release-1.13

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/cherry-pick release-1.12

@jacob-delgado: once the present PR merges, I will cherry-pick it on top of release-1.12 in a new PR and assign it to you.

In response to this:

/cherry-pick release-1.12

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/cherry-pick release-1.11

@jacob-delgado: once the present PR merges, I will cherry-pick it on top of release-1.11 in a new PR and assign it to you.

In response to this:

/cherry-pick release-1.11

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@jacob-delgado: new pull request created: #37029

In response to this:

/cherry-pick release-1.12

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@jacob-delgado: new pull request created: #37030

In response to this:

/cherry-pick release-1.11

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@jacob-delgado: new pull request created: #37031

In response to this:

/cherry-pick release-1.13

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Aggregate Docker Requests (and styling update)

What
Lays the groundwork for performing docker requests against a collection of hosts. Updates UI and adds functionality for https://github.com/lighthouse/lighthouse/pull/60
For sanity, this PR only supports an application create request. Subsequent PRs will support the other endpoints.
How
The first major unit of work was refactoring the beacon view into an individual component (via angular directives) to support displaying all beacons and instances at once. This greatly simplifies the templating required on the beacon list view and isolates the functionality of a single beacon component.
Created a deploy-monitor component and associated model to watch streaming updates as they come in and notify the user which actions have completed and which is currently in progress.
Testing
I've been using the busybox:latest image for testing image pulls. It's small enough to prevent long testing turn-around times. Be sure to remove the container and image created from your docker instance if you want to test the image pull again. Otherwise, the batch processing on Lighthouse will see the image is already present and the stream will go by pretty quick.

@lighthouse/owners This is ready for some test action. Be sure to run bower install to get the styling update Thanks!

+1

@cmbrose This is ready when application-rollback is. Feel free to merge at the same time.


pass the root_url through to the actual host

Unless I am missing something I think this line of code needs be there in order for the host to actually respect the ROOT_URL setting.
In any case, correct me if I am wrong, but when I setup a Varnish cache in front of js-host this was necessary to make the Python process actually call the correct endpoint.

Cool, thanks for that, Peter!


Add tedlium dataset (all 3 releases)

Hi!
So this is my pull request for adding tedlium support (all 3 releases of tedlium) reference to https://github.com/pytorch/audio/issues/765.
The code is not yet finished (still need to add test, read the phonetic dictionaries of each release, proper formatting) but I wanted to create the PR to get some feedback on the way I read/iterate tedlium files and if the torchaudio manteiners are okay with it or have an idea on how to improve it. This way I make sure the core of the datasetloader is good to merge and I can start working on the test or change it before coding the tests. I will explain how I iterate through the dataset now.
Tedlium dataset (all releases) is composed of .sph and .stm files. These files are divided in the root folder in two different folders:
sph/
stm/

Each .stm file contains the transcripts for a FULL tedtalk and while the brother audio .sph file contains the audio for the FULL tedtalk as well.
Since this dataset is used in speech recognition, people don't train in full tedtalk audios but rather split into sentences. Each sentence corresponds to a line in the .stm file. This means that a .stm file contains as many training samples as lines inside the file.
The previous datasets that I found in torchaudio didn't encounter this case and treated every transcript file as a sample, so I had to make a small change to the self._walker used in the datasets. I created a new self._extended_walker list that contains as many occurrences of a .stm file with its line number as lines this file has, so for example if we had two stm files A (5 lines/5 samples) and B (3 lines/3 samples) self._extended_walker will look like this:
self._extended_walker = [[A,0],[A,1],[A,2],[A,3],[A,4],[B,0,][B,1]]

And every time we load an item i of the dataset we will index this _extended_walker where we retrieve the file containing the sample and the corresponding line, the line contains the transcript and start time,end time of the audio file corresponding to the audio file. With all of this information we can load the line transcript and corresponding subaudio from the full ted talk.
This will allow the dataset to work as any other torchaudio datasets(being able to run sequentially or shuffling it). Looks great right? Then why I am checking with the maintainers if this is a good idea?
Well, in order to create this _extended_walker list we have to read how many lines each of our .stm file has while initializing the dataset, causing a "not optimal I/O operation". The operation happens in 119-123:
for file in self._walker:
    stm_path = os.path.join(self._path, self._folder_txt, file + self._ext_txt)
    with open(stm_path) as f:
        l = len(f.readlines())
        self._extended_walker += [(file, line) for line in range(l)]

Is fast enough to not represent any downside for the user

(release 3 contains the higher number of files)
I'm open for edits and suggestions on the implementation of the TEDLIUM dataset and please notice is still a work in progress.
Things that still need work:

_getdict function to return the phonems dictionary of the dataset
Several test for the dataset and different releases.
Upload my notebook where I play with the dataset object to show the functionality for reviewers
Better styling and compliance with the rest of torchaudio code

Thanks

Pinging @vincentqb

@jiwidi

_getdict function to return the phonems dictionary of the dataset

Do you mean the lexicon file such as TEDLIUM.150K.dic and TEDLIUM.152K.dic?
dict is very overloaded word here, so I just want a clarification on what you mean.

@jiwidi

_getdict function to return the phonems dictionary of the dataset

Do you mean the lexicon file such as TEDLIUM.150K.dic and TEDLIUM.152K.dic?
dict is very overloaded word here, so I just want a clarification on what you mean.

Yes, that .dic file contains the phoneme dictionary of the dataset and is used sometimes. I want to add a function to the class to load and return it

The code looks much better now.
@jiwidi What else is left for this PR?

Test! If we are okay with the logic for iterating files I'll go ahead and create some test based on the last updates I saw you guys do on the other dataset test.

Hi again! @vincentqb and @mthrok do I have a thumbs up in the way we iterate files? I would like to continue working on the test and finish the PR (I have more ideas to PR for audio :))

Hi again! @vincentqb and @mthrok do I have a thumbs up in the way we iterate files? I would like to continue working on the test and finish the PR (I have more ideas to PR for audio :))

Hi @jiwidi
Sorry for the delay. Yes, the way it files are visited looks fine for me. (although I would not call it _walker, it will be better to pick a name that describes what the list contains.) Feel free to ping me on how to write the test.

Hi again! @vincentqb and @mthrok do I have a thumbs up in the way we iterate files? I would like to continue working on the test and finish the PR (I have more ideas to PR for audio :))

Hi @jiwidi
Sorry for the delay. Yes, the way it files are visited looks fine for me. (although I would not call it _walker, it will be better to pick a name that describes what the list contains.) Feel free to ping me on how to write the test.

Mm I have been copying the https://github.com/pytorch/audio/blob/master/test/torchaudio_unittest/datasets/librispeech_test.py but for TEDLIUM, I have a doubt here, how will you save the whitenoise into '.sph' files? As far as I know is not supported yet(?)

Mm I have been copying the https://github.com/pytorch/audio/blob/master/test/torchaudio_unittest/datasets/librispeech_test.py but for TEDLIUM, I have a doubt here, how will you save the whitenoise into '.sph' files? As far as I know is not supported yet(?)

Friendly ping @mthrok :)

Hi @jiwidi
Thanks for singing me again and sorry for missing your reply in the first place.
There are two things to consider here.

Did you try saving audio data in sph format? With https://github.com/pytorch/audio/pull/871, I believe you can save audio with sph format. (If not, let me know.) however,
In the case of librispeech_test.py and the others, we emulate the dataset with wav format. This is because wav is easy to handle and does not require any third-party library to load (although we use scipy for simplicity, but we do so because we believe scipy does the correct job to load wav file we can reference.). In unit-test, it is ideal to only use the module being tested. In the case of dataset implementation, we want to only use dataset module as much as possible, and we do not want to use I/O module in the test. Otherwise when test fails, we do not know immediately if it is due to I/O module or dataset module. (of course, the dataset implementation itself uses torchaudio.load, so the perfect separation at test time is not achieved without monkey-patching torchaudio.load function, but I think that's too much)

So because of 2., it is preferable if we can test the dataset implementation with WAV format, even though the real dataset is in SPH. (and I believe this is also a valid use case for end users to convert the entire dataset into WAV.). For that purpose we make dataset implementation to be able to change the target extension. So can you write your test with "audio_ext='.wav'" when instantiating Dataset?
If you strongly thing this dataset also should be tested with .sph format, then you can put the whole test logic in a helper method and make the test change format too.

Mm I have been copying the https://github.com/pytorch/audio/blob/master/test/torchaudio_unittest/datasets/librispeech_test.py but for TEDLIUM, I have a doubt here, how will you save the whitenoise into '.sph' files? As far as I know is not supported yet(?)

Friendly ping @mthrok :)

Hi @jiwidi
Thanks for singing me again and sorry for missing your reply in the first place.
There are two things to consider here.

Did you try saving audio data in sph format? With #871, I believe you can save audio with sph format. (If not, let me know.) however,
In the case of librispeech_test.py and the others, we emulate the dataset with wav format. This is because wav is easy to handle and does not require any third-party library to load (although we use scipy for simplicity, but we do so because we believe scipy does the correct job to load wav file we can reference.). In unit-test, it is ideal to only use the module being tested. In the case of dataset implementation, we want to only use dataset module as much as possible, and we do not want to use I/O module in the test. Otherwise when test fails, we do not know immediately if it is due to I/O module or dataset module. (of course, the dataset implementation itself uses torchaudio.load, so the perfect separation at test time is not achieved without monkey-patching torchaudio.load function, but I think that's too much)

So because of 2., it is preferable if we can test the dataset implementation with WAV format, even though the real dataset is in SPH. (and I believe this is also a valid use case for end users to convert the entire dataset into WAV.). For that purpose we make dataset implementation to be able to change the target extension. So can you write your test with "audio_ext='.wav'" when instantiating Dataset?
If you strongly thing this dataset also should be tested with .sph format, then you can put the whole test logic in a helper method and make the test change format too.

Dont worry, you've been very helpful. I will test it late today and get back if there are any problems, otherwise a commit will follow :)
I think I can make it work with wav files as well but since this is the only interaction of the library with sph files I see value in keeping the test with sph format as it will serve as a check for this functionality. If we check for sph support in other test then I have no preference with wav or sph.

I think I can make it work with wav files as well but since this is the only interaction of the library with sph files I see value in keeping the test with sph format as it will serve as a check for this functionality. If we check for sph support in other test then I have no preference with wav or sph.

load/save/info functions on .sph format are tested separately. (check out #871)
If you decide to test sph, then following is (only the gist of) my recommendation.
def _generate_dataset(root_dir, audio_ext, dataset_version, <other parameters, such as dataset versions>) -> List[tuple]:
    # Generates dataset with the given extension
    for foo in whatever:
        ...
        # Switch saving function
        if audio_ext == "wav":
            save_wav(file_path, data, sample_rate)  # use scipy-based test utility for wav
        else:
            torchaudio.save(file_path, data, sample_rate)  # use sox-io backend
                                                            # assuming that the backend is properly set.
                                                            # See the bellow backend="sox_io" for this.
    # Returns expected data

# Note: Probably better to define different test class for different TEDLIUM versions.
class TestTedliumWav(TempDirMixin, TorchaudioTestCase):
    backend = "default"  # <- this test should work on all supported platforms

    @classmethod
    def setUp(cls):
        cls.root_dir = cls.get_base_temp_dir()
        _generate_dataset(cls.root_dir, "wav", ...)

    # define the test
    def testFoo(self):
        ...

class TestTedliumSph(TempDirMixin, TorchaudioTestCase):
    backend = "sox_io"  # <- this test will run only on the platforms where "sox_io" backend is available.

    @classmethod
    def setUp(cls):
        cls.root_dir = cls.get_base_temp_dir()
        _generate_dataset(cls.root_dir, "sph", ...)

    # define the test
    def testFoo(self):
        ...

edit: saving sph files work perfectly with torchaudio.save() sorry I didnt even checked it and thought it was only for wavs

glad it works :)

I think I can make it work with wav files as well but since this is the only interaction of the library with sph files I see value in keeping the test with sph format as it will serve as a check for this functionality. If we check for sph support in other test then I have no preference with wav or sph.

load/save/info functions on .sph format are tested separately. (check out #871)
If you decide to test sph, then following is (only the gist of) my recommendation.
def _generate_dataset(root_dir, audio_ext, dataset_version, <other parameters, such as dataset versions>) -> List[tuple]:
    # Generates dataset with the given extension
    for foo in whatever:
        ...
        # Switch saving function
        if audio_ext == "wav":
            save_wav(file_path, data, sample_rate)  # use scipy-based test utility for wav
        else:
            torchaudio.save(file_path, data, sample_rate)  # use sox-io backend
                                                            # assuming that the backend is properly set.
                                                            # See the bellow backend="sox_io" for this.
    # Returns expected data

# Note: Probably better to define different test class for different TEDLIUM versions.
class TestTedliumWav(TempDirMixin, TorchaudioTestCase):
    backend = "default"  # <- this test should work on all supported platforms

    @classmethod
    def setUp(cls):
        cls.root_dir = cls.get_base_temp_dir()
        _generate_dataset(cls.root_dir, "wav", ...)

    # define the test
    def testFoo(self):
        ...

class TestTedliumSph(TempDirMixin, TorchaudioTestCase):
    backend = "sox_io"  # <- this test will run only on the platforms where "sox_io" backend is available.

    @classmethod
    def setUp(cls):
        cls.root_dir = cls.get_base_temp_dir()
        _generate_dataset(cls.root_dir, "sph", ...)

    # define the test
    def testFoo(self):
        ...

edit: saving sph files work perfectly with torchaudio.save() sorry I didnt even checked it and thought it was only for wavs

glad it works :)

I just pushed the test for tedlium. I saw the sph load is already tested elsewhere as you mentioned so I kept the test with .wav files for simplicity and standard among other test.
For this new commit I also changed the phoneme dictionary to be only read if the user actually calls the get_phoneme_dict and this also makes it easier when testing.
The testing is very similar to the librispeech one, I try to recreate the 3 releases folder structure in a temporary folder and put some white noise there. Instantiate tedlium datasets and check all the data is well retrieved when iterating them.

@mthrok is it normal this many unittest fail due to failure to download/connectivity issues?
Test run on my side, but we have to assure they also run in the CI pipeline.

@mthrok is it normal this many unittest fail due to failure to download/connectivity issues?
Test run on my side, but we have to assure they also run in the CI pipeline.

Hi @jiwidi
Yes, it's broken for Windows and macOS and I have to fix it at some point. These failures have nothing to do with your work.

@mthrok new commit with the PR comments suggestion, what do you think of the state of this PR? Doesnt seem much left to do (?)

@mthrok I just pushed a new commit where I include test for the dictionary for every release as well. More test never hurt :)
It also changes the value of the dictionary with the second option you described above and fixes wrong naming in a private variable.
I also enjoyed the interaction here very much, very good coding practices review you left me here :100:

@jiwidi
Sorry, I just noticed that tedlium dataset test fails on style test. Do you have time to fix it? I tried to modify the PR but I cannot push to your branch. If you are done with it, let me know, I will merge it first and create a follow-up PR>

@jiwidi
Sorry, I just noticed that tedlium dataset test fails on style test. Do you have time to fix it? I tried to modify the PR but I cannot push to your branch. If you are done with it, let me know, I will merge it first and create a follow-up PR>

Just pushed a new commit that should fix it

@jiwidi
Thank you so much!


Support for sequence 32k

Hi there!
I am trying to work with the FlashMHA example written in the readme (How to use FlashAttention section).
However, for the case with batch = 1, seqlen = 32768, embed_dim = 12288, num_heads = 96, when viewing the kernel summary, fmha_fwd_loop_kernel doesn't exist. (I have tested with seqlen of 4k, 8k,16k and fmha_fwd_loop_kernel does exist)
The following are the exisiting kernels in this 32k case:

How can I solve it? Thanks.

I'm not sure what you mean by "it doesn't exist". Does it run at 32k seqlen? Does it return some output or does it error out?

I am trying to look into the GPU Kernel summary through nsys. While testing with other sequences, fmha_fwd_loop_kernel would be in one of the kernels as below:

However, for the case of 32k seqlen, this function seems not in used?  But I assume this function should be compulsory during the computation?

I'm not sure what you mean by "it doesn't exist". Does it run at 32k seqlen? Does it return some output or does it error out?

I am trying to look into the GPU Kernel summary through nsys. While testing with other sequences, e.g. 4K, fmha_fwd_loop_kernel would be in one of the kernels as below:

However, for the case of 32k seqlen, this function seems not in used ( as it is not seen in the kernel summary)? But I assume this function should be compulsory during the computation?
There isn't any error out and I checked the output tensor size being ([1, 32768, 12288]).
Thanks.

I'm not sure why it wouldn't show up on nsys. Maybe it errors out, but you said it runs fine.


Latest Oni crashes on OSX

I mucked up my old git, so I deleted and reforked. I did all the rebuilding, and I get this:

As a sanity check I npm rm'd everything, but rebuilding isn't working.

Do you need to run npm link again?

 A few of the dependencies have updated, so you might need to kill all existing Oni instances, clear your node_modules folder, and re-run npm install.


Fixing integration test failures for 3.8.1 release

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

Project coverage is 27.51%. Comparing base (947e349) to head (d3b5973).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1428   +/-   ##
=======================================
  Coverage   27.51%   27.51%
=======================================
  Files          61       61
  Lines        6272     6272
=======================================
  Hits         1726     1726
  Misses       4423     4423
  Partials      123      123

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

@GGabriele Reminding for review on this.


Require spec/support files in alphabetical order

This ensures that the require order is the same on all machines, including CI.
For example, we mainly use OS X as our local development machines, while CI runs
on Linux. We've run into ordering issues before due to the different OS's, and
this changes has historically fixed it.

:+1:

:+1:

@tute Are you the leader of suspenders now? Is your thumbs up the final thumbs up?

Yes Gabe. In my non-thoughtbot OSS I rebase/merge them myself (should I here, or should I let you do it?). And, while I'm responsible for suspenders, we have the Experiments Trello board that Joe keeps in mind and I don't visit often, so my sign off here would be enough I'd say for this PR, but for others I ask for his thumbs up too, so we make sure it's the right step forward before merging.
Feel free to merge this!

I'll merge this RIGHT NOW.


InvalidOperationException: ValueFactory attempted to access the Value property

Hi,
I'm using Bootstrapper from nuget package elmah.bootstrapper.1.0.0-beta5 and from time to time I've got the following exception (couldn't find the stable way to reproduce though).
System.InvalidOperationException: ValueFactory attempted to access the Value property of this instance.
   at System.Lazy`1.CreateValue()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Lazy`1.get_Value()
   at Elmah.Bootstrapper.ErrorLogHandlerMappingModule.OnPostMapRequestHandler(HttpContextBase context)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Usually it happens when I rebuild the project with IISExpress running, trying to F5 gives error, after another F5 in browser - all works fine. If site is running under IIS - i need to recycle the app pool.
If you need more details I can provide them, thanks!

I didn't ask for thread-safety for lazy initialization because I didn't need it. However, reading the Lazy<T> source, it seems to me that its recursion detection kicks in a thread-unsafe way, causing a false-negative. There is no recursive call in the Bootstrapper code to the same lazy-backed property. My guess is that more than one thread is running through the lazy value factory, with one setting ALREADY_INVOKED_SENTINEL and another seeing it before the initialization is over. The second thread then thinks it's seeing a recursive call & throws InvalidOperationException to guard against it. A bit too helpful if you ask me.
I've only run this through my head and writing out my theory loud to bounce it off you. Let me know if you think I've gone completely off a cliff. I'll try and test out my theory tomorrow with some code & then make a fix.

I've taken a look at Lazy sources you pointed and it seems like you're right.
I've made small test program in linqpad and it shows the issue(if change LazyThreadSafetyMode from None - issue is gone):
void Main()
{
	var lazy = new Lazy<int>(() => { Thread.Sleep(1000 * 10); return 1; }, LazyThreadSafetyMode.None);

	var tasks = Enumerable
		.Range(0, 10)
		.Select(_ => { Thread.Sleep(100); return Task.Run(() => lazy.Value); })
		.Cast<Task>()
		.ToArray();

	Task.WaitAll();
}

@kirill-gerasimenko Thanks for sharing your results. I've also written a test to try out the theory and reaching the same conclusion and will share it shortly.

Following is a test console program I wrote to exercise LazyThreadSafetyMode. It's slightly involved but I wanted to do this only once and get it right.
namespace LazyTest
{
    #region Imports

    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Reflection;
    using System.Text.RegularExpressions;
    using System.Threading;
    using static System.Console;

    #endregion

    static class ThreadStatics
    {
        [ThreadStatic] public static int Id;
    }

    class Program
    {
        public static LazyThreadSafetyMode LazyThreadSafetyMode = LazyThreadSafetyMode.None;

        static void Main(string[] args)
        {
            var debuggable = (DebuggableAttribute)
                Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(),
                                             typeof(DebuggableAttribute));

            WriteLine($"DebuggableAttribute.IsJITOptimizerDisabled = {debuggable?.IsJITOptimizerDisabled}");

            var options = new
            {
                Threads =
                    args.Where(s => Regex.IsMatch(s, "^([0-9]+)$"))
                        .Select(s => (int?)int.Parse(s))
                        .FirstOrDefault() ?? 20,

                LazyThreadSafetyMode =
                    args.Where(s => Enum.GetNames(typeof(LazyThreadSafetyMode))
                                        .Any(n => n.Equals(s, StringComparison.OrdinalIgnoreCase)))
                        .Select(s => (LazyThreadSafetyMode?)
                                     Enum.Parse(typeof(LazyThreadSafetyMode), s, ignoreCase: true))
                        .FirstOrDefault() ?? LazyThreadSafetyMode.None,
            };

            WriteLine($"Threads = {options.Threads}, LazyThreadSafetyMode = {options.LazyThreadSafetyMode}");
            WriteLine("* = Thread ran value factory");

            LazyThreadSafetyMode = options.LazyThreadSafetyMode;

            using (var ready = new ManualResetEvent(initialState: false))
            {
                var workerz =
                    from readee in new[] { ready }
                    from id in Enumerable.Range(1, options.Threads)
                    let bar = new int?[1]        // by-reference
                    let error = new Exception[1] // by-reference
                    select new
                    {
                        Id     = id,
                        Bar    = bar,
                        Error  = error,
                        Thread = new Thread(() =>
                        {
                            ThreadStatics.Id = id;
                            readee.WaitOne();
                            try { bar[0] = Foo.Bar; }
                            catch (Exception e) { error[0] = e; }
                        })
                    };

                var workers = workerz.ToArray();

                if (workers.Length < options.Threads)
                    WriteLine($"Warning! Using max threads of {workers.Length}.");

                Array.ForEach(workers, t => t.Thread.Start());
                ready.Set(); // go!
                Array.ForEach(workers, w => w.Thread.Join());
                foreach (var w in workers)
                {
                    var initialized = FooBarInitializers.Contains(w.Thread) ? '*' : ' ';
                    WriteLine($"{w.Id,3} {initialized} : Bar = {w.Bar[0],3}, Error = {w.Error[0]?.GetBaseException().Message}");
                }
            }
        }

        static readonly List<Thread> FooBarInitializers = new List<Thread>();

        public static void OnFooBarInitializing()
        {
            lock (FooBarInitializers)
                FooBarInitializers.Add(Thread.CurrentThread);
        }
    }

    static class Foo
    {
        public static int Bar => LazyBar.Value;
        static readonly Lazy<int> LazyBar = new Lazy<int>(CreateBar, Program.LazyThreadSafetyMode);

        static int CreateBar()
        {
            Program.OnFooBarInitializing();
            Thread.Yield(); // entropy
            return ThreadStatics.Id;
        }
    }
}

I used good old threads instead of tasks because I didn't want any pooling or task-inlining to come into effect & interfere with the observed results.
The program starts by printing whether or not JIT optimizations are in effect (debug vs. release build). It then parses the command line arguments, which are allowed to be specified in any order. If an argument is a number then it's taken as the number of threads to exercise with, with the default being 20. If it's one of the LazyThreadSafetyMode members then it's used for the Lazy<T> being exercised, with None being the default. Anything else is ignored silently.
The threads are created and wait until each one has had a chance to initialize a logical and stable thread ID (ThreadStatics.Id). They then go on to access the static class property Foo.Bar that is backed by a Lazy<T>. The property's lazy factory initializes it to the logical ID of the thread passing through it and also which threads have passed through it.
The results of each thread's observations, including any error, are printed at the end.
So with all that said and done, here are the results (using 10 threads):
DebuggableAttribute.IsJITOptimizerDisabled = False
Threads = 10, LazyThreadSafetyMode = None
* = Thread ran value factory
  1   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.
  2   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.
  3   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.
  4   : Bar =   0, Error =
  5   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.
  6   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.
  7   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.
  8   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.
  9 * : Bar =   9, Error =
 10   : Bar =    , Error = ValueFactory attempted to access the Value property of this instance.

Clearly, it's a mess. With PublicationOnly, you get (not surprise):
DebuggableAttribute.IsJITOptimizerDisabled = False
Threads = 10, LazyThreadSafetyMode = PublicationOnly
* = Thread ran value factory
  1 * : Bar =   9, Error =
  2 * : Bar =   9, Error =
  3 * : Bar =   9, Error =
  4 * : Bar =   9, Error =
  5 * : Bar =   9, Error =
  6 * : Bar =   9, Error =
  7 * : Bar =   9, Error =
  8 * : Bar =   9, Error =
  9 * : Bar =   9, Error =
 10 * : Bar =   9, Error =

And finally using ExecutionAndPublication (again, no surprises):
DebuggableAttribute.IsJITOptimizerDisabled = False
Threads = 10, LazyThreadSafetyMode = ExecutionAndPublication
* = Thread ran value factory
  1   : Bar =   9, Error =
  2   : Bar =   9, Error =
  3   : Bar =   9, Error =
  4   : Bar =   9, Error =
  5   : Bar =   9, Error =
  6   : Bar =   9, Error =
  7   : Bar =   9, Error =
  8   : Bar =   9, Error =
  9 * : Bar =   9, Error =
 10   : Bar =   9, Error =

This is now fixed by f8cca5e8ddb64b4a66fb5481ff324cb4814d7fca and published as beta 6. Thanks for reporting & testing.

This is great! Thanks a lot for a quick fix!


Update README.md

typo - localstorage.pollFreq = 1000 to localStorage.pollFreq = 1000

typo localstorage.pollFreq = 1000 to localStorage.pollFreq = 1000


Add lattice to card backgrounds

Here's what Chris thought when I showed him the cards without the lattice:
I don't think the cards look as good without the full lattice, but I know that's a pretty big challenge to add, so it's not as big of a deal. It's probably not worth the time it would take to implement, although if someone is looking for a project to do, it might be worth it.
My main concern here is that we don't want to have 10x the number of card background images because that will use a lot of space. Another concern is that some of the backgrounds will be non-trivial to regenerate (since we need to regenerate the pattern appearing underneath the icons). Perhaps we could find a way to make a small image for each lattice that could superimpose on top of cards.
In any case, this is low priority and does not block the graphic refresh.

Potentially, all we have to to do is just add another div in between our current top level card div and and everything else with a lattice background with the same pattern of offsets. the lattice would be the lattice over a transparent background.

what if the same lattice were applied to every card?  We could pick one of the fancier ones so there is at least some filler in the black lines that are currently there.
Cities will require a different pattern for the lattice when the time comes.

This becomes obsolete with the ultimate changes.


feat(*): add alt text to images - I113

Signed-off-by: kaiiyer<EMAIL_ADDRESS>Issue #113
Added alt text to images
Changes

alt attribute is added for images

Maybe we should close this PR as there haven't been any developments since I commented last week

Reopen if you come back to this @kaiiyer


Remove version(unittest) imports to avoid extra imports in user code.

Another batch, see #6450 for details.

ping @marler8997

Haven't reviewed in detail but changes look fine at the surface level.

Since this decision is going to affect a fair amount of code in ALL of phobos.  Would like to get an opinion from @andralex whether this is the direction we want to go in.
From what I can see, what were'e doing is taking code that is shared between multiple unittest blocks and merging all the unittests into 1 unittest and the shared code is moved inside that new "super unittest".  If there are cyclic dependencies between structures in this category, then they are pulled out and put inside version(unittest) since types inside functions don't support forward referencing.  The hope is that there are no types like this that are going to cause external types from being loaded (so having to compile them won't have a noticeable affect on compile-time).

A further note: I would like to remove as many version(unittest) blocks as possible, and moving single-use functions/types inside actual unittests furthers this goal.

To clarify, this is only happening inside std.concurrency. And really, the "super unittest" consists of 2 very similar small adjacent unittests, which were trivial to put together.

I'm just trying to summarize our strategy for this.  Do we have other strategies for solving the "shared unittest code" problem, or are we planning on using this strategy throughout?  I know that we may not know what's needed until more modules are looked at, but I want to make sure the strategy you've used here is what we want.

This is regarding the structs in std.conv? No, those were already in a version(unittest).

Right.  I was just saying that you "would have put them" inside the unittest block (following the strategy I outlined) but couldn't in this case because of the forward reference issues, so you left them in the version(unittest) block.  This is an example of a weakness which we should consider when evaluating what strategy to take.

There is no requirement for all unittests to be in the same block, nor is that required really anywhere, even in the std.concurrency example.

Right, I'm just saying that if there is "shared code" between unittests, this seems to be the strategy you've chosen.

I would like to remove as many version(unittest) blocks as possible (for the sake of grepping for this problem)

That sounds a bit extreme, unittest fixtures are a common idiom. Let's not take this too far, thanks.

sry wrong button

Do we have other strategies for solving the "shared unittest code" problem, or are we planning on using this strategy throughout?

I plan on moving all code that I can inside unittests. A goal of mine is to eliminate as many instances of version(unittest) as possible. It's like @trusted blocks -- they are very hard to review to see all the cases that may occur.
For example, if a version(unittest) function returns a template instantiation, even though there are no imports directly in the block, the instantiation may import other things, and you'd have to go review the  template to see. Much easier to just stick it in a unittest which you know isn't even going to be semantic'd (eventually).
There are other possibilities as we have discussed elsewhere -- i.e. making everything templates so they aren't actually semantic'd until used from a unittest.

I know that we may not know what's needed until more modules are looked at

I've looked at them all, and there are a few crappy cases. I'm saving them for last, these are the easy ones 😉
I'm fine with shared code in version(unittest) blocks, if that's what makes the most sense. But consider something that is really important -- this is the base library that ALL code uses. We can probably be more strict about what we allow in version(unittest) blocks than most other code bases. We want phobos unittests to have 0 impact if you are testing your code, period.
To that end, what may be the best solution is to put such shared items inside std.internal, and import those inside the unittests. But I don't know that we need to go that far (yet). This exercise is a basic cleanup of the easy things.

Nice verb..."semantic'd" :)
I think we need to treat version(unittest) differently than we have been.  We should treat it as a way to provide "unittest support/framework" code for other modules.  This isn't really a common use case so I would expect it to be used very rarely.
What we currently use them for is to define shared code between unittests within a module.  I expect there to be cases in phobos where there is alot of shared usage of a common set of code.  We could use your strategy to create a "super unittest" to solve this problem but that does have some disadvantages (moving tests around/forward reference problems).  I'm just trying to see if theres a better way to solve this, but I guess we'll see when we get to those problem modules.

I think we need to treat version(unittest) differently than we have been. We should treat it as a way to provide "unittest support/framework" code for other modules.

I like the idea. Just unittest/support in general (for current and other modules).

IMO, if there is common code shared between unittests, said common code should be factored out into its own module (e.g., std.internal.tests.*) and imported from inside the relevant unittest blocks.
version(unittest) is one of those things that look clever and neat at first glance, but with more usage you come to realize that it's a minefield of problems and latent bugs. I would avoid using it unless there is absolutely no other alternative.

IMO, if there is common code shared between unittests, said common code should be factored out into its own module (e.g., std.internal.tests.*) and imported from inside the relevant unittest blocks.

Yes this is another strategy that would work. Thanks for the idea.  @schveiguy Maybe this is the solution we could use for the more "problemantic" modules?

@quickfur
I'm curious if you could mention any problems you've encountered with version(unittest).  The problems that I can think of would be alleviated if we could solve the problem I talked about here (https://forum.dlang.org/post/nbdzcwlgzvdcxnecefdk@forum.dlang.org).  Are there other problems with it that this wouldn't solve?

Yep, I like the idea (see my comment, "what may be the best solution is to put such shared items inside std.internal" ), but it may be overkill for simple things. There may not be a hard set of rules we can come up with that fixes all situations, and I'm not sure we are ready to define it yet in any case.

version(unittest) lets you insert module-level declarations depending on whether you're compiling with -unittest. In the past, this led to bugs in Phobos where some non-unittest code was depending on declarations pulled in inside version(unittest), but since the autotester always builds with -unittest, such bugs are not detected until the PRs introducing these hidden dependencies have already been merged.  But when user code uses the code and compiles without -unittest, you get bugs, But these bugs disappear when you compile with -unittest. Very annoying to track down and fix.  Basically, it boils down to the library author testing one version of the code while shipping a different version, which reduces the value of unittesting (you're not actually testing what you're shipping).
Using version(unittest) also doesn't work well with ddoc'd unittests, because the code example would compile, but contain declarations nowhere visible in the docs, which is very confusing to users reading the docs.  (This same argument could also be used against global imports, which is why I support moving top-level imports into scoped imports instead, even though you could argue it introduces boilerplate.)

Thanks for the explanation @quickfur .  That's basically what I figured.  Though I hadn't thought of the confusing ddoc case.


Bing Maps and other TileLayers

Hi,
there exist a Bing plugin for leaflet, that allows you to use the Bing Mapping Javascript API.
At the moment, ipyleaflet (with the example provided), only provide as TileLayer an Openstreetmap one.
Is there a way to use other tilelayers via ipyleaflet ?

We can use a number of tile services in ipyleaflet. You can check out the BaseMap example notebook for a number of pre-registered tile layers!


The data couldn’t be read because it isn’t in the correct format(missing Provider case phone)

Description
GoTrue fails to decode  UserIdentity.provider entity.
Fix
Add Provider case phone
public enum Provider: String, Codable, CaseIterable {
 case phone
}

Released in https://github.com/supabase-community/supabase-swift/releases/tag/0.1.1


bower.json lists multiple files of the same filetype for "main" option

https://github.com/bower/bower.json-spec#main explicitly states that only one file per filetype should be listed in main:

The entry-point files necessary to use your package. Only one file per filetype.

"main": [
  "src/URI.js",
  "src/IPv6.js",
  "src/SecondLevelDomains.js",
  "src/punycode.js",
  "src/URITemplate.js",
  "src/jquery.URI.js",
  "src/URI.min.js",
  "src/jquery.URI.min.js",
  "src/URI.fragmentQuery.js",
  "src/URI.fragmentURI.js"
],

I would expect only one .js file here.

:+1:
Same issue here, I only need URI.min.js and all the others modules and jQuery are installed by Bower.

The documentation also states:

Do not include minified files.

So we want to only include src/URI.js rather than src/URI.min.js.

My bad, src/URI.js will do it just fine.

… and it's in master as well…

Thanks a lot ! When can we expect a release for that ?

right now I'd make that depend on @bradleyayers' testing efforts. if he thinks he's done and no more issues pop up, I'm happy to release 1.15.2 - but I'd not want to release that, just to see him raise more issues hours later ;)

Ok.
Another question : should the lib still depends on jQuery since the jQuery plugin isn't anymore in bower.json ?

hm… it probably shouldn't. The jQuery binding should probably be moved to a separate repository… :/

I've finished my current stint of testing, so I'm in favour of a new release.

Thanks for your work. Waiting for the release :+1:

v1.15.2 is released. thanks for all the input :)


Fix case where percent = 0 causes error in display_progress_bar

Occasionally the first draw of the progress bar is actually at 0% complete.  This causes a problem in the math to calculate how full the progress bar is.  The error is that x2 is not >= x1

Hi Paul, your proposal is correct: Accoring to the PIL documentation, indeed X2 must be >= X1
The strange thing is that it has worked for so long the way it is.
I just wanted to check what happens when x2<x1:
`if name == "main":
"""the main function can be used to test the display. """
import time
display.set_backlight(1)                                    # display backlight is set on
print("barLength:", "\tpercent:", "\tfilledPixels:", "\tfilledPixels-(x+gap):")
for i in range(-10,101):
    display.display_progress_bar(i, scrambling=False)
    if i in (-1,0,1,100):
        time.sleep(10)
    else:
        time.sleep(0.05)`

The initial printout is:
barLength: 	percent: 	filledPixels: 	filledPixels-(x+gap):
126 	 -10 	 6 	 -12
126 	 -9 	 7 	 -11
126 	 -8 	 8 	 -10
126 	 -7 	 9 	 -9
126 	 -6 	 10 	 -8
126 	 -5 	 12 	 -6
126 	 -4 	 13 	 -5
126 	 -3 	 14 	 -4
126 	 -2 	 15 	 -3
126 	 -1 	 16 	 -2
126 	 0 	 18 	 0
126 	 1 	 19 	 1
126 	 2 	 20 	 2
126 	 3 	 21 	 3

In my case, when x2<x1, the rectangles fills to the left of the (x1) origin yet not error.
Could you kindly elaborate on the error you're experiencing?

My guess is that its the newer version of the pillow library.  I just installed mine last weekend.   The exception was added in pillow version 9.5.0
Here is the pull request that changed to an exception
https://github.com/python-pillow/Pillow/pull/6978

You're right.
By updating from the 8.12 I had to the latest 10.2.0 I got the error "ValueError: x1 must be greater than or equal to x0".
Thank you for spotting the error and the fix.


Pre-upload

CSV file transformations:

[x] Indexing specific rows.
[x] Indexing specific cols.
[x] Match the model fields with CSV fields.
[x] Use at least 2 different cols to match with the amount but with different currencies.

I think using an structure like this, I think could work:

start_row
end_row
match: dict (model_key, csv_col_index, params)

Create a preview for the csv and inputs to generate a csv dimension and match csv and model fields.


FIX: Fixes #30

Without a F/S check, module will show a padlock image or subject user
to further unecessary checks for a non-existent file.

Of course. make performance better, love it.


Fix: regression when no media mapping provided

The change introduced in #150 causes errors/inconsistent URL-escaping behavior when:

No media mapping is provided by the survey
A survey includes binary defaults
A survey references a jr: URL in markdown

This fix restores the previous behavior, but incorporates the fix from #150 to prevent incorrectly injecting paragraphs into markdown fragments.

Sorry for review request noise @MartijnR, tagged you by mistake while the reviewers menu was updating. (But of course you're welcome to take a look!)


Async/Await generated code failing in Node 8.*

TypeScript Version:  2.5.2
I am facing an issue in node 8 where my async method is bombing with the error:
yield doSomethingThatRetunsPromise();
^^^^^

SyntaxError: Unexpected strict mode reserved word

After taking a look through it seems to be that all the working methods have the __awaiter added as  the method body wrapper, however this one does not. The only thing that appears to be different between this and other methods that get the __awaiter is that this contains an await without a response.
I am using Node 8 as platform I am running on, and I am compiling the ts with:
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es2015",
    "sourceMap": true,
    "moduleResolution": "node",
    "noImplicitAny": false,
    "lib": ["es2015"]
  },
  "exclude": [
    "node_modules"
  ]
}

Here is an example bit of code that shows what happens:
Example code
private someExpressRoute = async (req: Request, res: Response) => {
	try
	{
		await doSomethingThatRetunsPromise();   // await but no return
		res.status(200).send();
	}
	catch(error)
	{
		res.status(500).send({ error: "Something went wrong" });
	}
}

Expected behavior:
this.someExpressRoute = (req, res) => __awaiter(this, void 0, void 0, function* () { // as awaiter
	try {
		yield doSomethingThatRetunsPromise();
		res.status(200).send();
	}
	catch (error) {
		res.status(500).send({ error: "Something went wrong" });
	}
});

Actual behavior:
this.someExpressRoute = (req, res) => { // no awaiter
	try {
		yield doSomethingThatRetunsPromise();
		res.status(200).send();
	}
	catch (error) {
		res.status(500).send({ error: "Something went wrong" });
	}
};

I am not sure if the expected behaviour is correct as not entirely sure what generator syntax is valid, but as TS compiles without any errors I would assume the code should be fine, but the other methods with awaiter bit do not cause any problems.

Luckily you can work around this by targeting es2017 in the meantime - Node 7.6 has supported async await for a bit now.

@weswigham can you take a look

I can;t seem to repro this with the following:
// @target: es2015
// @module: commonjs
declare const doSomethingThatRetunsPromise: any;
class Foo {
    private someExpressRoute = async (req: Request, res: {
        status(x: number): { send: Function };
    }) => {
        try
        {
            await doSomethingThatRetunsPromise(); // await but no return
            res.status(200).send();
        }
        catch(error)
        {
            res.status(500).send({ error: "Something went wrong" });
        }
    }
}

@grofit Does this still repro for you with typesript@next? If so, can I have some more context to figure out what's going on?

--t es5 does it for me.

my bad. i can not reproduce this locally on latest either.

I was changing build config a lot so not entirely sure if it was es5 that was causing it, it seems fine at the moment and I am not sure if it was the await which caused it, but I have a version in the private npm repo with this problem, so TSC has output this at some point as I dont touch the dist folder (where it outputs to) but I cannot say for sure what caused it.
Thanks for looking though.


Support nd_freeze

With neurodebian tools 0.38 we added an nd_freeze script. The idea is to be able to "freeze" Dockerfile/Singularityfile recipe to provide a reproducible build even when versions of packages available from Debian and/or NeuroDebian would change in the future.  Its main action is to replace urls in apt sources*.list files with the ones pointing to corresponding Debian and NeuroDebian snapshot repositories.
How to use, should be (soon, since yet to regenerate neurodebian base docker images) as simply as adding a single line if using neurodebian docker images:
FROM neurodebian:jessie
RUN nd_freeze 2018/11/08
...

meanwhile you would need to install neurodebian-freeze package.
Notes:

in case of ubuntu, we do nothing to those apt lines, and only "freeze" the ones for NeuroDebian apt lines. But should be ok'ish if base ubuntu corresponds to already stable/not changing much release
in that upcoming update of docker images I also pre-install eatmydata and make it "handle" all apt-get calls to speed building up... if you are aware of possible "cons" - let me know

Otherwise I would really appreciate feedback etc toward support of the nd_freeze in neurodocker.  E.g. how to specify (e.g. yet anotheer command line option like --nd-freeze DATE). Note also that we already have an option (--keep-original-apt-sources) and might add more -- would be nice to be able to channel them into

@yarikoptic - this is a great idea. we've been working towards the goal of bitwise-reproducible docker images, and using (neuro)debian snapshots will help greatly in this.
--nd-freeze is a good idea. another idea would be make it part of the base image declaration, but i wouldn't want to interfere with docker's various ways of defining a base image.
a question for you: at the moment, neurodocker will do things in the order that the user asks. if the user provides the --nd-freeze option, should it be applied at the beginning of the dockerfile? i am leaning towards yes but am open to other suggestions.
i'll open a pr that will take care of applying --nd-freeze.

Yes, should come as early as possible ;-)


Rewrite storage to use a context

So, I may have rewritten most of the storage implementation.. 😅
Good thing is, the code is now a bit more readable and should work for all our purposes.

[ ] Documentation

Also, importing is now much easier
import Storage from 'storage';


Hooks do not have ImagePullPolicy defined in Helm Chart

Describe the bug
Hooks where public images are used do not have an imagePullPolicy defined in the Helm chart. Without it, it is not possible to use images stored in the internal registry, which is defined in the global parameters.
To Reproduce

Set global.image.registry, repository, pullSecrets to own registry and repository
Deploy app Czertainly to k8S cluster
czertainly-add-hosts-to-deployment-job-xxxxx pod not started, because ErrPullImage
Failed to pull image "registry_host:port/czertainly/kubectl:1.27.3": failed to pull and unpack image "registry_host:port/czertainly/kubectl:1.27.3": failed to resolve reference "registry_host:port/czertainly/kubectl:1.27.3": failed to authorize: failed to fetch anonymous token: unexpected status from GET request to https://registry_host/jwt/auth?scope=repository%3Aczertainly%2Fkubectl%3Apull&service=container_registry: 403 Forbidden

Expected behavior
A pull image will be performed and pod will start as with other microservices
Desktop (please complete the following information):

Czertainly ver. 2.11
OS: rocky 9.3
Helm ver. 3.10
k8s version: 1.28

Hi @lubohr , according to your description it seems that the issue is not related to imagePullPolicy, but rather to missing imagePullSecrets in hooks that will cause 403 Forbidden when the container should be pulled from the private registry.
I believe that the PR #196  should resolve this issue, it includes both imagePullSecrets and imagePullPolicy in hooks according the data in values.yaml.
Do you have any comments to that?


Update IconPicker.js

When attempting to merge a PR on my own repo using this project (amazing work by the way) I got an error regarding the use of http:// vs https:// in this file.
I am happy to change myself manually each PR but thought it would be a good idea to respond at the source!

Hi
Thanks for PR
If you want contribute again feel to free to do it ;)
Regards


Title bar and full screen mode.

I noticed that both the buttons and full screen mode with disabled intentionally. I changed it so they are on in my build, this allows me to treat messenger just like iMessages. I can have them both in full screen mode and swipe between them. Due to the similar UI, it feel natural.

Done (https://github.com/rsms/fb-mac-messenger/commit/cd486a698c2e7908ade158c6d398e73f91900c96) and done (https://github.com/rsms/fb-mac-messenger/commit/751810b04a72b8383f0dc97e780aef4d715d72e8).

Awesome thanks


Implement Vector3.Normalize() as a property?

This is more of a question that an actual commit, the code is for example.
There are a quite a few people coming from unity, that are used to being able to get a normalized version of a vector, using:
var thing = myVector.normalized;
Godot uses a function instead of a property, so it might be a good idea to implement the other format as well so new people transitioning are more comfortable with it.
(plus its a nice shorthand, sorta fits with c# code)
again mostly looking for opinions rather that a final change.

I don't think this is useful, it makes more sense as a method, and we don't want duplicate APIs for the same thing.

I don't think this is useful, it makes more sense as a method, and we don't want duplicate APIs for the same thing.


Added Libxml, Librsvg, Gettext and Libadwaita demo

This PR add Libxml, Librsvg and Gettext which are needed to parse user interface (xml) files as well as to display icons and compile Libadwaita demo.

I would rather avoid to make installation instructions even more complex than they already are. Gettext will indeed be necessary as soon as internationalisation is introduced.

I would rather avoid to make installation instructions even more complex than they already are. Gettext will indeed be necessary as soon as internationalisation is introduced.

Granted, this makes the instruction a bit more complex, but I would argue that they are necessary, not optional. I doubt that anyone intends to use GTK and Libadwaita without a user interface. In fact, I was stung by this because gtk_widget_class_set_template_from_resource was failing to locate the resource — gresource was silently failing, and it looked like it was successfully generated. So yes, we can certainly compile a broken iteration of GTK4 and Libadwaita by skipping steps for simplicity, but I don't think the trade-off is worth it. 😅

I tested every listing of the book on Windows, so I know that at least templates work.
However I've compiled GTK months ago, not sure if it introduced additional dependencies in the meantime.
Anyways, your PR is much appreciated @wroyca.
Let's see when I have time to reproduce it locally on my machine.
The test is whether I can compile a working libadwaita demo without your proposed changes, right?

I can reproduce that icons don't appear without librsvg. Unfortunately, I get the following error when compiling it:
  = note: liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.14.rcgu.o) : error LNK2019: unresolved external symbol xmlInitParser referenced in function _ZN3std4sync4once4Once9call_once28_$u7b$$u7b$closure$u7d$$u7d$17h6d242d49ddf6dea3E.llvm.11956169904201746136
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlFreeDoc referenced in function _ZN4core3ptr56drop_in_place$LT$librsvg..xml..xml2_load..Xml2Parser$GT$17h399c368e8b7bed84E
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.10.rcgu.o) : error LNK2001: unresolved external symbol xmlFreeDoc
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlFreeParserCtxt referenced in function _ZN4core3ptr56drop_in_place$LT$librsvg..xml..xml2_load..Xml2Parser$GT$17h399c368e8b7bed84E
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.10.rcgu.o) : error LNK2001: unresolved external symbol xmlFreeParserCtxt
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlNewEntity referenced in function _ZN7librsvg3xml9xml2_load18sax_entity_decl_cb17h158f78582206afc2E
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlStopParser referenced in function _ZN7librsvg3xml9xml2_load23sax_start_element_ns_cb17hc9224348bb8b2563E
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlCreateIOParserCtxt referenced in function _ZN7librsvg3xml9xml2_load10Xml2Parser11from_stream17h83f835047b3875efE
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlCtxtUseOptions referenced in function _ZN7librsvg3xml9xml2_load10Xml2Parser11from_stream17h83f835047b3875efE
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlParseDocument referenced in function _ZN7librsvg3xml9xml2_load10Xml2Parser5parse17hd0b674667e9a4596E
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.6.rcgu.o) : error LNK2019: unresolved external symbol xmlCtxtGetLastError referenced in function _ZN7librsvg3xml9xml2_load10Xml2Parser5parse17hd0b674667e9a4596E
          liblibrsvg-a52f19e459b0ac20.rlib(librsvg-a52f19e459b0ac20.librsvg.0980368a-cgu.10.rcgu.o) : error LNK2019: unresolved external symbol xmlFreeNode referenced in function _ZN7librsvg3xml8XmlState13entity_insert17h850452479ae74346E
          C:\checkouts\personal-projects\librsvg\win32\vs16\release\x64\obj\rsvg_c_api\x86_64-pc-windows-msvc\release\deps\rsvg_convert.exe : fatal error LNK1120: 10 unresolved externals

looks like libxml wasn't installed properly

looks like libxml wasn't installed properly

Yeah, looks like it.
I've used the instructions in this PR, which look fine to me.

Seems like our windows instructions become more monstrous every time we touch it.

Maybe we should set up a GitHub CI to provide a pre-built installation of the required GNOME libraries on Windows? I've been thinking about this for a while to automate GTK and Libadwaita installations 😓

Seems like our windows instructions become more monstrous every time we touch it.

Maybe we should set up a GitHub CI to provide a pre-built installation of the required GNOME libraries on Windows? I've been thinking about this for a while to automate GTK and Libadwaita installations 😓

Would you be interested to set that up?
An installer like this would be quite helpful :)

Seems like our windows instructions become more monstrous every time we touch it.

Maybe we should set up a GitHub CI to provide a pre-built installation of the required GNOME libraries on Windows? I've been thinking about this for a while to automate GTK and Libadwaita installations 😓

Would you be interested to set that up? An installer like this would be quite helpful :)
Sure, I can look into it whenever I have time — I'll PR if I go through with it. (:

Sounds good!


support custom/nested lenses as part of generic protocol

Coverage remained the same at 68.362% when pulling e9d249ffc47188949ea59a780a1c37ad83ff9b46 on generic-nested-lens into 70c5968434efa913bd3541ba3191ab5128f31afa on master.


node: use channel instead of waitRole func

It solves problem when node is still unaware of its demotion and starts
the manager again, which tries to redirect requests with an invalid role.
Also, I think it's simpler because doing less stuff(notifying only
manager role).
ping @tonistiigi

[Current coverage][cc-pull] is 53.88%

Merging [#1014][cc-pull] into [master][cc-base-branch] will increase coverage by 0.18%

@@             master      #1014   diff @@
==========================================
  Files            75         75
  Lines         11605      11594    -11
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           6233       6248    +15
+ Misses         4479       4460    -19
+ Partials        893        886     -7

[][cc-pull]

Powered by Codecov. Last updated by [a78a157...24587fd][cc-compare]
[cc-base-branch]: https://codecov.io/gh/docker/swarmkit/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/docker/swarmkit/compare/a78a157ef66adf0978f031e7bbc9bff2c16df9a0...24587fdd29d59b859cc0b2e45b785aaa4cf1347e
[cc-pull]: https://codecov.io/gh/docker/swarmkit/pull/1014?src=pr

ping @tonistiigi @aaronlehmann

Can you explain more the issue this solves. When is the node unaware of its demotion?

@tonistiigi so, demotion happens, <-done channel is fired and for loop in runManager starts again and starts new manager because n.role field updated not immediately.

LGTM. It's so weird now(after demotion change) that we have to listen for 2 same events from different apis/connections and then synchronise them. Not sure we still have all the cases covered.

@tonistiigi yup, I'm trying to get integration tests to pass, so at least we can start to write all cases.

It's so weird now(after demotion change) that we have to listen for 2 same events from different apis/connections and then synchronise them. Not sure we still have all the cases covered.

It might be better to only use the role change event, and add a function to Manager that we call in this case to tell it that it has been removed from the cluster (so it can move the raft state out of the way). I wrote the current code to let raft stop the manager when it realizes the node isn't in the cluster, but maybe this wasn't the right approach.

I'm not really sure if it makes sense to have a goroutine that waits for a signal that the node has been promoted to manager. I think it might be simpler to have a function that starts a manager if there isn't one currently running.
The code change LGTM though.

@tonistiigi @aaronlehmann should we merge it?

I think the change is an improvement but I wonder if there's a better way to organize this than what we're doing now. What do you think about removing the goroutine that waits for promotion?

On Jun 20, 2016, at 17:44, Alexander Morozov<EMAIL_ADDRESS>wrote:
@tonistiigi @aaronlehmann should we merge it?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@aaronlehmann I'll take a look. That should simplify things.

@aaronlehmann I've tried and it requires more deep refactoring and whole other way of synchronization. I failed to get stable results :)


tests: lib: mem_alloc: Fix up conditions for "no_mem" testcases

These should run for minlibc configured with
CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=0. In all other cases normal
testsuite should run.
How preprocessor #if's were put previously, some configurations,
e.g. prj_newlib.conf, had the testsuite completely skipped.
Signed-off-by: Paul Sokolovsky<EMAIL_ADDRESS>

E.g.:
west build -b qemu_x86 -t run -- -DCONF_FILE=prj_newlib.conf
...
[134/135] To exit from QEMU enter: 'CTRL+a, x'[QEMU] CPU: qemu32,+nx,+pae
SeaBIOS (version zephyr-v1.0.0-0-g31d4e0e-dirty-20200714_234759-fv-az50-zephyr)
Booting from ROM..*** Booting Zephyr OS build zephyr-v2.5.0-2673-gc26cdb7409d7  ***
===================================================================
PROJECT EXECUTION SUCCESSFUL

Caught in our CI: https://staging.validation.linaro.org/scheduler/job/286849


Copy and drop new verbs

Copy and drop new verbs implementation:

Javascript implementation
UI implementation
Python implementation
New tests inside workflow to test these verbs

Please add entries for the new verbs in the root docs folder. These are loaded and displayed in the verb UX help section.


fix:打印更多日志用来分析是否线程池出现问题

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


case sensitive in jwtauthn match prefix

Describe the bug
When using JWT authorization, it is case-sensitive to the prefix that the URL matches, which can lead to authentication bypassing in some scenarios.
It is recommended to apply URL normalization and employ case-insensitive comparison in order to eliminate the risk of potential access control list bypasses.
Expected behavior
Be intercepted by jwtauthn
Actual behavior
Bypass the intercept
Steps to reproduce
config.js
......
"rules": [
             {
                     "match": {
                     "prefix": "/index"
             },
......

NodeJS with Express
curl http://<IP_ADDRESS>:2046/index -s -o /dev/null  -H "Authorization: Bearer token" -w "%{http_code}\n"
401

curl http://<IP_ADDRESS>:2046/indeX -s -o /dev/null  -H "Authorization: Bearer token" -w "%{http_code}\n"
200

Minimal yet complete reproducer code (or GitHub URL to code)
Environment

MOSN Version

According to RFC3986, only the host, sheme, and hexadecimal digits should be case-insensitive. The other generic syntax  components are assumed to be case-sensitive.
So, by default, the prefix "/index" should not match with "/indeX"

Yes, that's true for RFC3986, but the conventions generally use all lowercase paths.
As MOSN is a general network proxy, I think its function of authenticating the matching path needs to support the differences of most applications to the greatest extent.
Personally, I suggest that case-insensitive matching be enabled by default, and users can configure it by themselves.
If the default is case-sensitive, it is best to remind users of possible risks.

Is there any documentation about your mentioned conventions?
I referred to the Envoy JWT Authentication module, but found that its match is also case-sensitive. Or am I wrong with some places?

And we do need to provide the ability to configure whether case-sensitive or not by users.
That's what @GLYASAI is doing right now in https://github.com/mosn/mosn/pull/1637

There may not be an explicit rule on this, I see in dapr
https://github.com/dapr/dapr/pull/2768 https://github.com/yaron2/dapr/blob/c8d6d14e9430afc13a499111c40cdc363f78d5bf/pkg/config/configuration.go#L547
They appear to be case insensitive after a security audit.
But I think it's better to be consistent with the RFC and Envoy as you do.

There may not be an explicit rule on this,
But I think it's better to be consistent with the RFC and Envoy as you do.