Actually Use Authentication and Authorization

Previously, the authentication and authorization options were not
actually being applied (they were silently ignored).  This applies them.
Unfortunately, the current set of godeps do not gracefully fall back
to InClusterConfig if no kubeconfig file is passed as a command line
argument, which causes panics on API access.  This fixes that by
bypassing the normal Apply code for the delegating auth options if
no kubeconfig file is specified.
Once the 1.6 rebase lands, this work-around should no longer be needed,
and the normally Apply code should be fine on its own.

cc @derekwaynecarr @pmorie from earlier today

Did you have steps to verify this against a local up environment?

So, there appears to have been another bug in the generic API server code (again, fixed in the "final" 1.6 code) that messed up request header code, so this should work around that as well.

So you are now signed up to help with the rebase on this part but thanks for getting this out.  If you can give some local-up instructions it would be great.   Will give this a spin this weekend.

Did you have steps to verify this against a local up environment?

I'll post a PR with the changes necessary for the helm charts shortly, but in the mean time, you need to pass the following options:
- --tls-cert-file=/var/run/serving-cert/serving-sc-catalog-apiserver.crt
- --tls-private-key-file=/var/run/serving-cert/serving-sc-catalog-apiserver.key
- --tls-ca-file=/var/run/serving-ca/server-ca.crt
- --client-ca-file=/var/run/client-ca/client-ca.crt
- --requestheader-client-ca-file=/var/run/request-header-ca/request-header-ca.crt

