hplip broken on 16.09

Issue description
hp-setup returns error when run.
Steps to reproduce
Run hp-setup from latest nixos-16.09
$ hp-setup
Traceback (most recent call last):
  File "/nix/store/byhr0cq87gflppackr7vxrxn8nhw0frs-hplip-3.16.5/share/hplip/setup.py", line 48, in <module>
    from base import device, utils, tui, models, module, services, os_utils
  File "/nix/store/byhr0cq87gflppackr7vxrxn8nhw0frs-hplip-3.16.5/share/hplip/base/device.py", line 42, in <module>
    from . import status
  File "/nix/store/byhr0cq87gflppackr7vxrxn8nhw0frs-hplip-3.16.5/share/hplip/base/status.py", line 33, in <module>
    import cupsext
ImportError: No module named cupsext

cc hplip maintainers @jgeerds @nckx
Technical details

System: NixOS 16.09 354fd3728952c229fee4f2924737c601d7ab4725

This might be related to the recent Python 3 changes in Nixpkgs: http://hplipopensource.com/node/372. Also, 3.16.5 is not the latest hplip version.

@ericsagnes
does the following work for you?
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index bf0af6b..e718b43 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, substituteAll
 , pkgconfig
-, cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
+, cups, zlib, libjpeg, libusb1, python3Packages, sane-backends, dbus, usbutils
 , net_snmp, openssl, polkit
 , bash, coreutils, utillinux
 , qtSupport ? true, qt4
@@ -10,16 +10,16 @@
 let

   name = "hplip-${version}";
-  version = "3.16.5";
+  version = "3.16.9";

   src = fetchurl {
     url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "1nay65q1zmx2jxiwn66n7mlr73azacz5097gw98kqqf90dh522f6";
+    sha256 = "19lp6xfm7ixfdkd77l7s89mph33qb0614gshsvfkqh51pakz536c";
   };

   plugin = fetchurl {
     url = "http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
-    sha256 = "15qrcd3ndnxri6pfdfmsjyv2f3zfkig80yghs76jbsm106rp8g3q";
+    sha256 = "17ww6hickvhl3j1i4kawh87sr07jqgg6cwhilwqbafwlvmwsp53k";
   };

   hplipState =
