ES6 Import Statement Without Relative Paths

Is it planned to add import statements without relative paths (webpack) feature to create-react-app?
You can found info regarding this here and here.
With this we can do
import Header from 'components/Header';
import Grid from 'components/Grid';
import TransactionForm from 'containers/TransactionForm';
import TransactionSummary from 'containers/TransactionSummary';
import * as AppActions from 'actions';

instead of
import Header from '../../components/Header';
import Grid from '../../components/Grid';
import TransactionForm from '../TransactionForm';
import TransactionSummary from '../TransactionSummary';
import * as AppActions from '../../actions';

We will likely support this via #476 but you would have to add the current directory to NODE_PATH yourself. We want to keep this explicit because it is quite prone to breakage.
Here is an example: https://github.com/reactjs/redux/issues/1681#issuecomment-216508641. We don’t want people to have issues like this so we won’t enable it by default.


react-native start does not start server

I'm attempting to run the packager but it seems the server isn't working.
I created a new test project with the following command:
react-native init freeapp

I ran:
npm install

I attempt to run the packager with the following command:
react-native start --port=7999

The port is unused. I've also tried with other ports.
It starts and I get the following output:
 ┌────────────────────────────────────────────────────────────────────────────┐
 │  Running packager on port 7999.                                            │
 │                                                                            │
 │  Keep this packager running while developing on any JS projects. Feel      │
 │  free to close this tab and run your own packager instance if you          │
 │  prefer.                                                                   │
 │                                                                            │
 │  https://github.com/facebook/react-native                                  │

 │                                                                            │
 └────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
   /Users/jamesjeffery/Projects/freebie-app/freeapp

[Hot Module Replacement] Server listening on /hot

React packager ready.

[11/1/2016, 1:12:43 AM] <START> Initializing Packager
[11/1/2016, 1:12:43 AM] <START> Building in-memory fs for JavaScript
[11/1/2016, 1:12:43 AM] <END>   Building in-memory fs for JavaScript (126ms)
[11/1/2016, 1:12:43 AM] <START> Building Haste Map
[11/1/2016, 1:12:44 AM] <END>   Building Haste Map (1441ms)
[11/1/2016, 1:12:44 AM] <END>   Initializing Packager (1617ms)

I then navigate in the browser to: http://localhost:7999 and get an error saying the site can not be reached. This is causing the app to not load the JS bundle.
Running sudo lsof -n -i4TCP:7999| grep LISTEN shows its open:
node    8023 jamesjeffery   20u  IPv6 0x8f6b8bbf97fe4b9b      0t0  TCP *:7999 (LISTEN)

Here's the tail end of the watchman log file. Not sure if it's any use:
6, "ru_inblock": 15798, "ru_minflt": 37093, "ru_nswap": 0, "ru_oublock": 482, "ru_nsignals": 0, "ru_nvcsw": 15633}
2016-10-31T23:47:27,220: [io /Users/jamesjeffery/Projects] crawl complete
2016-11-01T00:04:10,145: [io /Users/jamesjeffery/Projects/freebie-app/freeapp] getattrlist(/Users/jamesjeffery/Projects/freebie-app/freeapp/ios/build/Build/Intermediates/RCT
Settings.build/Debug-iphonesimulator/RCTSettings.build/dgph-KI0HkMsg) failed: No such file or directory
2016-11-01T00:04:10,145: [io /Users/jamesjeffery/Projects] getattrlist(/Users/jamesjeffery/Projects/freebie-app/freeapp/ios/build/Build/Intermediates/RCTSettings.build/Debug
-iphonesimulator/RCTSettings.build/dgph-KI0HkMsg) failed: No such file or directory
2016-11-01T01:06:02,271: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] PERF: {"ru_nivcsw": 0, "meta": {"root": {"case_sensitive": false, "ticks": 2747, "path":
 "/Users/jamesjeffery/Projects/freebie-app/freeapp", "recrawl_count": 0, "number": 1, "watcher": "fsevents"}}, "start_time":<PHONE_NUMBER>.2716551, "pid": 405, "description": "
UserDropped", "ru_msgrcv": 0, "ru_majflt": 0, "ru_msgsnd": 0, "ru_ixrss": 0, "version": "4.7.0", "system_time": 3.0000000000000001e-6, "elapsed_time": 7.9999999999999996e-6,
 "ru_idrss": 0, "user_time": 5.0000000000000004e-6, "ru_maxrss": 0, "ru_inblock": 0, "ru_minflt": 0, "ru_nswap": 0, "ru_oublock": 0, "ru_nsignals": 0, "ru_nvcsw": 0}
2016-11-01T01:06:02,271: [fsevents /Users/jamesjeffery/Projects] PERF: {"ru_nivcsw": 0, "meta": {"root": {"case_sensitive": false, "ticks": 2841, "path": "/Users/jamesjeffer
y/Projects", "recrawl_count": 0, "number": 3, "watcher": "fsevents"}}, "start_time":<PHONE_NUMBER>.2718561, "pid": 405, "description": "UserDropped", "ru_msgrcv": 0, "ru_majflt
": 0, "ru_msgsnd": 0, "ru_ixrss": 0, "version": "4.7.0", "system_time": 9.9999999999999995e-7, "elapsed_time": 5.0000000000000004e-6, "ru_idrss": 0, "user_time": 3.000000000
0000001e-6, "ru_maxrss": 0, "ru_inblock": 0, "ru_minflt": 0, "ru_nswap": 0, "ru_oublock": 0, "ru_nsignals": 0, "ru_nvcsw": 0}

2016-11-01T01:06:02,305: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] Lost sync, so resync from last_good event 4272246
2016-11-01T01:06:02,305: [fsevents /Users/jamesjeffery/Projects] Lost sync, so resync from last_good event 4272297
2016-11-01T01:06:02,624: [fsevents /Users/jamesjeffery/Projects] Historical resync completed at event id 4277829 (caught up on 5532 events)
2016-11-01T01:06:02,624: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] Historical resync completed at event id 4277829 (caught up on 5583 events)
2016-11-01T01:06:02,625: [fsevents /Users/jamesjeffery/Projects] PERF: {"ru_nivcsw": 0, "meta": {"root": {"case_sensitive": false, "ticks": 2846, "path": "/Users/jamesjeffer
y/Projects", "recrawl_count": 0, "number": 3, "watcher": "fsevents"}}, "start_time":<PHONE_NUMBER>.6251349, "pid": 405, "description": "UserDropped", "ru_msgrcv": 0, "ru_majflt
": 0, "ru_msgsnd": 0, "ru_ixrss": 0, "version": "4.7.0", "system_time": 3.0000000000000001e-6, "elapsed_time": 7.9999999999999996e-6, "ru_idrss": 0, "user_time": 5.000000000
0000004e-6, "ru_maxrss": 0, "ru_inblock": 0, "ru_minflt": 0, "ru_nswap": 0, "ru_oublock": 0, "ru_nsignals": 0, "ru_nvcsw": 0}
2016-11-01T01:06:02,625: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] PERF: {"ru_nivcsw": 0, "meta": {"root": {"case_sensitive": false, "ticks": 2750, "path":
 "/Users/jamesjeffery/Projects/freebie-app/freeapp", "recrawl_count": 0, "number": 1, "watcher": "fsevents"}}, "start_time":<PHONE_NUMBER>.6251941, "pid": 405, "description": "
UserDropped", "ru_msgrcv": 0, "ru_majflt": 0, "ru_msgsnd": 0, "ru_ixrss": 0, "version": "4.7.0", "system_time": 9.9999999999999995e-7, "elapsed_time": 5.0000000000000004e-6,
 "ru_idrss": 0, "user_time": 3.9999999999999998e-6, "ru_maxrss": 0, "ru_inblock": 0, "ru_minflt": 0, "ru_nswap": 0, "ru_oublock": 0, "ru_nsignals": 0, "ru_nvcsw": 0}
2016-11-01T01:06:02,626: [fsevents /Users/jamesjeffery/Projects] Lost sync, so resync from last_good event 4273992
2016-11-01T01:06:02,626: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] Lost sync, so resync from last_good event 4273992
2016-11-01T01:06:02,832: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] Historical resync completed at event id 4277973 (caught up on 3981 events)
2016-11-01T01:06:02,835: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] PERF: {"ru_nivcsw": 0, "meta": {"root": {"case_sensitive": false, "ticks": 2753, "path":
 "/Users/jamesjeffery/Projects/freebie-app/freeapp", "recrawl_count": 0, "number": 1, "watcher": "fsevents"}}, "start_time":<PHONE_NUMBER>.8354001, "pid": 405, "description": "
UserDropped", "ru_msgrcv": 0, "ru_majflt": 0, "ru_msgsnd": 0, "ru_ixrss": 0, "version": "4.7.0", "system_time": 3.0000000000000001e-6, "elapsed_time": 7.9999999999999996e-6,
 "ru_idrss": 0, "user_time": 5.0000000000000004e-6, "ru_maxrss": 0, "ru_inblock": 0, "ru_minflt": 0, "ru_nswap": 0, "ru_oublock": 0, "ru_nsignals": 0, "ru_nvcsw": 0}