Where the tls-*-file files are used for serving, the requestheader-client-ca-file is the CA used to sign the kube-aggregator proxy-client certs, and the client-ca-file is used to client cert auth (I believe that's not strictly necessary, confirming as I type this)

@DirectXMan12
Thanks a ton for doing this, it is truly appreciated.

I'll post a PR with the changes necessary for the helm charts shortly, but in the mean time, you need to pass the following options (to the service catalog API server):

I think i'll wait for the helm chart PR :-)
In seriousness, this seems extremely complex to me (not your fault at all), and iz do not personally understand at this time what all of the pieces are. When you update the helm chart, i suggest explaining these options like the reader is five and being as specific and concise as possible as you describe each one.  TLDR, comment/doc the chart for someone who has never run the catalog OR kubernetes.  We (as a group, and not you personally at all) have a bad habit sometimes of assuming things are obvious when they are only obvious to us.

update: looks like the PR for merging the main API server and kube-aggregator landed this morning, so running kube-aggregator should be as simple as running the API server, and making sure to pass --proxy-client-* options (so that kube-aggregator can properly indicate that it's already authenticated the request).  Thanks @deads2k

helm charts, get your helm charts here! 🎉
on a more serious note, the new updates

add support for running without authn/authz for testing purposes (because some of the tests seem to run without an accompanying kube API server, so we have nothing to which to delegate auth)
update the helm charts to allow deploying with auth behind an aggregator
uncomment the Kubeconfig handling and tweaked some things so that people can actually pass Kubeconfigs, if they so desire (I'm not entirely certain as to why they were commented out in the first place, so please let me know if there's a good reason).
cause the controller manager to actually die when no service catalog APIs are present on the API server.  The previous behavior seemed to be to just standing around and twiddling its thumbs (having skipped running the controllers) while everyone expects it to catalog services and whatnot

I'll try to take some time to understand this this week. The above comments look helpful for testing. On a very high level, I barely have an understanding of what this does for us.
Is the process for adding this capability somewhere? How much is specific to our pre-1.6-ness? Is it possible to annotate the parts that will remain after the rebase?
I think #606 and #389 are partially related.

@DirectXMan12 this looks very interesting. I'm still working on understanding everything, but at first blush it looks like there are two major pieces of functionality added in here:

Enabling the parsing of external kubeconfig files (not just InClusterConfig)
Adding other functionality to make the API server sit behind the aggregator

I know that they are (possibly highly) related, but one thing I'd like to see is to split the first and second into separate PRs. Is that possible?

On a very high level, I barely have an understanding of what this does for us.

  This effectively hooks into the "main" API server's authentication and authorization, so the same accounts and policy (RBAC, etc) used there get used here.

It allows you to run behind an aggregated API server.  No separate Kubeconfigs needed, and tools can use the standard aggregated API server APIs to discover where to find the service catalog API server (or they can just use the aggregator's proxy).

Is the process for adding this capability somewhere? How much is specific to our pre-1.6-ness? Is it possible to annotate the parts that will remain after the rebase?

I've explicitly marked the parts that need to change post-1.6-rebase in the comments (e.g. https://github.com/kubernetes-incubator/service-catalog/pull/615/files#diff-8d2664bafc986876eff31f6f372b3104R68)

I think #606 and #389 are partially related.

AFAICT, #606 is only tangentially related (it seems to deal with controller-to-broker communication, but this is for controller-to-api-server and kubectl-to-apiserver communication).
#389 seems a bit more related, but this PR doesn't try to tackle that -- it just assumes that the user will populate the certs in the certificates.  Communication is done via hostnames (e.g. kubernetes.default.svc and sc-catalog-apiserver.service-catalog.svc), which are well-known ahead-of-time, so the question of having the right IP, while still present, isn't relevant for proper communication.

I know that they are (possibly highly) related, but one thing I'd like to see is to split the first and second into separate PRs. Is that possible?

While technically possible, I would recommend against that.  The commit that re-enables Kubeconfigs is somewhat important when running both with and without an aggregator.
If you are running with an aggregator, pre-1.7, the aggregator wasn't integrated into the API server, so if you want to point the controller-manager at the aggregator, you'll need to somehow be able to pass authentication information.
Even without an aggregator, the first two commits turn authentication back on, so you'll need some way of passing authentication options to the controller-manager, unless you're just running against a main API server which has "allow all" as both authentication and authorization.

@DirectXMan12 rebase needed

Closes #457

@pmorie should be all rebased

Is there an automated test that checks that the delegated auth piece is working?  Is this possible to setup?

it needs to run against an API server serving the {Token,SubjectAccess}Review APIs (so a normal kube API server).  The walkthough should implicitly exercise it, although if we want to be even more certain, we could add some RBAC rules on that cluster and test the denials.

Ah.  How hard is it to spin up a "normal kube API server" and point the service catalog server at it in an integration test?

https://github.com/kubernetes-incubator/service-catalog/pull/615#issuecomment-293100034
Haven't tried since before the rebase. MAY be more possible now to start one in process, but that would mean knowing how the core apiserver works and expects to be set up.

FYI, none of my comments are blockers for this PR.
Looks like there is a Jenkins test failure though.

This should be rebased because that the changes from #695 (which has been merged into master) may fix the flake in jenkins

I am moving this out to the 1.0.0 milestone since that is when we've scheduled aggregation support on the roadmap

@arschles FYI, that's not a flake in Jenkins -- I believe it's actually an issue with the testing cluster being create.  I'm playing around trying to figure out what's different in GKE from my local cluster.

@DirectXMan12 FYI, delegated auth isn't enabled in GKE right now, so I would not expect this to work in GKE.  @lavalamp Is working on this for 1.7.

@pwittrock we don't actually need delegated auth to work, we just need the certs in place.  I tested against my own GKE cluster, and everything worked once I manually updated the configmap to contain the appropriate certs.

@DirectXMan12 that is great news

This should be passing now (just rebased, but was passing before).  Is there anything else that needs to be addressed before merge?

Please don't merge until we justify why it should go into the 0.0.4 release.

Please don't merge until we justify why it should go into the 0.0.4 release.

Why shouldn't it?

I was able to run through the walkthrough using my normal flags on images built from this branch.

I've also added a note to the walkthrough about what to do if your cluster (e.g. a GKE cluster) is missing the requestheader cert in the configmap autogenerated by the main Kubernetes API server (you can either populate it, or just pass the appropriate Helm chart option).

Waiting for Travis CI to finish, then merging

CI passed, merging


UnicodeEncodeError when esrally configure

Rally version (get with esrally --version): 0.3.0
Invoked command: esrally configure
JVM version:
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

OS version: Linux ELK-Data1 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Description of the problem including expected versus actual behavior:
Steps to reproduce:

esrally configure

Additional Information
python version: 3.4.3
pip version: pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.4)
Error
Traceback (most recent call last):
  File "/usr/local/bin/esrally", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.4/dist-packages/esrally/rally.py", line 245, in main
    ensure_configuration_present(cfg, args, sub_command)
  File "/usr/local/lib/python3.4/dist-packages/esrally/rally.py", line 212, in ensure_configuration_present
    config.ConfigFactory().create_config(cfg.config_file, advanced_config=args.advanced_config)
  File "/usr/local/lib/python3.4/dist-packages/esrally/config.py", line 222, in create_config
    self.o("[\u2713] Autodetecting available third-party software")
UnicodeEncodeError: 'ascii' codec can't encode character '\u2713' in position 1: ordinal not in range(128)

This is most likely caused by an environment problem. It seems you don't have set the LANG environment variable (or to some value that does not support UTF-8).
Can you please run echo $LANG? If it prints nothing, you can set it with export LANG="en_US.UTF-8" and then invoke esrally configure. If this works, you should permanently add LANG to your environment (e.g. add it to /etc/default/locale if you are the admin or else to your shell config (e.g. ~/.bash_profile)

If this does not help, can you please add the output of env | grep LC to this ticket?

Hi, LANG is alreadyen_US.UTF-8. Then I set export LC_ALL="en_US.UTF-8" and it succeed.

Great, thanks for the feedback. Then I'll add a hint to the docs so it doesn't bite other users as well.

Thank you for the quick reply 👍

Sure, you're welcome. The new docs are already online: https://esrally.readthedocs.io/en/latest/#configuring-rally


Fix test_spark_from_json_date_with_format when run in a non-UTC TZ

This fixes #10559
It also adds the TZ to the name of the test to make reproducing test failures simpler. It also fixes a minor escape processing problem with another test that didn't change the results at all, just removed a warning from python that could become an error in the future.

build

build

build


Release 2.4.14

Coverage increased (+0.09%) to 94.357% when pulling c18287e9443299cee6b18e74463945a9b287c74e on 2.4.14 into f8e6282d045664e8a4640d66ee6a5b038f2c40a2 on master.


Missing activation for Wolf_DieBekherte

There's no activation lab file for Wolf_DieBekherte here:
https://github.com/marl/medleydb/tree/master/medleydb/data/Annotations/Activation_Confidence
There's a file here though:
https://github.com/marl/medleydb/blob/master/medleydb/data/Annotations/Activation_Confidence/original_annotations/Wolf_DieBekherte_ACTIVATION_CONF.lab
This is breaking some code of mine that iterates over every mdb mix and does stuff with the activations, since track.stem_activations for this track is empty.
Why is the file missing?

Same for Mozart_DiesBildnis

I think this can be closed, right?


Shell integration breaks prompt plugins

The shell integration for tea -package and dev are breaking my prompt. I am using a prompt library called Starship in ZSH to display a custom prompt. In some cases is seems the tea prompt gets appended on the line before my PS1. In other cases it's blowing away PS1 all together (see screen grabs below where PS1 becomes blank).
My thought is that maybe tea shouldn't be messing with the prompt because it would be hard to predict all the different ways installed plugins might be using it. Starship also already has functionality to show current version of node, etc. in your prompt.
However, I imagine the proper (and neat 🤩) way to implement this would be creating a Starship module for tea, or other prompt plugins out there. Then users could enable the tea module in favor of using the existing modules for node, etc.
Tea version: 1.0.0-alpha.4
After running tea -node my PS1 gets overwritten and and now promptless:

After running dev and then cd .. my PS1 gets overwritten and and now promptless again:

the code is just export PS1="(tea) $PS1", which probs is naive. Any clue what we should be doing instead?

Conda supports CONDA_CHANGEPS1=false which probs we need to do something similar.

Actually @mxcl I didn't think to test it without starship enabled. It seems to be a more general problem with prompt getting blown away on package remove.

My thought is there's probably something on package remove that's overwriting the prompt instead of reverting (i.e. It would probably need to remember what PS1 was before modifying it). Prepending on package add seems less problematic, but maybe not desired in case of prompt library like starship, spaceship, powerlevel, etc.

Oddly I cannot reproduce
~ echo $PS1
%F{086}%~%{%}
~ tea +node
(tea) ~ tea -node
~ echo $PS1
%F{086}%~%{%}
~

k I can see how it happens since if we cannot for some reason get the existing PS1 we unset it instead when restoring it.
I may just disable the prompt mangling for beta.1 since it has other issues.
Would be good to understand better this stuff, it's new to me.

If you do restore prompt mangling, please make it opt-in.

We will not likely make it opt in since generally this is what users expect and want, but it will be opt out.

Then please make it only manipulate prompts that are known to pkgx instead of generically adding to PS1.

Happy to do the right thing. If you can help me understand how to do that then it will definitely be the case. Look forward to your assistance.

For zsh, it would be providing a zsh hook precmd, and adding that to the --shellcode output. something like:
pkgx-prompt() { pkgx --print-env }
add-zsh-hook precmd pkgx-prompt

oh ok, this is very useful thank you

A safer and dumber solution could be customization detection (something like the following)
if [[ "$PS1" != $(zsh -norcs -c "echo $PS1") ]] return


Create integration test for API allowlist/denylist

We currently do not have E2E/integration tests for API allowlists/denylists and we should create one.
Originally posted by @daixiang0 in https://github.com/dapr/dapr/issues/5977#issuecomment-1507814525

This is probably best implemented as integration test when #6327 is merged

Keeping this alive, assigning to me, and changing to integration tests since we can now do that (and are simpler to write for stuff like this)


Memory leaks in version >=3.0.0

It seems that new version of JSCS has some problems with memory consumption.
I can't run JSCS on a file which contains an object with a property which contains a huge string of hardcoded html content.
So the ifle contains some siimple JS code and also something like this:
var obj = {   html: '11 thousand of symbols of html...' }
After I run JSCS on this file the node process just starts to consume a lot of memory and become unresponsive. Everything worked well with this file while I was using JSCS v2.11.0.
Also I have to mention that there are a // jscs:disable line in the top of this file, so I wonder while JSCS tries to parse the rest of this file.

I can't run JSCS on a file which contains an object with a property which contains a huge string of hardcoded html content.

Doesn't sound like memory leak to me, it just takes a lot of memory for big file. We can check out some example if you post it somewhere (please not here).

Also I have to mention that there are a // jscs:disable line in the top of this file, so I wonder while JSCS tries to parse the rest of this file.

It finds errors regardless of inline pragmas, just removes it from the error list.

But it worker fast and well in version 2.11...
Here is sample code: https://gist.github.com/poohitan/2019a10d69140799b8953f79964d1d67

Can you please let me know, if it is considered as a bug and will be fixed in future? Or is it an expected behaviour?
Hope you will consider it as a bug :)

Wouldn't call it as a bug but enhancement, but that would be enhancement on cst side and cst package is fully supported

Replaced with https://github.com/cst/cst/issues/113


Does not compile in release mode

The cmake command in netcdf-src with static feature fails for me on release builds.
Steps to reproduce (in an empty folder)
cargo init
cargo add netcdf --features static
cargo build # Succeeds
cargo build --release # Fails

Output:
   Compiling cc v1.0.96
   Compiling pkg-config v0.3.30
   Compiling vcpkg v0.2.15
   Compiling memchr v2.7.2
   Compiling regex-syntax v0.8.3
   Compiling autocfg v1.3.0
   Compiling cfg-if v1.0.0
   Compiling libc v0.2.154
   Compiling semver v1.0.22
   Compiling rawpointer v0.2.1
   Compiling netcdf v0.9.1
   Compiling bitflags v2.5.0
   Compiling libloading v0.7.4
   Compiling num-traits v0.2.19
   Compiling matrixmultiply v0.3.8
   Compiling aho-corasick v1.1.3
   Compiling netcdf-sys v0.6.0
   Compiling cmake v0.1.50
   Compiling libz-sys v1.1.16
   Compiling hdf5-src v0.8.1
   Compiling netcdf-src v0.3.3
   Compiling num-complex v0.4.5
   Compiling num-integer v0.1.46
   Compiling ndarray v0.15.6
   Compiling regex-automata v0.4.6
   Compiling regex v1.10.4
   Compiling hdf5-sys v0.8.1
error: failed to run custom build command for `netcdf-src v0.3.3`

Caused by:
  process didn't exit successfully: `/home/max/dev/bug/target/release/build/netcdf-src-133e7c1c090136f3/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-changed=build.rs
  CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-unknown-linux-gnu = None
  CMAKE_GENERATOR_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-unknown-linux-gnu = None
  CMAKE_PREFIX_PATH_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-unknown-linux-gnu = None
  CMAKE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE = None
  CMAKE = None
  running: cd "/home/max/dev/bug/target/release/build/netcdf-src-e0c5a24fb58674c7/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/home/max/.cargo/registry/src/index.crates.io-6f17d22bba15001f/netcdf-src-0.3.3/source" "-DBUILD_SHARED_LIBS=OFF" "-DNC_FIND_SHARED_LIBS=OFF" "-DBUILD_UTILITIES=OFF" "-DENABLE_EXAMPLES=OFF" "-DENABLE_DAP_REMOTE_TESTS=OFF" "-DENABLE_TESTS=OFF" "-DENABLE_EXTREME_NUMBERS=OFF" "-DENABLE_PARALLEL_TESTS=OFF" "-DENABLE_FILTER_TESTING=OFF" "-DENABLE_BASH_SCRIPT_TESTING=OFF" "-DENABLE_PLUGINS=OFF" "-DPLUGIN_INSTALL_DIR=OFF" "-DHDF5_VERSION=1.10.7" "-DHDF5_C_LIBRARY=hdf5" "-DHDF5_HL_LIBRARY=hdf5_hl" "-DHDF5_INCLUDE_DIR=/home/max/dev/bug/target/release/build/hdf5-src-614e7233f98d8695/out/include" "-DENABLE_NCZARR=OFF" "-DENABLE_DAP=OFF" "-DENABLE_BYTERANGE=OFF" "-DENABLE_DAP_REMOTE_TESTS=OFF" "-DZLIB_ROOT=/home/max/dev/bug/target/release/build/libz-sys-97b733af6dc36c2b/out/include/.." "-DCMAKE_INSTALL_PREFIX=/home/max/dev/bug/target/release/build/netcdf-src-e0c5a24fb58674c7/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
  -- The C compiler identification is GNU 13.2.1
  -- The CXX compiler identification is GNU 13.2.1
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/cc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /usr/bin/c++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Performing Test LIBTOOL_HAS_NO_UNDEFINED
  -- Performing Test LIBTOOL_HAS_NO_UNDEFINED - Success
  -- Performing Test CC_HAS_WCONVERSION
  -- Performing Test CC_HAS_WCONVERSION - Success
  -- Performing Test CC_HAS_SHORTEN_64_32
  -- Performing Test CC_HAS_SHORTEN_64_32 - Failed
  -- Using HDF5 C Library: hdf5
  -- Using HDF5 HL LIbrary: hdf5_hl
  -- Found HDF5 libraries version 1.10.7
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
  -- Found Threads: TRUE
  -- Performing Test HAVE_HDF5_ZLIB
  -- Performing Test HAVE_HDF5_ZLIB - Success
  -- Found ZLIB: /home/max/dev/bug/target/release/build/libz-sys-97b733af6dc36c2b/out/lib/libz.a (found version "1.3.1")
  -- HDF5 has zlib.
  -- Performing Test USE_HDF5_SZIP
  -- Performing Test USE_HDF5_SZIP - Failed
  -- Looking for H5Pget_fapl_mpio in hdf5
  -- Looking for H5Pget_fapl_mpio in hdf5 - found
  -- Looking for H5Pset_all_coll_metadata_ops in hdf5
  -- Looking for H5Pset_all_coll_metadata_ops in hdf5 - found
  -- Looking for H5Dread_chunk in hdf5
  -- Looking for H5Dread_chunk in hdf5 - found
  -- Looking for H5Pset_fapl_ros3 in hdf5
  -- Looking for H5Pset_fapl_ros3 in hdf5 - not found
  -- Found CURL: /usr/lib/libcurl.so (found version "8.7.1")
  -- Performing Test HAVE_LIBCURL_766
  -- Performing Test HAVE_LIBCURL_766 - Success
  -- Found Math library: /usr/lib/libm.so
  -- Found Szip: headers at /usr/include, libraries at /usr/lib
  --    library is /usr/lib/libsz.so
  -- Found Bz2: headers at /usr/include, libraries at /usr/lib
  --    library is /usr/lib/libbz2.so
  -- Found Blosc: headers at /usr/include, libraries at /usr/lib
  --    library is /usr/lib/libblosc.so
  -- Found Zstd: headers at /usr/include, libraries at /usr/lib
  --    library is /usr/lib/libzstd.so
  -- Found LibXml2: /usr/lib/libxml2.so (found version "2.12.6")
  -- Found MPI_C: /usr/lib/libmpi.so (found version "3.1")
  -- Found MPI_CXX: /usr/lib/libmpi.so (found version "3.1")
  -- Found MPI: TRUE (found version "3.1")
  -- Enabling use of fill value when NC_ERANGE
  -- Enabling a more relaxed check for NC_EINVALCOORDS
  -- Looking for math.h
  -- Looking for math.h - found
  -- Looking for unistd.h
  -- Looking for unistd.h - found
  -- Looking for alloca.h
  -- Looking for alloca.h - found
  -- Looking for malloc.h
  -- Looking for malloc.h - found
  -- Looking for fcntl.h
  -- Looking for fcntl.h - found
  -- Looking for getopt.h
  -- Looking for getopt.h - found
  -- Looking for locale.h
  -- Looking for locale.h - found
  -- Looking for stdint.h
  -- Looking for stdint.h - found
  -- Looking for stdio.h
  -- Looking for stdio.h - found
  -- Looking for stdlib.h
  -- Looking for stdlib.h - found
  -- Looking for stdarg.h
  -- Looking for stdarg.h - found
  -- Looking for strings.h
  -- Looking for strings.h - found
  -- Looking for signal.h
  -- Looking for signal.h - found
  -- Looking for sys/param.h
  -- Looking for sys/param.h - found
  -- Looking for sys/stat.h
  -- Looking for sys/stat.h - found
  -- Looking for sys/time.h
  -- Looking for sys/time.h - found
  -- Looking for sys/types.h
  -- Looking for sys/types.h - found
  -- Looking for sys/mman.h
  -- Looking for sys/mman.h - found
  -- Looking for sys/resource.h
  -- Looking for sys/resource.h - found
  -- Looking for inttypes.h
  -- Looking for inttypes.h - found
  -- Looking for pstdint.h
  -- Looking for pstdint.h - not found
  -- Looking for endian.h
  -- Looking for endian.h - found
  -- Looking for BaseTsd.h
  -- Looking for BaseTsd.h - not found
  -- Looking for stddef.h
  -- Looking for stddef.h - found
  -- Looking for string.h
  -- Looking for string.h - found
  -- Looking for winsock2.h
  -- Looking for winsock2.h - not found
  -- Looking for ftw.h
  -- Looking for ftw.h - found
  -- Looking for libgen.h
  -- Looking for libgen.h - found
  -- Looking for execinfo.h
  -- Looking for execinfo.h - found
  -- Looking for dirent.h
  -- Looking for dirent.h - found
  -- Looking for time.h
  -- Looking for time.h - found
  -- Looking for dlfcn.h
  -- Looking for dlfcn.h - found
  -- Looking for isfinite
  -- Looking for isfinite - found
  -- Looking for isnan
  -- Looking for isnan - found
  -- Looking for isinf
  -- Looking for isinf - found
  -- Looking for st_blksize
  -- Looking for st_blksize - not found
  -- Looking for alloca
  -- Looking for alloca - found
  -- Looking for snprintf
  -- Looking for snprintf - found
  -- Check size of char
  -- Check size of char - done
  -- Check size of double
  -- Check size of double - done
  -- Check size of float
  -- Check size of float - done
  -- Check size of int
  -- Check size of int - done
  -- Check size of uint
  -- Check size of uint - done
  -- Check size of schar
  -- Check size of schar - failed
  -- Check size of long
  -- Check size of long - done
  -- Check size of long long
  -- Check size of long long - done
  -- Check size of unsigned long long
  -- Check size of unsigned long long - done
  -- Check size of off_t
  -- Check size of off_t - done
  -- Check size of off64_t
  -- Check size of off64_t - done
  -- Check size of short
  -- Check size of short - done
  -- Check size of ushort
  -- Check size of ushort - done
  -- Check size of _Bool
  -- Check size of _Bool - done
  -- Check size of size_t
  -- Check size of size_t - done
  -- Check size of ssize_t
  -- Check size of ssize_t - done
  -- Check size of ptrdiff_t
  -- Check size of ptrdiff_t - done
  -- Check size of uintptr_t
  -- Check size of uintptr_t - done
  -- Check size of __int64
  -- Check size of __int64 - failed
  -- Check size of int64_t
  -- Check size of int64_t - done
  -- Check size of uint64
  -- Check size of uint64 - failed
  -- Check size of unsigned char
  -- Check size of unsigned char - done
  -- Check size of unsigned short int
  -- Check size of unsigned short int - done
  -- Check size of unsigned int
  -- Check size of unsigned int - done
  -- Check size of long long
  -- Check size of long long - done
  -- Check size of unsigned long long
  -- Check size of unsigned long long - done
  -- Check size of uint64_t
  -- Check size of uint64_t - done
  -- Looking for fsync
  -- Looking for fsync - found
  -- Looking for strlcat
  -- Looking for strlcat - found
  -- Looking for strdup
  -- Looking for strdup - found
  -- Looking for strndup
  -- Looking for strndup - found
  -- Looking for strtoll
  -- Looking for strtoll - found
  -- Looking for strcasecmp
  -- Looking for strcasecmp - found
  -- Looking for strtoull
  -- Looking for strtoull - found
  -- Looking for mkstemp
  -- Looking for mkstemp - found
  -- Looking for mktemp
  -- Looking for mktemp - found
  -- Looking for random
  -- Looking for random - found
  -- Looking for gettimeofday
  -- Looking for gettimeofday - found
  -- Looking for MPI_Comm_f2c
  -- Looking for MPI_Comm_f2c - not found
  -- Looking for MPI_Info_f2c
  -- Looking for MPI_Info_f2c - not found
  -- Looking for memmove
  -- Looking for memmove - found
  -- Looking for getpagesize
  -- Looking for getpagesize - found
  -- Looking for sysconf
  -- Looking for sysconf - found
  -- Looking for getrlimit
  -- Looking for getrlimit - found
  -- Looking for _filelengthi64
  -- Looking for _filelengthi64 - not found
  -- Looking for mmap
  -- Looking for mmap - found
  -- Looking for mremap
  -- Looking for mremap - found
  -- Looking for fileno
  -- Looking for fileno - found
  -- Looking for clock_gettime
  -- Looking for clock_gettime - found
  -- Looking for struct timespec
  -- Looking for struct timespec - not found
  -- Looking for atexit
  -- Looking for atexit - found
  -- Performing Test HAVE_MAPANON
  -- Performing Test HAVE_MAPANON - Success
  -- Found m4: /usr/bin/m4
  -- Building Shared Libraries:     OFF
  -- Building netCDF-4:             ON
  -- Building DAP2 Support:         OFF
  -- Building DAP4 Support:         OFF
  -- Building Byte-range Support:   OFF
  -- Building Utilities:            OFF
  -- Using PnetCDF:       OFF
  -- Using Parallel IO:   ON
  -- Build Type:           RELWITHDEBINFO
  -- CMAKE_C_COMPILER:     /usr/bin/cc
  -- CMAKE_C_FLAGS:         -ffunction-sections -fdata-sections -fPIC -m64 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
  -- Linking against:      hdf5_hl;hdf5;/usr/lib/libm.so;/home/max/dev/bug/target/release/build/libz-sys-97b733af6dc36c2b/out/lib/libz.a;/usr/lib/libblosc.so;/usr/lib/libzstd.so;/usr/lib/libbz2.so;/usr/lib/libcurl.so;/usr/lib/libxml2.so
  -- # NetCDF C Configuration Summary
  ==============================

  # General
  -------
  NetCDF Version:               4.9.2
  Dispatch Version:       5
  Configured On:                2024-05-04T16:51:41 CEST
  Host System:          x86_64-Linux-6.5.7-273-tkg-linux-tkg-cfs-generic_v3
  Build Directory:      /home/max/dev/bug/target/release/build/netcdf-src-e0c5a24fb58674c7/out/build
  Install Prefix:         /home/max/dev/bug/target/release/build/netcdf-src-e0c5a24fb58674c7/out
  Plugin Install Prefix:  N.A.

  # Compiling Options
  -----------------
  C Compiler:           /usr/bin/cc
  CFLAGS:                        -ffunction-sections -fdata-sections -fPIC -m64 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -DNDEBUG
  CPPFLAGS:
  LDFLAGS:
  AM_CFLAGS:
  AM_CPPFLAGS:
  AM_LDFLAGS:
  Shared Library:               no
  Static Library:               yes
  Extra libraries:      -lhdf5_hl -lhdf5 -lm -lz -lblosc -lzstd -lbz2 -lcurl -lxml2
  XML Parser:             libxml2

  # Features
  --------
  Benchmarks:           no
  NetCDF-2 API:         yes
  HDF4 Support:         no
  HDF5 Support:         yes
  NetCDF-4 API:         yes
  CDF5 Support:         yes
  NC-4 Parallel Support:        yes
  PnetCDF Support:      no

  DAP2 Support:         no
  DAP4 Support:         no
  Byte-Range Support:   no

  S3 Support:           no

  NCZarr Support:               no
  NCZarr Zip Support:     no

  Diskless Support:     yes
  MMap Support:         yes
  JNA Support:          no
  ERANGE Fill Support:  yes
  Relaxed Boundary Check:       yes

  Multi-Filter Support: yes
  Quantization:         yes
  Logging:              no
  SZIP Write Support:     yes
  Standard Filters:       deflate szip blosc zstd bz2
  ZSTD Support:           yes
  Parallel Filters:       yes

  -- Configuring incomplete, errors occurred!

  --- stderr
  CMake Warning (dev) at CMakeLists.txt:54 (exec_program):
    Policy CMP0153 is not set: The exec_program command should not be called.
    Run "cmake --help-policy CMP0153" for policy details.  Use the cmake_policy
    command to set the policy and suppress this warning.

    Use execute_process() instead.
  Call Stack (most recent call first):
    CMakeLists.txt:56 (getuname)
  This warning is for project developers.  Use -Wno-dev to suppress it.

  CMake Warning (dev) at CMakeLists.txt:54 (exec_program):
    Policy CMP0153 is not set: The exec_program command should not be called.
    Run "cmake --help-policy CMP0153" for policy details.  Use the cmake_policy
    command to set the policy and suppress this warning.

    Use execute_process() instead.
  Call Stack (most recent call first):
    CMakeLists.txt:57 (getuname)
  This warning is for project developers.  Use -Wno-dev to suppress it.

  CMake Warning (dev) at CMakeLists.txt:54 (exec_program):
    Policy CMP0153 is not set: The exec_program command should not be called.
    Run "cmake --help-policy CMP0153" for policy details.  Use the cmake_policy
    command to set the policy and suppress this warning.

    Use execute_process() instead.
  Call Stack (most recent call first):
    CMakeLists.txt:58 (getuname)
  This warning is for project developers.  Use -Wno-dev to suppress it.

  -- HDF5_UTF8_PATHS (HDF5 version 1.10.6+): ON
  >>> Standard Filter: szip
  >>> Standard Filter: blosc
  >>> Standard Filter: zstd
  >>> Standard Filter: bz2
  CMake Error: File /home/max/.cargo/registry/src/index.crates.io-6f17d22bba15001f/netcdf-src-0.3.3/source/h5_test/run_par_tests.sh.in does not exist.
  CMake Error at CMakeLists.txt:1500 (configure_file):
    configure_file Problem configuring file

  CMake Error at CMakeLists.txt:1502 (FILE):
    FILE COPY cannot find
    "/home/max/dev/bug/target/release/build/netcdf-src-e0c5a24fb58674c7/out/build/tmp/run_par_tests.sh":
    No such file or directory.

  CMake Warning at CMakeLists.txt:1642 (MESSAGE):
    ENABLE_FILTER_TESTING requires shared libraries.  Disabling.

  CMake Warning at CMakeLists.txt:1651 (MESSAGE):
    ENABLE_FILTER_TESTING requires shared libraries.  Disabling.

  CMake Warning at CMakeLists.txt:1656 (MESSAGE):
    ENABLE_NCZARR==NO => ENABLE_NCZARR_FILTERS==NO AND
    ENABLE_NCZARR_FILTER_TESTING==NO

  Configuration Summary:

  Building Parallel NetCDF

  Tests Enabled:              OFF

  Compiler:

  thread 'main' panicked at /home/max/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.50/src/lib.rs:1098:5:

  command did not execute successfully, got: exit status: 1

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

A workaround is to force a debug-build of hdf5-src:
[profile.release.package.hdf5-src]
opt-level = 0

Seems strange that the debug build of hdf5-src should fix this problem. Is the parallel flag enabled only for the release build of hdf5?

You should be able to run cargo update netcdf-src and get the fix

It compiles now, but as soon as I use e.g. netcdf::open, the linking fails:
error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/max/.cache/zsh/zinit/polaris/bin:/home/max/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/home/max/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/android-sdk/platform-tools:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/rocm/bin:/usr/lib/rustup/bin:/opt/android-sdk/platform-tools:/home/max/.cargo/bin:/home/max/.local/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcv55eTS/symbols.o" "/home/max/dev/bug/target/release/deps/bug-a2b8f3e61be9efc4.bug.ccaa775bfa9f94d7-cgu.0.rcgu.o" "/home/max/dev/bug/target/release/deps/bug-a2b8f3e61be9efc4.2do8gvq4tu6jf2q2.rcgu.o" "-Wl,--as-needed" "-L" "/home/max/dev/bug/target/release/deps" "-L" "/home/max/dev/bug/target/release/build/netcdf-src-0f716cb9ba04d569/out/lib" "-L" "/home/max/dev/bug/target/release/build/hdf5-src-614e7233f98d8695/out/lib" "-L" "/home/max/dev/bug/target/release/build/libz-sys-97b733af6dc36c2b/out/lib" "-L" "/home/max/dev/bug/target/release/build/libz-sys-97b733af6dc36c2b/out/lib" "-L" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/max/dev/bug/target/release/deps/libnetcdf-54d0061f1408d96a.rlib" "/home/max/dev/bug/target/release/deps/libbitflags-e1edd608d2279ef5.rlib" "/home/max/dev/bug/target/release/deps/libndarray-a520037548548015.rlib" "/home/max/dev/bug/target/release/deps/libmatrixmultiply-77af54bfaf3802cc.rlib" "/home/max/dev/bug/target/release/deps/libnum_complex-eecdf8110d69816a.rlib" "/home/max/dev/bug/target/release/deps/libnum_integer-72aa4e2196cd81c4.rlib" "/home/max/dev/bug/target/release/deps/libnum_traits-e1c3e3ffc27f3447.rlib" "/home/max/dev/bug/target/release/deps/librawpointer-75fd1a582b448a5f.rlib" "/home/max/dev/bug/target/release/deps/libnetcdf_sys-076c07e3415d6306.rlib" "/home/max/dev/bug/target/release/deps/libnetcdf_src-593ebe26b88c6da0.rlib" "/home/max/dev/bug/target/release/deps/libhdf5_sys-142811e55ce0bac4.rlib" "/home/max/dev/bug/target/release/deps/liblibc-8fe09481f39ba46e.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2d08990d644ac786.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-6f2d4ec7ff80253d.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-c194d68892442324.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-9a71c52c5946f83b.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-ae9aec4ce2dabc4f.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-6a207457d27610cc.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-fb1d2514710eef16.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-e36e7ed4b08caeac.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-9e8dafdf0a1b7ecd.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-b218f37fe3c9ce2e.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-20c30954fd9b5ef4.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-6d3dfaf536d51163.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-cb4ce50789112af8.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-9897980a3b548e05.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-b7bd4d010c784af2.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-6d4515df28ba3369.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-e28568c1a21499f7.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-eedf3675950a13c2.rlib" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-715e69127681e2e0.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/max/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/max/dev/bug/target/release/deps/bug-a2b8f3e61be9efc4" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs"
  = note: /usr/bin/ld: /home/max/dev/bug/target/release/deps/libnetcdf_sys-076c07e3415d6306.rlib(hdf5create.c.o): in function `nc4_create_file':
          /home/max/.cargo/registry/src/index.crates.io-6f17d22bba15001f/netcdf-src-0.3.4/source/libhdf5/hdf5create.c:205:(.text.NC4_create+0x3a3): undefined reference to `H5Pset_all_coll_metadata_ops'
          /usr/bin/ld: /home/max/.cargo/registry/src/index.crates.io-6f17d22bba15001f/netcdf-src-0.3.4/source/libhdf5/hdf5create.c:207:(.text.NC4_create+0x3ba): undefined reference to `H5Pset_coll_metadata_write'
          collect2: error: ld returned 1 exit status

  = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-link-lib)

I suspect that this is an upstream problem in hdf5-src and it doesn't set the correct flags in release builds.

This seems like two versions of hdf5 are installed, and the wrong one is linked. This could either happen on the rust side, or by cmake when building netcdf-c. Do you have a way for me to replicate your environment?

That was a pointer in the right direction. I do have hdf5-openmpi 1.14.3 installed on my system (Arch Linux) as a dependency of FreeCAD. When I uninstall that and cargo clean, the release build works! So it looks like the system installed hdf5 is preferred over the statically built one during linking.


Connection settings dialog: changed preferences are not used in "test connection"

Preferences changed on connection settings pages (e.g. Error Handle) are ignored during connection test.
Although options from primary pages (settings, network, general) are used normally.

Verified


Fails to Compile with Ecto 3.0

Hello!
Upgrading to Ecto 3.0 gives me this:
==> guardian_trackable
Compiling 3 files (.ex)

== Compilation error in file lib/mix/tasks/guardian_trackable.install.ex ==
** (CompileError) lib/mix/tasks/guardian_trackable.install.ex:39: undefined function migrations_path/1
    (stdlib) lists.erl:1338: :lists.foreach/2
    (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
could not compile dependency :guardian_trackable, "mix compile" failed. You can recompile this dependency with "mix deps.compile guardian_trackable", update it with "mix deps.update guardian_trackable" or clean it with "mix deps.clean guardian_trackable

Running with a fork right now, but wondered if you were interested in a PR. Cheers.

I'd happily accept a PR!

I don't think so. I don't expect to add any new features here, so people using 2.x can continue to use the current version. But, we should remember to bump the Ecto requirement in mix.exs.

Coolio, I'll put it on my "to-do" list to finish off and send your way.

Yeah, I can't imagine anyone needing microseconds for this purpose. I think if we can probably just fix the test.


APP-1217 Implement JIRA's OAuth dance based in our OAuth 1.0 generic implementation

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@16d4fb8). Click here to learn what that means.
The diff coverage is 45.83%.

@@          Coverage Diff           @@
##             dev     #101   +/-   ##
======================================
  Coverage       ?   86.77%
======================================
  Files          ?      114
  Lines          ?     2065
  Branches       ?      227
======================================
  Hits           ?     1792
  Misses         ?      188
  Partials       ?       85

Impacted Files
Coverage Δ

...gration/authorization/oauth/v1/OAuth1Provider.java
100% <ø> (ø)

...a/org/symphonyoss/integration/BaseIntegration.java
83.87% <ø> (ø)

...ion/authorization/oauth/OAuthRsaSignerFactory.java
75% <ø> (ø)

...egration/authorization/AuthorizationException.java
66.66% <0%> (ø)

.../integration/model/yaml/IntegrationProperties.java
62.5% <0%> (ø)

...va/org/symphonyoss/integration/json/JsonUtils.java
50% <0%> (ø)

...ntegration/authorization/AuthorizationPayload.java
100% <100%> (ø)

...tegration/authorization/UserAuthorizationData.java
37.93% <50%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 16d4fb8...0965c27. Read the comment docs.


docs: remove the command prompt to support fast copy/paste

The copied command that starts with $ will not execute correctly.
This PR removes the command prompt to support fast copy/paste.

/cc @zzxwill @wonderflow


QR image is printed without the position finder squares

Dear All
I am using QRCoder C# library with DLL version 1.3.7 NET 4.5, when printing the QR code the QR image is printed without the position finder squares (inner eye) as shown in the below screenshot so the QR will not be readable knowing that if I placed the squares with image editor (i.e. MS Paint) the QR code can be easily recognized
I am using the following code
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)0;
qrCodeData = qrGenerator.CreateQrCode(txt, eccLevel);
QRCode qrCode = new QRCode(qrCodeData);
QRImage = qrCode.GetGraphic(20, Color.Black, Color.White, null, 100);

Can anyone help me in that issue?

I am unable to reproduce the issue.  Test conditions:

.NET Framework 4.5 console app (designed in VS 2019)
QRCoder version 1.3.7

Sample code:
using QRCoder;
using System.Drawing;

namespace QRCoderTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var txt = "GL_Credit|FJB2236119232453";
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)0;
            var qrCodeData = qrGenerator.CreateQrCode(txt, eccLevel);
            QRCode qrCode = new QRCode(qrCodeData);
            var QRImage = qrCode.GetGraphic(20, Color.Black, Color.White, null, 100);
            QRImage.Save("sample.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            var p = new System.Diagnostics.Process();
            p.StartInfo.FileName = "sample.jpg";
            p.StartInfo.UseShellExecute = true;
            p.Start();
        }
    }
}

Produces this on my computer:

With version 1.4.3 and no other changes, this image is produced:

I even can't reproduce it. Also I'm missing details. What is meant by "when I'm printing"? Seems like here might be the source of the problem. Because the QRCode shown in the issue description seems to be skewed and dizzy - not like an Image saved directly from QRCoder onto disk. In addition I see some kind of watermark on the QRCode, but the code says that no image ist to be set. (GetGraphic call has null for the image parameter.) So there seems to be some kind of printing/image manipulation which isn't shown in the code sample above.
@Nasser190  Feel free to re-open the issue in case the problem still persists with the current version of QRCoder. In this case please provide more details on the printing routine you're using.


dart2js should support metadata on local declarations

The compiler fails to parse:
main() {
  @meta1 var a = new A();
}

Fixed in the CFE!


backport: merge bitcoin#19791, #19911, #19910, #20217, #20649, #18458, #20811, #20942 (peer manager backports)

Looks like there may be an issue with TSAN.. restarting that job to see if it's a once off

dropping 20942 "fixes" tsan build issue it seems


Would be nice to be able to change the Runtime for the rotation function

Here is the yaml configuration for deploying the AWS::Serverless::Application
  RDSSecretRotationService:
    Type: "AWS::Serverless::Application"
    Properties:
      Location:
        ApplicationId: arn:aws:serverlessrepo:region:id:applications/SecretsManagerRDSPostgreSQLRotationSingleUser
        SemanticVersion: 1.0.117
      Parameters:
        endpoint: !Sub "https://secretsmanager.${AWS::Region}.${AWS::URLSuffix}"
        functionName:
          Fn::Join:
            - ""
            - - Fn::ImportValue: !Sub ${ClusterImportPrefix}-ClusterResolvingName
              - "-rds-rotation-lambda"
        vpcSubnetIds:
          Fn::ImportValue: !Sub ${VPCImportPrefix}-PrivateSubnets
        vpcSecurityGroupIds: !Ref RDSSecurityGroup

where can the documentation for the parameter list supported by this AWS resource (AWS::serverless::application)
I tried to add both
        Runtime: "python3.7"
        runtime: "python3.7"

failed to do so

Thank you for your feedback. The SAM template does not currently take Runtime as a parameter. We have noted this as a feature request.

For people landing here, you can upgrade by changing the
       SemanticVersion: 1.0.117

Secrets Manager now supports RunTime Key from CFN template. Please refer to this article here


downloads: fix stack wallet

Can you add a comment to your commit about what you did? Like you fixed the mobile view. It confused me at first what line 299 is about

done


[BUG] Any not working well in complex situations?

This was working in 0.2.5,
I'll try to reduce this further but, assuming a complex type... see below.
In [23]: type(a1)
Out[23]: netket.utils.history.History

In [24]: type(a2)
Out[24]: netket.utils.history.History

In [25]: f.methods
Out[25]:
{Signature(netket.utils.history.History, netket.utils.history.History): (<function netket.utils.history.append(self: netket.utils.history.History, val: netket.utils.history.History, it: Any = None)>,
  builtins.object),
 Signature(netket.utils.history.History, builtins.dict): (<function netket.utils.history.append(self: netket.utils.history.History, values: dict, it: Any = None)>,
  builtins.object),
 Signature(netket.utils.history.History, builtins.object): (<function netket.utils.history.append(self: netket.utils.history.History, val: Any, it: Any = None)>,
  builtins.object)}

In [26]: f.invoke(type(a1), type(a2), type(None))
---------------------------------------------------------------------------
NotFoundLookupError                       Traceback (most recent call last)
<ipython-input-26-f35912ca344e> in <module>
----> 1 f.invoke(type(a1), type(a2), type(None))

~/Documents/pythonenvs/netket_env/lib64/python3.8/site-packages/plum/function.cpython-38-x86_64-linux-gnu.so in plum.function.Function.invoke()

~/Documents/pythonenvs/netket_env/lib64/python3.8/site-packages/plum/function.cpython-38-x86_64-linux-gnu.so in plum.function.Function.resolve_method()

~/Documents/pythonenvs/netket_env/lib64/python3.8/site-packages/plum/function.cpython-38-x86_64-linux-gnu.so in plum.function.Function.resolve_signature()

NotFoundLookupError: For function "append", signature Signature(netket.utils.history.History, netket.utils.history.History, builtins.NoneType) could not be resolved.

however without specifying the last argument it works.
f.invoke(type(a1), type(a2))
Out[31]: <cyfunction append at 0x7fa1884ece10>

Those methods have all a default third argument, as they are defined like
@dispatch
def append(self: History, val: History, it: Any = None):
    if not set(self.keys()) == set(val.keys()):
        raise ValueError("cannot concatenate MVHistories with different keys")

so maybe the problem is there

Indeed.
I updated the post above with a simpler reproducer

ops, indeed this is docuemnted.
However, it was working before...

This might indeed have worked before due to a subtle bug (IIRC). The current defined behaviour is that keyword arguments can be provided but are not dispatched on. The recommended way to set default values is the following pattern:
from plum import dispatch

@dispatch
def test(a: int, b: int):
	print('int, int')

@dispatch
def test(a: int):
	return test(a, 1)

The reason to exclude keyword arguments from the dispatch process is mostly simplicity... Perhaps there is a better solution.

I think that excluding kw args from dispatch is ok... Julia indeed does the same.
However for default arguments, that's a bit unfortunate and error prone.
I think that what you could do is... copy Julia again ( see here ), and make a method with a default argument automatically build another method:
from plum import dispatch

@dispatch
def test(a:int, b:int =3):
   pass

would be equivalent to typing
from plum import dispatch

@dispatch
def test(a:int, b:int):
   pass

@dispatch
def test(a:int):
   test(a, 3)

This could be automatized easily inside the decorator, no?

You're right. That seems like a relatively easy and handy feature. Actual keyword arguments should then be specified using *:
from plum import dispatch

@dispatch
def test(a: int, b_with_default:int = 3, *, c_kw_only = 4):
   pass

Would love to have this!
:+1:

Hey guys!
Just letting you know that I'm a little busy at the moment, but I hope to get to this in the near future.


recompiles triggered in one_file_mode sweeps based on different vary

make option for all parameters to be a vector. takes a little more space, but prevents recompiles when different things are varied.

since p.%s = pVecs.%s(simID) vs. p.%s = pVecs.%s


WSL closes immediately

Version
Microsoft Windows [Version 10.0.19044.2006]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Ubuntu
Other Software
No response
Repro Steps
Open Ubuntu
Expected Behavior
Ubuntu should stay open
Actual Behavior
Ubuntu closes immediately with error
-bash: loadlocale.c:129: _nl_intern_locale_data: Assertion cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.`
Diagnostic Logs
No response

Looks like something might be wrong with your .bashrc. I'd suggest running wsl.exe --exec /bin/sh to see if you can fx it.


K8SPXC-308: add replication user

Add extra system user for replication

Test name
Status

scheduled-backup
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/b1013928a28ed45e25a7c62b162e82b5bd047fd2
image: perconalab/percona-xtradb-cluster-operator:PR-904-b1013928

Test name
Status

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/b1013928a28ed45e25a7c62b162e82b5bd047fd2
image: perconalab/percona-xtradb-cluster-operator:PR-904-b1013928

Test name
Status

storage
passed

recreate
failed

haproxy
passed

upgrade-haproxy
passed

scaling
passed

big-data
failed

scheduled-backup
failed

self-healing
passed

scaling-proxysql
passed

init-deploy
passed

security-context
failed

limits
passed

monitoring-2-0
passed

self-healing-chaos
passed

affinity
passed

one-pod
failed

self-healing-advanced
passed

self-healing-advanced-chaos
failed

restore-to-encrypted-cluster
failed

operator-self-healing
passed

operator-self-healing-chaos
failed

auto-tuning
passed

proxysql-sidecar-res-limits
failed

demand-backup
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/36c4d2d62c12f4ca0c7b08136a62332fcc17b74f
image: perconalab/percona-xtradb-cluster-operator:PR-904-36c4d2d6

Test name
Status

storage
passed

upgrade-haproxy
passed

big-data
failed

recreate
failed

haproxy
passed

scaling
passed

scheduled-backup
failed

scaling-proxysql
passed

init-deploy
passed

self-healing
passed

security-context
failed

upgrade-proxysql
passed

limits
passed

self-healing-chaos
passed

monitoring-2-0
passed

smart-update
passed

affinity
passed

self-healing-advanced
passed

one-pod
failed

self-healing-advanced-chaos
passed

restore-to-encrypted-cluster
failed

operator-self-healing
passed

upgrade-consistency
passed

operator-self-healing-chaos
passed

auto-tuning
passed

proxysql-sidecar-res-limits
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/33249c2f886f233cf7dab45e70b747d330675580
image: perconalab/percona-xtradb-cluster-operator:PR-904-33249c2f

Test name
Status

big-data
passed

recreate
failed

scheduled-backup
failed

scaling
failed

storage
failed

upgrade-haproxy
failed

haproxy
failed

init-deploy
failed

self-healing
failed

restore-to-encrypted-cluster
failed

scaling-proxysql
failed

upgrade-proxysql
failed

self-healing-chaos
failed

demand-backup
failed

security-context
failed

smart-update
failed

self-healing-advanced
failed

pitr
failed

self-healing-advanced-chaos
failed

upgrade-consistency
passed

operator-self-healing
failed

limits
failed

demand-backup-encrypted-with-tls
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/db5d73da2197103d18b5b49943b6fc40c340ff9f
image: perconalab/percona-xtradb-cluster-operator:PR-904-db5d73da

Test name
Status

scaling
passed

recreate
passed

upgrade-haproxy
passed

scheduled-backup
passed

big-data
passed

storage
passed

haproxy
passed

scaling-proxysql
passed

self-healing
passed

init-deploy
failed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

security-context
passed

self-healing-chaos
passed

limits
passed

smart-update
passed

demand-backup
passed

self-healing-advanced
passed

monitoring-2-0
failed

self-healing-advanced-chaos
passed

affinity
passed

pitr
passed

one-pod
passed

operator-self-healing
passed

auto-tuning
passed

upgrade-consistency
passed

operator-self-healing-chaos
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

demand-backup-encrypted-with-tls
failed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/20794f0bf45f09667a583c1ecd1624c5c0285878
image: perconalab/percona-xtradb-cluster-operator:PR-904-20794f0b

Test name
Status

scheduled-backup
passed

upgrade-haproxy
passed

scaling
passed

big-data
passed

recreate
passed

storage
passed

haproxy
passed

scaling-proxysql
passed

self-healing
passed

init-deploy
passed

restore-to-encrypted-cluster
passed

security-context
passed

upgrade-proxysql
passed

limits
passed

self-healing-chaos
passed

monitoring-2-0
passed

smart-update
passed

self-healing-advanced
passed

affinity
passed

one-pod
passed

auto-tuning
passed

self-healing-advanced-chaos
passed

proxysql-sidecar-res-limits
passed

demand-backup
passed

users
passed

operator-self-healing
passed

upgrade-consistency
passed

operator-self-healing-chaos
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

pitr
passed

validation-hook
passed

demand-backup-encrypted-with-tls
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/4ce17fb7e00d50811ed56eb7eb0602bf7557b173
image: perconalab/percona-xtradb-cluster-operator:PR-904-4ce17fb7

Test name
Status

recreate
passed

haproxy
passed

scaling
passed

restore-to-encrypted-cluster
passed

init-deploy
passed

scaling-proxysql
passed

demand-backup
passed

limits
passed

security-context
passed

pitr
passed

monitoring-2-0
passed

demand-backup-encrypted-with-tls
passed

affinity
passed

big-data
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

upgrade-haproxy
passed

tls-issue-cert-manager
passed

storage
passed

tls-issue-cert-manager-ref
passed

self-healing
passed

validation-hook
passed

self-healing-chaos
passed

self-healing-advanced
passed

self-healing-advanced-chaos
passed

scheduled-backup
passed

operator-self-healing
passed

operator-self-healing-chaos
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/4ce17fb7e00d50811ed56eb7eb0602bf7557b173
image: perconalab/percona-xtradb-cluster-operator:PR-904-4ce17fb7

Test name
Status

haproxy
passed

storage
passed

scaling
passed

upgrade-haproxy
failed

recreate
passed

big-data
passed

scheduled-backup
passed

self-healing
failed

init-deploy
failed

scaling-proxysql
passed

restore-to-encrypted-cluster
passed

security-context
passed

limits
passed

demand-backup
passed

upgrade-proxysql
failed

monitoring-2-0
passed

affinity
passed

self-healing-chaos
failed

one-pod
passed

self-healing-advanced
passed

auto-tuning
passed

smart-update
failed

pitr
passed

proxysql-sidecar-res-limits
passed

self-healing-advanced-chaos
failed

users
passed

operator-self-healing
passed

operator-self-healing-chaos
failed

tls-issue-self
passed

demand-backup-encrypted-with-tls
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

upgrade-consistency
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/567c52a870db25e00119eaabae9998f92f3ad4f2
image: perconalab/percona-xtradb-cluster-operator:PR-904-567c52a8

Test name
Status

recreate
passed

haproxy
passed

scheduled-backup
passed

scaling
passed

restore-to-encrypted-cluster
passed

init-deploy
failed

scaling-proxysql
passed

demand-backup
passed

security-context
passed

pitr
passed

demand-backup-encrypted-with-tls
passed

upgrade-haproxy
passed

storage
passed

big-data
passed

self-healing
failed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

upgrade-proxysql
failed

self-healing-chaos
failed

self-healing-advanced
passed

self-healing-advanced-chaos
failed

operator-self-healing
passed

operator-self-healing-chaos
failed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/567c52a870db25e00119eaabae9998f92f3ad4f2
image: perconalab/percona-xtradb-cluster-operator:PR-904-567c52a8

Test name
Status

upgrade-haproxy
passed

recreate
passed

scaling
passed

scheduled-backup
passed

restore-to-encrypted-cluster
passed

storage
passed

scaling-proxysql
passed

demand-backup
passed

self-healing
failed

security-context
passed

pitr
passed

demand-backup-encrypted-with-tls
passed

big-data
passed

haproxy
passed

init-deploy
failed

upgrade-proxysql
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

smart-update
passed

upgrade-consistency
passed

self-healing-chaos
failed

self-healing-advanced
passed

self-healing-advanced-chaos
failed

operator-self-healing
passed

operator-self-healing-chaos
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/567c52a870db25e00119eaabae9998f92f3ad4f2
image: perconalab/percona-xtradb-cluster-operator:PR-904-567c52a8

Test name
Status

upgrade-haproxy
failed

recreate
passed

storage
passed

scaling
passed

scheduled-backup
passed

big-data
passed

haproxy
passed

scaling-proxysql
passed

init-deploy
passed

self-healing
passed

restore-to-encrypted-cluster
passed

security-context
passed

limits
passed

self-healing-chaos
passed

upgrade-proxysql
failed

demand-backup
passed

monitoring-2-0
passed

self-healing-advanced
passed

affinity
passed

one-pod
passed

auto-tuning
passed

self-healing-advanced-chaos
passed

smart-update
failed

pitr
passed

proxysql-sidecar-res-limits
passed

users
passed

operator-self-healing
passed

operator-self-healing-chaos
passed

upgrade-consistency
passed

demand-backup-encrypted-with-tls
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/904/commits/84171b41cd05419916df3d9ea760a3655d4c68a7
image: perconalab/percona-xtradb-cluster-operator:PR-904-84171b41


an argument of type std::option::Option<Reveal> is missing

A second warning comes by after running ./install.sh
Compiling rgb-cli v0.8.0-rc.1
error[E0061]: this function takes 4 arguments but 3 arguments were supplied
--> /home/rgbalice/.cargo/registry/src/github.com-1ecc6299db9ec823/rgb-cli-0.8.0-rc.1/src/command.rs:279:41
|
279 |                     let status = client.consume_transfer(consignment, force, progress)?;
|                                         ^^^^^^^^^^^^^^^^                     -------- an argument of type std::option::Option<Reveal> is missing
|
note: associated function defined here
--> /home/rgbalice/.cargo/registry/src/github.com-1ecc6299db9ec823/rgb_rpc-0.8.1/src/client.rs:260:12
|
260 |     pub fn consume_transfer(
|            ^^^^^^^^^^^^^^^^
help: provide the argument
|
279 |                     let status = client.consume_transfer(consignment, force, /* std::option::Option */, progress)?;
|                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For more information about this error, try rustc --explain E0061.
error: could not compile rgb-cli due to previous error
error: failed to compile rgb-cli v0.8.0-rc.1, intermediate artifacts can be found at /tmp/cargo-install6AIY4I
Downloaded storm-cli v0.8.0

I merged #20. Was this issue fixed?

Well following the instruction in the readme I'm still gett an error:
I do:
git clone https://github.com/LNP-BP/nodes.git
cd repos/nodes
rustup update nightly
cargo +nightly install lnpbp_nodes -Z bindeps
Gives the error:
error: could not find lnpbp_nodes in registry crates-io with version *

Yes, since the original intent I had with doing this crate has failed: rust cargo package manager doesn't allow to publish crates made of binaries of other crates. This crate was created to simplify the installation of all LNP/BP nodes - which reside as binaries in their own crates - and cargo prohibits exactly that. So there is no way to solve that issue; the only possible approach is to have a docker containers and automation on building nodes into them. Related discussion: https://github.com/LNP-BP/docker/issues/27#issuecomment-1366826580


Crashes with exit code 135 in model.fit

Click to expand!
Issue Type
Bug
Source
binary
Tensorflow Version
2.11
Custom Code
Yes
OS Platform and Distribution
Linux Ubuntu 22.02
Mobile device
No response
Python version
Docker image
Bazel version
Docker image
GCC/Compiler version
Docker image
CUDA/cuDNN version
Docker image
GPU model and memory
No response
Current Behaviour?
Crashes in model.fit with no error message but exit code 135

Works fine in 2.9

Standalone code to reproduce the issue
Calling model.fit() causes a crash

Relevant log output
No response

@plooney
Can you please give a reproducible code snippet or colab gist to replicate the issue reported here.
Thank you !

@plooney -- Did you ever figure this out? I use 1 or 2 GPUs it works fine, but when I use more than 2 it gives an exit code 135 at the same exact spot every single time.
It crashses at on the first epoch
gradients/Reshape_grad/Shape:
gradients/Reshape_1_grad/Shape:
gradients/Reshape_2_grad/Shape:
gradients/Reshape_3_grad/Shape:
gradients/Reshape_4_grad/Shape:
gradients/Reshape_5_grad/Shape:
gradients/Reshape_6_grad/Shape:


BrianGun/issue367

Pull Request Template
Description
system_properties function automatically calculated eyebox subdivisions but there are times when the user wants to override this. the code has been rewritten so user can specify eyebox subdivisions.
Fixes # (367)
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
ran unit tests
Checklist:

[ x] My code follows the style guidelines of this project
[x ] I have performed a self-review of my own code
[ x] I have commented my code, particularly in hard-to-understand areas
[ x] I have made corresponding changes to the documentation
[ x] My changes generate no new warnings
[ x] I have added tests that prove my fix is effective or that my feature works
[ x] New and existing unit tests pass locally with my changes
[x ] Any dependent changes have been merged and published in downstream modules
[ x] I have checked my code and corrected any misspellings

Codecov Report

Merging #374 (085707b) into main (c386906) will increase coverage by 0.37%.
The diff coverage is 52.94%.

:exclamation: Current head 085707b differs from pull request most recent head 558017a. Consider uploading reports for the commit 558017a to get more accurate results

@@            Coverage Diff             @@
##             main     #374      +/-   ##
==========================================
+ Coverage   54.17%   54.54%   +0.37%
==========================================
  Files          81       81
  Lines        8083     7786     -297
==========================================
- Hits         4379     4247     -132
+ Misses       3704     3539     -165

Impacted Files
Coverage Δ

src/RepeatingStructures/Multilens/Example.jl
0.00% <0.00%> (ø)

...RepeatingStructures/Multilens/LensletAssignment.jl
0.00% <0.00%> (ø)

src/RepeatingStructures/Multilens/Analysis.jl
66.42% <75.00%> (-0.47%)
:arrow_down:

src/RepeatingStructures/HexagonalLattice.jl
66.19% <0.00%> (-2.64%)
:arrow_down:

src/Geometry/Primitives/Curves/BSpline.jl
66.66% <0.00%> (-1.61%)
:arrow_down:

src/Geometry/CSG/Intersection.jl
49.29% <0.00%> (-1.41%)
:arrow_down:

src/OpticSim.jl
87.50% <0.00%> (-1.39%)
:arrow_down:

src/Geometry/Transform.jl
55.34% <0.00%> (-0.83%)
:arrow_down:

src/Geometry/CSG/CSG.jl
83.76% <0.00%> (-0.83%)
:arrow_down:

src/Geometry/Primitives/AsphericSurface.jl
59.39% <0.00%> (-0.73%)
:arrow_down:

... and 52 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 57f4e23...558017a. Read the comment docs.


Fix attribute error when loading FusedAdamBuilder()

This PR is to avoid the below error when loading FusedAdamBuilder() extension.
    deepspeed.ops.op_builder.FusedAdamBuilder().load()
  File "/root/DeepSpeed/op_builder/builder.py", line 453, in load
    return self.jit_load(verbose)
  File "/root/DeepSpeed/op_builder/builder.py", line 492, in jit_load
    if not self.build_for_cpu and self.enable_bf16:
AttributeError: 'FusedAdamBuilder' object has no attribute 'enable_bf16'

cc: @jithunnair-amd

@rraminen thanks for the fix. It looks like this issue should occur for both CUDA and ROCm?

I have not tested it on CUDA, but it looks like it would occur on CUDA too.


Global search & replace can't match a whole line

VSCode Version: Code 1.8.1 (ee428b0eead68bf0fb99ab5fdc4439be227b6281, 2016-12-19T14:49:23.350Z)
OS Version: Windows_NT ia32 6.1.7601
Extensions:

Extension
Author
Version

read-only-indicator
alefragnani
0.4.0

alignment
annsk
0.3.0

Doxygen
bbenoist
1.0.0

python
donjayamanne
0.5.6

EditorConfig
EditorConfig
0.3.4

vscode-great-icons
emmanuelbeziat
1.1.38

matlab
Gimly81
0.4.0

status-bar-tasks
GuardRex
0.1.2

vscode-dimmer
hoovercj
2.1.0

docthis
joelday
0.3.9

cpptools
ms-vscode
0.9.3

vscode-clearcase
OpenNingia
1.4.1

vscode-icons
robertohuertasm
7.0.1

theme-cyanicpastels
SamuelLampa
0.0.9

indenticator
SirTori
0.2.1

vscode-hexdump
slevesque
1.1.4

code-spell-checker
streetsidesoftware
0.14.6

comment-snippets
Tobiah
0.2.0

dark-plus-material
vangware
0.1.4

change-case
wmaurer
1.0.0

highlight-trailing-white-spaces
ybaumes
0.0.2

Steps to Reproduce:
I what to search for the whole of a line and replace it with nothing, i.e. delete that line.

Searcher whole-line-text and leave replace entry blank.
Matches the line, but replace leaves a blank line.

Tried appending \n to search string. Doesn't match anything.
Tried turning on regular expressions and appending "$" and end of search string. This only matched again one file, where as without "$" it matched lots of files. Doing a replace on this file still left a blank line.
Putting ^ at the start of the line matched lots of files, but replace left a blank line.
How do I get the whole of line matched so I can remove it completely?
Thanks.

I've got a similar problem in single file search (Ctrl+F). I want to completely remove a string. So I leaving the replace box empty, and press either of the replace button (current one or all). Nothing happened. This is using the insiders build. I'll raise another issue.

Just checked the release build (1.8.1) and it works.

I've added another issue (#18711) for the single file search issue.

This needs Multi-line search support #13155

This would come with #13155


Where to download the latest dev build?

Okay, okay, this isn't a issue with Waterfall, but I think it should be reported here.
I couldn't find a working download for the latest dev build, the link in the project's README isn't working (https://aquifermc.org/job/Waterfall/ -> Route job/Waterfall/ could not be found.) and none of the links in AquiferMC works. (https://ci.getwaterfall.xyz/repository/download/Waterfall_Build/lastSuccessful/waterfall.jar -> Requested module (build configuration) does not exist: Waterfall_Build), (https://aquifermc.org/job/Waterfall/ -> same error as before), (https://github.com/WaterfallMC/Waterfall/releases -> not really broken, but there isn't any releases for Waterfall yet ;) )
Yes, I know how to compile Waterfall myself, but I thought I should report this issue.

Okay, I found one dev build after looking for a little bit: https://ci.destroystokyo.com/job/Waterfall/

I'll update the readme, using Z750's ci was supposed to be temporary.


bridge address overlap

The example in spec section 13.5.2 shows two addrmap inside of a bridge.  SystemRDL compiler automatically assigns sequential addresses to each instance such that they do not overlap.
ahb.ahb_credits = 0x0
ahb.ahb_stat = 0x20
axi.axi_credits = 0x80
axi.axi_stat = 0xC0

The description and comments in the example indicate that the registers have an overlapping address (0x0) and orthagonal addresses (0x20 and 0x40).  I had expected this as the result based on the description.
ahb.ahb_credits = 0x0
ahb.ahb_stat = 0x20
axi.axi_credits = 0x0
axi.axi_stat = 0x40

The mapping above also agrees with how UVM (uvm_reg_map) and IP-XACT (memoryMap) both allow addresses to be re-used when accessing a register from different masters.
Forcing the instances to 0x0 results in an address overlap error.
error: Instance 'axi' at offset +0x0:0x43 overlaps with 'ahb' at offset +0x0:0x23
    } axi @0x0;
      ^^^