@@ -54,8 +54,8 @@ stdenv.mkDerivation {
     libjpeg
     cups
     libusb1
-    pythonPackages.python
-    pythonPackages.wrapPython
+    python3Packages.python
+    python3Packages.wrapPython
     sane-backends
     dbus
     net_snmp
@@ -68,10 +68,10 @@ stdenv.mkDerivation {
     pkgconfig
   ];

-  pythonPath = with pythonPackages; [
+  pythonPath = with python3Packages; [
     dbus
     pillow
-    pygobject2
+    pygobject3
     recursivePthLoader
     reportlab
     usbutils
@@ -149,31 +149,18 @@ stdenv.mkDerivation {
     rm $out/etc/udev/rules.d/56-hpmud.rules
   '';

-  fixupPhase = ''
+  preFixup = ''
     # Wrap the user-facing Python scripts in $out/bin without turning the
-    # ones in $out /share into shell scripts (they need to be importable).
+    # ones in $out /share into shell scripts (they need to be importable)
     # Note that $out/bin contains only symlinks to $out/share.
     for bin in $out/bin/*; do
       py=`readlink -m $bin`
-      rm $bin
-      cp $py $bin
-      wrapPythonProgramsIn $bin "$out $pythonPath"
-      sed -i "s@$(dirname $bin)/[^ ]*@$py@g" $bin
+      new_name="$(dirname $py)/$(basename $bin)"
+      cp "$py" "$new_name"
+      ln -sf "$new_name" "$bin"
+      chmod -x "$py"
     done
-
-    # Remove originals. Knows a little too much about wrapPythonProgramsIn.
-    rm -f $out/bin/.*-wrapped
-
-    # Merely patching shebangs in $out/share does not cause trouble.
-    for i in $out/share/hplip{,/*}/*.py; do
-      substituteInPlace $i \
-        --replace /usr/bin/python \
-        ${pythonPackages.python}/bin/${pythonPackages.python.executable} \
-        --replace "/usr/bin/env python" \
-        ${pythonPackages.python}/bin/${pythonPackages.python.executable}
-    done
-
-    wrapPythonProgramsIn $out/lib "$out $pythonPath"
+    wrapPythonProgramsIn "$out" "$out $pythonPath"

     substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
   '' + stdenv.lib.optionalString (!withPlugin) ''

I use it like this:
# /etc/nixos/configuration.nix
nixpkgs.config = {
  packagesOverrides = pkgs: rec {
    hplip = pkgs.hplip.override {
      withPlugin = true;
    };
  };
};

printing = {
  enable = true;
  drivers = [ pkgs.hplip ];
}

Thanks! This make hp-setup work, but it fails finding the printer.
Running hp-check shows a bunch of missing dependencies that might be the cause:
------------------------
| General Dependencies |
------------------------

 python3-pil          PIL - Python Imaging Library (required for commandline scanning with hp-scan) OPTIONAL        -               1.1.7           OK         -
 error: libcrypto     libcrypto - OpenSSL cryptographic library                    REQUIRED        -               -               MISSING    'libcrypto needs to be installed'
 error: libusb        libusb - USB library                                         REQUIRED        -               1.0             MISSING    'libusb needs to be installed'
 python3-pyqt4        PyQt 4- Qt interface for Python (for Qt version 4.x)         REQUIRED        4.0             4.11.3          OK         -
 error: libjpeg       libjpeg - JPEG library                                       REQUIRED        -               -               MISSING    'libjpeg needs to be installed'
 python3-pyqt4-dbus   PyQt 4 DBus - DBus Support for PyQt4                         OPTIONAL        4.0             4.11.3          OK         -
 python3X             Python 2.2 or greater - Python programming language          REQUIRED        2.2             3.5.2           OK         -
 python3-dbus         Python DBus - Python bindings for DBus                       REQUIRED        0.80.0          1.2.4           OK         -
 error: python3-devel Python devel - Python development files                      REQUIRED        2.2             3.5.2           MISSING    'python3-devel needs to be installed'
 error: sane          SANE - Scanning library                                      REQUIRED        -               1.0.25          MISSING    'sane needs to be installed'
 python3-xml          Python XML libraries                                         REQUIRED        -               2.1.1           OK         -
 error: cups-devel    CUPS devel- Common Unix Printing System development files    REQUIRED        -               -               MISSING    'cups-devel needs to be installed'
 error: cups-image    CUPS image - CUPS image development files                    REQUIRED        -               -               MISSING    'cups-image needs to be installed'
 error: libpthread    libpthread - POSIX threads library                           REQUIRED        -               b'2.24'         MISSING    'libpthread needs to be installed'
 error: cups-ddk      CUPS DDK - CUPS driver development kit                       OPTIONAL        -               -               MISSING    'cups-ddk needs to be installed'
 error: libnetsnmp-devel libnetsnmp-devel - SNMP networking library development files REQUIRED        5.0.9           -               MISSING    'libnetsnmp-devel needs to be installed'
 error: python3-notify2 Python libnotify - Python bindings for the libnotify Desktop notifications OPTIONAL        -               -               MISSING    'python3-notify2 needs to be installed'
 error: sane-devel    SANE - Scanning library development files                    REQUIRED        -               1.0.25          MISSING    'sane-devel needs to be installed'
 python3-reportlab    Reportlab - PDF library for Python                           OPTIONAL        2.0             3.2.0           OK         -

--------------
| COMPILEDEP |
--------------

 error: make          make - GNU make utility to maintain groups of programs       REQUIRED        3.0             -               MISSING    'make needs to be installed'
 error: libtool       libtool - Library building support services                  REQUIRED        -               -               MISSING    'libtool needs to be installed'
 error: gcc           gcc - GNU Project C and C++ Compiler                         REQUIRED        -               -               MISSING    'gcc needs to be installed'

-------------------------
| External Dependencies |
-------------------------

 error: cups          CUPS - Common Unix Printing System                           REQUIRED        1.1             -               INCOMPAT   'CUPS may not be installed or not running'
 error: dbus          DBus - Message bus system                                    REQUIRED        -               1.10.10         MISSING    'DBUS may not be installed or not running'
 xsane                xsane - Graphical scanner frontend for SANE                  OPTIONAL        0.9             0.999           OK         -
 scanimage            scanimage - Shell scanning program                           OPTIONAL        1.0             1.0.25          OK         -
 error: avahi-utils   avahi-utils                                                  OPTIONAL        -               -               MISSING    'avahi-utils needs to be installed'
 error: policykit     PolicyKit - Administrative policy framework                  OPTIONAL        -               0.113           MISSING    'policykit needs to be installed'
 error: gs            GhostScript - PostScript and PDF language interpreter and previewer REQUIRED        7.05            -               MISSING    'gs needs to be installed'
 network              network -wget                                                OPTIONAL        -               1.18            OK         -

---------------------
| Python Extentions |
---------------------

 hpmudext             IO-Extension                                                 REQUIRED        -               3.16.9          OK         -
 cupsext              CUPS-Extension                                               REQUIRED        -               3.16.9          OK         -

----------------------
| Scan Configuration |
----------------------

 scanext              Scan-SANE-Extension                                          REQUIRED        -               3.16.9          OK         -
'/nix/store/18i6cmf6l6qcq2ip1a1ds0vyp549bf6j-hplip-3.16.9/etc/sane.d/dll.conf' not found.
'/etc/sane.d/dll.d/hpaio' not found.
'/etc/sane.d/dll.d/hplip' not found.
error: 'hpaio' not found in SANE conf files. Is SANE installed?
 error: hpaio         HPLIP-SANE-Backend                                           REQUIRED        -               3.16.9          MISSING    'hpaio not found in /nix/store/18i6cmf6l6qcq2ip1a1ds0vyp549bf6j-hplip-3.16.9/etc/sane.d/dll.conf.
 hpaio needs to be added in this file.'

@ericsagnes feel free to add those. For my hp-setup also seems not be necessary, I just use its drivers via cups.

That's an old expression. We need to get rid of pythonPath, and use python.withPackages instead.

We need to get rid of pythonPath, and use python.withPackages instead.

Though maybe not, because hplip provides Python modules itself.


Add ProtectionMode to Microsoft.Security applicationWhitelistings

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[x] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-python

Can one of the admins verify this patch?

Automation for azure-sdk-for-go

@anuchandy can you please complete the merge ?

i cant make the properties camelCase because they are a defined Enum

@erelh The json "property names/keys" over the wire is suppose to follow camelCase. In the server code, it can be camelCase, PasalCase or any format but over wire it is suppose to be in camelCase.  For example:
This is valid (address.state)
{
   address: {
     state: 'WA'
  }
}

But below one not,  because state in address.State is a property key and should be camel case.
{
   address: {
     State: 'wa'
  }
}

This is based on ARM rule 3016. Adding @majastrz to comment.

While the property names are logically values of the enum, you can still make them lowerCaseCamelCase. In the backend, you can have case-insensitive parsing, so it shouldn't really be a problem.

in C#, Enum parsing is case sensitive
since this object is defined as a key-value of Enum to Enum, it has to be uppercase
can you please suggest a different method of defining this property ? as it is a key-value

in C#, Enum parsing is case sensitive
since this object is defined as a key-value of Enum to Enum, it has to be uppercase
can you please suggest a different method of defining this property ? as it is a key-value

In general, there is some control in C# over enum parsing. Unfortunately, that's not possible if you're deserializing as Dictionary<enum1,enum2> unless you customize deserializer settings.
Regardless of that, the API should be designed up-front and the service should then be implemented ot match - not the other way as you're trying here.
ARM is expecting property names to be case insensitive for the most part, so if we made your API case-sensitive, it will be inconsistent. You should change the service to be case-insensitive. One way to do this would be to get rid of the dictionary since you have a small set of properties and simply model it as 4 properties: exe, msi, executable, and script. If something else requires a dictionary then you can easily convert it.

OK, changed
Please complete the PR
Thanks


Feature/amc-844 - usage of Histogram Metric to measure Reads Size with SelectStatements

What this PR does:
This creates a new Metric persistence_dse_[clusterVersion]_org_apache_cassandra_metrics_ClientRequest_read_size_histogram exposed under xxx:8084/metrics
As this Metric is missing from Cassandra metrics, the idea is to add it on Stargate side.
This PR also contains an associated test which test the right presence of this Metric in Metrics list.
Checklist

[x] Changes manually tested
[x] Automated Tests added/updated
[ ] Documentation added/updated
[ ] CLA Signed: DataStax CLA

Is this needed for Astra Classic, being against Stargate V1 branch? (Astra serverless deploys from v2 (main, non-vector) or v2.1 (vector)

Is this needed for Astra Classic, being against Stargate V1 branch? (Astra serverless deploys from v2 (main, non-vector) or v2.1 (vector)

yes It s needed for astra Classic, it s a customer needs


chore: Ava

What is the purpose of this pull request?

[ ] Documentation update
[ ] Bug fix
[ ] New feature
[x] Other, please explain: #832 - rewrite tests to Ava

What changes did you make? (provide an overview)

[ ] rewrite main tests from mocha to Ava
[x] split into multiple files

Which issue (if any) does this pull request address?
fixes: #832
Is there anything you'd like reviewers to know?
@xxczaki - I'm hoping you can help me with the 6 tests that are currently skipped. I'm unsure on how to test the timeout tests with Ava at moment. :)

Sorry for my small inactivity. Thanks for the PR, I will try to implement the skipped tests soon ;)

@curtisjohnson1 Some tests fail due to Error: listen EADDRINUSE: address already in use <IP_ADDRESS>:30001 😢 Furthermore, after fixing the ava config files conflict, running npm run lint throws 539 errors.
Could you please check it out?


Unit tests for dic2owl

Closes #57.
Add unit tests using PyTest for the dic2owl Python package:

[X] Set up PyTest framework.
[X] Test cli.py.
[ ] Test dic2owl.py.

I'll get this is, creating a new issue for the remaining dic2owl unit tests.


Re-Implementation of reverse string safely via CFString

Implement _reverseString via CFStringRef
Make the implementation safer
CTline _getTruncatedStringFromSourceLine should use CF*based reverse string
Add more tests for reverse string

fixes #2478

nit: reword to be imperative mood

Getting some bench mark for old vs new

Also, I wonder how it works with Composing Diacritics! It might be reasonable to normalize the string first...

@rajsesh-msft  still need reverse in CFString backed by strrev, that is contained in CoreText.
Updating the CR

@DHowett-MSFT  @ms-jihua  please take a look

@DHowett-MSFT please take a look


Action cleanup

Applied mkpr on .github/workflows/ci.yml
sed /      - run: npm ci/d

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 97.842%

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
416

Relevant Lines:
426

💛  - Coveralls


different response in firefox and chorome

for firefox 44.0.2 even when disabling folder upload ngf-allow-dir="false"
it shows some object with no type
this issue was seen even when enabling folder for this version of firefox but worked fine with chrome.
also the object for uploading file with no extensions is type="".

if (!files.length) {
    console.warn('Error! Invalid object'); // for example
    return;
}


How do I get a multi range slider?

I would like to modify the range slider to be able to be a multi range slider. How do I do that? https://daisyui.com/components/range/
e.g. something like this: https://tailwindcomponents.com/component/multi-range-slider

That's something you'll have to build yourself involving a bit of Javascript and magic to support multiple sliders on the same track for a range type Input. At the moment the daisyui does not support this and I can't imagine it's on the roadmap.
You can accomplish this by overlaying two range input's over one another, and making sure the max cannot be lower than the min, and vice versa.


Use Looker for data visualization

Add support for Looker dashboard and reports as an alternative to Data Studio.

Looker Dashboards are ready. Need to write readme.

The Looker Dashboard is ready and currently in preview. We will add steps to integrate with the QMS very soon.


change readme and version number

Coverage decreased (-0.06%) to 65.001% when pulling 369ade961f5bb7b07a9b2660609faf94e28c10d0 on tianxiaoliang:master into 5762ef9184357c976e20474984069b277425434b on go-chassis:master.


syncthingtray: add portable support

Closes #XXXX

Relates to #XXXX

[x] I have read the Contributing Guide.

/verify

Please do not merge the code. If autorun settings enabled, when Windows boot up, its working directory will be C:\WINDOWS\system32\ and won't use the config file next to executable file.


Click keyword in app-db tab to add path

I find myself expanding the app-db structure, and then typing paths over and over into the [:path :into :app-db] input in order to "zoom in" more and more.
Perhaps it would be convenient to be able to click a key in a data browser in order to have the full path added to the list of sub-paths in the app-db tab, e.g:
Click :baz in...
{:foo {:bar {:baz "quux"}}
 :foo2 {}}

...and get [:foo :bar :baz] added to the list of sub-paths.

This is a lot harder than you might first think, as I don't have the 'path' through the data structure at any point when I'm rendering the JSONML returned by cljs-devtools. This also shows up in the app-db expansions not being particularly stable when large changes happen to the data being rendered, due to them being based on the path through the HTML, rather than the path through the data.
I think probably what is necessary is to make a patch to cljs-devtools to add the current path through the data structure as extra config data on the object, so I can pull it out when rendering.

I've asked:  https://github.com/binaryage/cljs-devtools/issues/56


This is the description of the scope will be added as the description to creating OIDC scopes through console UI

Describe the issue:
https://github.com/wso2/product-is/assets/25483865/7770f888-002a-49b8-8efb-8b7e5d4913e6

Go to Attributes -> OpenID Connect -> Scopes -> + New OIDC Scope
Give values to the scope and Display Name. Leave the Description blank
But the UI sends This is the description of the scope as the description when invoking the API

This is fixed in the latest pack
https://github.com/wso2/product-is/assets/27746285/4deed0f3-eead-4cc0-b29a-c93f2a8ae854


Selecting container then selecting in a filter throws off selection count

Bug description

Go to Containers
Select a container
Type a filter and select another container

Actual behavior: "item(s) selected" count stays as 1
Expected behavior
Actual behavior: "item(s) selected" count updates to 2
Portainer Logs
Provide the logs of your Portainer container or Service.
You can see how here
Steps to reproduce the issue:
See above
Technical details:

Portainer version: 1.23.2
Docker version (managed by Portainer): n/a
Platform (windows/linux): mac
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer): <--
Browser: Microsoft Edge 80.0.361.111

Additional context
Add any other context about the problem here.

Confirmed this. Also if you then unselect the second container, 1 item(s) selected goes away, then removing the search term you can see the first container is still selected

Successfully reproduced the issues, will try and raise a PR.

We found multiple issues with the implementation in https://github.com/portainer/portainer/pull/4358

Unable to use the select all feature properly in the endpoints datatable
Unable to use the remove button after selecting some items in the endpoints datatable


Stream deteriorates to lowest quality on chromecast when turning liveSync on, using ll-hls

Have you read the FAQ and checked for duplicate open issues?
Yes
If the problem is related to FairPlay, have you read the tutorial?

Not Applicable
What version of Shaka Player are you using?

4.5.0
Can you reproduce the issue with our latest release version?
Don't know if it's possible
Can you reproduce the issue with the latest code from main?
Don't know if it's possible
Are you using the demo app or your own custom app?
My own
If custom app, can you reproduce the issue using our demo app?
I cannot reproduce the issue on computer
What browser and OS are you using?
Android TV 9.1.1
chromecast built in: 1.68.374976
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
nvidia shield
version 11 (I think)
What are the manifest and license server URIs?

Manifest uri: https://kanal75-live.akamaized.net/live/Data/atg-kanal-17-02/HLS-LL-Ateme/atg-kanal-17-02.m3u8
What configuration are you using?  What is the output of player.getConfiguration()?

shakaConfig = { streaming: { autoLowLatencyMode: true, liveSync: true, liveSyncMaxLatency: 8 } };
What did you do?

created a custom web receiver chromecast app.
Set
castReceiverOptions.useShakaForHls = true;
castReceiverOptions.shakaVersion = "4.5.0";

Then casted https://kanal75-live.akamaized.net/live/Data/atg-kanal-17-02/HLS-LL-Ateme/atg-kanal-17-02.m3u8 to the application.
What did you expect to happen?
Initially I expected to not get drift on the stream. When realizing I had drift from live edge I added liveSync: true. When liveSync was added I expected to have the same behaviour but when falling behind live edge more than 8 seconds it would speed up to be on live edge again.
What actually happened?

The quality goes steadily down to lowest quality, then more or less stays there.
My own theory is that the chromecast (nvidia shield in this case) is to weak to do all the requests in a high enough pace to handle low latency. Shaka then prioritizes being live edge rather than quality. Which means I get stuck with a low quality stream.
Could this be the case? In that case it's not possible to actually have low latency (with good quality) on chromecasts.

In the main branch this problem has been resolved through several changes, but version 4.5.1 has not yet been released


Append shows zip exit status 3 on windows, but binary works as expected

On Windows 7, after executing
$ rice append --exec app.exe

I got this:
Error setting zip offset: exit status 3

However, the result binary did increase in size and it appears to contain the correct static files intended and works as expected.

Thanks for opening this issue.
Are you sure the files are used from the appended zip? If rice doesn't detect the zip (which afaik is the case when setting zip offset failed), then it will use the files from disk. You can use (*Box).IsAppended() to find out.
Please let me know!

Hi, I have transferred the binary .exe file to another computer and tested it, it worked.
Also, it has roughly the same size as the binary generated using the embed-go method

let me try (*Box).IsAppended()

Cool. And, the embed-go generated files are removed from the build for the appended version?

(*Box).IsAppended() returned true.
Actually I did not run the embed-go version on another computer

I think I know what's going on here.. What version of Go are you using?

go version go1.4.2 windows/amd64

Oh hmm, this is really strange... Can you share the commands you're executing?

Inside src/app, I executed
rice embed-go
go build

I waited for 1 hour and got a working binary, then I installed the GNU Zip from the link you provided, after setting the PATH, I executed
go build
rice append --exec app.exe

Ah okay. So the files you're embedding are probably very large.. I guess the compiler had to use swap to load all data into memory (which caused a long compile time). I don't recommend using embed-go with large files.
So just to be sure: the files generated by embed-go were removed before the go build for the appended version?
I can't think of anything else causing the exit code 3..
The zip tool is used to set the offset at which the zip is located. Go1.5 will support setting the offset as part of archive/zip. But that's not being used by rice yet. But when go1.5 is out I will add it to rice and then this error will definitely be gone.

how do I know what files are generated by embed-go?
If you are taking about the .go files, yes I have manually deleted them.

I have also tried changing a javascript file and append again, the changed javascript was loaded during the execution of the binary so the append did work.

Yes the .rice-box.go files. Those can also be removed by running rice clean inside src/app.
And if you change the javascript file locally, but don't append. You get the older version that was appended earlier?
If so then the append worked fine. It's still really strange that an error is returned, afaik that didn't happen before. The exit code description is:

a generic error in the zipfile format was detected. Processing may have completed successfully anyway; some broken zipfiles created by other archivers have simple work-arounds.

So maybe we can ignore exitcode 3 safely. Maybe the zip created by archive/zip doesn't conform completely to GNU zip's standard and triggers this error?

Yes. Locally changed javascript files do not affect the already appended binary.
Maybe it is the nature of the files that I am trying to append? I have a few font files in various formats like otf, eot, ttf, woff, woff2, etc.

Well that shouldn't affect the zip format ofcourse..
I can't test this as I don't have a windows machine. But can you maybe try appending a box with only a .txt file and see if the error still occurs?

Yes. The error still occurs. The only file appended was a simple txt file.

Do you think it's a good idea to catch exit code 3 and print a warning instead? Something like "Zip exited with code 3. <code 3 description here>. Please confirm that the append was successful." ?
I'll also keep this issue open until go1.5 is released and rice can use SetOffset instead of calling (GNU) zip.

Seems like I am the only one getting this error, Maybe wait and see if there are other people also having the same issue?
Meanwhile this thread can help people who have the error code.

:+1:

@paradite Are you still experiencing this problem?

Hi, I am no longer working on the project so I have no further information to provide.

Ok, then I'll close this issue.

I guess this problem is the same as matrixik mentioned in https://github.com/GeertJohan/go.rice/issues/4

D:\Golibs\forks\src\github.com\pksunkara\alpaca>zip -A alpaca-full.exe
zip warning: central dir not where expected - could not adjust offsets
zip warning: (try -FF)

zip error: Zip file structure invalid (alpaca-full.exe)

I am using git bash on Windows10 and got the same problem when using append zip. Though zip -A failed, the binary is working as expected.


Xcode 12 - Warnings related to iOS 8 support (Swift Package Manager)

New Issue Checklist

[x] I have tried with the latest version of OHHTTPStubs
[x] I have read the README
[x] I have read the Using the right Swift Version of OHHTTPStubs for your project section
[x] I have searched in the existing issues
[x] I have read the OHHTTPStubs wiki to see if there wasn't a detailed page talking about my issue

Environment

version of OHHTTPStubs: 9.0.0
integration method you are using:

[ ] Cocoapods
[ ] Carthage
[ ] submodule
[x] other (Swift Package Manager)

version of the tool you use: Xcode 12

Issue Description
When building a project that integrates OHTTPStubs via Swift Package Manager - Xcode 12 outputs the following warning message.
Complete output when you encounter the issue (if any)
The iOS Simulator deployment target ‘IPHONEOS_DEPLOYMENT_TARGET’ is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99. (in target ‘OHHTTPStubsSwift’ from project ‘OHHTTPStubs’)

Would be nice if the project settings can be updated soon. Or is this project no longer maintained? Last change was beginning of this year.

@ThomWee There definitely isn't much activity here these days.
@kikeenrique If you would be nice enough to submit a PR for that, I'd be happy to accept it.

@jeffctown Thanks for your offering. I've already created a PR.

@jeffctown Hey! Is there a plan to release this as a tag/release for SPM users so we don't have to point to commit / branch? Thanks.

Sure, I can do that @Kaspik .  I put up a PR to handle it.


Keep hidden attributes

I like this alternative to the soft delete concept, so I immediately started to test this package on my local machine.
I know this is still in the development phase and don't if you are accepting PRs at the moment, but I played a bit with the Laravel default users table and realized that hidden attributes are not transferred to "deleted_models" table. This PR is trying to fix that by making hidden attributes visible before serialization and returning them back to hidden after that.

Thanks!


Tasks: multiline snippet for llama.cpp

Can you explain the issue? Intuitively I expect antislashes at the end of lines


New indicator: CDC COVID-19 Community Profile Report

The CDC publishes a community profile report which, among other things, includes total test volume. Since COVID Act Now will soon stop providing total test volume, this profile report seems to be a reasonable replacement.
Data details
COVID-19 Community Profile Report on healthdata.gov
This report is updated daily. Most metrics count over a rolling 7-day period. This is suitable for producing covidcast signals which are 7-day averages, updated daily.
It includes the following metrics at the state level:

FEMA region
Population
Cases and deaths: last 7 days (count, count per 100k population, % of national), % change from previous week, previous week (count, count per 100k population, % of national), cumulative (count, count per 100k population)
Number of days of downward case trajectory
Community transmission level (current week, previous week)
Nucleic Acid Amplification Tests (NAAT; includes things like PCR): this week, previous week, and % or absolute change: test positivity (all and age-stratified), testing volume (count, count per 100k population), median test result latency, % of test results received in 3 or fewer days
Emergency Department Visits: this week and absolute change from previous week: % of visits with diagnosed COVID-19 (all and age-stratified)
Hospital utilization: this week and % or absolute change from previous week: COVID admissions (count, % of inpatient beds, and age-stratified count), % inpatient beds occupied (all and COVID-19), % staffed adult ICU beds occupied (all and COVID-19), % of ventilators in use (all and COVID-19)
Hospital supply and staffing: this week and absolute change from previous week:  % hospitals unable to maintain X (N95 respirators, surgical masks, eye protection, single-use gowns, exam gloves), % hospitals with current staffing shortage
Therapeutics: Monoclonal antibody courses administered (this week and % change from previous week), monoclonal antibody courses on hand
Reporting and capacity: Number of CCNs, X among hospitals reporting this week (total inpatient beds, total staffed adult ICU beds, total ventilators), % CCNs reporting anything at least once this week, % CCNs reporting everything at least once this week, % CCNs ever reporting, % CCNs reporting COVID-19 admissions this week
COVID-19 vaccinations: this week and % change from last week: Doses administered (count, count per 100k population), Booster doses administered
COVID-19 vaccinations: cumulative: doses distributed (count, count per 100k population), doses administered (count, count per 100k population), people with at least 1 dose (count, % of population, age-stratified count, age-stratified % of population), people fully vaccinated (count, % of population, age-stratified count, age-stratified % of population), people with a booster since 2021-08-13 (count, % of population)
COVID-19 vaccinations: this week, absolute change from previous week: age-stratified people initiating vaccination (count, % of population)
Age-stratified flu vaccination rate from 2018-2019

At the CBSA and county level, all of the state-level metrics plus the following:

[county only] County type (large central metro, large fringe metro, medium metro, small metro, micropolitan, non-core)
CBSA name & type
Population (% of CBSA, % of state)
IHE (>5000 full-time enrollment, full-time enrollment count and % of population)
Rapid rise over the last 14 days (yes/no)
Rapid riser category (new, recent, continuing)
Area of concern category (Sustained hotspot, emerging hotspot, hotspot, high burden resolving, moderate burden resolving, moderate burden, low burden)
Demographic details: % uninsured, % in poverty, % over age 65, average household size, % non-hispanic black, % hispanic, % non-hispanic native american / alaskan native, % non-hispanic asian, SVI score, CCVI score

January 2022 priority list:

[ ] P0 hospital admissions
[ ] P1 tests
[ ] P1 vaccinations

Do we want to calculate tests per 100k population and hospital admissions per 100k population? We could also diff adjacent days to get raw counts.


Jetty ALNPN and NPN updates plus backport

Motivation:
There are new versions of the ALPN and NPN dependencies.  There was also some backport misses in the pom file related to ALPN/NPN.
Modifications:

Add new versions for ALPN/NPN dependencies.
Backport missed pieces from pom.xml.

Result:
Updated version of ALPN/NPN versions.

@Scottmitch +1 ... Please cherry-pick!

Cherry-picked 4.0 (d43c21d), 4.1 (b0e7992), 5.0 (c81937d)


ARROW-5535: [GLib] Add garrow_table_slice()

Arrow::Table#slice has already been implemented in Red Arrow. So this PR replaces current #slice with #slice implemented by GLib.

CI is green.
I'll merge this.

Thanks for your support. I'll read your commits.


Playwright e2e Tests

@ElvisJG is this currently ready for review? If not (I think we still need to address the CI/CD portion of this, right?) if not, can we make this a draft PR?

Closing in favor of https://github.com/bloom-works/ownpath/pull/46


Cleanup "Automatically start containers" page.

Remove old information for Docker 1.2. (See PR #15408)

Signed-off-by: Charles Chan<EMAIL_ADDRESS>

Good one! Thanks @charleswhchan ! LGTM
ping @moxiegirl

LGTM @charleswhchan thanks!

Thanks you @thaJeztah, @moxiegirl!


Issue with CICD GitHUb pipeline

Hi,
when I run the pipeline that is found in the documentation: https://github.com/microsoft/powerplatform-actions-lab/blob/main/sample-workflows/release-solution-to-prod-with-inputs.yml
I keep on running into an issue where the step upload-artifacts@v2 in line 94 does not find any files in the given path. I am unclear where the step: microsoft/powerplatform-actions/export-solution@v0 publishes the zip folder we want to publish as artifact.

[Enter feedback here]

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

ID: 59ea9b81-aed6-cf71-becc-305d2e87936f
Version Independent ID: 0fa54745-8952-a630-6b35-0db1971c0275
Content: Tutorial: Automate solution deployment using GitHub Actions for Microsoft Power Platform - Power Platform
Content Source: power-platform/alm/tutorials/github-actions-deploy.md
Service: power-platform
Sub-service: alm
GitHub Login: @mikkelsen2000
Microsoft Alias: pemikkel

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

Hi @mikkelsen2000 ,
I found the fix:
the sample is giving the path to the zip file, when it should be to the folder location where the zip file is. So line 97 should be:
 path: ${{ inputs.solution_shipping_folder}}/
And then because it is a managed solution that was exported, it appends _managed to the zip name, which means line 122 should be:
    `solution-file: ${{ inputs.solution_release_folder}}/${{ inputs.solution_name }}_managed.zip`

The working yaml looks as such:
`name: release-solution-to-prod-reusable
Reusable workflow
convert solution to managed (using a build PowerPlatform environment for the conversion)
upload the solution to the GitHub artifacts and deploy to the PROD environment
on:
workflow_call:
inputs:
#Do Not change these values
#Values are set by the caller
#caller sample: release-action-call.ymnl
solution_name:
description: 'The solution name.'
type: string
default: ALMLab
solution_shipping_folder:
description: 'folder name for staging the exported solution do not change'
type: string
default: out/ship
solution_outbound_folder:
description: 'staging the unpacked solution folder before check-in do not change'
type: string
default: out/solutions/
solution_source_folder:
description: 'folder name to be created and checked in do not change'
type: string
default: solutions/
solution_release_folder:
description: 'folder where the released binaries are going to be hosted do not change'
type: string
default: out/release
BUILD_ENVIRONMENT_URL:
description: 'Build environment url.'
type: string
required: true
PRODUCTION_ENVIRONMENT_URL:
description: 'Production environment url.'
type: string
required: true
CLIENT_ID:
description: 'The client id'
type: string
required: true
TENANT_ID:
description: 'The tenant id'
type: string
required: true
secrets:
envSecret:
description: 'The secret value for authentication using SPN'
required: true
jobs:
convert-to-managed:
runs-on: windows-latest
# or you can say runs-on: ubuntu-latest
env:
RUNNER_DEBUG: 1
steps:
- uses: actions/checkout@v2
  with:
    lfs: true

- name: Pack solution
  uses: microsoft/powerplatform-actions/pack-solution@v0
  with:
    solution-folder: ${{ inputs.solution_source_folder}}/${{ inputs.solution_name }}
    solution-file: ${{ inputs.solution_outbound_folder}}/${{ inputs.solution_name }}.zip
    solution-type: Unmanaged

- name: Import solution as unmanaged to build env
  uses: microsoft/powerplatform-actions/import-solution@v0
  with:
    environment-url: ${{inputs.BUILD_ENVIRONMENT_URL}}
    app-id: ${{inputs.CLIENT_ID}}
    client-secret: ${{ secrets.envSecret }}
    tenant-id: ${{inputs.TENANT_ID}}
    solution-file: ${{ inputs.solution_outbound_folder}}/${{ inputs.solution_name }}.zip
    force-overwrite: true
    publish-changes: true

- name: Export solution as managed
  uses: microsoft/powerplatform-actions/export-solution@v0
  with:
    environment-url: ${{inputs.BUILD_ENVIRONMENT_URL}}
    app-id: ${{inputs.CLIENT_ID}}
    client-secret: ${{ secrets.envSecret }}
    tenant-id: ${{inputs.TENANT_ID}}
    solution-name: ${{ inputs.solution_name }}
    managed: true
    solution-output-file: ${{ inputs.solution_shipping_folder}}/${{ inputs.solution_name }}.zip

- name: Upload the ready to ship solution to GH artifact store
  uses: actions/upload-artifact@v3
  with:
    name: managedSolutions
    path: ${{ inputs.solution_shipping_folder}}/

release-to-staging:
needs: [ convert-to-managed ]
runs-on: windows-latest
env:
RUNNER_DEBUG: 1
steps:
- uses: actions/checkout@v2
  with:
    lfs: true

- name: Fetch the ready to ship solution from GH artifact store
  uses: actions/download-artifact@v2
  with:
    name: managedSolutions
    path: ${{ inputs.solution_release_folder}}
- name: Import solution to prod env
  uses: microsoft/powerplatform-actions/import-solution@v0
  with:
    environment-url: ${{inputs.PRODUCTION_ENVIRONMENT_URL}}
    app-id: ${{inputs.CLIENT_ID}}
    client-secret: ${{ secrets.envSecret }}
    tenant-id: ${{inputs.TENANT_ID}}
    solution-file: ${{ inputs.solution_release_folder}}/${{ inputs.solution_name }}_managed.zip
    force-overwrite: true
    publish-changes: true`


HTTPS missing from URL

Hi! I was linking to http://opensourcesurvey.org/ today and realized it's not HTTPS. Not sure if it simply expired, or whether it wasn't ever added, but it'd be great to have a secure URL to link to.
Thanks!

It wasn't ever added. 😊 Pages now supports directly, but it seems I'm not an admin for this repo to turn on...working on it. Thanks!

@

Apologies for delay: https://opensourcesurvey.org/2017/

Yay! Thanks for doing this!


Enhancement: Replace String Representations with Date Objects for Career Timeline

Description
This PR addresses the issue of using string representations for start and end dates in the "ericbuettner/career-timeline" library. It replaces string-based representations with Date objects throughout the codebase to enhance functionality and data consistency.
Changes Made

Replaced string-based representations of start and end dates with Date objects.
Ensured robust date parsing and formatting functions to handle various date formats gracefully.

Additional Info
This change adheres to best practices for maintainability and considers backward compatibility.
Related Issues
[Closes #289]

Thanks for your contribution, can you try running npx nx format, this should fix the linting warnings in 99% of cases.

Thanks for your contribution, can you try running npx nx format, this should fix the linting warnings in 99% of cases.

yes done 👍 Thank you for your assistance.

Hi @Manoj0Marmat,
finally I have found some time to look at the changes, but they do not exactly match my expectations, probably the ticket description was not precise enough on my part, for that I apologize.
Your changes have changed the presentation a bit, which should not be the case.
How it looked before and how it should remain:

How it looks like after your adjustment:

Unfortunately, I haven't gotten around to building a Jest test for this component yet, otherwise I would have noticed it sooner.
Sorry for the inconvenience.

Hey @tuffz can you let me know which url I should visit after the local application starts to view that component

Sure, I have already adapted the README accordingly today.
After you have executed "nx serve ericbuettner-com" you should be able to reach the page via @http://localhost:4200.

@Manoj0Marmat Thank you very much for your contribution. 🚀


Balance command

i see you also optimized imports very cool

for other lookers i will continue by working on code


[bravotv] fix drupal settings parser (closes rg3#19214)

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
This fixes BravoTV by adding the new drupal-settings-json format which fixes #19213

Hey. @nevafuse my PR fixes the main issues. I didn't see this when testing! Are you ok with merging our commits together?
Thanks!

@NGTmeaty I squashed our commits (I thought I already had).  Feel free to merge my changes into your PR if you'd rather do it that way (or squash mine into yours).  Just trying to reduce git history.

Ah looks good now! I'll close mine. Looks good!

It failed the build test.  Passed when our changes were separate.  I must
have broken your new test.
On Mon, Feb 18, 2019, 7:29 AM NGTmeaty<EMAIL_ADDRESS>wrote:

Ah looks good now! I'll close mine. Looks good!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rg3/youtube-dl/pull/19260#issuecomment-464714393, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACMErQxWVwhpIJu9v_rt8WqeD6RQh5h8ks5vOpyfgaJpZM4bADq_
.


Apply the RapidFuzz in Deduping DataFrame Pandas

Hi @maxbachmann,
Thanks for your awesome library. But could you provide me the example how to apply RapidFuzz in the single DataFrame pandas (or from multiple df pandas).
I want to find which records are matching with other based on some specific columns.
Example:
DF1:
id       name     value
001      John      10
002      Anna      15
003      Lee       16

DF2:
id       name     value
004      Johnny    16
006      Ana       15
008      Joh       0

So the return df should be following:
DF Matched:
id_left    name_left     id _right     name_right     matching_score
  001          John         004           Johnny          0.98
  002          Anna         006           Ana             0.82
  001          John         008           Joh             0.58

So could I solve the problem with the RapidFuzz? Or could you advise me how to solve them with the custom function
Thank you.

I would use process.extractOne for this task. Here is some pseudo code to show the usage. In the example I use fuzz.ratio since it is the fastest and disable preprocessing (lowercasing + removal of non alphanumeric characters). In case you would like to preprocess the strings it would make sense to do so in front of the loop, so the same string is not preprocessed multiple times.
// create dataframe with len(df1) for results
for name_left in df1["name"]:
    choice, score, index = process.extractOne(name_left, df2["name", scorer=fuzz.ratio, processor=None)
    // set the corresponding result in the result dataframe


Update Husky for deprecation warnings

husky - DEPRECATED
Please remove the following two lines from .husky/commit-msg:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
They WILL FAIL in v10.0.0

complete


Fix comment about adding packages in android template

Summary:
I noticed this comment is still in Java in the Kotlin template. It also doesn't really work anymore since there is no packages variable.
To fix it I completed the comment with all code needed for it to work in kotlin. I think an older version of the template used to be more like:
val packages = PackageList(this).packages
// packages.add(MyReactNativePackage())
return packages

But then it requires adding a lint suppress annotation since packages variable can be simplified. I think this is simpler even if it makes the comment a few more lines.
Changelog:
[GENERAL] [FIXED] - Fix comment about adding packages in android template
Test Plan:
Tested that uncommenting that code works

@cortinico Good idea, I tested that the code works

@cortinico There you go!


Extend git commit rules for CONTRIBUTION

This relates to the recent discussion we had as a team according to the suggestion by me. Please verify that the explanation is good enough and if you agree with the decided scope names. Feel free to change spelling or content on your behalf.
Note:
The deleted and added empty lines are caused by the auto-formatting on local machine. Unfortunately I wasn't very precise while staging the chunks. I can remove it if you dislike it.

One left question from my side is how we handle commits that are actually not focused on these scoped. E.g. this commit. I think there is some general stuff (templates, license, etc.) that is hard to put in a specific scope. The current approach would be to not prefix it. Not sure if this is the best solution. :shrug:


No such file or directory file in Step 06

Describe the bug
No such file or directory file while following steps mentioned in Generating the Data Encryption Config and Key
To Reproduce
Steps to reproduce the behavior:

Follow the steps from 01 to 05.

In step 06, execute the command to move encryption-config.yaml encryption config file to appropriate directory.
for instance in master-1 master-2; do
  ssh ${instance} sudo mv encryption-config.yaml /var/lib/kubernetes/
done

We get the following error:
mv: cannot move 'encryption-config.yaml' to '/var/lib/kubernetes/': Not a directory

Expected behavior
No such error should be displayed.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: [e.g. Windows, Linux]

Reproduce issue

Hi @patsevanton , I have, if you would TAL my description.

That procedure is present on (https://github.com/mmumshad/kubernetes-the-hard-way/blob/master/docs/08-bootstrapping-kubernetes-controllers.md#configure-the-kubernetes-api-server).
So you can just keep following the tutorial without problems.

Hi @tarikly, you are correct, but the step you mentioned is supposed to create a directory in master node(s).
My fix is meant for worker nodes.

Hi @aditya109
We have now merged a major change to bring this to v1.24.
This has been addressed as part of the upgrade. Please try it now and feel free to raise further issues.
Thanks.


Starting terminal on boot not configurable.

Windows Terminal version (or Windows build number)
1.8.1521.0
Other Software
No response
Steps to reproduce
Windows Settings -> Apps -> Startup -> Scroll down to "Windows Terminal"
The option is greyed out.

Task Manager -> Startup -> Windows Terminal -> Enable -> Close and reopen Task Manager -> See that enabling it didn't persist.
https://user-images.githubusercontent.com/31551546/126053068-31a7e10c-2b42-40dc-a19e-a22824c784f7.mp4
Expected Behavior
I expect to be able to control whether or not windows terminal opens on boot.
Actual Behavior
Windows Terminal forcibly opens itself on startup, and I (as shown above) cannot change it.

Oh, and yes, the internal "Launch on machine startup" setting is disabled, too.

Thanks for the report! We can't figure out why this would happen; we're not locking the state of the task, and Terminal's code here tries to turn it off if your settings say that it should be off.

I actually fixed this a while ago with a full reinstall of windows. I tried all over to fix my issue, to no avail. I finally just gave up and bit the bullet after that. It happened on other apps too, and I couldn't find any regedit key / group policy key that would lock the startup state like that.
You're free to close this, unless someone else is having it too :)

Weird. Something must have been messed up on your system, but I guess it'll be impossible to know for sure what now. We'll keep our ears open for this if anyone else ever reports it.
Thanks for following up!


Error building DTEST on MSVC 2015

compiling by cmake .. -G"Visual Studio 14 2015":
dlib\dlib\test\multithreaded_object.cpp(186): error C2694: `anonymous namespace'::test4_c2::~test4_c2(void) throw(std::exception)
'override': overriding virtual function has less restrictive exception specification than base class virtual member function 'base'
https://msdn.microsoft.com/en-us/library/e4x95xf8.aspx
MSVC 2015 fails to build a test (MSVC2013 works good)
failed destructor code:
~test4_c2() throw (std::exception)
{
            DLIB_TEST(number_of_threads_registered() == 2);
            DLIB_TEST(number_of_threads_alive() == 2);
            DLIB_TEST_MSG(is_running() == false,"is_running(): " << is_running());
            stop();
            DLIB_TEST(number_of_threads_registered() == 2);
            DLIB_TEST(is_running() == false);
            wait();
            DLIB_TEST(number_of_threads_registered() == 2);
            DLIB_TEST(number_of_threads_alive() == 0);
            DLIB_TEST(is_running() == false);
        }

base class destructor code
    multithreaded_object::
    ~multithreaded_object (
    )
    {
        try
        {
            DLIB_ASSERT(number_of_threads_alive() == 0,
                   "\tmultithreaded_object::~multithreaded_object()"
                   << "\n\tYou have let a multithreaded object destruct itself before terminating its threads"
                   << "\n\tthis: " << this
            );
        }
        catch (std::exception& e)
        {
            std::cerr << e.what() << std::endl;
            assert(false);
            abort();
        }
    }

do we really need throw (std::exception) ? if no - I can make PR

We need the throw (std::exception) because destructors are noexcept by default in C++11 (see http://en.cppreference.com/w/cpp/language/noexcept_spec).  Without it, if any of those tests fail in test4_c2 the program will be abruptly terminated.
So the right thing to do is to disable this visual studio warning in just this test file with a #pragma.

Oops, you are right.  I fixed this months ago but accidentally made the changes in a private dlib branch (I'm adding deep learning tooling to dlib). I'm going push the updated branch in a few days which will fix this so don't worry about it :)

Ok, it should be fixed now.

Yes, the problem with compiling multithreaded_object solved
But now it fails to build dnn.cpp from dtest:

c:\work\dlib\dlib\dnn\core.h(159): error C2995: alwaysbool::type dlib::impl::backward_requires_forward_output(layer_type &,SUBNET &): function template already defined
c:\work\dlib\dlib\dnn\core.h(144): note:  see previous definition of "dlib::impl::backward_requires_forward_output"
c:\work\dlib\dlib\dnn\core.h(603): error C2976: dlib::add_layer:too few template arguments
c:\work\dlib\dlib\dnn\core.h(878): note:  see definition of "dlib::add_layer"

total 25 such errors (MSVC 2015 x64), and I dont have CUDNN installed

That code uses a bunch of C++11 features, some of which weren't supported by visual studio 2015.  So I added the COMPILER_CAN_DO_CPP_11 cmake flag (defined in dlib/use_cpp_11.cmake) to check if C++11 was supported and only try to compile these things if it was.  Apparently that's not working on your machine.
Maybe you have a slightly newer version of visual studio and it supports all the things listed in use_cpp_11.cmake but that list is incomplete?

I just ran it on the newest version of visual studio.  I had to adjust the build scripts to detect that visual studio still doesn't fully implement C++11.

Right now successfully built MSVC2013 and 2015 - all ok. DNN tests skipped from build process

Cool

Hello, I'm trying to compile with vs2015, but got exactly same "function template already defined" errors. Can you maybe some details, how did you manage to build it with MSVC2015? Thanks.

http://dlib.net/faq.html#Whycan'tIusetheDNNmodulewithVisualStudio

It builds with vs2015 update 3. Thanks!


Support ECR gate in the gateset rebase and use pytest-rerunfailures

Relates to the issue #112
Newer IBM devices support the ECR gate instead of the CX gate.
As a workaround I've defined a RebaseCustom to {X, SX, Rz, ECR} rather than defining a new decomposition for auto_rebase_pass in TKET itself
The CX replacement I've used is the following

I've created a new IBMBackend._primitive_gates attribute which is either {X, SX, Rz, CX} , {X, SX, Rz, ECR} or the value returned by the _tk_gateset function depending on which gates get reported back from the API. I have also removed the IBMQBackend._standard_gates attribute.

Prior to this PR we did a check if the Backend supported {X, SX, Rz, CX} in the default compilation. I've removed this as I wwant the rebase to be applied in both cases. Maybe it'd make sense to check the GateSetPredicate for optimisation_level=0 instead and if its satisfied then just skip the rebase.

I've also made use of the pytest-rerunfailures package to rerun failing tests so hopefully we won't keep getting CI failures for transient issues. This is an alternative to removing the timeout altogether which results in very long execution times for CI jobs.
@pytest.mark.flaky(reruns=3, reruns_delay=10)
@pytest.mark.skipif(skip_remote_tests, reason=REASON)
def test_nshots(manila_emulator_backend: IBMQEmulatorBackend) -> None:
    for b in [AerBackend(), manila_emulator_backend]:
        circuit = Circuit(1).X(0)
        circuit.measure_all()
        n_shots = [1, 2, 3]
        results = b.get_results(b.process_circuits([circuit] * 3, n_shots=n_shots))
        assert [sum(r.get_counts().values()) for r in results] == n_shots

I think the mypy CI failure is possibly due to the fact that 1.16rc is being installed?

As far as I can tell the only devices with the new gateset are ibm_seattle, ibm_brisbane and ibm_sherbrooke.
These have 433, 127 and 127 qubits respectively.
Would we want jobs running regularly on these large devices every time somebody pushes to pytket-qiskit? Maybe we could set up a small emulator job or something without too many qubits or shots.

As far as I can tell the only devices with the new gateset are ibm_seattle, ibm_brisbane and ibm_sherbrooke. These have 433, 127 and 127 qubits respectively.
Would we want jobs running regularly on these large devices every time somebody pushes to pytket-qiskit? Maybe we could set up a small emulator job or something without too many qubits or shots so it doesn't get stuck in the queue for ages.

We wouldn't need to run any jobs, just compile some circuits.

Ah sorry I misread. Yeah I can add a test for that.

For a compilation test I've just used IBMQBackend targetting ibm_sherbrooke. It may also be possible to test compilation using a Fake backend.


Cache header hash

Background
The hash of a header is recomputed every time it's used. The serialised bytestring is cached through the Annotated type, but hashing that bytestring still has a non-trivial cost.
In consenus, this showed up in the profiling output, so we have cached it for now: https://github.com/input-output-hk/ouroboros-network/pull/1049
Proposed Solution
Cache the hash of the header in a lazily-computed field. Next, undo the caching done in ouroboros-network.

Closing, we do this consensus side.


Dot, Lollipop and Cleveland Dot Plots

New Contributors:
please review CONTRIBUTING.md
Purpose:
#817
New Functionality:
So far this only adds Lollipop plots because I'm still working on it.
I'm also unsure whether dot plots are worth the effort, dot plots offer no benefit compared to bar plots that I know of other than being easy to draw with typewriters or ASCII art. And adding dot plot support looks like it would be non-trivial if one wants to minimize the number of fractional dots drawn. If someone has a compelling use case I can come back to them.
Lollipop
double[] values = { 26, 20, 23, 7, 16 };

var bar = plt.AddBar(values);
bar.DisplayStyle = BarStyle.Lollipop;
bar.HorizontalOrientation = true;

Note that this commit does make a refactor to the rendering of bar plots (RenderBarVertical and RenderBarHorizontal both call RenderBarFromRect) but I did not refactor any of the errorbar related stuff or the drawing of values above the bars. Mostly because it didn't achieve anything with regard to this PR.
I'm not sure about showing the values above the bars, but errorbars probably could be refactored out into its own function which would be shared between both vertical and horizontal barcharts.

I'm wondering if Cleveland Dot Plots should be their own plottable, or a type of bar chart? At first, I didn't think it would work, but bar charts have the YOffsets field, which was originally added in #463 #476 to allow for waterfall charts.
Let me know what you think, in terms of code it would be quite elegant, but conceptually I don't know that Cleveland Plots are really in the Bar Plot family.

Cleveland Dot Plots look like this:

Code:
double[] home_wins = { 12, 17, 16, 18, 18 }; // Data collected from https://footystats.org/england/premier-league/home-away-league-table
double[] away_wins = { 11, 13, 16, 14, 14 };
away_wins = away_wins.Select((y, i) => y - home_wins[i]).ToArray(); // y2 should be absolute, not in terms of its distance from y1

string[] labels = { "2015/16", "2016/17", "2017/18", "2018/19", "2019/20" };
double[] label_positions = Enumerable.Range(0, labels.Length).Select(i => (double)i).ToArray();

var bar = plt.AddBar(away_wins);
bar.YOffsets = home_wins;
bar.DisplayStyle = BarStyle.ClevelandDot;
plt.XAxis.ManualTickPositions(label_positions, labels);
plt.Title("British Premier League Champion Home vs Away Wins");

While this method is convenient for the implementer, it's perhaps clunky for the end-user.

With Legend support:

Code:
double[] home_wins = { 12, 17, 16, 18, 18 }; // Data collected from https://footystats.org/england/premier-league/home-away-league-table
double[] away_wins = { 11, 13, 16, 14, 14 };
away_wins = away_wins.Select((y, i) => y - home_wins[i]).ToArray(); // y2 should be absolute, not in terms of its distance from y1

string[] labels = { "2015/16", "2016/17", "2017/18", "2018/19", "2019/20" };
double[] label_positions = Enumerable.Range(0, labels.Length).Select(i => (double)i).ToArray();

var bar = plt.AddBar(away_wins);
bar.YOffsets = home_wins;
bar.DisplayStyle = BarStyle.ClevelandDot;
plt.XAxis.ManualTickPositions(label_positions, labels);
plt.Title("British Premier League Champion Home vs Away Wins");

bar.ClevelandLabel1 = "Home Wins";
bar.ClevelandLabel2 = "Away Wins";
plt.Legend();

Also let me know if a neutral colour (instead of the colour of the bottom dot) would be better for the line between dots in Cleveland dot plot.

Hey @bclehmann, sorry it took a little while for me to get to this. So far things are looking great! Here are some quick thoughts:
Dot Plots
I agree with you this seems pretty low priority / not worth implementing at this time. Users who are really compelled to make these plots could probably do so by getting creative with scatter plots. However, it might make a good example for the FAQ page demonstrating how to create custom plot types? https://github.com/ScottPlot/Website/issues/6
Error Bars

I did not refactor any of the errorbar related stuff or the drawing of values above the bars. Mostly because it didn't achieve anything with regard to this PR

Seems fair! I'd be surprised if users wanted to mix error bars with these new bar styles anyway. If users wanted something custom, they could probably add a scatter plot with no lines or markers (just error bars) and customize that as desired.
Extend BarPlot or Inherit it?

I'm wondering if Cleveland Dot Plots should be their own plottable, or a type of bar chart?

My gut reaction is that inheriting BarPlot makes sense. These new plot types could have custom fields for customizations, and override its render method. I'd probably go with names like LollipopPlot and ClevelandPlot. Probably the best way to do this is to pull common functionality into a BarPlotBase that uses as many protected fields as possible. Error bar functionality could be exposed only from the BarPlot class. Cleveland plots could have properties like values1 and values2 that point to Ys and YOffsets under the hood. I recognize this is a good bit of refactoring, but it's probably how I'd approach this. It would also keep the functions shorter and avoid those awkward switch statements. What do you think about this design?
Data Objects
I suspect we may soon want to refactor bar plots to accomodate a BarData data object (#841) to make it easier to add bars in real time. I'm reminded how similar Cleveland plots are to candlestick charts, and how much that plot type would benefit from a data object with an Add() method (so the user could hold on to the data object rather than the plottable itself).
I'm on the fence about if exploring this will make this PR too complicated or not, but if a lot of refactoring goes down it might be an opportunity to experiment with this concept a bit. Rather than suggest implementation details, I'm curious what you think of the idea and if you like it what your preferred implementation what it would look like. Perhaps you could make a data object for bar plots, I'll do the same with scatter plots, then we could compare our implementations and identify the best parts of both and converge onto a common style before creating data objects for other plot types? It sounds good in theory, but it also might just be clash of personal preferences in API design! I'm interested in your thoughts on this front. If you want to discuss it using shorter messages I'm happy to touch base on slack or discord. I'll probably work on this a little bit every day for the next week, so progress may be a bit slow on my end.

Also let me know if a neutral color (instead of the color of the bottom dot) would be better for the line between dots in Cleveland dot plot

Want to have 3 user-configurable colors? Rather than expose the fields, a setter might be a nice way to let the user control transparency. Thinking out loud we could make everything private and have style methods like this:
void SetStyleDot1(Color color, float size, MarkerShape shape)
void SetStyleDot2(Color color, float size, MarkerShape shape)
void SetStyleLine(Color color, float width, LineStyle style, double alpha = 1.0)

Seems fair! I'd be surprised if users wanted to mix error bars with these new bar styles anyway.

Sorry, I wasn't clear. Error bars work with the new bar styles (although I question their usefulness). The refactoring I was referring to was moving the bar rendering into its own function, while the error bar code is there twice in RenderBarHorizontal and RenderBarVertical.

My gut reaction is that inheriting BarPlot makes sense.

I like this idea, they're conveniently implemented as extensions to bar charts but I don't know how intuitive that is from an API perspective. Inheritance addresses both concerns pretty well in my opinion.

Data Objects

I am not particularly fond of making our own data object. I agree that handling growing data is best handled in the datastructure, but I think most of our users want to append (and possibly remove) data either to the beginning or the end. That sounds like a deque to me. C# doesn't provide a deque class but they're not particularly difficult to implement.
I think if we create a Deque<T> class we can replace double[] ys or OHLC[] data with IList<double> ys and IList<OHLC> data. This is a dropin replacement for any array parameters, as T[] is compatible with IList<T>.
To me this has a few main benefits:

Allows users to use any IList they want, including arrays, collections in the Base Class Library, and 3rd party collections
Most users probably only want List<double> support anyways, as appending to the end is more common than the beginning
Writing one Deque<T> class is much easier than writing a BarData, SignalData, OHLCData... etc class

There are also plenty of deque implementations out there one can borrow

In principle, one could use IEnumerable<T> instead of IList<T> on some plot types (by no means all) which would allow users to use Queue<double> or LinkedList<double> as well. However, I think that's not a great idea as it means a lot more effort and it's likely only applicable to a few plottables.
I am open to discussing this on discord or slack or wherever else you would like, although unfortunately I'm pretty busy for the next week.

Want to have 3 user-configurable colors?

Yeah that's probably the best option.

Thinking out loud we could make everything private and have style methods like this ...

Yeah I like that approach, it organizes the different properties of a dot more clearly.

As an aside it just occurred to me that customizable marker shapes would probably be a good idea.

I created a BarPlotBase which Bar, Lollipop and Cleveland Dot plots inherit from.
For the customization of the Cleveland Dot plot I added a SetDot1Style, but elected to leave the StemColor as just a field which is Color.Gray by default. I don't know that there's that much to customize with the stem so I don't know if a method makes sense.
I also didn't touch the BarData stuff as that seems like a bigger thing than just a new plottable.

Hey @bclehmann, thanks again for all your work here! I finally got to start working on this (#813 took me way longer than I anticipated), and I was hoping to finish it today but I wasn't able to.
Your modules look great - I'm going to take this opportunity to refactor the BarPlot module a bit more to bring it into consistency with some of the other plot types. I'll work on this PR aggressively over the next couple days and merge it, then we can revisit some of the detailed topics addressed above 👍

Those test failures came because YOffsets and YErrors were never initialized on Lollipop plots, so we got a null reference. They can still be overridden if the user were so inclined, they are just default initialized to an array of zeroes now.

Those test failures came because YOffsets and YErrors were never initialized on Lollipop plots, so we got a null reference. They can still be overridden if the user were so inclined, they are just default initialized to an array of zeroes now.

@bclehmann thanks for pointing that out and stepping in to fix it!
Something came up tonight and I tried to wrap up and commit my work before leaving the computer and in hindsight that was an irresponsible / rookie move! I'm super embarrassed I broke the build here and didn't have the time to fix it 😝
Thanks for the quick repair! I think I can finish my work on this PR tomorrow, and I'll try not to leave branches in a broken state again in the future 😅

Hey @bclehmann, thanks for your work on this PR!
I continued to refactor these classes and basically removed the IPlottable interface from BarPlotBase and instead only implemented it in the child classes. This lets the base focus on data management (positions, orientation, offsets, etc.) and each child plot type implements its own render methods. It also reduces the complexities associated with abstract classes and overrides.
I didn't extensively review/refactor the render code in the new child classes. I suspect large portions of the render code can be deleted, and the render methods can become relatively simple now (e.g., lollipop plots don't need to know how to draw rectangles).
I really want to focus on the current high-priority tasks preventing me from releasing ScottPlot 4.1 (#716), so I'll probably put this  down and pick it up again in a few weeks. I think this landed in a pretty good place for now, but I look forward to revisiting some of the discussions above about data management (live data, growing and auto-resizing arrays, etc.) after the release.


Idea: Let packages specify their own transforms?

Instead of requiring a parent package to do so? For example, I want to tell my friend "Hey, this is my package. Install it, then use it with browserify" without having to also say "Oh yeah, also make sure you add this fooify transform to your package.json browserify.transform array and your dependencies".
An example: Browserify projects that depend on famous also depend on the famousify transform to sanitize require() statements. It'd be nice if famous could specify this it it's own package.json, then a project that depends on famous doesn't have to.

IMHO, a better approach than the current would be to let packages specify their own transforms, but also make it easy for a package to override or remove transforms of it's dependencies.

For example, I want to tell my friend "Hey, this is my package. Install it, then use it with browserify" without having to also say "Oh yeah, also make sure you add this fooify transform to your package.json browserify.transform array and your dependencies".

This is exactly how browserify transforms work. Each package specifies its transforms.
The real issue is with famous encouraging users to use require incorrectly. Why do they say require('./core/Context.js') for example, when the correct path is require('./src/core/Context.js')? Try the latter in your own code and it'll work just fine.
If you want their weird require magic to work in your own module, then you need to add their transform to your own module.
They should just axe their src/ folder and move everything to the top level and get rid of the famousify transform entirely. Why do people love to make simple things complicated?

Closing since browserify can already do this as explained. Perhaps you should raise this issue with the famous maintainers?

@feross You're missing my idea. Currently, parent packages specify transforms to use on child packages (i.e. dependencies). It'd be nice if the child packages (the dependencies) could specify their own transforms instead. Also, the famousify transform prevents you from have to use src 100% of the time, which actually is quite nice.

@substack You also missed my idea. xD ^

A good approach would be to assume that someone who wants to use a library just wants to use the library, not worry about what transforms the project also needs to have for the dependencies to work. Maybe this is a special scenario, but I tried specifying the transform in the famous package itself, which doesn't work.

The src folder in famous is not going anywhere for the time being, it was necessary as the main folder was becoming very crowded and it wasn't clear which folders were source code versus support material.
Further, while famous supports browserify, the framework officially supports require js first class (as you can tell by the anonymous define). In truth famousify itself is a hack to allow browserify to support code written identically in both environments.
Transforms as they currently exist are very elegant and allow modules to be self contained, not knowing about how they are being used. Hijacking all requires in the parent module would be quite dangerous, filled with edge cases, and not nearly as elegant.

We currently include deamdify on the package.json so that you never have to worry about it.
Transforming he code before handing it off, good idea. Hijacking require before dealing with code, bad idea

Oh I see. I get it, so the relative paths in famous don't get detected by famousify, is that the reason it doesn't work putting famousify into famous package.json directly?
Your last idea there @TheAlphaNerd sounds good, instead of hijacking (which is why I suggested making it easy for a parent to override, for the edge cases).

@substack @feross @TheAlphaNerd So is it then possible to modify famousify so that it lives inside the famous package instead of in a package depending on famous?

It doesn't work because if you try and require a file that doesn't exist
everything will explode.
Transforms work by processing the code you plan on browserifying prior to
compilation.
Deamdify works in famous becomes it processes the code inside of famous
before it gets compiled. Famousify wouldn't work because it would need to
process the code in the parent module, which is an abstraction violation
On Jan 3, 2015 5:52 PM, "Joseph Orbegoso Pea"<EMAIL_ADDRESS>wrote:

Oh I see. I get it, so the relative paths in famous don't get detected by
famousify, is that the reason it doesn't work putting famousify into famous
package.json directly?
Your last idea there @TheAlphaNerd https://github.com/TheAlphaNerd
sounds good, instead of hijacking (which is why I suggested making it easy
for a parent to override, for the edge cases).
—
Reply to this email directly or view it on GitHub
https://github.com/substack/node-browserify/issues/1050#issuecomment-68617429
.

If famousify lived in famous the parent module would have no clue what it
was trying to require because the files it would be printing to do not
exist.
It is a bit of sugar for compatibility
On Jan 3, 2015 5:57 PM, "Myles Borins"<EMAIL_ADDRESS>wrote:

It doesn't work because if you try and require a file that doesn't exist
everything will explode.
Transforms work by processing the code you plan on browserifying prior to
compilation.
Deamdify works in famous becomes it processes the code inside of famous
before it gets compiled. Famousify wouldn't work because it would need to
process the code in the parent module, which is an abstraction violation
On Jan 3, 2015 5:52 PM, "Joseph Orbegoso Pea"<EMAIL_ADDRESS>wrote:

Oh I see. I get it, so the relative paths in famous don't get detected by
famousify, is that the reason it doesn't work putting famousify into famous
package.json directly?
Your last idea there @TheAlphaNerd https://github.com/TheAlphaNerd
sounds good, instead of hijacking (which is why I suggested making it easy
for a parent to override, for the edge cases).
—
Reply to this email directly or view it on GitHub
https://github.com/substack/node-browserify/issues/1050#issuecomment-68617429
.

@TheAlphaNerd Oh ok, I totally get it now. What about that idea "Transforming the code before handing it off"? Would it be possible to make famousify do that instead?

Nope. Famousify is not processing famous code, it is processing your code
by modifying the require statements before browserify injects the
appropriate code.
On Jan 3, 2015 6:02 PM, "Joseph Orbegoso Pea"<EMAIL_ADDRESS>wrote:

@TheAlphaNerd https://github.com/TheAlphaNerd Oh ok, I totally get it
now. What about that idea "Transforming the code before handing it off"?
Would it be possible to make famousify do that instead?
—
Reply to this email directly or view it on GitHub
https://github.com/substack/node-browserify/issues/1050#issuecomment-68617613
.