2016-11-01T01:06:02,836: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] Lost sync, so resync from last_good event 4276668
2016-11-01T01:06:02,844: [fsevents /Users/jamesjeffery/Projects] Historical resync completed at event id 4277973 (caught up on 3981 events)
2016-11-01T01:06:02,848: [fsevents /Users/jamesjeffery/Projects] PERF: {"ru_nivcsw": 0, "meta": {"root": {"case_sensitive": false, "ticks": 2848, "path": "/Users/jamesjeffer
y/Projects", "recrawl_count": 0, "number": 3, "watcher": "fsevents"}}, "start_time":<PHONE_NUMBER>.8483419, "pid": 405, "description": "UserDropped", "ru_msgrcv": 0, "ru_majflt
": 0, "ru_msgsnd": 0, "ru_ixrss": 0, "version": "4.7.0", "system_time": 1.2e-5, "elapsed_time": 7.9999999999999996e-6, "ru_idrss": 0, "user_time": 1.1e-5, "ru_maxrss": 0, "r
u_inblock": 0, "ru_minflt": 0, "ru_nswap": 0, "ru_oublock": 0, "ru_nsignals": 0, "ru_nvcsw": 0}
2016-11-01T01:06:02,848: [fsevents /Users/jamesjeffery/Projects/freebie-app/freeapp] Historical resync completed at event id 4282338 (caught up on 5670 events)
2016-11-01T01:06:02,848: [fsevents /Users/jamesjeffery/Projects] Lost sync, so resync from last_good event 4276668
2016-11-01T01:06:02,858: [fsevents /Users/jamesjeffery/Projects] Historical resync completed at event id 4282389 (caught up on 5721 events)

react-native-cli: 1.0.0
react-native: 0.36.0
xcode: 8.0.0
watchman: 4.7.0
npm: 3.10.8
node: 7.0.0
OSX: 10.11.5

If any more information is required please let me know.

Issue resolved. I rebooted, retrying and it worked.

Delete/uninstall and rebuild..it works


ANC Logic - Diagnosis + Next Steps: Imminent Delivery [6h]

Issue
When a patient meets the criteria for Imminent Delivery it will trigger the pop-up and immediately go to referral. The patient will not finish the encounter as this is an emergency situation.

Pop-Up
Referral

Supporting Documents

The logic for ANC can be found here on the ANC - Nurse tab.
The designs can be found in Figma under HC - ANC under the purple logic heading.

Note:

In the case that the design in the issue varies from what is in Figma, ping Jeanette on slack and use the Figma design.

To Do:

Style next step screens per design
Adjust logic per document

@jeanette-pelizzon
Question about the icon: so far, when referring to HC / Hospital / Program we were using this icon:

Here we get another one. Is this model speciall so that we get new icon?
Alternatively, maybe we should be showing this icon at other models?

@jeanette-pelizzon

The patient will not finish the encounter as this is an emergency situation.

What should happen when nurse clicks on 'Save' button?

(1) Great, we can continue using that icon here. I can update the designs this week to reflect that.
(2) We need to figure this out. Ideally, if an emergency pops up and we refer a patient to the hospital without finishing the encounter, then E-heza would save where the patient left off in that encounters flow and pick back up at the next visit. We could have a pop-up at the beginning informing the user that it is the continuation of a visit. Unsure how tricky that would get clinically if the next they come to the HC requires different labs or if the EGA then changes a diagnosis... @adamhstewart  can probably help suss this out more.

(2) updated: nurse refers patient to hospital, sees progress report, hits save --- this closes the encounter. If the patient returns we will do a new encounter for them


force plugins to rerender

Hello,
Is it possible to redraw plugins?
I'm using the legend plugin and i call update on chartist.js, but chartist shows
the old legends with the new data.
best regards
Patrick

Yea this would be very helpful. We are using an average line plugin and getting similar results.

I've modified the plugin code. I listen now for a 'data' event and if the data changes I'll update the plugin. Maybe this helps you, too.
        return (chart) => {
            chart.on("data", function() {
                $('ul.ct-legend', $(chart.container)).remove();
                legend(chart);
            }.bind(this));
            return legend(chart);
        };

Unfortunately, the plugin I'm using needs the data that comes back from the create event but I need access to it in the data event to make it work.

According to https://github.com/moxx/chartist-plugin-fill-donut/issues/1 this is no longer an issue

@gionkunz the filldonut plugin uses a custom mechanisms to update the chart with new plugin data, the reference to new options is hardcoded (fillDonutOptions if you look at the source).
Is there a generic way to update  plugins options with the .update() function? I see you have referenced the above case in many other issues related to updating plugin options, but there doesn't seem to be a core meachnism yet, or am I missing something?


Header alignment & styling improved #690

Header part was not styled i styled it properly and also the dark mode changing of the button text-color will change and i aligned the mode in between the website to visible the user quickly
Before :

After 💯

please give me the gssoc-ext & gssoc2024 label and level1 label this is my first contribution in GSSoC Thank you

@sayednowshad i didn't assigned you the issue, and you have created direct Pull Request.
This is not a Good Open Source Practice.
So I am Closing the Pull Request.
Until I assign the issue no one should create or commit the pull request.
please understand.
Please follow the gssoc guidelines properly
This is an open source and Everyone deserves equal opportunity.


File corruption?

https://drive.google.com/drive/folders/15fhDbQnJXuXDXNRRSUG8C706sWCBsGw-?usp=sharing
With the February file, when I go to set the image, it works just fine. However, when I go to set the April file, it just sets my desktop to the default Ventura one.

It seems like it could be a macOS version problem (13.2.1)...

It seems like a limitation to the file size, since anything under 2 GB (technically, probably 2^31 bytes) seems to work for me. However, when I set a smaller version of the image (I just uploaded it to Google Drive), the desktop does not show anything; just, a black desktop.

Though, I did try to convert the original PNGs to a lower quality version of JPEGs, and that seemed to work ok. It's weird, since the February image in Google Drive originally came from PNGs...


syncthing: 1.1.4 -> 1.2.0

Motivation for this change
The motivation for this change is to upgrade syntching from 1.1.4 to 1.2.0
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[X] other Linux distributions (Xubuntu)

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)

[x] syncthing-init - failed; also fails with syncthing-1.1.4
[X] syncthing-relay - passed

[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"

[x] syncthing-gtk
[X] qsyncthingtray
[x] syncthing-tray

[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Determined the impact on package closure size (by running nix path-info -S before and after): before = 59608632, after = 61636056
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Release notes

This release does not interoperate with Syncthing 0.14.45 or older.
This release adds QUIC with NAT traversal as a new transport protocol. TCP is usually more performant and remains the preferred way of connection when possible.
This release adds automatic crash reporting. See https://docs.syncthing.net/users/crashrep.html for details.
This release makes large / variable block size the only available mode of operation; small / fixed blocks are deprecated. See https://docs.syncthing.net/advanced/folder-uselargeblocks.html for details.
This release reverts the version naming change in #4586 (v1.1.4). Versions are now named with the time of their archiving, and the file modification time is unchanged when archiving. An exception to this is the "Trashcan" versioner which does not modify the name - instead it does set the file modification time the time of archiving.

@jonringer I get the same error without this PR. How about you?

Confirmed the tray apps do indeed work. The only things left are syncthing-gtk and the init NixOS test. Both of which are failing due to something other than this PR, but might as well fix them :)

syncthing-gtk is now working :)
However, I had to manually edit the configuration generated by it's wizard (-1 command-line option) because it was incorrect; The syncthing WebUI URL port and API key were incorrect.

The syncthing-init NixOS test is fixed. Finished!

@emmanuelrosa why was this closed?

for what it's worth:
nix-review passes on NixOS
binaries seem to work

Version 1.2.1 is out. I'm testing it.
Sent from ProtonMail mobile
-------- Original Message --------
On Aug 8, 2019, 12:07 AM, Jon wrote:

for what it's worth:
nix-review passes on NixOS
binaries seem to work
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Update miner.py

there is something wrong
the error is TypeError: the JSON object must be str, not 'bytes'
the solution is from stackoverflow
https://stackoverflow.com/questions/42683478/typeerror-the-json-object-must-be-str-not-bytes

This does not fix my issue

It's a problem with putting some ECDSA keys. Just make sure that there's no "+" in either the public or public key... works fine for me now. I don't know you "shortened" the key

same issue here, is there anyone to merge?

Honestly, this is one small issue in a myriad of issues that make this project not worth it in my opinion.  check out https://github.com/hourglss/hourcrypto I'm pretty close to getting a networked coin to work properly. It's still in python and actually shares the bones of the project with simplecoin.
I tried to initially just fix simplecoin at first. but it has so many issues.


Add compiler plugin for RabbitMQ

Description:
Add compiler plugin for RabbitMQ Connector.
Related Issues (optional):
#13812
Suggested Labels (optional):
Type/Task
Suggested Assignees (optional):
Arshika

Fixed with b12340b641b3eeee8abf3957ec408e646232d73c


PyStackReg missing for Windows on conda

Since (fb0f9a14ac3f88c159a486cea13292aab6f7e777), using the environnement.yml with Pystackreg as dependency to install imagepy with anaconda fails on windows because the package  is only available for Linux on anaconda.
PackageNotFoundError: Packages missing in current channels:

  - pystackreg

For instance, you can ignore it by simply pip install pystackreg, and it should work.
But yes, you are right. For the late comers, It seems a win-based conda package would simplify everything.
For my knowledge, this pystackreg project is not on Github, but on bitbucket.
Maybe we should ask the pystackreg's maintainer to add a win-based release?

I tested the pip installation on windows and it works, hence the pull request

It is difficult to install pystackreg on python3.7, and it is a gpl project, So remove it from master and publish as a plugin?

That could be an option too 👍


Browserify doesn't bundle external resources.

This sounds like a race condition, the file is being generated in the public directory, but not copied into the content directory.

The problem is that we are using global stack.


Support numeric conversion of strings with locale-specific grouping & decimal separators

Original author: danpaulsmith (December 16, 2011 12:44:17)
If a figure has a comma in it, e.g. "32,645" - this is parsed as a string instead of an int.
I think any ints or floats containing commas in the form of a string should be parsed as an int/float.
(And as a side note, I've deleted my attachments in "closed" and "fixed" issues, but still have the "Issue attachment storage quota exceeded" message, preventing me from attaching any media to future issues).
Dan
Original issue: http://code.google.com/p/google-refine/issues/detail?id=507

I agree with @dfhuynh that it's dangerous to do this during import, so switching the tag from Import to GREL as a toNumber enhancement request for locale-specific grouping (ie thousands) and decimal separators.
Trifacta's DataWranger NUMVALUE requires them specified separately and explicitly, but I think it'd be useful to be able easily get the defaults for a given user specified locale. It also automatically removes any currency symbol, which I'm not 100% sure is a good idea.

Talend's support is through both a Format Numbers dialog as well as a function.  https://help.talend.com/r/en-US/Cloud/data-preparation-user-guide/changing-number-format


exclude Out from json marshalling in Operation

fixes #47.
@jeremyrickard , @silvin-lubecki this replace #48 , now has marshall/unmarshall tests

/brig run


Users cannot create comments with DNN 9.2

Describe the bug
Visitors are not able to post comments, nothing happens when one clicks on the Comment button.
It appears that jquery.fancybox is not compatible with jquery 3.2.1 used in DNN 9.2.x.
-Console error TypeError: a(...).fancybox is not a function
Software Versions

DNN: 9.2.x
Module: 6.4.1.
All blog templates

Regards

Fancybox was only used on the classicBlog template. It was replaced with Colorbox in the Default and v60 templates because it was no longer maintained.
So if you need a quick fix until the a new release, you can simply change templates in the meantime.
That being said, I did not experience problems submitting comments because of this error, so if you still have issues after testing with another template, please open another issue for the comments issue. If not, this will be resolved in next release.


I faced a similar issue as you with no transforms.json file. I had to do a sort of strange workaround, so I'd really appreciate it if someone could give a more straightforward way of doing it, but this is what I did: 1- downloaded the colmap2nerf.py file from instant-ngp 2- saved my colmap outputs (cameras.txt, points3D.txt, and images.txt) to a folder called colmap_text 3- ran the colmap2nerf.py as follows: python colmap2nerf.py --colmap_matcher exhaustive --text path/to/colmap_text --images path/to/images --aabb_scale 16 --overwrite 4-moved the transforms.json file that was produced by step 3 into the directory on the same level as your images directory 5- run the training script

          > I faced a similar issue as you with no transforms.json file. I had to do a sort of strange workaround, so I'd really appreciate it if someone could give a more straightforward way of doing it, but this is what I did: 1- downloaded the colmap2nerf.py file from [instant-ngp](https://github.com/NVlabs/instant-ngp/tree/master/scripts) 2- saved my colmap outputs (cameras.txt, points3D.txt, and images.txt) to a folder called colmap_text 3- ran the colmap2nerf.py as follows: `python colmap2nerf.py --colmap_matcher exhaustive --text path/to/colmap_text --images path/to/images --aabb_scale 16 --overwrite` 4-moved the transforms.json file that was produced by step 3 into the directory on the same level as your images directory 5- run the training script

Hope this helps!!
Hello, I have encountered the same problem, but my COLMAP outputs are in ”bin“ format instead of “txt” format. Is there a solution? Thank you very much.

Originally posted by @c1earl0ve in https://github.com/google-research/multinerf/issues/152#issuecomment-1970794951

No module named train , when I call it :) any idea?


Oddly midirecting link

At the bottom of the tutorial (https://github.com/BurntSushi/nflgame/wiki/Tutorial-for-non-programmers:-Installation-and-examples) is a link that purports to take you to the API doc (it's supposed to go to http://burntsushi.net/doc/nflgame/). But when you click it it takes it to your (Andrew Gallant's ) bio instead.

Fixed.


AWS L7 ELB HTTP -> HTTPS redirection

Describe the bug
When using AWS L7 ELB to terminate TLS it gets stuck in a 301 redirect loop. When we set x_forwarded_proto_redirect: true we end up getting stuck in a redirect loop, if we set x_forwarded_proto_redirect: false both http and https work correctly.
To Reproduce
Config for gateway and example app presuming you already have the RBAC and Service accounts setup for ambassador
---
apiVersion: v1
kind: Namespace
metadata:
  name: ambassador-nginx
---
apiVersion: v1
kind: Service
metadata:
  name: ambassador-nginx
  namespace: ambassador-nginx
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "{{ tls certificate ARN }}"
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
    service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
    external-dns.alpha.kubernetes.io/hostname: >-
          {{ nginx-hello.example.com }}
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v1
      kind:  Module
      name:  ambassador
      config:
        ambassador_id: ambassador-nginx
        use_proxy_proto: false
        use_remote_address: false
        x_forwarded_proto_redirect: true
spec:
  externalTrafficPolicy: Cluster
  type: LoadBalancer
  ports:
  - name: http
    port: 80
    targetPort: 8080
  - name: https
    port: 443
    targetPort: 8080
  selector:
    service: ambassador
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ambassador-nginx
  namespace: ambassador-nginx
spec:
  selector:
    matchLabels:
      app: ambassador-nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: ambassador-nginx
    spec:
      containers:
      - name: ambassador-nginx
        image: quay.io/datawire/ambassador:0.70.1
        env:
        - name: AMBASSADOR_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: AMBASSADOR_ID
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        ports:
        - name: http
          containerPort: 8080
        - name: https
          containerPort: 8443
        - name: admin
          containerPort: 8877
        securityContext:
          runAsUser: 8888
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-hello
  namespace: ambassador-nginx
spec:
  selector:
    matchLabels:
      run: nginx-hello
  replicas: 1
  template:
    metadata:
      labels:
        run: nginx-hello
    spec:
      containers:
      - name: nginx-hello
        image: nginxdemos/hello
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-hello
  namespace: ambassador-nginx
  labels:
    run: nginx-hello
  annotations:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v1
      kind:  Mapping
      name:  nginx-hello_ambassador-nginx_mapping
      prefix: /
      host: {{ nginx-hello.example.com }}
      service: nginx-hello.ambassador-nginx:80
      ambassador_id: ambassador-nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    name: http
  selector:
    run: nginx-hello

Expected behavior
When you visit http://{{ nginx-hello.example.com }} you will be redirected to https://{{ nginx-hello.example.com }}
Versions (please complete the following information):

Ambassador: 0.61.1
Kubernetes environment: EKS
Version: v1.11.8-eks-7c34c0

Additional context
Ambassador debug output
[2019-05-28 06:50:58.919][92][debug][http] [source/common/http/conn_manager_impl.cc:580] [C4421][S15381452206514635184] request headers complete (end_stream=true):
':authority', 'nginx-hello.example.com'
':path', '/'
':method', 'GET'
'accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'
'accept-encoding', 'gzip, deflate, br'
'accept-language', 'en-GB,en-US;q=0.9,en;q=0.8'
'cache-control', 'max-age=0'
'cookie', 'refresh=0'
'upgrade-insecure-requests', '1'
'user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
'x-forwarded-for', '<IP_ADDRESS>'
'x-forwarded-port', '443'
'x-forwarded-proto', 'https'
'connection', 'keep-alive'

[2019-05-28 06:50:58.919][92][debug][http] [source/common/http/conn_manager_impl.cc:1037] [C4421][S15381452206514635184] request end stream
[2019-05-28 06:50:58.919][92][debug][http] [source/common/http/conn_manager_impl.cc:1278] [C4421][S15381452206514635184] encoding headers via codec (end_stream=true):
':status', '301'
'location', 'https://nginx-hello.example.com/'
'date', 'Tue, 28 May 2019 06:50:58 GMT'
'server', 'envoy'

[2019-05-28 06:50:58.921][95][debug][main] [source/server/connection_handler_impl.cc:257] [C4700] new connection
[2019-05-28 06:50:59.194][95][debug][http] [source/common/http/conn_manager_impl.cc:243] [C4424] new stream
[2019-05-28 06:50:59.194][95][debug][http] [source/common/http/conn_manager_impl.cc:580] [C4424][S11732994775546273527] request headers complete (end_stream=true):
':authority', 'nginx-hello.example.com'
':path', '/'
':method', 'GET'
'accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'
'accept-encoding', 'gzip, deflate, br'
'accept-language', 'en-GB,en-US;q=0.9,en;q=0.8'
'cache-control', 'max-age=0'
'cookie', 'refresh=0'
'upgrade-insecure-requests', '1'
'user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
'x-forwarded-for', '<IP_ADDRESS>'
'x-forwarded-port', '443'
'x-forwarded-proto', 'https'
'connection', 'keep-alive'

[2019-05-28 06:50:59.194][95][debug][http] [source/common/http/conn_manager_impl.cc:1037] [C4424][S11732994775546273527] request end stream
[2019-05-28 06:50:59.194][95][debug][http] [source/common/http/conn_manager_impl.cc:1278] [C4424][S11732994775546273527] encoding headers via codec (end_stream=true):
':status', '301'
'location', 'https://nginx-hello.example.com/'
'date', 'Tue, 28 May 2019 06:50:58 GMT'
'server', 'envoy'

[2019-05-28 06:50:59.196][95][debug][main] [source/server/connection_handler_impl.cc:257] [C4701] new connection
[2019-05-28 06:50:59.308][81][debug][main] [source/server/connection_handler_impl.cc:257] [C4702] new connection
[2019-05-28 06:50:59.308][81][debug][http] [source/common/http/conn_manager_impl.cc:243] [C4702] new stream
[2019-05-28 06:50:59.308][81][debug][http] [source/common/http/conn_manager_impl.cc:580] [C4702][S10597010048053133075] request headers complete (end_stream=true):
':authority', '<IP_ADDRESS>:8001'
':path', '/logging'
':method', 'POST'
'user-agent', 'python-requests/2.20.1'
'accept-encoding', 'gzip, deflate'
'accept', '*/*'
'connection', 'keep-alive'
'content-length', '0'

[2019-05-28 06:50:59.308][81][debug][http] [source/common/http/conn_manager_impl.cc:1037] [C4702][S10597010048053133075] request end stream
[2019-05-28 06:50:59.308][81][debug][admin] [source/server/http/admin.cc:1068] [C4702][S10597010048053133075] request complete: path: /logging
[2019-05-28 06:50:59.308][81][debug][http] [source/common/http/conn_manager_impl.cc:1278] [C4702][S10597010048053133075] encoding headers via codec (end_stream=false):
':status', '200'
'content-type', 'text/plain; charset=UTF-8'
'cache-control', 'no-cache, max-age=0'
'x-content-type-options', 'nosniff'
'date', 'Tue, 28 May 2019 06:50:59 GMT'
'server', 'envoy'

[2019-05-28 06:50:59.309][81][debug][connection] [source/common/network/connection_impl.cc:502] [C4702] remote close
[2019-05-28 06:50:59.309][81][debug][connection] [source/common/network/connection_impl.cc:183] [C4702] closing socket: 0
[2019-05-28 06:50:59.309][81][debug][main] [source/server/connection_handler_impl.cc:68] [C4702] adding to cleanup list
[2019-05-28 06:50:59.311][81][debug][main] [source/server/connection_handler_impl.cc:257] [C4703] new connection
[2019-05-28 06:50:59.311][81][debug][http] [source/common/http/conn_manager_impl.cc:243] [C4703] new stream
[2019-05-28 06:50:59.311][81][debug][http] [source/common/http/conn_manager_impl.cc:580] [C4703][S4294166464280849593] request headers complete (end_stream=true):
':authority', '<IP_ADDRESS>:8001'
':path', '/stats'
':method', 'GET'
'user-agent', 'python-requests/2.20.1'
'accept-encoding', 'gzip, deflate'
'accept', '*/*'
'connection', 'keep-alive'

[2019-05-28 06:50:59.311][81][debug][http] [source/common/http/conn_manager_impl.cc:1037] [C4703][S4294166464280849593] request end stream
[2019-05-28 06:50:59.311][81][debug][admin] [source/server/http/admin.cc:1068] [C4703][S4294166464280849593] request complete: path: /stats
[2019-05-28 06:50:59.315][81][debug][http] [source/common/http/conn_manager_impl.cc:1278] [C4703][S4294166464280849593] encoding headers via codec (end_stream=false):
':status', '200'
'content-type', 'text/plain; charset=UTF-8'
'cache-control', 'no-cache, max-age=0'
'x-content-type-options', 'nosniff'
'date', 'Tue, 28 May 2019 06:50:59 GMT'
'server', 'envoy'

[2019-05-28 06:50:59.316][81][debug][connection] [source/common/network/connection_impl.cc:502] [C4703] remote close
[2019-05-28 06:50:59.316][81][debug][connection] [source/common/network/connection_impl.cc:183] [C4703] closing socket: 0
[2019-05-28 06:50:59.316][81][debug][main] [source/server/connection_handler_impl.cc:68] [C4703] adding to cleanup list
[2019-05-28 06:50:59.386][81][debug][upstream] [source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-05-28 06:50:59.386][81][debug][upstream] [source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-05-28 06:50:59.387][81][debug][upstream] [source/common/network/dns_impl.cc:158] Setting DNS resolution timer for 5000 milliseconds
[2019-05-28 06:50:59.470][95][debug][http] [source/common/http/conn_manager_impl.cc:243] [C4631] new stream
[2019-05-28 06:50:59.470][95][debug][http] [source/common/http/conn_manager_impl.cc:580] [C4631][S6829643634668549348] request headers complete (end_stream=true):
':authority', 'nginx-hello.example.com'
':path', '/'
':method', 'GET'
'accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'
'accept-encoding', 'gzip, deflate, br'
'accept-language', 'en-GB,en-US;q=0.9,en;q=0.8'
'cache-control', 'max-age=0'
'cookie', 'refresh=0'
'upgrade-insecure-requests', '1'
'user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
'x-forwarded-for', '<IP_ADDRESS>'
'x-forwarded-port', '443'
'x-forwarded-proto', 'https'
'connection', 'keep-alive'

[2019-05-28 06:50:59.470][95][debug][http] [source/common/http/conn_manager_impl.cc:1037] [C4631][S6829643634668549348] request end stream
[2019-05-28 06:50:59.470][95][debug][http] [source/common/http/conn_manager_impl.cc:1278] [C4631][S6829643634668549348] encoding headers via codec (end_stream=true):
':status', '301'
'location', 'https://nginx-hello.example.com/'
'date', 'Tue, 28 May 2019 06:50:59 GMT'
'server', 'envoy'

chrome-output.txt

@kflynn This is the behavior I was seeing earlier. Once you set x_forwarded_proto_redirect: true ambassador seems to be completely overriding the normal listener with the redirect listener:
Before setting x_forwarded_proto_redirect: true
{
    "@type": "/envoy.config.bootstrap.v2.Bootstrap",
    "static_resources": {
        "clusters": [
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "http2_protocol_options": {},
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_127_0_0_1_8501",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "<IP_ADDRESS>",
                                                "port_value": 8501,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_127_0_0_1_8501",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_127_0_0_1_8877",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "<IP_ADDRESS>",
                                                "port_value": 8877,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_127_0_0_1_8877",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_NoTaReAlSeRvIcE",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "notarealservice",
                                                "port_value": 80,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_NoTaReAlSeRvIcE",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "http2_protocol_options": {},
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_extauth_127_0_0_1_8500",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "<IP_ADDRESS>",
                                                "port_value": 8500,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_extauth_127_0_0_1_8500",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_httpbin_org_80",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "httpbin.org",
                                                "port_value": 80,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_httpbin_org_80",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_qotm",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "qotm",
                                                "port_value": 80,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_qotm",
                "type": "STRICT_DNS"
            }
        ],
        "listeners": [
            {
                "address": {
                    "socket_address": {
                        "address": "<IP_ADDRESS>",
                        "port_value": 8080,
                        "protocol": "TCP"
                    }
                },
                "filter_chains": [
                    {
                        "filters": [
                            {
                                "config": {
                                    "access_log": [
                                        {
                                            "config": {
                                                "format": "ACCESS [%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% \"%REQ(X-FORWARDED-FOR)%\" \"%REQ(USER-AGENT)%\" \"%REQ(X-REQUEST-ID)%\" \"%REQ(:AUTHORITY)%\" \"%UPSTREAM_HOST%\"\n",
                                                "path": "/dev/fd/1"
                                            },
                                            "name": "envoy.file_access_log"
                                        }
                                    ],
                                    "http_filters": [
                                        {
                                            "config": {},
                                            "name": "envoy.grpc_web"
                                        },
                                        {
                                            "config": {
                                                "grpc_service": {
                                                    "envoy_grpc": {
                                                        "cluster_name": "cluster_extauth_127_0_0_1_8500"
                                                    },
                                                    "timeout": "5.000s"
                                                },
                                                "use_alpha": true
                                            },
                                            "name": "envoy.ext_authz"
                                        },
                                        {
                                            "config": {
                                                "domain": "ambassador",
                                                "rate_limit_service": {
                                                    "grpc_service": {
                                                        "envoy_grpc": {
                                                            "cluster_name": "cluster_127_0_0_1_8501"
                                                        }
                                                    }
                                                },
                                                "request_type": "both",
                                                "timeout": "0.020s"
                                            },
                                            "name": "envoy.rate_limit"
                                        },
                                        {
                                            "name": "envoy.cors"
                                        },
                                        {
                                            "name": "envoy.router"
                                        }
                                    ],
                                    "http_protocol_options": {
                                        "accept_http_10": false
                                    },
                                    "normalize_path": true,
                                    "route_config": {
                                        "virtual_hosts": [
                                            {
                                                "domains": [
                                                    "*"
                                                ],
                                                "name": "backend",
                                                "routes": [
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/ambassador/v0/check_ready"
                                                        },
                                                        "route": {
                                                            "prefix_rewrite": "/ambassador/v0/check_ready",
                                                            "priority": null,
                                                            "rate_limits": [
                                                                {
                                                                    "actions": [
                                                                        {
                                                                            "request_headers": {
                                                                                "descriptor_key": "x_limited_user",
                                                                                "header_name": "x-limited-user"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "stage": 0
                                                                }
                                                            ],
                                                            "timeout": "10.000s",
                                                            "weighted_clusters": {
                                                                "clusters": [
                                                                    {
                                                                        "name": "cluster_127_0_0_1_8877",
                                                                        "weight": 100
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/ambassador/v0/check_alive"
                                                        },
                                                        "route": {
                                                            "prefix_rewrite": "/ambassador/v0/check_alive",
                                                            "priority": null,
                                                            "rate_limits": [
                                                                {
                                                                    "actions": [
                                                                        {
                                                                            "request_headers": {
                                                                                "descriptor_key": "x_limited_user",
                                                                                "header_name": "x-limited-user"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "stage": 0
                                                                }
                                                            ],
                                                            "timeout": "10.000s",
                                                            "weighted_clusters": {
                                                                "clusters": [
                                                                    {
                                                                        "name": "cluster_127_0_0_1_8877",
                                                                        "weight": 100
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/httpbin-limited/"
                                                        },
                                                        "route": {
                                                            "host_rewrite": "httpbin.org",
                                                            "prefix_rewrite": "/",
                                                            "priority": null,
                                                            "rate_limits": [
                                                                {
                                                                    "actions": [
                                                                        {
                                                                            "request_headers": {
                                                                                "descriptor_key": "x_limited_user",
                                                                                "header_name": "x-limited-user"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "stage": 0
                                                                }
                                                            ],
                                                            "timeout": "3.000s",
                                                            "weighted_clusters": {
                                                                "clusters": [
                                                                    {
                                                                        "name": "cluster_httpbin_org_80",
                                                                        "weight": 100
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/ambassador/v0/"
                                                        },
                                                        "route": {
                                                            "prefix_rewrite": "/ambassador/v0/",
                                                            "priority": null,
                                                            "rate_limits": [
                                                                {
                                                                    "actions": [
                                                                        {
                                                                            "request_headers": {
                                                                                "descriptor_key": "x_limited_user",
                                                                                "header_name": "x-limited-user"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "stage": 0
                                                                }
                                                            ],
                                                            "timeout": "10.000s",
                                                            "weighted_clusters": {
                                                                "clusters": [
                                                                    {
                                                                        "name": "cluster_127_0_0_1_8877",
                                                                        "weight": 100
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/qotm/open/"
                                                        },
                                                        "route": {
                                                            "prefix_rewrite": "/",
                                                            "priority": null,
                                                            "rate_limits": [
                                                                {
                                                                    "actions": [
                                                                        {
                                                                            "request_headers": {
                                                                                "descriptor_key": "x_limited_user",
                                                                                "header_name": "x-limited-user"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "stage": 0
                                                                }
                                                            ],
                                                            "timeout": "3.000s",
                                                            "weighted_clusters": {
                                                                "clusters": [
                                                                    {
                                                                        "name": "cluster_qotm",
                                                                        "weight": 100
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/httpbin/"
                                                        },
                                                        "route": {
                                                            "host_rewrite": "httpbin.org",
                                                            "prefix_rewrite": "/",
                                                            "priority": null,
                                                            "rate_limits": [
                                                                {
                                                                    "actions": [
                                                                        {
                                                                            "request_headers": {
                                                                                "descriptor_key": "x_limited_user",
                                                                                "header_name": "x-limited-user"
                                                                            }
                                                                        },
                                                                        {
                                                                            "remote_address": {}
                                                                        }
                                                                    ],
                                                                    "stage": 0
                                                                }
                                                            ],
                                                            "timeout": "3.000s",
                                                            "weighted_clusters": {
                                                                "clusters": [
                                                                    {
                                                                        "name": "cluster_httpbin_org_80",
                                                                        "weight": 100
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/callback"
                                                        },
                                                        "route": {
                                                            "prefix_rewrite": "/",
                                                            "priority": null,
                                                            "rate_limits": [
                                                                {
                                                                    "actions": [
                                                                        {
                                                                            "request_headers": {
                                                                                "descriptor_key": "x_limited_user",
                                                                                "header_name": "x-limited-user"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "stage": 0
                                                                }
                                                            ],
                                                            "timeout": "3.000s",
                                                            "weighted_clusters": {
                                                                "clusters": [
                                                                    {
                                                                        "name": "cluster_NoTaReAlSeRvIcE",
                                                                        "weight": 100
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "server_name": "envoy",
                                    "stat_prefix": "ingress_http",
                                    "use_remote_address": true,
                                    "xff_num_trusted_hops": 0
                                },
                                "name": "envoy.http_connection_manager"
                            }
                        ],
                        "use_proxy_proto": true
                    }
                ],
                "name": "ambassador-listener-8080"
            }
        ]
    }
}

After setting x_forwarded_proto_redirect: true
{
    "@type": "/envoy.config.bootstrap.v2.Bootstrap",
    "static_resources": {
        "clusters": [
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "http2_protocol_options": {},
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_127_0_0_1_8501",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "<IP_ADDRESS>",
                                                "port_value": 8501,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_127_0_0_1_8501",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_127_0_0_1_8877",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "<IP_ADDRESS>",
                                                "port_value": 8877,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_127_0_0_1_8877",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_NoTaReAlSeRvIcE",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "notarealservice",
                                                "port_value": 80,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_NoTaReAlSeRvIcE",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "http2_protocol_options": {},
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_extauth_127_0_0_1_8500",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "<IP_ADDRESS>",
                                                "port_value": 8500,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_extauth_127_0_0_1_8500",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_httpbin_org_80",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "httpbin.org",
                                                "port_value": 80,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_httpbin_org_80",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_qotm",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "qotm",
                                                "port_value": 80,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_qotm",
                "type": "STRICT_DNS"
            }
        ],
        "listeners": [
            {
                "address": {
                    "socket_address": {
                        "address": "<IP_ADDRESS>",
                        "port_value": "8443",
                        "protocol": "TCP"
                    }
                },
                "filter_chains": [
                    {
                        "filters": [
                            {
                                "config": {
                                    "access_log": null,
                                    "http_filters": [
                                        {
                                            "name": "envoy.router"
                                        }
                                    ],
                                    "http_protocol_options": {
                                        "accept_http_10": false
                                    },
                                    "normalize_path": true,
                                    "route_config": {
                                        "virtual_hosts": [
                                            {
                                                "domains": [
                                                    "*"
                                                ],
                                                "name": "backend",
                                                "require_tls": "EXTERNAL_ONLY",
                                                "routes": [
                                                    {
                                                        "match": {
                                                            "prefix": "/"
                                                        },
                                                        "redirect": {
                                                            "https_redirect": true,
                                                            "path_redirect": "/"
                                                        }
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "server_name": "envoy",
                                    "stat_prefix": "ingress_http",
                                    "use_remote_address": true,
                                    "xff_num_trusted_hops": 0
                                },
                                "name": "envoy.http_connection_manager"
                            }
                        ],
                        "use_proxy_proto": true
                    }
                ],
                "name": "redirect_listener"
            }
        ]
    }
}

Also seeing the same issue. Using a lower version of ambassador in the meantime.

The same issue in the 0.70.1 version

@containscafeine I have discovered where the issue.
If you look at https://github.com/datawire/ambassador/blob/030d897cafa65e592eb3438b391310b6d900986d/ambassador/ambassador/envoy/v2/v2listener.py#L452 you can see you set a default route for a listner
self.routes: List[dict] = [ {
    'match': {
        'prefix': '/',
    },
    'redirect': {
        'https_redirect': True
    }
} ]

This default route is an infinite redirect loop as the envoy setting redirect -> https_redirect: True just does a redirect that only swaps the scheme to https ending in an infinte loop of redirection to same URL with https.
The next issue is that if you set require TLS that is the only route that gets added to the listener  found in the if statement https://github.com/datawire/ambassador/blob/master/ambassador/ambassador/envoy/v2/v2listener.py#L477 so you will never get any routes to the services you require or have described in the anotations only the default route with the redirect loop. I would of thought that you would still build the routes in the else statement and remove the self.require_tls = None  that wroutes are still built as desired and then just set the require_tls on the virtual host like you do https://github.com/datawire/ambassador/blob/master/ambassador/ambassador/envoy/v2/v2listener.py#L566
I wasn't sure if there was another reason why this config is setup this way as it is a redirect listener and didn't know the impact of changing these settings would have so hope this comment makes sense and is okay.

Fixed in 0.72


Reduce default strength of EntropyPasswordValidator

In the use symfony/validator work the new EntropyPasswordValidator was made the default PasswordValidator for CMS 6, however this appears to be a bit too strong compared to CMS 5
We set the EntropyPasswordValidator to have a default strength on PasswordStrength::STRENGH_STRONG. This means you now require a password of at least 16 characters, and 19 characters if using a passphrase
The default password validation in CMS 5 is only 8 characters. This goes up to 10 if using cwp-core or similar configuration was used, and you also needed some uppercase / punctuation characters in there too
Given that STRENGTH_STRONG is such a departure from CMS 5, it seems like we should either (in order of smallest to biggest change)

Set RulesPasswordValidator as the default in CMS 6, which will match CMS 5 behaviour
Set the default to STRENGTH_WEAK, which is still an increase in required strength from CMS 5
Set the default to STRENGTH_MEDIUM

@madmatt Do you have any views on this?
Comparison of what passes the password validators
CMS 5 - silverstripe/installer
1234567 fail 7 chars
12345678 pass 8 chars

CMS 5 - silverstripe/installer with cwp/cwp-core config
https://github.com/silverstripe/cwp-core/blob/3/_config/security.yml#L9
12345678 fail 8 chars
1234567890 fail 10 chars
1234567abc fail 10 chars
1234567abC pass 10 chars
1234567ab_ pass 10 chars

CMS 6 - PasswordStrength::STRENGTH_VERY_WEAK;
Symfony throws an Exception :-) Minimum score is actually STRENGTH_WEAK
CMS 6 - PasswordStrength::STRENGTH_WEAK;
the-quick fail 9 chars
Abcdef!@# fail 9 chars
tH3-q#iC= fail 9 chars
the-quick- fail 10 chars
Abcdef!@#$ pass 10 chars
tH3-q#iC=! pass 10 chars
the-quick-b pass 11 chars
123456789012345678 fail 18 chars
1234567890123456789 pass 19 chars

CMS 6 - PasswordStrength::STRENGTH_MEDIUM;
the-quick-br fail 12 chars
Abcdef!@#$%^ fail 12 chars
tH3-q#iC=!,0 fail 12 chars
the-quick-bro fail 13 chars
Abcdef!@#$%^& pass 13 chars
tH3-q#iC=!,0@ pass 13 chars
the-quick-brow pass 14 chars
123456789012345678901234 fail 24 chars
1234567890123456789012345 pass 25 chars

CMS 6 - PasswordStrength::STRENGTH_STRONG;
Abcdef!@#$%^&*( fail 15 chars
tH3-q#iC=!,0@v~ fail 15 chars
Abcdef!@#$%^&*() pass 16 chars
tH3-q#iC=!,0@v~* pass 16 chars
the-quick-brown-fo fail 18 chars
the-quick-brown-fox pass 19 chars
123456789012345678901234567890 fail 30 chars
1234567890123456789012345678901 pass 31 chars

CMS 6 - PasswordStrength::STRENGTH_VERY_STRONG;
Didn't test
New issues created

https://github.com/silverstripe/silverstripe-framework/issues/11475

Acceptance criteria

[ ] Default password strength is set to STRENGTH_MEDIUM

PRs

https://github.com/silverstripe/silverstripe-framework/pull/11476

Couple of questions that I think I know the answer to but want to confirm:

When upgrading, you're not forced to enter a new valid password in order to log in, right? It's just when you next go to change your password, reset your password or create a new user that you'd be required to do so?
This would apply for all Member objects by default, right? For example both members with access to the CMS and those just registering as a website user (assuming a website allows registration)?
This would be easy to override, via YML config?
Can we emulate the old behaviour in some way easily, for those that want to opt out - without introducing jank like a custom validator or other annoying-thing-we-will-want-to-deprecate-later?
Finally, how do we display validation failures - it's not necessarily as easy as saying "just make sure you have uppercase, lowercase, numbers and symbols and at least X characters" anymore as it's not a set of YML values, rather it's a strength rating, right? I guess we could type a user-friendly description to each of the different default strengths...

IMO I think it's worth using the jump to 6 to meaningfully improve security, so I'm more in favour of a jump to PasswordStrength::STRENGTH_STRONG as a default, as long as you can change it easily and we document it clearly in the upgrade guide. If it's a YML change to get back to (something close to) the old settings, even if it's not exactly the same, this seems like an easy decision for people to make, while still ensuring that new builds and those more security conscious sites get a safer experience out of the box.
It means we have to trust people upgrading will look at the docs - but I think that should be a given.
Overall, I'm in favour of going to STRENGTH_STRONG as a default so long as it's easy to revert - but I don't feel super passionate about it either. Call it 75% in favour, 25% against :)

When upgrading, you're not forced to enter a new valid password in order to log in, right? It's just when you next go to change your password, reset your password or create a new user that you'd be required to do so?

Correct - there is no retrospective validation of passwords. Password validation only happens when you're setting a new password.

This would apply for all Member objects by default, right? For example both members with access to the CMS and those just registering as a website user (assuming a website allows registration)?

Yup, unless there's some custom logic changing how that works.

This would be easy to override, via YML config?

Very easy, yes

Can we emulate the old behaviour in some way easily, for those that want to opt out - without introducing jank like a custom validator or other annoying-thing-we-will-want-to-deprecate-later?

The old behaviour is retained in the RulesPasswordValidator which you can set via YAML config or via PHP code.

Finally, how do we display validation failures - it's not necessarily as easy as saying "just make sure you have uppercase, lowercase, numbers and symbols and at least X characters" anymore as it's not a set of YML values, rather it's a strength rating, right? I guess we could type a user-friendly description to each of the different default strengths...

The validation error message in ConfirmedPasswordValidator for CMS 6 is "The password strength is too low. Please use a stronger password."
That's the same as the message from symfony's validation logic, which is what the EntropyPasswordValidator uses.
There are a variety of messages in the RulesPasswordValidator depending on what validation fails.

I agree that we should meaningfully increase security, though I think I'd still prefer STRENGTH_MEDIUM simply because requiring more than 16 chars for a basic style password feels like it goes past some sort of psychological barrier for me
Ideally we'd have a UX component in the password field that provides feedback to the user about password strength as you type, it could be as simple as a line of text below the input element that says "Password strength: weak".

This sounds like a good compromise to me. Increase security but without making it insanely difficult for the average user. I'm a 👍🏼 to using STRENGTH_MEDIUM.
Thanks for the detailed feedback @GuySartorelli, all sounds great to me, and awesome that there's the RulesPasswordValidator that you can fallback to. In that case, so long as we document that in the upgrade guide as a fallback option if you want to retain your previous rules, then that sorts out any issues with increasing the default requirement.
It's also worth thinking about our overall strategy around passwords here - one of the reasons for long / complex passwords is to avoid brute force attacks. That's not as relevant for Silverstripe because of the lockout system that only allows you a small number of tries within 15minutes before getting locked out - meaning that brute forcing is essentially impossible for passwords a lot shorter than 16 characters.

Brute force attacks can also be used if someone gets a dump of the database, so any password strategy should always take them into account.

Yeah, that is certainly true and is a valid consideration (nice shout @GuySartorelli, thanks!), although there's a lot worse that attackers are likely to do with a full database dump from any site that isn't purely public information. I reckon MEDIUM strikes a reasonable balance - and people can always choose to make it harder as well.

Thanks for the feedback, sounds like we should set it to MEDIUM, which is the default level in symfony/validator
I've made a proof of concept for the UX feedback component (OK it's just jquery), PRs linked in description
Here's a video of the component https://www.youtube.com/watch?v=HAFfEhTzcBo

Overall what you've shown in the video looks neat. Won't make sense when a different validation callback is passed into ConfirmedPasswordField or when a different password validator is applied to Member.

PR merged. No docs change required.


Single letter permission changes (chmod +x)

Previously chmod.sh only accepted strings of length 9 to convert to an equivalent permission number.
Now shorter strings are accepted for use cases such as:

chmod +x
chmod +sx
etc ...

I've merged/updated it; please test.
I don't what is the use case for it though,
because +x and similar options
are supposed to be used in combination with some existing permissions

Its for anybody wondering what the effect of their change would be.
curl cht.sh/chmod+x
Will show the user which permission bits will be effected and what number command would be equivalent.
curl cht.sh/chmod+111


Support flow 0.53.x for<EMAIL_ADDRESS>

There's still a few known issues, particularly with tagged templates but this should be a good start.

hrm. Looks like some quirks in prettier is causing issues.

just to keep things clean, i'd like to land: https://github.com/flowtype/flow-typed/pull/1189 first

closing in favor of https://github.com/flowtype/flow-typed/pull/1156 didn't see that earlier :/


On calculation of the score for the Gaussian likelihood

Hi, I am writing to consult you on the computation of likelihood score $\nabla_{x_{t}}\log\mu(y\mid x_{t})=\frac{A^{H}(y-Ax_{t})}{\gamma_{t}^{2}+\sigma^{2}}$ in eq. (4) of the corresponding paper.
Specifically, in the code part, I do not understand how you implement $\nabla_{x_{t}}\log\mu(y\mid x_{t})=\frac{A^{H}(y-Ax_{t})}{\gamma_{t}^{2}+\sigma^{2}}$. I guess the code for this is lines 136-152 in main.py, which I copy as follows for reference
                # get measurements for current estimate
                meas = forward_operator(normalize(samples, estimated_mvue))
                # compute gradient, i.e., gradient = A_adjoint * ( y - Ax_hat )
                # here A_adjoint also involves the sensitivity maps, hence the pointwise multiplication
                # also convert to real value since the ``complex'' image is a real-valued two channel image
                meas_grad = torch.view_as_real(torch.sum(self._ifft(meas-ref) * torch.conj(maps), axis=1)).permute(0,3,1,2)
                # re-normalize, since measuremenets are from a normalized estimate
                meas_grad = unnormalize(meas_grad, estimated_mvue)
                # convert to float incase it somehow became double
                meas_grad = meas_grad.type(torch.cuda.FloatTensor)
                meas_grad /= torch.norm( meas_grad )
                meas_grad *= torch.norm( p_grad )
                meas_grad *= self.config['mse']

                # combine measurement gradient, prior gradient and noise
                samples = samples + step_size * (p_grad - meas_grad) + noise

However, from the above code, I do not quite understand the correspondence between meas_grad with the formula $\nabla_{x_{t}}\log\mu(y\mid x_{t})=\frac{A^{H}(y-Ax_{t})}{\gamma_{t}^{2}+\sigma^{2}}$. For example, it seems that only the FFT matrix is considered in A, and I do not see the values of $\sigma^2$, and in particular the value of $\gamma_{t}^2$.  Why there is operations like meas_grad /= torch.norm( meas_grad ) and meas_grad *= torch.norm( p_grad ), and something like meas_grad = unnormalize(meas_grad, estimated_mvue)?
I find it difficult to understand the code. I tried to write the code on my own as eq (4) but it does not work. The resultant $\nabla_{x_{t}}\log\mu(y\mid x_{t})=\frac{A^{H}(y-Ax_{t})}{\gamma_{t}^{2}+\sigma^{2}}$ is really big even if I choose a large $\gamma_{t}^{2}$ at the very beginning.
Could you please add some explanations on how you realize eq. (4) step by step in your code? It would be really appreciated if you can use some mathematical equations to illustrate it.
Thank you very much.
Best
Meng

Hi,
Thanks for your questions and raising this important issue. As a general answer, I think the following two clarifications should help regarding Eq. (4): (i) $\sigma$ is actually assumed to be zero during inference (we do not estimate SNR) and (ii) $\gamma_t$ is not a fixed numerical constant, rather it also depends on the current residual and includes a re-normalization of the residual to match the magnitude of the score.
The code is correct and should reproduce the performance in the paper when running out-of-the-box.
More details:

Sensitivity maps, FFT and masking are all considered in $A$. See https://github.com/utcsilab/csgm-mri-langevin/blob/main/main.py#L111 and further https://github.com/utcsilab/csgm-mri-langevin/blob/main/utils.py#L147 for the exact implementation of $A$.

Given that $\sigma$ is assumed zero, a simpler expression for the measurement gradient is (up to a multiplicative constant, assumed to be absorbed in $\gamma_t$ :

$$
\nabla_{x_t} \log \mu (y | x_t) = A^H (y - Ax_t)
$$

The exact expression of $\gamma_t$ is the following:

$$
\gamma_t = step size \cdot \frac{|| s(x_t; \theta) ||_2}{|| A^H (y - Ax_t)||_2}
$$
where $step size$ is given by step_size in the above code and is a constant value. You can recognize the above expressions from lines 146-151 in what you pasted above.
Let me know if this answers your questions.

Thank you so much for your prompt and detailed reply!
Now I understand it mostly, except for a few additional issues.

$\gamma_t$ is not a fixed numerical constant, rather it also depends on the current residual and includes a re-normalization of the residual to match the magnitude of the score.

I see. So it is a heuristic choice to match the magnitude of the score, right?

The exact expression of $\gamma_t$ is the following:

$\gamma_t=stepsize\cdot \frac{||s(x_t;θ)||_2}{ ||A^H(y−Ax_t)||_2}$
where $step size$ is given by step_size in the above code and is a constant value. You can recognize the above expressions from lines 146-151 in what you pasted above.

Maybe there is a typo in the above formula? From the code, I think the exact expression of $\gamma_t$ is
$\gamma_t=\sqrt{\frac{||A^H(y−Ax_t)||_2}{||s(x_t;θ)||_2}}$
or, equivalently,
$\gamma^2_t=\frac{||A^H(y−Ax_t)||_2}{||s(x_t;θ)||_2}$
The stepsize is multiplied outside, i.e.,
samples = samples + step_size * (p_grad - meas_grad) + noise
The last question I have is about the value of self.config['mse'] in the code. The value meas_grad is multiplied by self.config['mse'] as follows in line 149:
meas_grad *= self.config['mse']
I noted that it is set to be self.config['mse']=5.0 as default in the configuration files in all cases.
What does self.config['mse'] stand for? Why such scaling value is needed?
Thank you very much!
Best,
Meng


Dry run feature documentation 1.12

Add documentation for the dry run feature. Will also add documentation about dry-run and webhooks once https://github.com/kubernetes/kubernetes/pull/66936 merges.
/sig api-machinery
/kind feature
/sig docs
/milestone 1.12
Discussed in https://github.com/kubernetes/features/issues/576#issuecomment-414452164
/cc @zparnold @lavalamp @apelisse

/assign @kwiesmueller
Could you please take a look at this proposed documentation for dry-run and let me know if there is there anything you would add or change?

There are more comments here: https://github.com/kubernetes/website/commit/fd21062b894c63057136e46914c14da056cc1453 which seem to be lost on the PR for some reason

Looks good!
I don't know if this works (doubt it), but
/approve

Consider this a lgtm whenever my comments are looked at, incorporate as much as seems useful.

@lavalamp Thanks for the review! I incorporated the comments, PTAL

/lgtm

@zparnold I think this needs approval from someone in the kubernetes/website OWNERS file, could you please take a look? I think you asked for this PR in https://github.com/kubernetes/features/issues/576#issuecomment-414452164

/approve


Failing Travis tests

@esc So, it looks we have some test failures in Travis, but they're not what I expected?
The errors seem to fall into two categories.

It looks like the expected compression ratio has been cut in half.

The newer version of blosc introduces the zstd compression library, in which the tests don't expect that in the output.

The latter is easily fixable by updating the tests. The former... not so much.

Correct, initially I was very pedantic about maximum test coverage, maybe the ratio tests are too strict though and perhaps should be refactored to simply expect an output of a certain length, rather than a specific ratio. I will do it eventually, but don't mind being pre-empted. :) :+1:

https://twitter.com/hintjens/status/758606665553969152

You can probably use regular expressions in the cram tests, I've done that already in a few places, feel free to use that as template.

The zstd this is a real bug in the tests, btw...

Would this be an appropriate change for the ratio tests?
diff --git a/test_cmdline/test_append.cram b/test_cmdline/test_append.cram
index 67cc677..1a7bf29 100644
--- a/test_cmdline/test_append.cram
+++ b/test_cmdline/test_append.cram
@@ -12,12 +12,14 @@ Create a test datafile.

 Test basic append:

+  $ ls -lah  data.dat
+  .* 1 .* .* \d{3}M .* .* .* data.dat (re)
   $ blpk compress data.dat
   $ ls -lah  data.dat.blp
-  .* 1 .* .* 13M .* .* .* data.dat.blp (re)
+  .* 1 .* .* \d{2}M .* .* .* data.dat.blp (re)
   $ blpk append data.dat.blp data.dat
   $ ls -lah  data.dat.blp
-  .* 1 .* .* 26M .* .* .* data.dat.blp (re)
+  .* 1 .* .* \d{2}M .* .* .* data.dat.blp (re)

 Cleanup.

Yeah, that would be fine.

I want to respect the pedantry, but I'm not quite sure on how to do that without making the tests significantly more complex.
If I use regular expressions, \d+ lets me match any digit... including zeroes. So if a 0B file is emitted, the tests will pass.
In order to guard against that, I only see two options:

Change all the digit matching from \d+ to something along the lines of [1-9]\d*
Pepper the tests with if statements, which then negates using cram for testing...

Halp?

How about [1-9]\d* ? Does that work? 0B files would be OK too, I guess... Putting if statements is a no-go.

BTW: I promise to make a release within 24 hours after this issues has been fixed. :grin:

I have all of the tests fixed to use regular expressions to match digits (and match non-zero numbers where needed).
I had to then slice up some of the dictionaries to do a partial match (exclude compression ratio and sizes from the test), hope that's okay.
However, we seem to have a real test failure in test_headers.test_decode_blosc_header (see: https://travis-ci.org/oogali/bloscpack/builds/149805682). It looks like the flag change isn't picked up by the decode function.

I guess the way the internal flags are stored/used may have changed. cc @FrancescAlted

Actually, the problem lies elsewhere, my mistake. The no-shuffle flag is being picked up already (!). It seems like the problem lies with the test-data. This data is compressible when shuffled but--probably due to changes in blosc itself--are now suddenly incompressible when not shuffled. This is why the flag has the value two/second bit. You can try this for yourself with the following patch:
diff --git i/test/test_headers.py w/test/test_headers.py
index 211cf7e330..768175863d 100644
--- i/test/test_headers.py
+++ w/test/test_headers.py
@@ -140,6 +140,8 @@ def test_decode_blosc_header():
     header_slice = dict((k, header[k]) for k in expected.keys())
     nt.assert_equal(expected, header_slice)
     # deactivate shuffle
+
+    array_ = np.ones(16000, dtype=np.uint8)
     blosc_args.shuffle = False
     compressed = blosc.compress(array_, **blosc_args)
     header = decode_blosc_header(compressed)

This data is compressible for sure and the flags are neither 1 (no-shuffle) nor 2 (pure memcpy/incompressible) nor 3 (both).

closed by #57