fatal: Elaborate aborted due to previous errors

Confirming this is a bug.
I need to read more to better understand how the bridge and shared properties work, and what implications they have on the compiler.

My understanding is that bridge property tells the compiler to put the addrmap instances into unique address spaces  such that any addrmap instance (and it's children) cannot collide with another addrmap instance within the bridge.  This is equivalent to having more than 1 uvm_reg_map in UVM or more than one memoryMap in IP-XACT.
The shared property seems similar to the alias keyword because it tells the compiler that a register instance exists at more than one address location.  In the case of the shared property, each instance must be in a different addrmap.  When the register is written from HW, both address locations will be updated.  When one address is written from SW, the new value can be read from the other addrmap.  I don't think the compiler has to do anything special here (other than pass the property through) because the linking between addresses is done in the UVM or RTL implementation.

This is also my understanding. If you try to specify indirect addressing to an address map this map is seen as a different address space. Currently, I have specified the two maps independently and do an elaboration of each map, but I believe the correct way is to specify the indirectly accessible map as a bridge.

Implemented what I think should be a fix.
@j-klier - Could you test and let me know if the new behavior matches your expectations?
I have not published to a release, but you can install directly form Github via:
python3 -m pip install<EMAIL_ADDRESS>

Published in v1.19.0


gRPC service definition

Specifying the methods that can be called with their parameters and return types.

Method example :

[ ] Attach
[ ] SendData
[ ] Detach


Layer add, duplicate and delete button

Maybe we should hide these layer buttons when there is no functionality behind it yet.

Yes, very good idea.
@absurd-turtle is this maybe something you can do?

Commenting them out would be enough.

Yes, very good idea.
@absurd-turtle is this maybe something you can do?

Sure

Done! See https://github.com/ElektraInitiative/PermaplanT/pull/774

Great job, thx! Good that this was fixed for the user study. The participant was very picky :wink:


[BUG] Website is not responsive.

✨ Summary
Problem: The website is currently not responsive and looks terrible on small screen devices.
Solution: Add media queries of different screen sizes, and adjust styling accordingly.
📸 Screenshot

Hi, I will like to work on this project.

Hi, I will like to work on this project.

Sure, go ahead.

Hi, I will like to work on this project.

Sure, go ahead.

Done


Consider a bundleded signature set that would suggest replacing HashMap, HashSet, Collectors.toSet, Collectors.toMap with Linked alternatives for deterministic oder

HashSet, HashMap, Collectors.toSet(), and similar APIs do not keep the element order, and it might result in surprising and unexpected results.
What if error-prone could catch those types of errors and suggest replacing the calls via LinkedHash*?
See https://github.com/jlink/jqwik/pull/348
See https://github.com/google/error-prone/issues/3230

Technically this is easy to do. With forbiddenapis 3.3 it is also now easier to forbid all overloads of a method. You can also forbid the whole class, but this may lead to problems with API signatures expecting those classes.
I am not sure if this should be shipped with forbiddenapis. Maintaining the existing signatures is painful already. If one would publish the signatures on Maven Central as artifacts, one can easily use them in Maven, there's direct support to link to them. In Gradle it also works but not as intuitive.
A signature file could look like:
@defaultMessage Consider using LinkedHashSet
java.util.HashSet#<init>(**)
java.util.stream.Collectors#toSet()

I'd suggest to put something like this into your own build.

Unfortunately, it is not really easy to put JDK-related signatures to custom builds since forbidden-apis forbids "unknown signatures".

For instance, Java 10+ has Collectors#toUnmodifiableSet, so the signatures easily become version-dependent.
Then, there's a non-trivial step to figure out the needed Java.

Even though the signatures are small, I believe they are generally useful. For instance, in jqwik case, I did found a couple of bugs caused by hidden reliance on HashSet. In other words, the test outcomes looked nice and shiny, however, the outcomes were just wrong, and HashSet masked the results.

Here's how I put the signatures for now, however, I would say, it took me significantly more time than I wanted, mainly because the signature file does not support things like "if (java10+)".
https://github.com/jlink/jqwik/pull/348/commits/0c3f049e3e8eea00d8ae18ef7259a32627149b53 (it is the part of the PR348 which I mention in the first comment)


Clean up duty for dangling tombstones

This PR adds a new duty to clean up dangling tombstone segments. Dangling tombstones are tombstones that have eternity as their start or end - for example, [-Inf, 2000), [2010, Inf). This is a companion change to https://github.com/apache/druid/pull/15243.
The approach is as follows:

Determine the set of dangling tombstone segments from the set of used and non-overshadowed segments in the datasource snapshot. There can at most be two dangling tombstones per datasource
For every non-overshadowed dangling tombstone, mark it as unused if it doesn't overlap with any overshadowed segment

Release note

A new duty, MarkDanglingTombstonesAsUnused, is added to clean up dangling tombstones - segments that either have a start or end as infinity. A metric segment/danglingTombstone/count is emitted that counts the number of dropped dangling tombstones per datasource.

Key changed/added classes in this PR

MarkDanglingTombstonesAsUnused.java
MarkDanglingTombstonesAsUnusedTest.java

This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[x] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[x] been tested in a test Druid cluster.

Dangling tombstones are tombstones that have eternity as their start or end
Why is the eternity required to be one of the endpoints per the definition? Can't a tombstone be "useless", even without that restriction?

Why is the eternity required to be one of the endpoints per the definition? Can't a tombstone be "useless", even without that restriction?

@LakshSingla , I suppose the assumption is that tombstones that do not have infinity as an end-point would become useless only when they get overshadowed by newer segments. So they would be removed by the existingMarkOvershadowedSegmentsAsUnused anyway and probably don't need to qualify the new definition of "dangling".
But I agree that there are nuances here which need to be called out clearly.

@kfaraz
Consider that there's a segment 2023-11-01/2023-11-01 with data. MSQ runs a replace query which cleans up the data from this interval. Therefore, it'd be replaced with a tombstone of granularity 2023-11-01/2023-11-01. The next time MarkOvershadowedSegmentAsUnused runs, the segment containing the data will be marked unused. Once it gets dropped, there's no need for the tombstone to be in the system. Therefore, I think the corresponding tombstone should also be cleaned up.

Thanks for the reviews!

Why is the eternity required to be one of the endpoints per the definition? Can't a tombstone be "useless", even without that restriction?

Good question - I included a rationale in the javadocs. In short, after some discussions, we're treating tombstones as zero-row segments, so they exist but contain no data. These infinite-interval tombstones that don't honor the provided segment granularity (because we cannot generate infinite segments per time grain in the timeline) are inconvenient to append data to. These are the only two exceptions we are making in the coordinator duty for now.

@abhishekrb19 is the following scenario possible?

A dangling tombstone is created
The clean up duty begins running on a snapshot
Data is appended to the interval of the dangling tombstone with native batch / kafka append.
The clean up duty drops the dangling tombstone.
The appended data is not available because the core partition (dangling tombstone) has been dropped

@AmatyaAvadhanula, yes, I think what you're describing is possible if the datasource snapshot doesn't have information about the new appended segment from a concurrent task. Perhaps the duty could acquire locks and/or find the locked intervals from the overlord for datasources that contain dangling tombstone and skip marking as unused if there's a higher priority lock (similar to what was done for streaming + concurrent compaction)?

Thank you for the reviews!


Investigate custom JSON codec for UUIDS

          Nice workaround the other option is that we could extend the [custom json encoder/decoder](https://github.com/OpenFreeEnergy/gufe/blob/544262ca31f72ebd67b8ba6b411a57abdc405dff/gufe/tokenization.py#L29-L39) to accept this type if its important that we have a uuid?

Originally posted by @jthorton in https://github.com/choderalab/asapdiscovery/issues/883#issuecomment-1966455023

Raised upstream

https://github.com/OpenFreeEnergy/gufe/pull/294

Solution accepted upstream @jthorton

Great work so we just need to reverse the change once we get a new GUFE release!

This is ready to be reversed


[SPARK-12332][TRIVIAL][TEST] Fix minor typo in ResetSystemProperties

Fix a minor typo (unbalanced bracket) in ResetSystemProperties.

Test build #47712 has started for PR 10303 at commit 4ed8248.

Test build #47712 has finished for PR 10303 at commit 4ed8248.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/47712/
Test PASSed.

Heh, OK

NAVER - http://www.naver.com/
<EMAIL_ADDRESS>님께 보내신 메일 <Re: [spark] [SPARK-12332][TRIVIAL][TEST] Fix minor typo in ResetSystemProperties (#10303)> 이 다음과 같은 이유로 전송 실패했습니다.

받는 사람이 회원님의 메일을 수신차단 하였습니다.

Merged to master


NameError: name 'CriterionType' is not defined

when i run:
python examples/speech_recognition/infer.py /checkpoint/abaevski/data/speech/libri/10h/wav2vec/raw --task audio_pretraining
--nbest 1 --path /path/to/model --gen-subset $subset --results-path /path/to/save/results/for/sclite --w2l-decoder kenlm --lm-model /path/to/kenlm.bin --lm-weight 2 --word-score -1 --sil-weight 0 --criterion ctc --labels ltr --max-tokens 4000000 --post-process letter
/root/fairseq/examples/speech_recognition/w2l_decoder.py:42: UserWarning: flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python
"flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python"
Traceback (most recent call last):
File "examples/speech_recognition/infer.py", line 428, in
cli_main()
File "examples/speech_recognition/infer.py", line 424, in cli_main
main(args)
File "examples/speech_recognition/infer.py", line 284, in main
generator = build_generator(args)
File "examples/speech_recognition/infer.py", line 269, in build_generator
return W2lViterbiDecoder(args, task.target_dictionary)
File "/root/fairseq/examples/speech_recognition/w2l_decoder.py", line 105, in init
super().init(args, tgt_dict)
File "/root/fairseq/examples/speech_recognition/w2l_decoder.py", line 56, in init
File "examples/speech_recognition/infer.py", line 284, in main
self.criterion_type = CriterionType.CTC
NameError: name 'CriterionType' is not defined
Package                Version         Location
---------------------- --------------- --------------------------------
antlr4-python3-runtime 4.8
cffi                   1.14.4
Cython                 0.29.21
dataclasses            0.8
editdistance           0.5.3
fairseq                1.0.0a0+a9f5741 /root/fairseq
flashlight             0.0.1           /root/flashlight/bindings/python

Could you run in python just from flashlight.lib.text.decoder import CriterionType. Is it working for you?

Could you run in python just from flashlight.lib.text.decoder import CriterionType. Is it working for you?

Could you run in python just from flashlight.lib.text.decoder import CriterionType. Is it working for you?

File "/root/flashlight/bindings/python/flashlight/lib/text/decoder.py", line 9, in
from flashlight._lib_text_decoder import (
ImportError: libkenlm_util.so: cannot open shared object file: No such file or directory

Could you run in python just from flashlight.lib.text.decoder import CriterionType. Is it working for you?

File "/root/flashlight/bindings/python/flashlight/lib/text/decoder.py", line 9, in
from flashlight._lib_text_decoder import (
ImportError: libkenlm_util.so: cannot open shared object file: No such file or directory

I'm having a similar issue, despite flashlight python bindings being installed correctly.
(wav2vec) root@14e6ab22f629:/home/abner/flashlight/bindings/python# pip install -e .
Obtaining file:///home/abner/flashlight/bindings/python
Installing collected packages: flashlight
Running setup.py develop for flashlight
Successfully installed flashlight
INFO:main:| decoding with criterion ctc
INFO:main:| loading model(s) from ./pretrained/wav2vec_small.pt
INFO:fairseq.data.audio.raw_audio_dataset:loaded 1, skipped 0 samples
INFO:main:| ./english_test/text/ test 1 examples
/home/abner/fairseq/examples/speech_recognition/w2l_decoder.py:42: UserWarning: flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python
"flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python"
Traceback (most recent call last):
File "../speech_recognition/infer.py", line 428, in
cli_main()
File "../speech_recognition/infer.py", line 424, in cli_main
main(args)
File "../speech_recognition/infer.py", line 284, in main
generator = build_generator(args)
File "../speech_recognition/infer.py", line 269, in build_generator
return W2lViterbiDecoder(args, task.target_dictionary)
File "/home/abner/fairseq/examples/speech_recognition/w2l_decoder.py", line 105, in init
super().init(args, tgt_dict)
File "/home/abner/fairseq/examples/speech_recognition/w2l_decoder.py", line 56, in init
self.criterion_type = CriterionType.CTC
NameError: name 'CriterionType' is not defined

I'm having a similar issue, despite flashlight python bindings being installed correctly.
(wav2vec) root@14e6ab22f629:/home/abner/flashlight/bindings/python# pip install -e .
Obtaining file:///home/abner/flashlight/bindings/python
Installing collected packages: flashlight
Running setup.py develop for flashlight
Successfully installed flashlight
INFO:main:| decoding with criterion ctc
INFO:main:| loading model(s) from ./pretrained/wav2vec_small.pt
INFO:fairseq.data.audio.raw_audio_dataset:loaded 1, skipped 0 samples
INFO:main:| ./english_test/text/ test 1 examples
/home/abner/fairseq/examples/speech_recognition/w2l_decoder.py:42: UserWarning: flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python
"flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python"
Traceback (most recent call last):
File "../speech_recognition/infer.py", line 428, in
cli_main()
File "../speech_recognition/infer.py", line 424, in cli_main
main(args)
File "../speech_recognition/infer.py", line 284, in main
generator = build_generator(args)
File "../speech_recognition/infer.py", line 269, in build_generator
return W2lViterbiDecoder(args, task.target_dictionary)
File "/home/abner/fairseq/examples/speech_recognition/w2l_decoder.py", line 105, in init
super().init(args, tgt_dict)
File "/home/abner/fairseq/examples/speech_recognition/w2l_decoder.py", line 56, in init
self.criterion_type = CriterionType.CTC
NameError: name 'CriterionType' is not defined

The reason that the flashlight is not imported, you have problem with flashlight installation.

The reason that the flashlight is not imported, you have problem with flashlight installation.
Could you specify on which commit you are installing flashlight and where is your kenlm installation?

@tlikhomanenko thank you for the response, while I already had kenlm installed it seems to have also installed it at flashlight/bindings/python/build/temp.linux-x86_64-3.6/kenlm/src/kenlm. As for the commit version, I believe its the most recent since I installed yesterday. commit 81c4d8d5ea57e9ceaa6db3b17f0861491fd31383

@tlikhomanenko thank you for the response, while I already had kenlm installed it seems to have also installed it at flashlight/bindings/python/build/temp.linux-x86_64-3.6/kenlm/src/kenlm. As for the commit version, I believe its the most recent since I installed yesterday. commit 81c4d8d5ea57e9ceaa6db3b17f0861491fd31383

The reason that the flashlight is not imported, you have problem with flashlight installation.
Could you specify on which commit you are installing flashlight and where is your kenlm installation?

flashlight 81c4d8d
kenlm  /root/kenlm

The reason that the flashlight is not imported, you have problem with flashlight installation.
Could you specify on which commit you are installing flashlight and where is your kenlm installation?

flashlight 81c4d8d
kenlm  /root/kenlm

Some fixes on python bindings in the PR https://github.com/facebookresearch/flashlight/pull/404, but solution for now - do export KENLM_ROOT=/root/kenlm, remove build folder in the python binding, and reinstall again.

Some fixes on python bindings in the PR https://github.com/facebookresearch/flashlight/pull/404, but solution for now - do export KENLM_ROOT=/root/kenlm, remove build folder in the python binding, and reinstall again.

https://github.com/facebookresearch/flashlight/pull/404 is landed. @indifferen @abnerLing could you try with the latest flashlight master that bindings are working?

https://github.com/facebookresearch/flashlight/pull/404 is landed. @indifferen @abnerLing could you try with the latest flashlight master that bindings are working?

#404 is landed. @indifferen @abnerLing could you try with the latest flashlight master that bindings are working?

It works. Thanks.

#404 is landed. @indifferen @abnerLing could you try with the latest flashlight master that bindings are working?

It works. Thanks.

@tlikhomanenko everything works fine for me too.

@tlikhomanenko everything works fine for me too.

I am experiencing the same error even though I recently cloned the repository. Any idea what else could be wrong? Thanks~

I have installed the flashlight ssucessfully but I get error while running ASR projects
 UserWarning: flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python
  "flashlight python bindings are required to use this functionality. Please install from https://github.com/facebookresearch/flashlight/tree/master/bindings/python"
Traceback (most recent call last):
  File "run_downstream.py", line 203, in <module>
    main()
  File "run_downstream.py", line 198, in main
    runner = Runner(args, config)
  File "/home/ai-labs-sgoudarzvand/conda_envs/sgoudarzvand_base/lib/python3.7/site-packages/s3prl/downstream/runner.py", line 47, in __init__
    self.downstream = self._get_downstream()
  File "/home/ai-labs-sgoudarzvand/conda_envs/sgoudarzvand_base/lib/python3.7/site-packages/s3prl/downstream/runner.py", line 116, in _get_downstream
    **vars(self.args)
  File "/home/ai-labs-sgoudarzvand/conda_envs/sgoudarzvand_base/lib/python3.7/site-packages/s3prl/downstream/asr/expert.py", line 100, in __init__
    self.decoder = get_decoder(decoder_args, self.train_dataset.dictionary)
  File "/home/ai-labs-sgoudarzvand/conda_envs/sgoudarzvand_base/lib/python3.7/site-packages/s3prl/downstream/asr/expert.py", line 37, in get_decoder
    return W2lKenLMDecoder(decoder_args, dictionary)
  File "/home/ai-labs-sgoudarzvand/Desktop/ASR/fairseq/examples/speech_recognition/w2l_decoder.py", line 127, in __init__
    super().__init__(args, tgt_dict)
  File "/home/ai-labs-sgoudarzvand/Desktop/ASR/fairseq/examples/speech_recognition/w2l_decoder.py", line 56, in __init__
    self.criterion_type = CriterionType.CTC
NameError: name 'CriterionType' is not defined

Any idea how I can fix this @tlikhomanenko . I appreciate if you can comment on this.


Apiv2 Last Mile: Add modules to socket server/client

overview
The socket server and client introduced in #3650 and #3633 do not yet have support for modules, since that is a more complicated task introducing separate objects. This issue is for adding module support.
The client should provide module proxy objects that can work in place of the hardware control module objects sent to the protocol API. Calls and data should be serializable across jsonrpc. This may require adding server-originated notifications for callbacks to the protocol API.
┆Issue is synchronized with this Wrike Task by Unito

Ticket no longer applicable. Hardware control process / IPC will get new tickets when necessary


Is there a MAX Size on the cache?

Am I able to set it or reset the cache?
By the way, this library is very useful and it works like a charm.. thanks a lot for sharing this.

@goelv : there're 2 ways to do it. First way, you can create your own cache and then pass to setSharedImageCache. The other way, is you can cast the object returned by sharedImageCache() to NSCache, and then use the NSCache functions. This is kind of hacky way. I prefer the first way.

thanks @namanhams i will check this out.