(Left Over?) pyarrow does not compile

Describe the bug
I am not sure this is a bug but I was surprised that datafusion still had an optional py03 dependency: https://github.com/apache/arrow-datafusion/pull/1627
There are some python bindings in datafusion: https://github.com/apache/arrow-datafusion/blob/master/datafusion/src/pyarrow.rs#L28
The code came in via #873 from @kszucs
Given the datafusion python bindings live in https://github.com/datafusion-contrib/datafusion-python now, I am not sure what this code is used for. It also no longer compiles.
To Reproduce
cargo test -p datafusion --features=pyarrow

error[E0053]: method `from_pyarrow` has an incompatible type for trait
  --> datafusion/src/pyarrow.rs:35:28
   |
35 |     fn from_pyarrow(value: &PyAny) -> PyResult<Self> {
   |                            ^^^^^^
   |                            |
   |                            expected struct `pyo3::types::any::PyAny`, found struct `pyo3::PyAny`
   |                            help: change the parameter type to match the trait: `&pyo3::types::any::PyAny`
   |
   = note: expected fn pointer `fn(&pyo3::types::any::PyAny) -> std::result::Result<_, pyo3::err::PyErr>`
              found fn pointer `fn(&pyo3::PyAny) -> std::result::Result<_, pyo3::PyErr>`

error[E0053]: method `to_pyarrow` has an incompatible type for trait
  --> datafusion/src/pyarrow.rs:52:31
   |
52 |     fn to_pyarrow(&self, _py: Python) -> PyResult<PyObject> {
   |                               ^^^^^^
   |                               |
   |                               expected struct `pyo3::python::Python`, found struct `pyo3::Python`
   |                               help: change the parameter type to match the trait: `pyo3::python::Python<'_>`
   |
   = note: expected fn pointer `fn(&ScalarValue, pyo3::python::Python<'_>) -> std::result::Result<pyo3::instance::Py<pyo3::types::any::PyAny>, pyo3::err::PyErr>`
              found fn pointer `fn(&ScalarValue, pyo3::Python<'_>) -> std::result::Result<Py<pyo3::PyAny>, pyo3::PyErr>`

error[E0053]: method `to_pyarrow` has an incompatible type for trait
  --> datafusion/src/pyarrow.rs:52:31
   |
52 |     fn to_pyarrow(&self, _py: Python) -> PyResult<PyObject> {
   |                               ^^^^^^
   |                               |
   |                               expected struct `pyo3::python::Python`, found struct `pyo3::Python`
   |                               help: change the parameter type to match the trait: `pyo3::python::Python<'_>`
   |
   = note: expected fn pointer `fn(&scalar::ScalarValue, pyo3::python::Python<'_>) -> std::result::Result<pyo3::instance::Py<pyo3::types::any::PyAny>, pyo3::err::PyErr>`
              found fn pointer `fn(&scalar::ScalarValue, pyo3::Python<'_>) -> std::result::Result<Py<pyo3::PyAny>, pyo3::PyErr>`

error[E0277]: the trait bound `arrow::array::ArrayData: PyClass` is not satisfied
   --> datafusion/src/pyarrow.rs:46:27
    |
46  |         let array = array.extract::<ArrayData>()?;
    |                           ^^^^^^^ the trait `PyClass` is not implemented for `arrow::array::ArrayData`
    |
    = note: required because of the requirements on the impl of `pyo3::FromPyObject<'_>` for `arrow::array::ArrayData`
note: required by a bound in `pyo3::PyAny::extract`
   --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/pyo3-0.14.5/src/types/any.rs:614:12
    |
614 |         D: FromPyObject<'a>,
    |            ^^^^^^^^^^^^^^^^ required by this bound in `pyo3::PyAny::extract`

error[E0308]: mismatched types
  --> datafusion/src/pyarrow.rs:59:28
   |
59 |         Self::from_pyarrow(value)
   |                            ^^^^^ expected struct `pyo3::types::any::PyAny`, found struct `pyo3::PyAny`
   |
   = note: expected reference `&pyo3::types::any::PyAny`
              found reference `&'source pyo3::PyAny`
   = note: perhaps two different versions of crate `pyo3` are being used?

error[E0308]: mismatched types
  --> datafusion/src/pyarrow.rs:59:9
   |
58 |     fn extract(value: &'source PyAny) -> PyResult<Self> {
   |                                          -------------- expected `std::result::Result<ScalarValue, pyo3::PyErr>` because of return type
59 |         Self::from_pyarrow(value)
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `pyo3::PyErr`, found struct `pyo3::err::PyErr`
   |
   = note: expected enum `std::result::Result<_, pyo3::PyErr>`
              found enum `std::result::Result<_, pyo3::err::PyErr>`
   = note: perhaps two different versions of crate `pyo3` are being used?

error[E0308]: mismatched types
  --> datafusion/src/pyarrow.rs:65:25
   |
65 |         self.to_pyarrow(py).unwrap()
   |                         ^^ expected struct `pyo3::python::Python`, found struct `pyo3::Python`
   |
   = note: perhaps two different versions of crate `pyo3` are being used?

error[E0308]: mismatched types
  --> datafusion/src/pyarrow.rs:65:9
   |
64 |     fn into_py(self, py: Python) -> PyObject {
   |                                     -------- expected `Py<pyo3::PyAny>` because of return type
65 |         self.to_pyarrow(py).unwrap()
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Py`, found struct `pyo3::instance::Py`
   |
   = note: expected struct `Py<pyo3::PyAny>`
              found struct `pyo3::instance::Py<pyo3::types::any::PyAny>`
   = note: perhaps two different versions of crate `pyo3` are being used?

Some errors have detailed explanations: E0053, E0277, E0308.
For more information about an error, try `rustc --explain E0053`.
error: could not compile `datafusion` due to 7 previous errors
warning: build failed, waiting for other jobs to finish...
error[E0308]: mismatched types
  --> datafusion/src/pyarrow.rs:59:9
   |
58 |     fn extract(value: &'source PyAny) -> PyResult<Self> {
   |                                          -------------- expected `std::result::Result<scalar::ScalarValue, pyo3::PyErr>` because of return type
59 |         Self::from_pyarrow(value)
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `pyo3::PyErr`, found struct `pyo3::err::PyErr`
   |
   = note: expected enum `std::result::Result<_, pyo3::PyErr>`
              found enum `std::result::Result<_, pyo3::err::PyErr>`
   = note: perhaps two different versions of crate `pyo3` are being used?

error: build failed

Compilation exited abnormally with code 101 at Fri Jan 21 09:55:03

Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

@alamb it is actually required for the python bindings.
We cannot implement this in the python repository since both the trait and type would be foreign then. Sadly by moving the python bindings to another repository this module hasn't been tested anymore.

We can at least add a test for the module in CI to ensure it doesn't get broken. I'll do that

Filed https://github.com/apache/arrow-datafusion/issues/1635 to track adding a test to CI


hongbo/simplify op set in hashmap

tweak
simplify op_get in hashmap
clean up

cc @yj-qin
some questions:

does the wrapper of make_hash make sense?
for the index/next_index, the land is a bit confusing, should it be `mod

Pull Request Test Coverage Report for Build 1535
Details

13 of 15 (86.67%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.004%) to 89.467%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

hashmap/hashmap.mbt
12
14
85.71%

Totals

Change from base Build 1533:
0.004%

Covered Lines:
2701

Relevant Lines:
3019

💛  - Coveralls

If the hash function is good enough, the make_hash wrapping can be removed.
If  mod and land have the same performance, it could change to mod for better readability.


My New Startup Checklist

some of you may know I've recently started a new company. I'm not ready to talk about -that- yet, but I did want to capture some notes on logistical stuff I have had to ramp up on as a first time founder. hopefully this helps somebody out there.
the following presume that you are going for a typical US venture backed SaaS startup type situation.

this is obviously a live situation so i will anneal this post over time

Company Setup

Just use Stripe Atlas, which incorporates you as a Delaware C corp which is the default investable schelling point for all VCs

Atlas pushes you to bank with Mercury, which I ended up using. works fine so far no complaints

use my referral https://mercury.com/r/smol - $100 reward if you make an account and deposit!

Atlas files your 83b election for you, which is WONDERFUL MUAK MUAK I LOVE YOU STRIPE
try to go for the fast EIN option - i made a mistake in going for the slow EIN

you need your EIN before you buy your stock
you should buy your stock before investors buy your stock
Atlas guides you toward buying your stock with "IP" rather than Cash. this is what i did

note that some startup lawyers dislike the standard Atlas terms and will offer to help you with incorporation, for my purposes I wanted to go with Stripe so didnt explore this much
Clerky recently published a guide to C/S/B Corp incorporation vs LLC

Domain

I spent 20k on my domain. longer story for another time perhaps... not THAT interesting but a fun pub story
namesquatted on pypi and npm and github. could not get twitter. meh. (Update: got it thanks to @fanahova!)

Basic "office" expenses

gsuite

you will start getting mail and calendar invites almost immediately - MAKE SURE TO CHECK or UNIFY these or else you will miss stuff. i missed stuff. embarrassing.

notion
virtual mailbox - i use postscanmail. earthclassmail also good

Data Room

set up a Gdrive folders for all important company documents to be neatly filed, with the intention that this will be shared for future financing rounds (so don't put anything TOO confidential in there)

Before getting funding

get lawyer - all my founder friends basically say get a good lawyer representing you that will act in your interests

most lawyers will wave their first ~20k of expenses or do free SAFE review for you to audition for your business
no retainer needed if you seem like a legit founder

BUY YOUR STOCK FIRST

later

if getting angels - use an Angellist RUV for all smol angels - much easier to manage them

Vendors to start onboarding/exploring

Book-keeping - i am taking a shot on Puzzle.io rather than Pilot. it's very new. will report back.
Payroll - presumptive startup leaders here are Justworks and Rippling (Gusto for larger startups apparently). havent chosen yet. Update: ended up using Gusto. $300 referral: https://gusto.com/d/shawn8d488281
Credit Cards - Brex, Ramp, Mercury. I am trying out Mercury IO.
Accts Payable/Receivable: negative reviews on Bill.com. try Brex and Ramp or (when larger) Airbase
Cap table - cakeequity.com/pulley.com/captable.io/carta/angellist (have had negative experiences with angellist UX)
Business Insurance -  https://www.vouch.us/  ?
Project management - https://linear.app/ is free

after funding

mercury can sweep cash into a higher yielding Treasury account but have to apply for it for some reason

Non Time Sensitive

Claim perks

https://dashboard.stripe.com/atlas/perks
https://mercury.com/perks
https://github.com/enterprise/startups
startups.microsoft.com
(check if major infra you are building on has a startups program)
(check if your VC has negotiated some nice discounts)

Hiring

important to kick off and maintain a steady rhythm as will scale you!
Virtual assistant - Brandon of Flightcountry swears by https://withdouble.com/. There's also SquaredAway and  https://www.athenago.com/ . Tips on using VAs

Justworks is great for payroll too. Gusto is more for classic SMBs vs. startups imo

Congrats on the new thing, looking forward to hearing more about it!
I'd also put Pulley (https://pulley.com/) on your radar for cap table. Been happy with them. Pretty happy with Rippling as well, went with them after hearing some Gusto horror stories. We use Vouch, it's cheap enough at seed stage that I didn't think it was even worth the time to comparison shop.

Doola is a great alternative to Stripe Atlas that is not only cheaper to set up initially but also for annual filing. Moreover, Doola offers more state options for incorporation.

https://composed.abstractops.com/origin-the-checklist-for-incorporation-beyond-3


Suggestion WT theme

I've been used your theme for a long time and i would like to use the colors at my terminals, so i make a suggestion for windows terminal theme and colors schematic.
settings for color theme:
"schema": [
  {
      "name": "Min Theme Based",
      "background": "#1A1A1A",
      "foreground": "#CCC",
      "cursorColor": "#FFF",
      "selectionBackground": "#FFF",
      "black": "#0e0e0e",
      "brightBlack": "#767676",
      "blue": "#63abfd",
      "brightBlue": "#79b8ff",
      "green": "#63fd77",
      "brightGreen": "#88fc97",
      "purple": "#915ef0",
      "brightPurple": "#b392f0",
      "red": "#ff4d5c",
      "brightRed": "#FF7A84",
      "white": "#fafafa",
      "brightWhite": "#F2F2F2",
      "yellow": "#FF9800",
      "brightYellow": "#ffb74c",
      "cyan": "#71b1fa",
      "brightCyan": "#79b8ff"
  },
...
]

settings for themes:
    "themes":
    [
        {
            "name": "Min Theme Based",
            "tab":
            {
                "background": "#1A1A1AFF",
                "showCloseButton": "always",
                "unfocusedBackground": "#262626FF"
            },
            "tabRow":
            {
                "background": "#1A1A1AFF",
                "unfocusedBackground": "#1A1A1AFF"
            },
            "window":
            {
                "applicationTheme": "dark",
                "useMica": false
            }
        },
    ...
    ]

i'm sending here for you and other people who can like to use it.

I think the color of the eyelashes should be the reverse color, to better highlight the active tab


Docker login no response

First I try the output from aws-cli
Got need to use --password-stdin
I change -p to --password-stdin it still not work

former region type error
It works now


No notification from Kiota if user search for an API and does not have result

What are you generating using Kiota, clients or plugins?
Kiota plugin
In what context or format are you using Kiota?
Source Build
Client library/SDK language
None
Describe the bug
Trying to create a TTK project with Kiota, search for "apicenter" apis, and Kiota does not have any notification let me know that Kiota cannot find the spec.
Expected behavior
Should let user know that cannot find result.
How to reproduce
ttk: select create a new app -> Copilot Extension ->  Declarative Copilot -> Add Plugin ->  Start with an OpenAPI Description Document -> select "search" -> search for "apicenter"
Open API description file
No response
Kiota Version
1.18.100000002
Latest Kiota version known to work for scenario above?(Not required)
No response
Known Workarounds
No response
Configuration
No response
Debug output
Click to expand log
```

</details>

### Other information

_No response_

@thewahome How was it closed? Could you please add a screenshot?

@petrhollayms @KennethBWSong
I searched batmanbeyond and got this error after working on #5396


[py23] fix inconsistency of built-in round on Python 3.5 if second argument is None

This round thing is killing me..
There's a problem with the built-in round() function on Python 3.5.
If one passes None as a second argument, and the first argument is a float, everything is ok
>>> round(1.0, None)
1

But if the first argument is an integer and you pass None as second argument, it raises:
>>> round(1, None)
TypeError: 'NoneType' object cannot be interpreted as an integer

Now, this happens to be a known issue (https://bugs.python.org/issue27936) which has been fixed in Python 3.6.
Here, on Python3 below 3.6, I have to wrap the built-in round() so that when it gets None as second argument, it behaves as if one did not provide the second argument at all.
See also https://github.com/typesupply/fontMath/pull/37#issuecomment-264435328

Is it common to call round with None?

well, fontMath does.
And with our own pure-python round3 (used on Python 2 only) we do allow to pass ndigits=None, so it would be an inconsistency if on Python2 we allow round3 having a second None argument, whereas on Python3 we don't (or we do, but only if the first arg is a float..)


openai-triton crashes trying to use ldconfig -p

Describe the bug
In the current version of openai-triton, v2.1.0, which is used to build pytorch, there's a function that calls ldconfig -p; in NixOS that means trying to open a cache file like /nix/store/7jiqcrg061xi5clniy7z5pvkc4jiaqav-glibc-2.38-27/etc/ld.so.cache and crashing. I firstly encountered this behavior calling a different python library which uses openai-triton.
Steps To Reproduce
You can reproduce the behavior using this flake:
{
  description =
    "Trying to install torch and openai, as a first step to patching openai";

  inputs.nixpkgs.url = "nixpkgs/nixos-unstable";

  outputs = { self, nixpkgs }:
    let
      pkgs = (import nixpkgs {
        system = "x86_64-linux";
        config = {
          cudaSupport = true;
          allowUnfree = true;
        };
      });

    in {
      devShells.x86_64-linux.default = with pkgs;
        mkShell {
          buildInputs =
            [ (python3.withPackages (ps: with ps; [ torch openai-triton ])) ];
        };
    };
}

after which, you can have this interaction in the python repl:
$ python
Python 3.11.7 (main, Dec  4 2023, 18:10:11) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> import triton
>>> triton.common.libcuda_dirs()
ldconfig: Can't open cache file /nix/store/7jiqcrg061xi5clniy7z5pvkc4jiaqav-glibc-2.38-27/etc/ld.so.cache
: No such file or directory
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/nix/store/yxnn9wngdiyym6i3ch2gznv3069aj25k-python3-3.11.7-env/lib/python3.11/site-packages/triton/common/build.py", line 21, in libcuda_dirs
    libs = subprocess.check_output(["ldconfig", "-p"]).decode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/w4fvvhkzb0ssv0fw5j34pw09f0qw84w8-python3-3.11.7/lib/python3.11/subprocess.py", line 466, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/w4fvvhkzb0ssv0fw5j34pw09f0qw84w8-python3-3.11.7/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ldconfig', '-p']' returned non-zero exit status 1.

Expected behavior
The python process shouldn't crash. The openai-triton library should be able to get the right cuda libraries.
Additional context
I noticed that some commits were done that alleviate the issue in openai-triton, but they were made after the v2.1.0 release. They make so that when the environment variable TRITON_LIBCUDA_PATH is defined, the content of that variable is used. I created a flake that patches openai-triton with these two commits, and builds torch on top of the modified openai-triton.
{
  description = "Installing torch and openai, with a patched openai";

  inputs.nixpkgs.url = "nixpkgs/nixos-unstable";

  outputs = { self, nixpkgs }:
    let
      pkgs = (import nixpkgs {
        system = "x86_64-linux";
        config = {
          cudaSupport = true;
          allowUnfree = true;
        };
        overlays = [
          (final0: prev0: rec {
            python3 = prev0.python3.override {
              packageOverrides = final: prev: rec {
                openai-triton = prev.openai-triton.overrideAttrs (oldAttrs: {
                  patches = oldAttrs.patches ++ [
                    (prev0.fetchpatch {
                      url =
                        "https://github.com/openai/triton/commit/871ec2ad37c1e521b0b6b43555e99c7702638976.patch";
                      sha256 =
                        "sha256-557jk38vY0S1ozL2hN67LsvwccDsM1hcTEjtPU/vC/8=";
                    })
                    (prev0.fetchpatch {
                      url =
                        "https://github.com/openai/triton/commit/46452fae3bb072b9b8da4d1529a0af7c8f233de5.patch";
                      sha256 =
                        "sha256-if1lewXY+uzZ8D9//TSo4GZ9XFI9c2+UtcSEtVNzTrQ=";
                    })
                  ];
                });
              };
            };
          })
        ];
      });

    in {
      devShells.x86_64-linux.default = with pkgs;
        mkShell {
          buildInputs =
            [ (python3.withPackages (ps: with ps; [ torch openai-triton ])) ];
        };
    };
}

With this modification, I am able to use the library as intended, but I think a more permanent fix should be included in this and torch-bin, because compiling torch+openai-triton is incredibly time-consuming.
Notify maintainers
@NixOS/cuda-maintainers @SomeoneSerge @Madouura
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
$ nix run nixpkgs#nix-info -- -m
 - system: `"x86_64-linux"`
 - host os: `Linux 5.10.205, NixOS, 24.05 (Uakari), 24.05.20231227.cfc3698`
 - multi-user?: `no`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `not found`

Add a :+1: reaction to issues you find important.

we may be able to shortcut the whole thing by landing https://github.com/NixOS/nixpkgs/pull/285249 which presumably won't require this patching

Because the new version of torch doesn't have the dependency on openai-triton?

I'd still add a patch to test if addDriverRunpath.driverLink exists, in addition to checking the environment variable. Otherwise somebody needs to set the variable, which we can't conveniently do in a python module
As for the upstream, we could consider opening an issue suggesting that they use dlopen()+dlinfo() instead of ldconfig, and that maybe they eventually transition to rely on nvidia-container-toolkit/CDI (which we/nixpkgs probably should support as the default means of discovering the driver, assuming that nvidia eventually removes their ldconfig hacks too)


Resolve issue with SPA refresh error

Refreshing the browser when viewing a recipe results in a 404 invalid response.
This pull request causes the web server to return the main index.html file when a file isn't found, passing routing over to Svelte.

Hi @brendanmckenzie , thanks for your contribution!


The value of the data-path attribute shows undefined

no-markdown type views cannot get the value of data-path, such as the memos plugin：

memos

with the latest version 0.6.0

Thanks for the heads up

Can you explain why this is an issue for you? data-path is getting defined to deal with file renaming properly but a memos view will never get renamed as it has no direct file association. I can remove the attribute all together when the value is undefined but that's about it.

Well, I just want to define the style of different windows depending on the data-path. Of course it would be better if the data-title class property could be defined in the hover-popover class. so  I can define different hover styles for different title windows

What I'm planning on doing is raising the active view type up to the .hover.editor class as per #57. Do you think that would fit your needs?

Yes, it would be great if it worked.

This was added in https://github.com/nothingislost/obsidian-hover-editor/releases/tag/0.7.0

Thanks, it worked very well


Add compatibility for lerna >= 3.0.0

There were changes made to PackageUtilities that break lerna-script
https://github.com/lerna/lerna/blob/master/CHANGELOG.md#v300-alpha0-2018-02-14

resolved in v1.1.1


Switching to CodeQL & Dependabot

We're moving from Veracode to CodeQL and Dependabot. This switch brings better GitHub integration, at no extra cost, making our security setup more efficient.
What's Changing:

Better GitHub Fit: Direct integration with GitHub for security scans and dependency updates.
Free: Both tools are free, cutting costs.
Centralized Alerts: Findings now appear in the GitHub Security tab for easier management.

Quick Details:

CodeQL identifies vulnerabilities directly in the code.
Dependabot keeps our dependencies fresh and secure.

This update streamlines our security and dependency management, directly within GitHub.

You have dependabot and codeql already integrated :)

I also removed spotbugs workflow and config.
CodeQL covers static analysis for spotbugs / java.
Of course you can run both - it's your choice.

I removed your trivy workflow that scans the IaC.
KICS does a better job at IaC scanning.
You do not need to run both.

@scherersebastian bevor the QQ Criteria are not updated, we will not approve this. Please make sure, that the QG Criteria for 24.03 and 24.05 are updated.

Interesting, I will take care of this.
Thanks for your feedback @jzbmw

Hello @jzbmw , I have checked our QGs. With Dependabot and CodeQL all QGs can be successfully completed, it is the replacement for Veracode (SCA, SAST).


adapt optimizer tests to nuke-impl-classes

After this all JUnit tests pass except BTypesFromClassfileTest.compareClassBTypes. This test creates ClassBTypes for a given class in two ways: once by reading data from the symbol, the second time by parsing the classfile and the InlineInfo classfile attribute.
I haven't managed to find out yet why it fails. What differs is the list of implemented interfaces. For example, for scala/collection/AbstractTraversable

type read from symbol: List(Lscala/collection/Traversable;)
type read from the classfile: List(Lscala/collection/Traversable;, Lscala/collection/generic/GenericTraversableTemplate;, Lscala/collection/TraversableLike;, Lscala/collection/Parallelizable;, Lscala/collection/TraversableOnce;, Lscala/collection/GenTraversable;)

If I look in the bytecode I see yet another thing:
public abstract interface scala/collection/Traversable implements scala/collection/TraversableLike scala/collection/GenTraversable  {

I'm fine if you disable this test for M4.

I don't have more time to look into this right now, unfortunately.. Leaving for :ski: tomorrow.
There's quite a bit of code that can be removed in the backend (everything dealing with rewriteFinalTraitMethodInvocations, whose invocation has been commented out in this PR).
I think for M4 we can just leave it in, I'm happy to clean it up later.

@lrytz One big hack in this branch is that I've had to add redundantly add some transitively implemented interfaces to come classes in order to open up access for invokespecial. This is done at the last moment in the backend, and is't reflected in the generic signatures nor in the Symbol's info.

Ah, that explains it. I guess this should be cleaned up, i.e., implemented at an earlier stage?
Note that what I pasted as "If I look in the bytecode I see yet another thing" was the actual interfaces in the classfile, not the generic signature.

@retronym I pushed a fix here for https://github.com/scala/scala-dev/issues/86, so all of the inliner works with the new trait encoding.


chore(infrastructure): upgrade material deps

fixes https://github.com/material-components/material-components-web-react/issues/235

Codecov Report

Merging #249 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #249   +/-   ##
=======================================
  Coverage   98.86%   98.86%
=======================================
  Files          23       23
  Lines         969      969
  Branches       98       98
=======================================
  Hits          958      958
  Misses         11       11

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 28b7d6e...5302b6e. Read the comment docs.


[iMessage 2FA] ...

Extension
https://www.raycast.com/yuercl/imessage-2fa
Description
The extension doesn't work on MacOs Sonoma. No messages are displayed
Steps To Reproduce
just use the extension.
Current Behaviour
No response
Expected Behaviour
No response

Can you provide an example of a text message you received in iMessage you are expecting to see in the extension?


git-lfs is still mentioned in .gitattributes

@ellismg and @chrsmith: the docs repo still has git LFS in .gitattributes, which causes my Git clients to prompt to install LFS. Can we safely remove this?

We removed it from .gitattributes in https://github.com/pulumi/docs/commit/2c008f984d02a98827f300dcf8b7d66f1d893214


Move defer to avoid panic when err is not nil

Noob mistake I guess. I was seeing random Panics at the defer resp.Body.Close line and was put on the right track by this SO answer. Having the defer after the error check is also the officially documented way

👍  make sense


pretrained model has an error while extracting the tar

Hello, which model are you using and where did you get it, Baidu NetDisk or Google Cloud? I will verify it and reply to you.

thank you,sir.there is no error.it is just wrong for my operation

For future users, you don't need to run tar -xvf <file_name>.
Just do torch.load('<path_to_file>.pth.tar')


add node pool upgrade options

Signed-off-by: Nandor Kracser<EMAIL_ADDRESS>

Q
A

Bug fix?
no

New feature?
yes

API breaks?
no

Deprecations?
no

Related tickets
related #2945

License
Apache 2.0

What's in this PR?

Adding options to node pool update API, most of the options are for the enterprise worker.
Why?

Additional context

Checklist

[x] Implementation tested (with at least one cloud provider)
[x] Code meets the Developer Guide
[x] OpenAPI and Postman files updated (if needed)

Fixed!


Fix log message

Fix the case when request is refused because metadata has unsupported symbols

@stevapple Please take a look 🙏

Thanks for fixing this and helping with Swift Concurrency migration! @yehorchernenko
For using Task and async/await we'd better bump the minimum Swift requirement to 5.5 first. The implementation itself looks good and I'm going to merge once I can confirm it's compatible with both Linux and macOS. Hopefully a basic CI pipeline could be set up soon.

Hi @stevapple  :)
I'm implementing this package on my project and after some hours of debugging I found came with the same fix that Yehor is proposing (escaping the metadata)

It would be great if this could be merged ❤

Hi @dev-onepayclick! Thanks for your reply. I would be glad to apply the fix, but I think this PR is adding too many stuffs other than the fix now. Some of them (namely bumping Swift and platform version requirements) are unnecessary for the fix, and still needs careful design.
@yehorchernenko Would you mind splitting all unrelated changes into a separate PR, making this a simple, 1-line change?


Incremental Adoption Support

Same as #23 the use-case is incremental adoption. I have a large existing monolithic flask application, and would like to slowly introduce svelte via flask-inertia. The problem is flask-inertia completely takes over AJAX calls by requiring the X-Inertia header.
A couple of possible solutions:

Don't require the X-Inertia header for all AJAX calls in the application. Change the logic such that IF the header exists, proceed with the inertia protocol. Otherwise assume it's a normal AJAX request.
Add support registering the extension on a Blueprint, i.e. Inertia(blueprint) or inertia.init_app(blueprint). There is precedent for this (Flask-CORS for example). This way inertia would be scoped to that blueprint only, and would only intercept AJAX requests made to that blueprint.
(Currently it doesn't break when initializing the extension, Inertia(blueprint), but it blows up with a KeyError on current_app.extensions["inertia"], used for _shared_data)

I'd be happy to contribute a PR either way.

Hello Alex, Thank you for your report.
I'm not a big fan of the first solution. But the second one seems a good way to achieve incremental adoption.
Any contribution concerning this solution is very welcome, please see the dedicated contributing file for more information.


Add "Java Loops II" in JavaHackerrank Section

Add a perfect solution to the given challenge.
Refer:-https://www.hackerrank.com/domains/java

I'll work on this issue

@kunal299 PR with fix is open, Thanks in advance.

solved the issue!


reduce vendor size

Is your feature request related to a problem?/Why is this needed

Describe the solution you'd like in detail

could refer to https://github.com/kubernetes-sigs/azuredisk-csi-driver/pull/64
Describe alternatives you've considered

Additional context

Can I work on it?

sure.
/assign @tall49er


Implement scale() function and add unit test for scale()

[x] Code for scale() function implementation
[x] The function should be written defensively. That is, it should handle incorrect input and errors detected during execution via throwing exceptions with useful error messages, and there should be tests to confirm that the exceptions result in the expected behaviour of the function.

PR: https://github.com/UBC-MDS/eda_utils_py/pull/27


Restful API for running queries

Currently, queries are run in SQLPad with an HTTP POST, with the query results being returned in the response.
While nice and simple, it has some downsides:

long queries require long HTTP timeout configurations (not ideal, requires additional configuration to load balancers, proxy, etc)
An execution with multiple statements/queries would require all queries to finish before results are sent back. Results would have to be in single response (might be too big)

As an alternative, I'm going to be adding a new set of APIs to run queries, with support built in for query batches.
Initial thought is to have something like:

POST /batches to create a query batch. The server will parse out queries, and create 1 or more statements; Statements will begin executing sequentially, under same underlying db connection. The created batch, and its related statements, are returned from POST /batches.
GET /batches/<batchId>/statements gets list of statements and their status for the query batch
GET /statements/<statementId> gets status & info of statement
GET /statements/<statementId>/results gets query results for that statement

A downside to this approach is that it requires either polling or some sort of evented implementation to know when a statement is completed.
I'm leaning towards polling because it would still support a multi-instance sqlpad setup without requiring something more complicated on the backend. Otherwise implementing "server sent events" would be a nice means of communicating results and changes of status.
A related bonus to all this - this can be leveraged to start providing a robust query history for a particular user's query!
This solution requires the query results to be persisted, and to do so I'm leaning towards storing query result data in SQLite with the following method:

The query results will be changed to be an array of arrays, instead of an array of objects (faster to parse, smaller to store)
The query results are then JSON stringified, and compressed with deflate
The resulting compressed buffer is stored in SQLite blob, with an expiry date (configurable by end user)

This change would also involve storing the data once, and using it as the source for the JSON, CSV, and XLSX downloads.
All my past experience with relational databases is telling me not to store blobs in databases like this, yet I'm inclined to, for the following reasons:

The data is being compressed prior to storage to minimize space. Some initial prototyping showed 100 queries, each with 10 columns and 10,000 rows, resulted in a ~60 MB SQLite file. As results were deleted, and added back, SQLite reused the "empty" space in the file rather efficiently.
Benchmarking the SQLite access vs storing raw files in my own tests showed no advantage to either solution.
SQLite recommends itself as a replacement for the filesystem, and does its own benchmarking to support that https://www.sqlite.org/fasterthanfs.html
Leveraging SQLite (and Sequelize ORM) keeps things simple from an administration/setup perspective. A more robust solution might be utilizing something like an S3 compatible store, but for now I'd like to keep the architecture minimal. In the future, moving off SQLite/filesystem to something like Postgres or MySQL would only involve pointing the ORM to it accordingly, and minor updates to any hand-coded SQL.
Cleaning up old results will be easier to do using SQL, instead of individual files, which could become orphaned, requiring a separate job to iterate the files and match them up with an existing statement instance if it exists.

FYI @bruth @koszti @gonace this is something you might be interested in.
I'm hoping to have this implemented over next few weeks.
If there any thoughts or concerns from an architecture standpoint let me know. I'm 90% sure I'd like to put the query results in SQLite, but there's also a part of me that generally is concerned about blobs in relational databases. But maybe its because I've not seen them compressed or used for the wrong thing (like images displayed on a website)

Follow up to this. Despite my perf tests showing no difference, I read more about this and I'm going to store the results on the file system direct for this initial implementation.
SQLite blob performance is outlined at https://www.sqlite.org/intern-v-extern-blob.html and shows that after a certain size, it is advantageous to not put the blob in SQLite. Query results are like to be at least 100KB if not frequently in the 500K - 1M range.
I also read somewhere that my Windows tests may not be valid, as Windows Security could be applying additional checks to the written file, to make file writes just slightly slower, bringing them on par with SQLite. Advice was to test on OS/hardware SQLPad is deployed on, but that is variable.

This is in master/latest as batches and statements API. https://rickbergfalk.github.io/sqlpad/#/api-batches.


scrollUntilVisible with semanticsLabel

Is that scrollUntilVisible support for Flutter semanticsLabel ?
I didn't found it on this docs https://maestro.mobile.dev/api-reference/commands/scrolluntilvisible

Yes. It should.
Docs for Flutter can be found here. TL;DR: all commands that can query text will do first for semantic label.
Here is an example:
- scrollUntilVisible:
    element:
      text: "semantic-label-goes-here"
    direction: DOWN

Of course!
I'm trying to get our issues back into manageable shape and this includes making sure all (most) of them are actionable.


NSURLComponents.hash: Implement

NSURLComponents inherits hash from NSObject, but overrides isEqual(_:) to compare contents. The default hash uses object identity, so two NSURLComponent instances that compare equal under isEqual(_:) can produce non-equal hash values. This also breaks hashing for URLComponents, which calls into NSURLComponents.hash.
Add an implementation for NSURLComponents.hash that matches isEqual(_:).
Resolves https://bugs.swift.org/browse/SR-8450

@swift-ci please test

Closing; please see followup PR at https://github.com/apple/swift-corelibs-foundation/pull/1656


update for initial 2017 release

I'm so sorry -- I accidentally did this backwards.

That's alright - For this upcoming year, though, I would suggest using Maven which is more officially supported - for example, https://github.com/chopshop-166/frc-2017/blob/master/pom.xml


Phive Support

Thanks a lot for this project, it will help us a lot.
We are using PHPCsFixer with Phive, so we want also use this with Phive too.
Currently i don't know the requirements to make it available for PHIVE, but it seems that a PHAR file is needed, within the project.
Would this be possible to implement?

Hi @sfaujour,
It would be nice! Thank you for suggestion!
I'll try to find time for this in 3 nearest weeks. Or well you free to contribute it :smiley:

@Aeliot-Tm Thank you and no pressure. I'll try to have a look, but with no guarantee and not within the next 2 weeks.

Hi @sfaujour,
I implemented support of PHAR. See release v1.2.0

Hi @sfaujour,
Alias php-cs-fixer-baseline of this project was accepted and merged into database of phar.io.
https://github.com/phar-io/phar.io/pull/158
Just wait till it will be deployed.
Then you'll be able to call phive install php-cs-fixer-baseline.
See issue https://github.com/phar-io/phar.io/issues/157 for explanation.

You can tell phive to update the database file with phive update-repository-list - no need to wait ;)

@Aeliot-Tm Looks great and works as expected. Love it! ❤


Feature/split toggle

Thank you for your contribution to MagicScript Project.
Before submitting this PR, please make sure:

[x] Your code builds clean without any errors or warnings
[x] You are using approved terminology
[x] You have added unit tests
[ ] You have updated documentation

Closes #325

Codecov Report

Merging #342 (86daed6) into master (017ff65) will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #342      +/-   ##
==========================================
+ Coverage   98.72%   98.74%   +0.02%
==========================================
  Files          51       51
  Lines         313      319       +6
  Branches       25       25
==========================================
+ Hits          309      315       +6
  Misses          4        4

Impacted Files
Coverage Δ

src/components/toggle.js
100.00% <ø> (ø)

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 017ff65...86daed6. Read the comment docs.


Race condition when using ngMessages with $asyncValidators

The issue is that $asyncValidators will set the validity to undefined while it fulfills its promise, which will cause the error to briefly go away. At this point, ngMessage's render method will process the $errors (which will be {}), and will detach the messageCtrl. But before that is complete, the async validator finishes and sets the error back to true, and ngMessage's render method is run. Then $destroy handler is invoked and ngMessage will deregister the message node, causing the message to go away and never come back.
See the error in action:
https://gist.github.com/anonymous/1bd3f9b6cb17498e73c0

One of our Material users is experiencing a similar issue (https://github.com/angular/material/issues/4685) that I believe is related to this. Basically, typing very quickly in the input causes the errors to disappear.
If you edit the Plunkr in the above issue to use ngMessages 1.3.15 (or 1.3.19), the issue disappears and it reappears if you use 1.4.0.
You can also test this directly on the Material Site's input demo by scrolling down to the "Errors" demo and very quickly deleting/typing in the "Hourly Rate (USD)" field a few times: The $... an hour?  I doubt event Bill Clinton could afford that. message will appear and then disappear and never come back.
Please let me know if I can help debug or provide more info.
@petebacondarwin Thomas asked me to ping you about this.

@jamlee1 @topherfangio @petebacondarwin I'm experiencing this same behavior in an application of mine.  I've tried to create a spike to demonstrate the issue but have been unsuccessful.  I've got it narrowed down to some particular areas, and believe it is an issue with ngAnimate moreso than ngMessages.  In my app when I remove ngAnimate as a module for the application, this behavior goes away.
In my scenario I have an asyncValidator on a form input that hits the server to check for the existence of a particular number that is entered in.  This is the behavior I see:
Page loads up and the form field is valid since nothing is entered into it.  If I enter in a number that is invalid, the correct validation message appears via ngMessages.  If I delete the number and enter in another invalid one, the message disappears and reappears with no issues.  If I go from an invalid number to a valid one and back to an invalid one, everything is fine.  If an invalid number is currently entered in and the validation message is displayed and I add another digit to the number (also making it an invalid number) for a split second I see a duplicate validation message appear, and then they both disappear never to return again.
When debugging the last scenario mentioned above, I can see the following happen:
While waiting for the asyncValidator to return a response, detach is called on the ngMessages controller to remove the currently displayed error message.  Removal of the message gets routed through ngAnimate.  Before ngAnimate fully removes the message from the DOM, the asyncValidator returns and tells the ngMessages controller to attach the validation message to the DOM.  The message gets attached to the DOM (the old one still hasn't been removed, and 2 messages are displayed at once).  Finally, the '$destroy' event is called on the original validation message, and 'detach' is called on the ngMessages controller.  Since the duplicate validation message is really a clone of the original one, 'detach' removes both messages from the DOM, never to return again.
As I said, I haven't been able to replicate this outside of my app.  However, when stepping through the code of the spike I made using Chrome, I can sometimes get it to happen, only when stepping through though.  It appears to be a timing issue with how the animations are handled (even though I don't have any animations associated with these validation messages).

I'll take a look over the weekend or on Monday.

Link to the demo for those who didn't see it in the gist (like me)

@willisd2 said:

When debugging the last scenario mentioned above, I can see the following happen:
While waiting for the asyncValidator to return a response, detach is called on the ngMessages controller to remove the currently displayed error message. Removal of the message gets routed through ngAnimate. Before ngAnimate fully removes the message from the DOM, the asyncValidator returns and tells the ngMessages controller to attach the validation message to the DOM. The message gets attached to the DOM (the old one still hasn't been removed, and 2 messages are displayed at once). Finally, the '$destroy' event is called on the original validation message, and 'detach' is called on the ngMessages controller. Since the duplicate validation message is really a clone of the original one, 'detach' removes both messages from the DOM, never to return again.

This is spot on. The async validator tells ngMessages to remove the error message, while it is waiting for the validation to come back. ngMessages runs a leave animation, which triggers a $destroy event on the message element.

By the way, a quick workaround is to put an ng-if on your ng-messages to remove the messages element when it is valid: http://codepen.io/anon/pen/GpqWGp

So the current sequence of things when typing a second character is:
    detach        -- detach error message as we are temporarily valid (waiting for async timeout)
    attach         -- attach error message as the timeout has completed as invalid
    $destroy     -- ngAnimate removes the previously detached message DOM node
    detach        -- removal of the destroyed DOM node triggers a detach on the new error message, since we reused the `message` object
    $destroy     -- the detach of the error message triggers its associated DOM node to be removed, triggering another `$destroy`

What we want to happen is, either wait to attach a new message only after the previous message's node's animation has completed:
    detach        -- detach error message as we are temporarily valid (waiting for async timeout)
    $destroy     -- ngAnimate removes the detached message DOM node
    attach         -- attach error message as the timeout has completed as invalid

or to use a new message object when the previous message is still waiting to be destroyed, so that the new message is not affected by an async destruction of the node:
    detach        -- detach error message as we are temporarily valid (waiting for async timeout)
    attach         -- attach error message, using a new independent message object, as the timeout has completed as invalid
    $destroy     -- ngAnimate removes the detached message DOM node

or to cancel the leave animation if the message is re-attached before the animation has completed. I am not sure if this is possible yet in ngAnimate.

I think that this is the basis of a fix: https://github.com/angular/angular.js/commit/079d00234c4eee72567f4008ea451ae98c68dde9

I have a fix here: #12903

Don't mail me
On Sep 22, 2015 10:29 PM, "Pete Bacon Darwin"<EMAIL_ADDRESS>wrote:

Closed #12856 https://github.com/angular/angular.js/issues/12856 via
#12903 https://github.com/angular/angular.js/pull/12903.
—
Reply to this email directly or view it on GitHub
https://github.com/angular/angular.js/issues/12856#event-416081707.

--
DISCLAIMER
Any views or opinions presented in this email are solely those of the
author and do not necessarily represent those of the Ganpat University.
--
DISCLAIMER
Any views or opinions presented in this email are solely those of the
author and do not necessarily represent those of the Ganpat University.


Ground truth top view semantic map of the scene

I was wondering how I can get the Ground truth top view semantic map for a given scene (last plot in your demo gif)?

The ground truth semantic map is stored in this sem_map variable:
https://github.com/devendrachaplot/Object-Goal-Navigation/blob/master/envs/habitat/objectgoal_env.py#L112


Error while installing react native project on ubuntu 16.04

When I am trying to install react native project, on ubuntu 16.04, I getting error with npm. No idea why this is happning.
`naveen@naveen-HP-Pavilion-g6-Notebook-PC:/var/www$ sudo create-react-native-app AwesomeProject
Creating a new React Native app in /var/www/AwesomeProject.
Installing packages. This might take a couple minutes.
Installing react-native-scripts...
npm WARN deprecated<EMAIL_ADDRESS>Please switch to @expo/spawn-async, the new name of this package. It's the same code with our new name.
npm ERR! Linux 4.8.0-56-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--save-dev" "--save-exact" "react-native-scripts"
npm ERR! node v7.10.0
npm ERR! npm  v4.2.0
npm ERR! shasum check failed for /tmp/npm-3396-bb3fdd34/registry.npmjs.org/_40exponent/ngrok/-/ngrok-2.2.7.tgz
npm ERR! Expected: 37fe66f922b1003da2a78c66b7d4d3bc9313e423
npm ERR! Actual:   cd32c3d658b96974cc79b4ec248618cde6fb82ed
npm ERR! From<EMAIL_ADDRESS>npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     https://github.com/npm/npm/issues
npm ERR! Please include the following file with any support request:
npm ERR!     /home/naveen/.npm/_logs/2017-06-28T14_35_02_362Z-debug.log
npm install --save-dev --save-exact react-native-scripts failed
`

Me too getting the same issue on same OS

it works with
~/C/AwesomeProject ❯❯❯ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 17.04
Release:	17.04
Codename:	zesty
~/C/AwesomeProject ❯❯❯ node --version
v7.10.0

So do I have to install 17.04 to use react native?

@naveen84123 No, it isn't enough because then I'm stuck with another bug.. i don't get the QRCode, but also on MacOS.. I think create-react-native-app isn't stable yet and the old way with Android SDK is the way to go :(

getting the same issue on archlinux

With the current version of crna on Ubuntu 17.04 I'm able to see the qrcode.. so, sad to say, but now it works for me :)

I got the QRCode after a restart

seems to be resolved? if someone can provide a repro case that would be helpful. going to close but please reopen if you still have this issue on the latest version

I think this link will help you.
http://www.techomoro.com/how-to-install-and-setup-react-native-on-ubuntu-17-10/


ERROR > not supported between instances of NoneType1 and uind32`

When this error is fixed. The third day the app is not syncing

I think this project seems to be scam or idk... Nothing developed within this week. Horrible Fork

@SergeyKGoncharov We will check what is going on. The same thing happening on one of our machines.
@nflows check the github activity and let's talk then.

This is a duplicate of #38 so I am closing the issue.


[stable/openvpn] Use octal format and remove default exec permissions

Signed-off-by: Luke Addison<EMAIL_ADDRESS>What this PR does / why we need it:
Use octal format for default secret permissions for readability and remove default exec permissions (as they are not needed)
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/lgtm


Support Mistral Platform

Support the Mistral Platform, as documented here:

docs: https://docs.mistral.ai/platform/overview
login: https://console.mistral.ai/

Requirements:

[x] Add Mistral Vendor
[x] Add Mistral vector icon
[x] Implement Setup and (transport) Access
[x] Implement Model List mapping (tokens, name, description, etc) - upstream ref: https://github.com/mistralai/client-js/issues/2
[x] Implement Streaming endpoint
[x] Test
[x] Ship 🚀

And it works like a charm 🎅
https://github.com/enricoros/big-AGI/assets/32999/4ddd439c-1e06-4446-bc12-7dac8230828e


Update LICENSE file

Is your feature request related to a problem? Please describe.
We need to update our License file.
Describe the solution you'd like
Add the following contents to it:
MIT License
Copyright (c) 2020 André Varandas
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

closed with #8


Added example of registry json blob in README

Resolves #115

I don't think this actually works... did you try it, or just write it? I can't seem to get it to work...

I'm glad to be proven wrong, I just can't get this to work w/o a file...

As far as I can tell, -registry-config isn't being picked up.

As far as I can tell, --registry-config isn't being picked up.
Sorry, (edit), I get this:
{"level":"info","ts":1544824382.5823178,"msg":"Starting Makisu build (version=v0.1.6-3-g6fe4bf9)"}
...
{"level":"info","ts":1544824401.6363175,"msg":"Successfully built image XXX/XXX:1"}
{"level":"info","ts":1544824401.6367002,"msg":"* Started pushing image XXX/XXX:1"}
2018/12/14 21:53:21 Command failure: failed to push image: failed to push image: check manifest exists for image ${REGISTRY}/XXX/XXX:1: check manifest exists: HEAD https://${REGISTRY}/v2/XXX/XXX/manifests/1 401


Injected application may not be able to establish connections at startup

When an pod that has been injected with the Conduit proxy is started, the order that the containers start in is not guaranteed.  This means that the application container may start before the sidecar container and attempt to establish network connections.  Since the init-container has already configured iptables to redirect these connection to the proxy's ports, these connections will be refused if the proxy container has not been started.
Ideally, we would be able to specify that the sidecar container must be started first but it does not appear that Kubernetes supports any way to configure container start orderings.
A few potential workarounds to consider:

Somehow trigger the launch of the sidecar container from the init-container and then block until the proxy is listening.  Is this even possible?
Have the inject command modify the entrypoint of existing containers to add a wrapper script that polls the proxy and doesn't invoke the original entrypoint until the proxy is listening.
Document that applications must retry on failed connections.  This would be unfortunate since one of the goals of the service mesh is to get this logic OUT of applications.
Remove the init-container and have the proxy container do the iptables configuration AFTER it starts listening.  Unfortunately, this would mean that any connections established by the application before the proxy was ready would skip the proxy.

@adleong @briansmith could Container lifecycle hooks be a possible solution to implement workaround 1. The one concern is that that would mean we would have a strict dependency on k8s 1.9.

Would readiness probes help? https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

@adleong

Somehow trigger the launch of the sidecar container from the init-container and then block until the proxy is listening. Is this even possible?

I don't think it's possible.

Have the inject command modify the entrypoint of existing containers to add a wrapper script that polls the proxy and doesn't invoke the original entrypoint until the proxy is listening.

I don't think we can reliably modify the entrypoint, since it does not need to be specified in a pod spec.

Document that applications must retry on failed connections. This would be unfortunate since one of the goals of the service mesh is to get this logic OUT of applications.

All good applications should do this. We should document it as a thing you should do, but we should also have ways to solve this problem without modifying the application code.

Remove the init-container and have the proxy container do the iptables configuration AFTER it starts listening. Unfortunately, this would mean that any connections established by the application before the proxy was ready would skip the proxy.

This isn't an acceptable solution, as it would require that the proxy run in a privileged container. The proxy container can't require privileged execution.

Ultimately, i think we should do the following:

Document the types of failures applications should expect when working with the proxy, ideally with examples of how to instrument the appropriate resiliency.

Implement and host a binary that wraps a command with a proxy healthcheck. When the check succeeds, the script executes the original entrypoint.  This would require users to modify/extend their docker images to include this binary.

If users cannot modify docker images, suggest that a sleep 30 might do the trick and point them at open Kubernetes issues we think might help address this.

Document that applications must retry on failed connections. This would be unfortunate since one of the goals of the service mesh is to get this logic OUT of applications.

All good applications should do this. We should document it as a thing you should do, but we should also have ways to solve this problem without modifying the application code.

I agree that this would be excellent to document, at least until we have an automated solution. There are other things we need to document too, e.g. that you cannot rely on any particular endpoint receiving any sequence of requests, since we do load balancing, so we'll need such a document anyway.

Remove the init-container and have the proxy container do the iptables configuration AFTER it starts listening. Unfortunately, this would mean that any connections established by the application before the proxy was ready would skip the proxy.
This isn't an acceptable solution, as it would require that the proxy run in a privileged container. The proxy container can't require privileged execution.

Plus, it's not acceptable for any requests to be sent or received by the application directly without the the proxy's help, because the proxy may be responsible for securing those requests.

Ultimately, i think we should do the following:
Document the types of failures applications should expect when working with the proxy, ideally with examples of how to instrument the appropriate resiliency.

I agree with this.

Implement and host a binary that wraps a command with a proxy healthcheck. When the check succeeds, the script executes the original entrypoint. This would require users to modify/extend their docker images to include this binary.

I don't think we should put ourselves on the hook for supplying and maintaining this. If we want to spend effort trying to work better for applications that weren't written with retry logic, then we should work towards an automated solution (see below).

If users cannot modify docker images, suggest that a sleep 30 might do the trick and point them at open Kubernetes issues we think might help address this.

I think there's still opportunity for an automated solution. Note that daemonsets start before other pods on a node. Moving the proxying logic to a deamonset would solve this issue for everthing (except other daemonsets). Moving from the sidecar model to a deamonset model, or to a hybrid deamonset + sidecar model has other advantages (and disadvantages). I doubt we're going to switch to a deamonset-based implementation soon, but IMO it would be OK to defer work on an automated solution for this until at least we've fully vetted the possibility of using a deamonset to help.


2.x various fixes

use karyon3 for consolidated config loading across modules and extModules
switch kafka dep to kafka-clients and other dependency clean ups
update eureka2-kafka to use latest archaius for config loading
update gradle runners
change admin eureka2 view to read directly from registry

NetflixOSS » eureka » eureka-pull-requests #363 SUCCESS
This pull request looks good


feat: provide self-contained binary build

Local installation on any distro using a custom script similar to rustup
Takes less space in CI/CD

Yes, when we get a workflow setup with cargo smart-release (the release tool I've been using), I'll be able to start packaging binaries in the releases.

Actually, if you want you can run inside of the image I build. I package everything you need in registry.gitlab.com/wunker-bunker/blue-build:latest and registry.gitlab.com/wunker-bunker/blue-build:latest-alpine.

nix could also be used to redistribute this program to any distro, what do you all think?


When Will This Example Work

[Enter feedback here]
It seems that the issues regarding Azure SPA Auth Code have been resolved - when I use it I get a CORS error against my B2C Tenant.
Access to XMLHttpRequest at 'https://straxprotocol.b2clogin.com/straxprotocol.onmicrosoft.com/b2c_1_susi/v2.0/.well-known/openid-configuration' from origin 'http://localhost:6420' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
We do not want to use this technology without auth code - when will the example be updated to work.  This page says it is for auth then tells you not to use it.  I just need a timeline of when it will work ip possible.
Thanks

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

ID: cff30850-fbce-1c4d-8979-561e84b09c78
Version Independent ID: ad8742e7-a4c7-5b1a-1b68-dc7c14edc3ac
Content: JavaScript single-page app tutorial - auth code flow - Microsoft identity platform
Content Source: articles/active-directory/develop/tutorial-v2-javascript-auth-code.md
Service: active-directory
Sub-service: develop
GitHub Login: @hahamil
Microsoft Alias: hahamil

@tjmcclure0501 There is one issue requiring resolution prior to removing the notice. I've updated the wiki article that's linked to in the Note with information on both issues:
https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-browser-B2C-CORS-issue
Here is the text for your convenience:

There are two known issues with the Azure AD B2C endpoint and the functionality necessary to use the authorization code flow with the msal-browser package (MSAL.js 2.0).
These GitHub issue contain further details:

[OPEN] #1999: offline_access required to get a refresh token in B2C scenarios
[RESOLVED] #1795: B2C Token endpoint CORS

Fixes are currently being prioritized, please bear with us. Due to potential issues with deployment and other unforeseen occurrences that can impact resolution of the issues, ETAs will not be provided.
Please follow the above issues to keep informed about progress.
In the meantime, while we work on the fix and any temporary workarounds, please continue to use the implicit flow and Web platform type with B2C applications.

As mentioned, we cannot provide an ETA at this time, but be advised it is of high priority and is being addressed. Please follow the remaining open issue to remain informed as to the progress, and again, thank you for your patience.
#reassign:mmacy

@tjmcclure0501, I'm going to request this issue be closed as there are no documentation updates required at this time. #please-close
Please follow the open issue in the MSAL.js repository (https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/1999) to keep abreast of the situation, as that'll likely be the most up-to-date news source on the issue.
Cc: @tnorling @hamiltonha


Proposal: Onload Event for Image Component

Is your feature request related to a problem? Please describe.
The current approach fetching a lower resolution image while the actual sources are loaded works well. But if you want to customize the loading behavior, lets say by fading the image in as soon as it enters the viewport, it is not possible to get notified about the image source being loaded (nor IntersectionObservers isIntersecting property).
Describe the solution you'd like
Finding a way to expose the loading API from Image:
https://github.com/storyofams/storyblok-toolkit/blob/38359e73a97f5c94bd9215d6e668407e3a51413b/src/image/Image.tsx#L56
One way to achieve this could be to extend ImageProps interface by onLoad callback and call it together with useImageLoader.onload.
This would make it possible to interact with the image in a way like this:
export const CustomImage = ({src}) => {
  const [loaded, setLoaded] = useState(false)
  const handleLoad = useCallback(() => {
    setLoaded(true)
  }, [setLoaded])

  return <Image className={`image ${loaded && 'image--loaded'}`} src={src} onLoad={handleOnLoad} />
}

Let me know what you think! :)

Thanks for the suggestion! Seems like a good addition, so I've added it


only key needs to be passed for delete method

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:


Revert "Update request-quota-increase-for-openshift-project-set.md"

Reverts bcgov/platform-developer-docs#266

Mistake - please ignore


[SPARK-26960][ML] Wait for listener bus to clear in MLEventsSuite to reduce test flakiness

What changes were proposed in this pull request?
This patch aims to address flakiness I've observed in MLEventsSuite in these tests:

test("pipeline read/write events")
test("pipeline model read/write events")

The issue is in the "read/write events" tests, which work as follows:

write
wait until we see at least 1 write-related SparkListenerEvent
read
wait until we see at least 1 read-related SparkListenerEvent

The problem is that the last step does NOT allow any write-related SparkListenerEvents, but some of those events may be delayed enough that they are seen in this last step. We should ideally add logic before "read" to wait until the listener events are cleared/complete. Looking into other SparkListener tests, we need to use sc.listenerBus.waitUntilEmpty(TIMEOUT).
This patch adds the waitUntilEmpty() call.
How was this patch tested?
It's a test!

CC @HyukjinKwon  Thought you should see this.  Btw, the Listener you added is pretty cool!  Sorry for not being responsive on the PR ping; I've just had to focus on other things for a long time : /

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/testing-k8s-prb-make-spark-distribution-unified/8148/
Test PASSed.

Test build #102597 has started for PR 23863 at commit 12f7a75.

Test build #102597 has finished for PR 23863 at commit 12f7a75.

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/102597/
Test PASSed.

Merged to master.
@jkbradley, BTW, I have no objection with reverting this feature if you see any tricky issue by this later in the future - for this possibility, I marked this as unstable with a strong warning:
https://github.com/apache/spark/blob/dfb880951a8de55c587c1bf8b696df50eae6e68a/mllib/src/main/scala/org/apache/spark/ml/events.scala#L34-L35
so that it warns it might be reverted even after the release.
Sorry I merged this without your input. I was working on Apache Atlas <> Apache Spark ML integration so maybe I rushed.

No worries about your merging stuff; I simply have not been available.  Thanks for the quick review!


Install submodules.

I see the the builders and callback plugins are included in the wheel, but they aren't installed by "python3 setup.py install".  I think they need to be added to the packages list in setup.cfg, but I'm curious how the wheel was built, so that they were included.

honestly, it's been years since I used setup.py install, I usually install things with pip

honestly, it's been years since I used setup.py install, I usually install things with pip

I might be missing something... what I mean is, how did you build the wheel that pip installed?

probably with python3 setup.py sdist


adds md5 and sha256 for binaries on release

This adds md5 and sha256 sums for the built binaries when running a release.

/cc @sthulb @nathanleclaire

@ehazlett OS X doesn't have md5sum + sha256sum by default. Instead we have md5 + shasum.
SHA: shasum -a 256 <file> or openssl sha -sha256 <file>
MD5: openssl md5 <file>

@sthulb this now runs in a container -- PTAL

Cool.
Tested this locally - LGTM


Remove or sort unused code into new issues

There's a fairly substantial amount of logical code that's stored as comments in this repo. There seems to be a mixture of code that may get used later, and code that either is no longer going to be used or has been corrected but the predecessor was left as a comment instead of being removed. I'll compile a list to make tracking this easier.
In general it may be better practice to store unused code on a local branch if the intention is to use it at a later date, otherwise it may end up forgotten and create clutter as the code base grows. Another option would be to create an issue describing the problem and include the code as a possible solution so that others can understand what the intent of that code is.
Attacker:

[x] #98
[ ] attacker::auth
Cli:
[ ] cli::actions
[ ] cli::auth
[ ] cli::main
[ ] cli::main_old
Decider:
[ ] decider::lib
[ ] decider::rule_based
Mapper:
[ ] mapper::digest::ep
[ ] mapper::digest::hash
[ ] mapper::digest::utils
[ ] mapper::path::hash
[ ] mapper::path::mod
[ ] mapper::lib
Swagger:
[ ] swagger::scan::active::http_client::auth
[ ] swagger::scan::active::additional_checks
[ ] swagger::scan::active::logs
[ ] swagger::scan::active::mod
[ ] swagger::scan::passive::general
[ ] swagger::scan::passive::mod
[ ] swagger::scan::passive::utils
[ ] swagger::scan::checks
[ ] swagger::scan::mod
[ ] swagger::scan::print
[ ] swagger::tables::param_table
[ ] swagger::ep
[ ] swagger::lib
[ ] swagger::main
[ ] swagger::param
[ ] swagger::schema

We're planning to split everything up and leave only the necessary parts when we release Cherrybomb 0.7, I'll leave it open for now so we can be sure to do that.

Hello @eureka-cpu
We are working on the next release where we are removing unused code and comments.


[Bigtable] No support for label filters

I was writing code snippets for Cloud Bigtable's filters and noticed that the filters for labelling data were missing. Can we get support for this added? Thanks

Could you clarify which operations you're referring to? If you could link to the (Cloud site) docs for each of the relevant operations, that would be even better. It shouldn't be hard to add it to the relevant Options classes when I know what's required.

Here are the RowFilters: https://cloud.google.com/bigtable/docs/reference/data/rpc/google.bigtable.v2#rowfilter
It's the "apply_label_transformer"

Whoops, I'd been thinking about BigQuery rather than Bigtable.
It looks like we do have RowFilter.ApplyLabelTransformer.
You can just use new RowFilter { ApplyLabelTansformer = "..." }.

(We could add another method in RowFilters if necessary - although I'd rather not have to change manual code every time a new filter is added, really...)

Oh nevermind... I am using version 1.1.0 but we are on v2

Reopening because I am curious as to why we have version 2.0.0 Beta? It's a GA client, so is the beta marker for something else?
Thanks

No, it's a beta client library for a GA API. We're in the middle of a major version bump having made breaking changes in the underlying support libraries, so we've published beta libraries to get feedback before we go GA. See https://googleapis.github.io/google-cloud-dotnet/docs/guides/versioning.html for the versioning strategy.
I suggest you use the stable library version 1.5, which still has ApplyLabelTransformer.

(Closing as I believe everything is working as intended.)

I am on version 1.1.0 and I agree that it should have been working fine, but when I try to view the source of the RowFilter it isn't there and doesn't give me autocomplete for this

That's RowFilters, not RowFilter. The RowFilters class is just a static class with convenient factory methods for RowFilter, but you can create a RowFilter directly as per my earlier comments.

Ah sorry! Thanks again!!


Make sure dirs+symlinks are properly set up when applying patch in-place

As far as I can see, sourceContainer.Prepare() isn't called at all when applying patch in-place so we may need a Dir/Symlink pass in that case

Fixed in https://github.com/itchio/wharf/commit/a34f26fa148210d2d654ea0cdbb6266e22d2c17d


Fix KML export with multiple images

This is the smallest PR ever. Our zip library isn't thread safe. Files must be added sequentially or else all but the first file is corrupt of missing.
Try this and if you look in GE you need to zoom in before the icons show up. That is their behavior.
var viewer = new Cesium.Viewer('cesiumContainer', {
    shouldAnimate : true
});

function download(filename, data) {
    var blob = new Blob([data], { type: 'application/xml' });
    if (window.navigator.msSaveOrOpenBlob) {
        window.navigator.msSaveBlob(blob, filename);
    } else {
        var elem = window.document.createElement('a');
        elem.href = window.URL.createObjectURL(blob);
        elem.download = filename;
        document.body.appendChild(elem);
        elem.click();
        document.body.removeChild(elem);
    }
}

viewer.dataSources.add(Cesium.CzmlDataSource.load('../../../../Apps/SampleData/simple.czml'))
    .then(function(ds) {
      // Call the following after the datasource is loaded
      Cesium.exportKml({
          entities: ds.entities,
          kmz: true
      })
      .then(function(result) {
        download('satellites.kmz', result.kmz);
      });
    });

Thanks for the pull request @tfili!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

Sneaky! Can't believe we missed this. I did see that it was missing the satellite icons when I tested this, and in the GIF I posted. I guess I was too distracted by how cool it is to export time dynamic satellite tracks from Cesium like that.
Just tested this, works as expected.


asyncmy major backwards-incompatible change to TIME datatype in the 0.2.4 point release

hey there -
it looks like asyncmy 0.2.4 suddenly changed the return format for TIME datatypes from a datetime.timedelta() , which is for whatever reason universally returned from all MySQL drivers, to now return the fully formed time() object, which is nice, but this is extremely backwards incompatible and belongs in asyncmy 0.3 at the very earliest, and preferably not at all by default as no other MySQL driver does this.   See example below; all drivers return a timedelta().   It would be very helpful if this behavior by default could be reverted and perhaps made some kind of option.
test suite for asyncmy:

import asyncmy
import datetime

def time_from_mysql_delta(value):
    # convert from a timedelta value
    if value is not None:
        microseconds = value.microseconds
        seconds = value.seconds
        minutes = seconds // 60
        return datetime.time(
            minutes // 60,
            minutes % 60,
            seconds - minutes * 60,
            microsecond=microseconds,
        )
    else:
        return None

async def main():
    conn = await asyncmy.connect(user="scott", password="tiger", host="localhost", database="test")
    cursor = conn.cursor()

    await cursor.execute("""
create table if not exists time_test (data time)
""")

    data = datetime.time(12, 15, 23)
    await cursor.execute("delete from time_test")
    await cursor.execute("insert into time_test (data) values(%s)", (data, ))

    await cursor.execute("select data from time_test")
    row = await cursor.fetchone()
    assert time_from_mysql_delta(row[0]) == data

import asyncio
asyncio.run(main())

here's mysqlclient, pymysql, mariadbconnector, mysql connector; they all return a timedelta

import datetime

def time_from_mysql_delta(value):
    # convert from a timedelta value
    if value is not None:
        microseconds = value.microseconds
        seconds = value.seconds
        minutes = seconds // 60
        return datetime.time(
            minutes // 60,
            minutes % 60,
            seconds - minutes * 60,
            microsecond=microseconds,
        )
    else:
        return None

def go(driver):
    conn = driver.connect(user="scott", password="tiger", host="localhost", database="test")
    cursor = conn.cursor()

    cursor.execute("""
drop table if exists time_test
""")
    cursor.execute("""
create table time_test (data time)
""")

    data = datetime.time(12, 15, 23)
    cursor.execute("delete from time_test")
    cursor.execute("insert into time_test (data) values(%s)", (data, ))

    print(f"Running driver: {driver}")
    cursor.execute("select data from time_test")
    row = cursor.fetchone()
    print(f"row received: {row}")
    time_from_mysql_delta(row[0]) == data

    conn.close()

import MySQLdb as mysqlclient
import pymysql
import mariadb
from mysql import connector as mysql

for driver in [mysqlclient, mariadb, pymysql, mysql]:
    go(driver)

output:
Running driver: <module 'MySQLdb' from '/home/classic/.venv3/lib/python3.10/site-packages/MySQLdb/__init__.py'>
row received: (datetime.timedelta(seconds=44123),)
Running driver: <module 'mariadb' from '/home/classic/.venv3/lib/python3.10/site-packages/mariadb/__init__.py'>
row received: (datetime.timedelta(seconds=44123),)
Running driver: <module 'pymysql' from '/home/classic/.venv3/lib/python3.10/site-packages/pymysql/__init__.py'>
row received: (datetime.timedelta(seconds=44123),)
Running driver: <module 'mysql.connector' from '/home/classic/.venv3/lib/python3.10/site-packages/mysql/connector/__init__.py'>
row received: (datetime.timedelta(seconds=44123),)

thanks!

Why time type in db need return datetime.timedelta?

Why time type in db need return datetime.timedelta? I'm not sure what kind of consideration is that.

I'm not either.   Whether there is some technical reason all drivers return a timedelta, or if it's because they are all striving to keep 100% compatibility with the original "MySQLdb" driver, is not fully clear, though it seems very likely that they are all just trying to be fully compatible with MySQLdb.      It seems very strange though that even mysql-connector and mariadb-connector, which are two drivers that are trying to do things their own way and are definitely not fully MySQLdb compatible anyway, are still doing this.
However, none of that is the "bug" here.  The bug is, asyncmy has about 3000 downloads a week right now.    So of the 3000 downloads and at least many hundreds of users, we assume some are querying MySQL TIME datatypes.   Their driver returned a timedelta(), which is weird, but OK, lets write all the code to interpret those timedelta() objects, as you see above in my sample where we did this in SQLAlchemy.
in everyone's requirements files, they're going to have a requirement for asyncmy probably without a version, since we are in 0.x numbers here.   They might have asyncmy<0.3.   Who knows.  But the main thing is, when you bump the version number from x.y.z1 to x.y.z2, it is considered to be very poor form to change the API for something, such that code which calls upon that API will definitely break.     Any application that's out in the world which receives a timedelta from a TIME column, then they do a new install with pip install asyncmy, will now break.    For us, it broke our CI, but for others, it could break in production, it could break for everyone downloading their software product, it's a big deal.
The main thing I'm trying to get across is that all changes have to be vetted for if they will break existing code or not.  and if so, you should not release a minor point release with that change, and ideally you would provide a migration path for the change so that the old behavior is deprecated, or emits a warning, something like that.
in this case, to change the return type here is extremely difficult.   I can't think of a good way for this to be a non-breaking change, except for a parameter someone would send to connect(), which in turn , nobody would really know about or ever use it.  That's probably why none of the drivers have changed it.
so to sum up:  it's not about whether the new behavior is better or not.  this change is clearly better behavior.  however, it's backwards incompatible.
asyncmy is not that widely used yet and if you decide to keep it this way, I will go and change things on my end, as I will soon be hearing about this change anyway as a bug in my library.    it's not that big of a deal.   but as things get more popular, please be careful when making breaking changes, that's all!  thanks!

OK, thanks for your replay, maybe rollback it in 0.2.5 is better

I read the official docs in https://dev.mysql.com/doc/refman/8.0/en/time.html, now I know datetime.timedelta is right


Inconsistency when initializing HTTP Response and Error

Consider the following code segment,
http:Response clientResponse = {};
http:HttpConnectorError err = {};
println(err);
println(clientResponse);

Above gives following output.
{msg:"", cause:null, stackTrace:null, statusCode:0}
{}

Currently, there is a discussion going on "Enrich Request Response structs". We can address this issue with a proper conclusion.

This is as per the current design. As a new feature we are planning to improve this behaviour. Hence, closing the issue which is reported as a bug.


Error when installing apk

Hi,
I'im french, Sorry for my english...
I tried to install version 0.15.6 and version 0.15.5 on my smartphone.
I still have the same error message: The package seems corrupted
My smartphone is running Android 7.0
Thanks for your reponse
Best regards.

This is a debug APK. You may need to switch your phone to developer mode.
https://developer.android.com/studio/debug/dev-options

USB debugging must be enabled

OK thanks


3.10.3 breaks keyword argument matching in Ruby 3+

Subject of the issue
With rspec-mocks 3.10.3 we started seeing test failures in our CI: Previously passing run - fails now with rspec mocks 3.10.3 for ruby 3+. (Note, passes with rspec-mocks 3.10.2).
I believe the change in behavior is related to #1394.
Note: This issue is similar to #1457 but applies to a slightly different case
Your environment

Ruby version: 3.0.2
rspec-mocks version: 3.10.3

Steps to reproduce

class TestObject
  def initialize(object)
    @object = object
  end

  def foo(arg, options={})
    @object.foo(arg, options)
  end
end

describe 'rspec-mocks 3.10.3' do
  # This code passes in Ruby 2.7, but fails on Ruby 3.
  # Note: this test passes on Ruby 3 w/ rspec-mocks 3.10.2
  it 'breaks in ruby 3.0' do
    object = double('object')
    t = TestObject.new(object)

    expect(object).to receive(:foo).with('arg', opt: 'value')
    t.foo('arg', opt: 'value')
  end

  # This is the issue from: #1457
  # this code passes in ruby 3
  it 'breaks in ruby 2.7' do
    obj = Object.new
    expect(obj).to receive(:call).with(:foo, **{})
    obj.call(:foo, **{})
  end
end

The above tests can be fixed by either:

Changing the spec to: with('arg', {opt: 'value'})
Or changing the code to use the double splat:  @object.foo(arg, **options)

Expected behavior
Tests that pass in 3.10.2 should pass in 3.10.3.
Actual behavior
Some tests fail.

Thanks for reporting.
Do you want to give this patch a go to see if it resolves the problem?

The patch does not fix the issue, but it does at least provide better failure output, eg:
  expected: ("source", opt_name: "opt-value")
       got: ("source", {:opt_name=>"opt-value"})

What this issue is reporting is actually the correct behaviour. On Ruby 3:
expect(object).to receive(:foo).with('arg', opt: 'value')

This is setting an expectation of calling foo('arg', opt: 'value') with opt being a keyword argument. This is why passing in a proper hash is not matching, prior to 3.10.3 this was a bug and hashes would allowed to be silently be passed when keywords were required etc, and using your own snippet:
class TestObject
  def initialize(object)
    @object = object
  end

  def foo(arg, options={})
    @object.foo(arg, options)
  end
end

class RealObject
  def foo(arg, opt:)
  end
end

TestObject.new(RealObject.new).foo('arg', opt: 'a')
# wrong number of arguments (given 2, expected 1; required keyword: opt) (ArgumentError)

In the naive sense, e.g. without verifying doubles, there is simply no way to do any other behaviour, we must fail a spec for not matching keywords vs hashes, as the default behaviour on Ruby3 matches this,  so your example is unsolvable.
Now I expect prehaps in reality you are mocking a collaborator which has a defined behaviour, and indeed with instance doubles we could solve that scenario, where we have a real class we can see if the real object expects keywords or a hash, but we'd have to extend this existing behaviour in that scenario.

I agree this is generally correct Ruby 3 behavior - a proper hash is not the same as keyword args.  My issue is that a patch version change introduced behavior that makes matchers less permissive and breaks existing, working code.
In your RealObject example above, if the RealObject#foo takes a hash, rather than keyword args, then the code is valid and works as expected, eg:
class RealObject
  def foo(arg, options={})
  end
end

TestObject.new(RealObject.new).foo('arg', opt: 'a') # RealObject#foo will be called with option={opt: 'a'}

The TL;DR is we cannot make expect(double()).to receive(:foo).with('arg', opt: :a) work with both keywords and a hash correctly, so we must pick the Ruby 3 semantics as correct.

We're seeing a similar issue(?) after upgrading rspec-rails, which updated rspec-mocks as a dependency...
     Failure/Error: update_async(user.id, properties)

       ClassName received :method with unexpected arguments
         expected: (5, {:subscription_started_date=>1646810075})
              got: (5, {:subscription_started_date=>1646810075})

We have this issue during upgrade to ruby 3, the diff is misleading.
#<Double "check"> received :create with unexpected arguments
         expected: ("1111111-123123-123123", {:reports=>[{:name=>"identity"}, {:name=>"document"}], :tags=>["USA"], :type=>"express"})
              got: ("1111111-123123-123123", {:reports=>[{:name=>"identity"}, {:name=>"document"}], :tags=>["USA"], :type=>"express"})

Fixed by changing the code calling this method to double splat the hash being passed
@api.check.create(applicant_id, **create_check_params(country_code: country_code))

Do you mind sharing your spec and the subject under test?

On 25 Aug 2022, at 14:06, Rob Aldred @.***> wrote:

We have this issue during upgrade to ruby 3, the diff is misleading.
#<Double "check"> received :create with unexpected arguments
expected: ("1111111-123123-123123", {:reports=>[{:name=>"identity"}, {:name=>"document"}], :tags=>["USA"], :type=>"express"})
got: ("1111111-123123-123123", {:reports=>[{:name=>"identity"}, {:name=>"document"}], :tags=>["USA"], :type=>"express"})
Fixed by changing the code calling this method to double splat the hash being passed
@api.check.create(applicant_id, **create_check_params(country_code: country_code))
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.

3.12.0 provided the original diff handling for this and 3.12.1 has some fixes to improve edge cases, for your issue @jpriollaud we'd need some more reproduction


Using Queries from Autogenerated GraphQL Client leaks whole tina package into client bundle

Description
We would like to use the useTina hook together with the pregenerated queries from the experimental autogenerated GraphQL client. When doing so the First Load JS size increases significantly, as the whole tinacms package is included in the client bundles then, altough we are only importing one query.
The reason for this is IMHO that the autogenerated GraphQL client is exporting the queries with the gql() function, but we would just need the string of the queries. Copying over the strings of the queries in a separate file and just using this results in the expected decrease of the client side bundle size.
With query from autogenerated GraphQL Client imported:

With query (just the string) imported from a separate file:

One solution could be to export just the plain query strings without the gql() function in the autogenerated client.
Steps to reproduce
Just use the useTina hook with a autogenerated query from graphql client vs. just using the query string.
Expected result
No significant increase in client bundle size.
Actual result
Significant increase in client bundle size ( + ~770kb in our case)
Environment
Tinacms Package Versions

├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>

Tools

Tool
Version

browser

os

node

npm

@Perni1984 Currently the auto generated client is meant for only using on the backend and you can return your queries and variables in getStaticProps. You can see that happening in this example. This way next.js will automatically code-split out the generated client.

@logan-anderson I have a simple repo here https://github.com/llibdude/tinacmsplayground
When i build it I am noti

cing the same bloat in builds
The repo is very simple, and seems to be doing exactly what you are suggesting with using the auto generated client server side and passing the info via getStaticProps https://github.com/llibdude/tinacmsplayground/blob/main/pages/[...campaign].tsx
In fact, i even cloned the basic repo from tinacms and can also reproduce https://github.com/tinacms/tinacms/tree/main/examples/basic

Do we know if this is still an active issue @logan-anderson ?

To update this ticket, I have found that while the documentation says to use defineSchema from @tinacms/cli, for me to fix my build size issues I actually need to import it from tinacms https://tina.io/docs/schema/.

Looks like these docs have since been updated.

@jamespohalloran Still happening, https://cdn.discordapp.com/attachments/835172431836479508/998684693157400666/unknown.png

@jamespohalloran Still happening,

@melon-husk This bundle size is because you are using gql function from tinaCMS on the frontend. To get around this you can pass it as props in getStaticProps.
export const getStaticProps = async () =>{
   const query = gql`
   //... your query
  `

  // ... rest of data fetching

  return {
    props: {
       query,
       //..other props
    }
   }
}

and then in your component use the query passed from the props.
useTina({
  query: props.query
  // ... other tina props
})

If this does not fix your issue please let us know.

@logan-anderson Yes, that solves it, I went further and added custom query inside queries folder so the query would we available through through the experimentalClient.

Thank you !


Issue-1304: Create a NugetTestArtifact annotation.

Fixes #1304.
Tasks

[x] Create Pull Request for s-w-i-t.

Acceptance Test

[x] Building the code with mvn clean install -Dintegration.tests still works.
[x] Running mvn spring-boot:run in the strongbox-web-core still starts up the application correctly.
[x] Building the code and running the strongbox-distribution from a zip or tar.gz still works.
[x] The tests in the strongbox-web-integration-tests still run properly.

@ptirador : The tests still seem to be failing despite me merging the PR for the s-w-i-t. Would you mind taking another look? Thanks! :)

Everything works fine in my local environment...
@steve-todorov: could you see if this Jenkins build is pointing to strongbox/strongbox-web-integration-tests#51?

@carlspring you were running this PR against the strongbox/strongbox-web-integration-tests#master, instead of strongbox/strongbox-web-integration-tests#51, which is why this was failing.
After rerunning the build with the proper parameters it's all green. :)

Interesting! I thought I'd merged that to the master already?

Hi @ptirador ,
Could you please reabse your branch? Thanks!

Hi @ptirador ,
Could you please reabse your branch? Thanks!

@carlspring : Rebase done!

Thanks, Pablo! :)