Wrong argument for environment variables when updating

Version 2 of this action passes --env-vars as a parameter to az containerapp update, but according to the documentation the parameter should be --set-env-vars. This causes the following error: unrecognized arguments: --env-vars.

The content of my workflow file that caused the error is:
name: Dockerize and deploy SvelteKit project to Azure Container App

on:
  push:
    branches:
      - main
  workflow_dispatch:

permissions:
  id-token: write
  contents: read

jobs:
  build-push-and-deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses<EMAIL_ADDRESS>
      - name: Login to Azure
        uses<EMAIL_ADDRESS>        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

      - name: Build and deploy app to Azure Container Apps
        uses: azure/container-apps-deploy-action@v2
        with:
          appSourcePath: ${{ github.workspace }}
          acrName: ${{ secrets.ACR_NAME }}
          containerAppName: ${{ secrets.CA_NAME }}
          resourceGroup: ${{ secrets.CA_RG_NAME }}
          imageToBuild: ${{ secrets.ACR_URL }}/my-app:${{ github.SHA }}.${{ github.RUN_ATTEMPT }}
          targetPort: 3000
          environmentVariables: >
              "AUTHORITY=secretref:authority"
              "TENANT_ID=secretref:tenant-id"
              "CLIENT_ID=secretref:client-id"
              "CLIENT_SECRET=secretref:client-secret"
              "REDIRECT_URI=secretref:redirect-uri"
              "COSMOS_ENDPOINT=secretref:cosmos-endpoint"
              "COSMOS_DATABASE=secretref:cosmos-database"
              "COSMOS_CONTAINER=secretref:cosmos-container"

It works fine as long as the environmentVariables parameter is not set. The only difference between the content of this file and my current file is that I use Azure CLI Action to set the enviroment variables in a previous step, as a workaround.

Thanks @ohmios ! @cormacpayne, could you please confirm the discrepancy on our side?

@daniv-msft it looks like our intention is to use the --replace-env-vars argument when calling az containerapp update and --env-vars for other commands (such as create and up), but somehow we're getting into a flow where --env-vars is being used with update.
@snehapar9 would you mind taking a quick look since you recently worked on refactoring which command is being called for different flows?

Thank you for opening this @ohmios! Do you mind sharing what your workflow file looks like? Would be helpful to determine why we're entering this flow based on the arguments provided to the action.

@snehapar9  I have updated the issue with the content of my workflow file. Let me know if you need more information.

Thank you @ohmios! We are working on this. Will let you know if we need more information.

@ohmios The fix for this issue has just been merged. The latest v2 should now include this fix. Please don't hesitate to let us know if there's any further issue!

Hey I'm noticing an issue regarding the environmentVariables flag
This is the error it throws when running github action
ERROR: unrecognized arguments: --replace-env-vars LOG_LEVEL=info DB_URL=secretref:*** DB_NAME=secretref:***
Error: The process '/usr/bin/az' failed with exit code 2 Error: The process '/usr/bin/az' failed with exit code 2
This is the stage:

any help with that?

Looks like this is still a problem.
I have a workflow that is failing because container app create is being called with --replace-env-vars instead of --env-vars.


Instructions for testing don't work

I'm following the instructions in README.md to install islatu and run the tests. I start off with a clean conda environment, with no other packages installed:
python setup.py build
python setup.py install
pytest

The first issue is that pytest isn't installed in a clean environment, the instructions don't say to install pytest.
If I install pytest I get the following error:
ImportError while loading conftest '/Users/anz/Downloads/islatu/tests/conftest.py'.
tests/conftest.py:17: in <module>
    from islatu.io import I07Nexus, i07_nxs_parser, i07_dat_to_dict_dataframe
../../miniconda3/envs/dev3/lib/python3.9/site-packages/islatu/io.py:16: in <module>
    import nexusformat.nexus.tree as nx
E   ModuleNotFoundError: No module named 'nexusformat'

Then I get:
ImportError while importing test module '/Users/anz/Downloads/islatu/tests/unit/test_data.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../../miniconda3/envs/islatu/lib/python3.9/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/test_data.py:6: in <module>
    from pytest_lazyfixture import lazy_fixture as lazy
E   ModuleNotFoundError: No module named 'pytest_lazyfixture'

There's also a whole load more packages that seem to be needed to run the tests. Most of them seem to be in the requirements.txt file, so perhaps the instructions should be amended to say:
install via:
python -m pip install . -r requirements.txt

test via:
pytest

or something like that.

I have followed the installation instructions in the documentation, using pip install islatu` and I get the same missing packages error.

My apologies for the outdated README; I have a bad habit of neglecting these things in favour of development. I had indeed been installing with pip install . -r requirements.txt; I've explicitly included this in the README now. The pip downloadable islatu now also ships with the tools required for testing, so if the repo has been cloned then a simple pip install islatu followed by pytest should also run the tests. I'll mark this as closed since I've tested it on a couple of computers, but do let me know if you encounter any further issues.


Include a pre-trained model example?

Hi folks!
Over at @observablehq we've been having fun using TensorFlow.js to run lightweight ML models in-browser, like in this recent example.
I'd love to tinker with the same idea with a map-trained model, and wonder if the project might include a TensorFlow SavedModel or Keras pre-trained model as a starting point, or as part of the detailed walk-throughs. Would this be in-scope of the project, as a way to play around with the model's activations without needing to setup & train it from scratch?

Hi @tmcw!
Huge fan of @observablehq. I'd say the pre-trained models are "scope-adjacent" in that we definitely want to host examples somewhere but maybe not in this repo specifically. We've also run a few TensorFlow.js experiments locally and we should be able to open up some code around that soon

👍 Thanks Drew (sorry for disappearing!). I assume the folks at ꙩ will update if they need anything more.


[MIST-1130] Implement recovery-based scaling-in

This PR resolves #1130 via

Implement recovery-based automatic scaling-in.

LGTM. I'm merging it


got-unwrapped: init at 0.100; got: wrap got-unwrapped with ssh

Description of changes
Created as an alternative to #297154 to prevent superfluous rebuilds.
TBH I'm not a big fan of this approach, a rebuild takes a few seconds, and this increases maintenance burden, but this does address the comments on the previous PR.
Fixes #322043.
Closes #297154.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Thanks for this, @eclairevoyant, very much appreciated. Currently I'm a bit confused by the naming—not that there is anything wrong with it per se, could just be my current understanding of nixpkgs best practices.
The help clear this up, @eclairevoyant, could you provide more context or explanation around the motivation to call the "original"/"unmodified" package that offers no "customization" of ssh in got got-unwrapped and the one that does got?
Is it just because the "new" got is a wrapper around the "old" one?

It's how every other wrapped package I've seen is named.

The more I go over this, the more I'm beginning to understand, and starting to really liking the change, @eclairevoyant, very well done!
Prior to review just a minor question more out of interest than anything else:
What is the motivation / pro / con for patching the source over using substituteInPlace in package.nix to replace execv(GOT_DIAL_PATH_SSH with execvp(GOT_DIAL_PATH_SSH in lib/dial.c?

I don't have a strong opinion either way; I can switch it to substituteInPlace if that's easier to maintain.

I think that substituteInPlace provides more flexibility if upstream changes the code around the execv calls; a patch is likely to fail just because some surrounding code changes, e.g. added or deleted lines in the source file that do not directly affect the execv call…

Didn't notice those earlier. I find that it's weird that they hardcode the editor at build-time instead of using an envvar with a default of vi or something.

Yeah nvm I think this is just the completely wrong approach

Thanks for the work on this, @eclairevoyant, too bad this doesn't seem to head in the right direction for you.
What would be a better approach? Is this something that is better raised and addressed upstream?

If they're just shelling out, this is something best handled at runtime via some envvar, not via buildtime #define. And yes upstream would be best to address this IMO

ℹ It seems the changes introducing GOT_DEFAULT_EDITOR were motivated by someone thinking of NixOS (see https://marc.gameoftrees.org/mail/1710762601.52948_0.html)

There's really no reason that they should require users to recompile the program, just to use another editor. It's a bad design.

got does indeed check and use the VISUAL and EDITOR envvars (see cvg/cvg.c:275f), only its default editor is hardcoded, which I believe make sense to change for nixpkgs if people so desire.
How about continuing the conversation over on #322600, @eclairevoyant?


planning: Cortex Model Compatibility API

Goal

Cortex can generate a model compatibility prediction, based on user's hardware and model.yaml
This should be an API that Jan can call (potentially as part of GET /models and GET /model/<model_id>)
Likely linked to #1165
Model compatibility should "compute" based on Active Hardware

Related Issues

[ ] Update spec with architecture: https://github.com/janhq/cortex.cpp/discussions/1130
[x] https://github.com/janhq/cortex.cpp/issues/1143
[x] https://github.com/janhq/cortex.cpp/issues/1142
[ ] https://github.com/janhq/cortex.cpp/issues/1140
janhq/jan#1089

Original Post
Specs
https://www.notion.so/jan-ai/Hardware-Detection-and-Recommendations-b04bc3109c2846d58572415125e0a9a5?pvs=4
Key user stories

Migrate Hardware Settings from Advanced Settings to its own settings page.
Missing Hardware Dependencies → Ask users to download dependencies to turn on GPU acceleration.
...

Design
https://www.figma.com/design/DYfpMhf8qiSReKvYooBgDV/Jan-App-(3rd-version)?node-id=5115-60038&t=OgzCw09qXKxZj3DC-4

This is also being discussed in #1089 - let's link both issues.

Shifting to Sprint 21 to allow team to focus on Model Folder execution in Sprint 20

To calculate the total number of memory buffer require for a model, firstly let break it into many parts:

Model weight (related to ngl setting)
KV cache reservation (related to ctx_len processing)
Buffer for preprocessing prompt (require extra GPU Vram when GPU mode is enable)

Model weight
A model weight has 3 part:

Token embeddings: shape (n_vocab, embedding length): This part is always allocated in CPU RAM and will be calculated by n_vocab * embedding_length * 2 * quant_bit/16 bytes, The quant_bit related to quantization level of the models (e.g Q4_K_M -> quant_bit for token embedding will be Q4_K = 4.5 bit).

repeated transformer layers: This part can be used to update the ngl setting and make the model fit with GPU Vram

Output layer: This part is treated as 1 layer in ngl settings, for example, if total ngl of model is 33 and we set ngl=32 -> the output layer will be loaded to CPU RAM and the rest repeated transformer layers will be loaded to GPU. The Output Layer will be calculated by n_vocab * embedding length * 2 * quant_bit/16. The quant_bit for output layer usually greater than the quantization level of model and we can't estimate exact quantization level for every model for this (e.g model quantization Q4_KM -> output layer Q6_K)

Summary, the equation for Model weight:

RAM = token_embeddings_size + ((total_ngl-ngl) >=1 ? Output_layer_size +  (total_ngl - ngl - 1 ) / (total_ngl-1) * (total_file_size - token_embeddings_size - Output_layer_size) : 0  )  (bytes)

VRAM = total_file_size - RAM (bytes)

KV cache
The kv cache is calculated by follow:
kv_cache_size = ctx_len/8192 * hidden_dim/4096 * quant bit/16 * 1 (GB)

quant_bit for kv_cache has 3 mode (f16 = 16bits, q8_0 = 8 bits, q4_0 = 4.5 bits)
Buffer for preprocessing prompt

API documentation
GET /v1/models

Response
{
"data" : [
  {
    "model": "model_1",
    ...
    "recommendation": {
      "cpu_mode": {
        "ram": number,
        "variant": "avx2"
      },
      "gpu_mode": {
        "ram": number,
        "vram": number,
        "ngl": number,
        "context_length": number,
        "variant": "cuda-12.0"
      }
    }
  }
]
}

CLI Documentation:
Get model list information
cortex model list --cpu_mode --gpu_mode

If no flag is specified, display only model id

[x] Update model with


Support SOCK_SEQPACKET

Hey
Does mio support bind with SOCK_SEQPACKET?  I found that UnixLitener bind with SOCK_STREAM and UnixDatagram bind with SOCK_DGRAM, but how to bind with SOCK_SEQPACKET

I'm afraid Mio doesn't currently supports it. You can use the socket2 crate and then convert into a Mio type.

Closing this as Mio isn't going to support this at this time.

@Thomasdezeeuw Do you have any reason why?

@Thomasdezeeuw Do you have any reason why?

Mio only supports the same API as std lib. Supporting all kinds of sockets in Mio would mean the scope of the crate would be way too big.

@Thomasdezeeuw Do you have any reason why?

Mio only supports the same API as std lib. Supporting all kinds of sockets in Mio would mean the scope of the crate would be way too big.

Got it! Thank you very much for the prompt response

Even still, given the usefulness of seqpacket I'm inclined to think that we should add this to Mio and Tokio.

Even still, given the usefulness of seqpacket I'm inclined to think that we should add this to Mio and Tokio.

It can be added to Tokio fairly easily I think, using mio::AsyncFd and socket2::Socket2.
However for Mio we're sticking with matching the std lib API. It's one of those cases where if we allow one thing, you're opening up the floodgates for many more.


Feature request: types

It would be incredibly useful if you could highlight something in the editor and run a command that pops up what type the Elm compiler has inferred for it. Is this even conceptually possible?  (Just how in VSCode for typescript you can hold Cmd over a variable or constant and have its type popup).
(Also asked at https://github.com/rundis/elm-light/issues/14)

Are you looking to do this for full expressions or just single identifiers? Once the hover provider is working (from your PR) that should cover a lot of cases. For full expressions maybe automating it through the REPL would be possible.

The main use case is when there is some kind of type mismatch in a function, but its usually the function signature which get marked as being incorrect.  In this case it would be cool to be able to hover over bits of the function (probably mostly in the let block) and see what the Elm compiler has inferred them to be.
Here is a ridiculous example, but one that makes the point:
printer : String
printer =
 let
   x = 100
 in
 x

The error in this case will be for printer : String and will say:
The type annotation for `printer` does not match its definition.

1| printer : String
The type annotation is saying:

    String

But I am inferring that the definition has this type:

    number

At this point it would be great to be able to hover over x and see:
x : number or similar
Obviously in this case its obvious what's going on, but when functions become more complicated with lots of values or nesting it can be very hard to figure out exactly where the mismatch is (since Elm invariable just highlights the function signature)

Ok thanks for the detailed explanation! It'll be tricky but I think we can eventually do it by passing some custom Elm code to the compiler and looking at the type-annotation hints returned.

@stkb this would be a very nice feature.
Especially since the type information is erased at run time, so there is no type/typeof operator. The only way a solution like this can work is to pass Elm code to the compiler as you point out.
This feature is very handy, and really takes advantage of the type inferencer. (Although purists would argue that you should always work out the types before hand!). In a language that has a type inferencer, I think it is essential to see what the complier infers.
Another related feature is that you could use the same functionality to generate type annotations and insert them automatically in your code. (perhaps with a keyboard-shortcut).


Too slow for Echo

I am using ha-bridge to control my Yamaha Receiver via Echo voice commands. It works great, but Echo answers with „The device is not responding....“ if I use several commands in a row. It still works, but the response is annoying :-/

Yep, the echo likes to have immediate responses. If the system that is being called from ha-bridge does not respond in the time the echo has, this will happen.

Is there any possibility to send a response to Echo proactively? I guess it would make the response pointless, but it would circumvent the annoying response by Echo.

The fire and forget method has been talked about before here. It would be a little overhaul on the communication side to implement the threading and a queue.

Okay, thanks. You have my vote for the change ;-)
PS: If placed in a group (within Alexa) with a device that responds in time, Echo replies with OK.


compiling tensorflow/cc/example/example.cc with error "You must define TF_LIB_GTL_ALIGNED_CHAR_ARRAY for your compiler." in Windows 10 Visualstudio 2015

Hi I am newbie of tensorflow.
I wanna use tensorflow through C/C++ api on visual studio 2015.
I have built tensorflow (library?) described in below link with Cmake.
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/cmake/README.md
after Cmake,
I tried to build  "tensorflow/cc/example/example.cc"
but occured error
C1189	#error:  "You must define TF_LIB_GTL_ALIGNED_CHAR_ARRAY for your compiler."	tensortest	d:\temp\tensorflow\tensorflow\core\lib\gtl\manual_constructor.h	97

then  failed to build example.
What is that mean and how to define TF_LIB_GTL_ALIGNED_CHAR_ARRAY in Visualstudio 2015?
thank you in advance.
/GS /GL /analyze- /W3 /Gy /Zc:wchar_t /I"D:\temp\tensorflow\tensorflow\contrib\cmake\build\protobuf\src\protobuf\src" /I"D:\temp\tensorflow" /I"D:\temp\tensorflow\tensorflow\contrib\cmake\build\eigen\src\eigen" /I"D:\temp\tensorflow\tensorflow\contrib\cmake\build" /Zi /Gm- /O2 /sdl /Fd"Release\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MD /Fa"Release" /EHsc /nologo /Fo"Release" /Fp"Release\tensortest.pch"

This may be more of a question for Stack Overflow, but I have run into that error when I omit #define COMPILER_MSVC in the header file.  You may also need to #define NOMINMAX as well, or you'll run into a bunch of errors about parentheses.
I wrote a blog post describing some of the issues I had building on Windows here: https://joe-antognini.github.io/machine-learning/windows-tf-project

This question is better asked on  StackOverflow since it is not a  bug or feature request. There is also a larger community that reads questions there. Thanks!


PECL Extensions which dont work for first time upgrade installation

Hi,
pecl upgrade gnupg dont works on a fresh and clean debian 7 machine. but pecl install gnupg does the job. please fix the pecl provider. :)
https://github.com/mayflower/puppet-php/blob/master/lib/puppet/provider/package/pecl.rb
greetings snooops

@snooops Do you have an error message for us? This would help us to understand and reproduce your exact problem.

Ok forget it, i just missed a package - blame me


Add M1 Mac Support

Hi, I'm trying to run autogluon on M1 macbook air, but it doesn't seems work, does autogluon support M1 mac?
See also #2271 for M2 issues

Probably not, unfortunately AutoGluon has a variety of dependencies and therefore each fo the dependencies will have to support M1 before AutoGluon does. We haven't tried testing on M1 but hopefully we can look towards supporting it closer to end of year or sometime next year.
If anyone with an M1 mac has insights into what needs to be done for AG to work on it, please feel free to add information here.

Recently, I worked on M1 Mac mini to test AutoGluon on diverse environments.
If you use conda miniforge, most dependencies are supported.
but some libraries like catboost are not supported yet.

@sackoh Thanks for the information! It is great to hear that AutoGluon is mostly functional on M1 Mac. So long as the core packages are supported, it is ok if individual models are not yet available as that will hopefully be resolved by the model authors in future releases.

I'm using Anaconda, which Autogluon doesn't work.

I was able to get some functionally building from source (I grabbed build autogluon-0.3.2b20210908).  The main issues I've come across currently are those reported in #245.  Basically, both GBM & XGB models stall even when implementing the solutions in #245.  I could be doing something wrong, but for clarity here's been what I've tried:

Setting auto_stack=True  along w/ hyperparameter_tune=False within the hyperparams dict, i.e:

hyperparameters = {
    'GBM': [
        {'extra_trees': True, 'ag_args': {'name_suffix': 'XT'}},
        {'hyperparameter_tune': False},
        'GBMLarge',
    ],
    'XGB': {'hyperparameter_tune': False}}

Reverting to different versions of autogluon
Set excluded_model_types='GBM'

I swept the GBM issue under the rug by doing (3), but then I hit the wall again when the ensemble gets to XGBoost_BAG_L1
I've only successfully run so far w/ excluded_model_types='[GBM', 'XGB']

I tried so many different things and finally figured out it might be the M1 chip - Autogluon should put a note for this.

@harrywang Good callout, I've created #1424 to track adding documentation on the status of M1 support to the installation page.

Probably not, unfortunately AutoGluon has a variety of dependencies and therefore each of the dependencies will have to support M1 before AutoGluon does. We haven't tried testing on M1 but hopefully we can look towards supporting it closer to end of year or sometime next year.
If anyone with an M1 mac has insights into what needs to be done for AG to work on it, please feel free to add information here.

For PyPi, these are the versions in which these autogluon dependencies supplies M1-compatible wheels:

Python 3.8+
Numpy 1.21.1+
Scipy 1.7.3+
Ray 1.8+

Autogluon is fine with these requirements for Python and Numpy, but not for scipy, autogluon requiring <1.7, and ray, autogluon requiring <1.8.
If one relaxes the scipy requirement to allow for scipy 1.7 and ray 1.8, autogluon goes further in the installation process and it is possible to see what are the next set of blockers. Findings:

catboost is not available at all (ERROR: Could not find a version that satisfies the requirement catboost<1.1,>=1.0 (from autogluon-tabular[all]) (from versions: none))
xgboost, lightgbm, fastai and tokenizers don't have M1 wheels (tokenizers issue) and fails to compile out of the box

...resulting in autgluon installed, albeit without any of the optional tabular dependencies and without autogluon-text.
If one can find a way to successfully build or install these set of dependencies, we would see what the next set of blocking/missing dependencies are, but first things first: Can autogluon support scipy 1.7.3+ as a first step towards M1 support?

@motin Thanks for this! We have updated scipy and ray to allow for valid versions in #1503. You should be able to try installing pre-release again and see if you are able to get further.

looks like there are still issues with scipy and numpy, when i'm trying to install --pre on m1 mac
    error: Command "clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /Users/muli/miniforge3/include -arch arm64 -fPIC -O2 -isystem /Users/muli/miniforge3/include -arch arm64 -DNPY_INTERNAL_BUILD=1 -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -DNO_ATLAS_INFO=3 -DHAVE_CBLAS -Ibuild/src.macosx-11.0-arm64-3.9/numpy/core/src/umath -Ibuild/src.macosx-11.0-arm64-3.9/numpy/core/src/npymath -Ibuild/src.macosx-11.0-arm64-3.9/numpy/core/src/common -Inumpy/core/include -Ibuild/src.macosx-11.0-arm64-3.9/numpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/Users/muli/miniforge3/include/python3.9 -Ibuild/src.macosx-11.0-arm64-3.9/numpy/core/src/common -Ibuild/src.macosx-11.0-arm64-3.9/numpy/core/src/npymath -c numpy/core/src/multiarray/array_assign_scalar.c -o build/temp.macosx-11.0-arm64-3.9/numpy/core/src/multiarray/array_assign_scalar.o -MMD -MF build/temp.macosx-11.0-arm64-3.9/numpy/core/src/multiarray/array_assign_scalar.o.d -faltivec -I/System/Library/Frameworks/vecLib.framework/Headers" failed with exit status 1
    ----------------------------------------
    ERROR: Failed building wheel for numpy
  Failed to build numpy
  ERROR: Could not build wheels for numpy which use PEP 517 and cannot be installed directly
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/26/68/84dbe18583e79e56e4cee8d00232a8dd7d4ae33bc3acf3be1c347991848f/scipy-1.6.1.tar.gz#sha256=c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11 (from https://pypi.org/simple/scipy/) (requires-python:>=3.7). Command errored out with exit status 1: /Users/muli/miniforge3/bin/python3.9 /private/var/folders/3x/bwrgc6yn3zjc4sc995ts77dm0000gn/T/pip-standalone-pip-ua5eb9rg/__env_pip__.zip/pip install --ignore-installed --no-user --prefix /private/var/folders/3x/bwrgc6yn3zjc4sc995ts77dm0000gn/T/pip-build-env-dqwec5fr/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --pre -- wheel 'setuptools<=51.0.0' 'Cython>=0.29.18' 'pybind11>=2.4.3' 'numpy==1.19.2; python_version=='"'"'3.6'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.19.2; python_version=='"'"'3.7'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.16.5; python_version=='"'"'3.6'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.16.5; python_version=='"'"'3.7'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.19.0; python_version=='"'"'3.6'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy==1.20.0; python_version=='"'"'3.7'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version>='"'"'3.10'"'"'' 'numpy; python_version>='"'"'3.8'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' Check the logs for full command output.
^[[6~^[[6~^[[6~  Downloading scipy-1.6.0.tar.gz (27.3 MB)
     |████████████████████████████████| 27.3 MB 8.3 MB/s

Just commenting that if you are comfortable with the pre-release tag build of catboost you can follow along on this ticket, then just install the pre version of autogluon without the restrictions now on m1s. https://github.com/catboost/catboost/issues/1526

@chrisking Thanks for the info! Have you successfully ran AutoGluon on m1 with this new CatBoost pre-release? If so, could you perhaps provide a brief write-up on the steps needed, such as pip install lines?

@Innixma great idea, I created this guide this morning, it covers the entire process from creating a Python environment to actually training a model using the official tutorial. https://github.com/chrisking/AutoGluonTabularOnM1Guide

@chrisking This is awesome!! I notified my team and I'll see if we can get anyone with an M1 Mac to try out your tutorial. Do you have any insight into when this will be available in a stable CatBoost release? Is this planned for next CatBoost release (1.0.5)?

https://github.com/catboost/catboost/releases/tag/v1.0.5 New release is out and working so it should be good to go now.

Confirm successfully installed autogluon v0.4 on M1 mac by
conda create --name py39 python=3.9
conda activate py39
pip install autogluon

Though in the first trial I got an error when building wheel for tokenizers that "error: can't find Rust compiler pip". It can be fixed by
brew install rust

FYI Torch has support for M1 in latest nightly builds (https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/) – I wonder if anyone has tried this with autogluon? Currently blocked from trying it myself by https://github.com/awslabs/autogluon/issues/875.

 Open fresh shell
conda update -y -n base -c conda-forge conda

Packages installation
conda create -n py39 -y python=3.9
conda activate py39
python -m venv venv-ag-39
source venv-ag-39/bin/activate
pip install -U pip
pip install -U setuptools wheel
conda install -y numpy scipy scikit-learn
conda install -y Cython
conda install -y vowpalwabbit
conda install -y lightgbm
conda install -y xgboost

!!! Open fresh shell
conda activate py39
source venv-ag-39/bin/activate
pip install Cython xgboost

export CC=/opt/homebrew/opt/llvm/bin/clang
export CXX=/opt/homebrew/opt/llvm/bin/clang++
export LDFLAGS="-L/opt/homebrew/opt/libomp/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libomp/include"

./full_install.sh

@gradientsky Thanks for providing the detailed steps. I was able to following the steps and successfully installed autogluon on my M1 Mac. The only issue was the step to install Cython and xgboost, which threw an grpcio error. After running the following two lines, the installation went smoothly.
export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1

@gradientsky Thanks for the great work, but it seems not function on m2 Macbook air(MacBook Air（M2，2022, MacOS 12.6 Monterrey）

@notingbad I would suggest creating a separate thread for M2

Hi! @gradientsky I used your message to install Autogluon (message link) but since then I am unable to install LightGBM on its own on my other virtual environments. Do you have any idea of what could've gone wrong?

I really appreciate these instructions, but could do with a bit of help. I have tried to follow these instructions, and get as far as the "./full_install.sh" step but I don't see a script called that. Where does it come from? Maybe I missed a step?

@drdavew it's in the top-level of this git repo: https://github.com/autogluon/autogluon/blob/master/full_install.sh

Thanks very much!

Hi,
thank you for the detailed instructions on how to install autogluon. It also works for me on M1 Mac:
(autogluon) (venv-ag-39) backeb@Bjorns-MacBook-Pro-2:autogluon>ipython
Python 3.9.15 | packaged by conda-forge | (main, Nov 22 2022, 08:48:25)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.7.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import autogluon

In [2]:

Does anyone know how to get it to work in a Jupyter Notebook?
In Visual Studio Code in a Jupyter Notebook, after I've followed the installation steps I can see the kernel:

Selecting that kernel and running a cell with the command gives me a ModuleNotFoundError: No module named 'autogluon'
I get the same error when I launch the jupyter-notebook from the (autogluon) (venv-ag-39) environment.

Interestingly when I open a terminal in jupyter and then launch ipython and then do import autogluon it works again...

Any ideas?

@backeb do you happen to have autogluon folder in jupyter environment? If you do, then it can shadow the packages installed in the system.

Last updated: 2023/01/13
Python 3.10 - AutoGluon 0.6.2 on M1 mac, MacOS 12.6 Monterrey
PyTorch version: 1.12.1
OS: macOS 12.6 (arm64)
GCC version: Could not collect
Clang version: 14.0.0 (clang-14<IP_ADDRESS>)
CMake version: version 3.24.2
Libc version: N/A
Python version: 3.10.8 | packaged by conda-forge (64-bit runtime)
Python platform: macOS-12.6.2-arm64-arm-64bit

Install xcode
xcode-select --install

System installs
brew install cmake libomp rust
brew install llvm

Install mamba forge
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-$(uname -m).sh"
bash Mambaforge-MacOSX-arm64.sh

!!! Open fresh shell
conda update -y -n base -c conda-forge conda

Packages installation
conda create -n py310 -y python=3.10
conda activate py310
python -m venv venv-ag-310
source venv-ag-310/bin/activate
pip install -U pip
pip install -U setuptools wheel
conda install -y numpy scipy scikit-learn Cython lightgbm
conda install -y -c conda-forge vowpalwabbit
conda install -y -c conda-forge xgboost

!!! Open fresh shell
conda activate py310
source venv-ag-310/bin/activate

export CC=/opt/homebrew/opt/llvm/bin/clang
export CXX=/opt/homebrew/opt/llvm/bin/clang++
export LDFLAGS="-L/opt/homebrew/opt/libomp/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libomp/include"
export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1

VW_VER=$(conda list | grep vowpalwabbit | awk '{print $2}' | tail -1)
CYTHON_VER=$(conda list | grep cython | awk '{print $2}' | tail -1)
XGBOOST_VER=$(conda list | grep xgboost | awk '{print $2}' | tail -1)
LGBM_VER=$(conda list | grep lightgbm | awk '{print $2}' | tail -1)
pip install cython==$CYTHON_VER xgboost==$XGBOOST_VER vowpalwabbit==$VW_VER lightgbm==$LGBM_VER

# from autogluon sources root
./full_install.sh

Details - Fit Summary
Beginning AutoGluon training ...
AutoGluon will save models to "agModels-predictClass/"
AutoGluon Version:  0.6.3b20230113
Python Version:     3.10.8
Operating System:   Darwin
Platform Machine:   arm64
Platform Version:   Darwin Kernel Version 21.6.0: Sun Nov  6 23:31:13 PST 2022; root:xnu-8020.240.14~1/RELEASE_ARM64_T6000
Train Data Rows:    39073
Train Data Columns: 14
Label Column: class
Preprocessing data ...
AutoGluon infers your prediction problem is: 'binary' (because only two unique label-values observed).
	2 unique label values:  [' <=50K', ' >50K']
	If 'binary' is not the correct problem_type, please manually specify the problem_type parameter during predictor init (You may specify problem_type as one of: ['binary', 'multiclass', 'regression'])
Selected class <--> label mapping:  class 1 =  >50K, class 0 =  <=50K
	Note: For your binary classification, AutoGluon arbitrarily selected which label-value represents positive ( >50K) vs negative ( <=50K) class.
	To explicitly set the positive_class, either rename classes to 1 and 0, or specify positive_class in Predictor init.
Using Feature Generators to preprocess the data ...
Fitting AutoMLPipelineFeatureGenerator...
	Available Memory:                    12679.88 MB
	Train Data (Original)  Memory Usage: 22.92 MB (0.2% of available memory)
	Inferring data type of each feature based on column values. Set feature_metadata_in to manually specify special dtypes of the features.
	Stage 1 Generators:
		Fitting AsTypeFeatureGenerator...
			Note: Converting 1 features to boolean dtype as they only contain 2 unique values.
	Stage 2 Generators:
		Fitting FillNaFeatureGenerator...
	Stage 3 Generators:
		Fitting IdentityFeatureGenerator...
		Fitting CategoryFeatureGenerator...
			Fitting CategoryMemoryMinimizeFeatureGenerator...
	Stage 4 Generators:
		Fitting DropUniqueFeatureGenerator...
	Types of features in original data (raw dtype, special dtypes):
		('int', [])    : 6 | ['age', 'fnlwgt', 'education-num', 'capital-gain', 'capital-loss', ...]
		('object', []) : 8 | ['workclass', 'education', 'marital-status', 'occupation', 'relationship', ...]
	Types of features in processed data (raw dtype, special dtypes):
		('category', [])  : 7 | ['workclass', 'education', 'marital-status', 'occupation', 'relationship', ...]
		('int', [])       : 6 | ['age', 'fnlwgt', 'education-num', 'capital-gain', 'capital-loss', ...]
		('int', ['bool']) : 1 | ['sex']
	0.1s = Fit runtime
	14 features in original data used to generate 14 features in processed data.
	Train Data (Processed) Memory Usage: 2.19 MB (0.0% of available memory)
Data preprocessing and feature engineering runtime = 0.14s ...
AutoGluon will gauge predictive performance using evaluation metric: 'accuracy'
	To change this, specify the eval_metric parameter of Predictor()
Automatically generating train/validation split with holdout_frac=0.0639828014229775, Train Rows: 36573, Val Rows: 2500
Fitting 13 L1 models ...
Fitting model: KNeighborsUnif ...
	0.7752	 = Validation score   (accuracy)
	0.25s	 = Training   runtime
	0.02s	 = Validation runtime
Fitting model: KNeighborsDist ...
	0.766	 = Validation score   (accuracy)
	0.01s	 = Training   runtime
	0.01s	 = Validation runtime
Fitting model: LightGBMXT ...
	0.8792	 = Validation score   (accuracy)
	2.27s	 = Training   runtime
	0.01s	 = Validation runtime
Fitting model: LightGBM ...
	0.8824	 = Validation score   (accuracy)
	1.54s	 = Training   runtime
	0.01s	 = Validation runtime
Fitting model: RandomForestGini ...
	0.8604	 = Validation score   (accuracy)
	0.92s	 = Training   runtime
	0.05s	 = Validation runtime
Fitting model: RandomForestEntr ...
	0.8604	 = Validation score   (accuracy)
	0.98s	 = Training   runtime
	0.04s	 = Validation runtime
Fitting model: CatBoost ...
	0.882	 = Validation score   (accuracy)
	7.78s	 = Training   runtime
	0.01s	 = Validation runtime
Fitting model: ExtraTreesGini ...
	0.8508	 = Validation score   (accuracy)
	0.63s	 = Training   runtime
	0.05s	 = Validation runtime
Fitting model: ExtraTreesEntr ...
	0.846	 = Validation score   (accuracy)
	0.65s	 = Training   runtime
	0.05s	 = Validation runtime
Fitting model: NeuralNetFastAI ...
[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)
	0.8636	 = Validation score   (accuracy)
	29.73s	 = Training   runtime
	0.03s	 = Validation runtime
Fitting model: XGBoost ...
	0.8872	 = Validation score   (accuracy)
	5.66s	 = Training   runtime
	0.02s	 = Validation runtime
Fitting model: NeuralNetTorch ...
[W ParallelNative.cpp:229] Warning: Cannot set number of intraop threads after parallel work has started or after set_num_threads call when using native parallel backend (function set_num_threads)
	0.8612	 = Validation score   (accuracy)
	32.25s	 = Training   runtime
	0.01s	 = Validation runtime
Fitting model: LightGBMLarge ...
	0.8856	 = Validation score   (accuracy)
	5.24s	 = Training   runtime
	0.01s	 = Validation runtime
Fitting model: WeightedEnsemble_L2 ...
	0.8912	 = Validation score   (accuracy)
	0.65s	 = Training   runtime
	0.0s	 = Validation runtime
AutoGluon training complete, total runtime = 89.75s ... Best model: "WeightedEnsemble_L2"
TabularPredictor saved. To load, use: predictor = TabularPredictor.load("agModels-predictClass/")

Details - Adult Dataset Run
                  model  score_test  score_val  pred_time_test  pred_time_val  ...  pred_time_val_marginal  fit_time_marginal  stack_level  can_infer  fit_order
0               XGBoost    0.877162     0.8872        0.028305       0.018089  ...                0.018089           5.659502            1       True         11
1   WeightedEnsemble_L2    0.876344     0.8912        0.164798       0.078341  ...                0.002373           0.652639            2       True         14
2              CatBoost    0.874706     0.8820        0.041818       0.007415  ...                0.007415           7.779517            1       True          7
3         LightGBMLarge    0.873784     0.8856        0.039721       0.014614  ...                0.014614           5.239187            1       True         13
4              LightGBM    0.873477     0.8824        0.026291       0.010212  ...                0.010212           1.541906            1       True          4
5            LightGBMXT    0.871430     0.8792        0.038357       0.014338  ...                0.014338           2.267840            1       True          3
6        NeuralNetTorch    0.859249     0.8612        0.036834       0.014275  ...                0.014275          32.254715            1       True         12
7      RandomForestGini    0.859044     0.8604        0.173848       0.046831  ...                0.046831           0.919182            1       True          5
8      RandomForestEntr    0.858020     0.8604        0.204746       0.044882  ...                0.044882           0.976402            1       True          6
9       NeuralNetFastAI    0.856997     0.8636        0.119002       0.030747  ...                0.030747          29.726533            1       True         10
10       ExtraTreesGini    0.852288     0.8508        0.308248       0.047067  ...                0.047067           0.625617            1       True          8
11       ExtraTreesEntr    0.851776     0.8460        0.291663       0.046508  ...                0.046508           0.646460            1       True          9
12       KNeighborsUnif    0.773365     0.7752        0.029469       0.018716  ...                0.018716           0.250967            1       True          1
13       KNeighborsDist    0.762514     0.7660        0.034238       0.009613  ...                0.009613           0.012723            1       True          2

Thanks for these detailed install instuctions @gradientsky!
I'm getting this error when following the above:
ERROR: Package 'autogluon-common' requires a different Python: 3.10.8 not in '<3.10,>=3.7'

@imempress merged #2692, this should enable it.

That updated seems to have resolved my issue above, thanks @gradientsky! At least I'm now able to run everything in an example MultiModalPredictor tutorial, which is what I was attempting originally.

autogluon now supports pytorch-gpu and arm64, including Apple M1/M2 chips. conda-forge will install the GPU version if a user's machine supports it (i.e. if CUDA drivers can be found). Otherwise, it will install the CPU version. To install autogluon:
conda create -n ag python=3.9
conda activate ag
conda install -c conda-forge mamba
mamba install -c conda-forge autogluon

To install only a specific autogluon subpackage, e.g., autogluon.tabular:
mamba install -c conda-forge autogluon.tabuar

Here is a list of pull requests to add support for GPU and arm64:
autogluon.core

[x] add ray to required dependencies for win and linux (PR)
[ ] add ray support for osx and arm64 (PR)

autogluon.tabular

[ ] add fastai and imodeals to conda-forge (PR)
[ ] add fastai to required dependencies
[x] add catboost support osx arm64 (PR)
[x] add optional dependencies (lightgbm, catboost, xgboost) (PR)
[x] add support for pytorch-gpu

autogluon.multimodal

[x] add nlpaug support for pytorch-gpu (PR)
[x] add support for pytorch-gpu (PR)
[x] do not require torchtext and fairscale for windows (PR)
[ ] add torchtext support for arm64 (Issue)
[ ] add support for windows

autogluon.timeseries

[x] add optional dependencies (sktime, pmdarima, tbats) (PR)

autogluon

[x] add support for pytorch-gpu

@giswqs - mamba 1.2.0 installs sktime 0.15.1 that is not supported by autogluon (>=0.13.1 and <0.14).
Can you please advise?

@acmeguy Did you get any error message when using it? The reason I had to raise the sktime version upper bound is because the sktime package on conda-forge does not have any version meeting the autogluon requirement (>=0.13.1 and <0.14). See https://anaconda.org/conda-forge/sktime/files. It has version v0.12.1 then jumps to v0.14.0.
@Innixma @sxjscience Does autogluon.timeseries support sktime>=0.14?

Yea, the library did not load during import

@acmeguy A temporal workaround is to pip install sktime==0.13.1.  The autogluon team needs to raise the sktime version upper bound (at least support v0.14.0) so that the conda-forge can be built.

After pip install sktime==0.13.1 :

Thank you

@giswqs - how can I verify that the M1 is being fully utilized?

Sorry, @giswqs, I'm running into more problems, and I'm neither sure you are the right person to impose on nor if this is the right place. This might have direct relations with the M1 Issue being discussed here.
Jupyter silents dies while fitting a simple set.
This is the complete output and I find no logs:
Starting training. Start time is 2023-02-03 19:50:37
Models that will be trained: ['Naive', 'SeasonalNaive', 'ETS', 'Theta', 'ARIMA', 'AutoGluonTabular', 'DeepAR']
Training timeseries model Naive.
-1.0000       = Validation score (-MAPE)
0.00    s     = Training runtime
5.27    s     = Validation (prediction) runtime
Training timeseries model SeasonalNaive.
-0.5858       = Validation score (-MAPE)
0.00    s     = Training runtime
4.77    s     = Validation (prediction) runtime
Training timeseries model ETS.
-0.1244       = Validation score (-MAPE)
0.00    s     = Training runtime
4.99    s     = Validation (prediction) runtime
Training timeseries model Theta.
-0.1076       = Validation score (-MAPE)
0.00    s     = Training runtime
0.35    s     = Validation (prediction) runtime
Training timeseries model ARIMA.
-0.0790       = Validation score (-MAPE)
0.00    s     = Training runtime
5.69    s     = Validation (prediction) runtime
Training timeseries model AutoGluonTabular.
-0.0811       = Validation score (-MAPE)
32.52   s     = Training runtime
0.04    s     = Validation (prediction) runtime
Training timeseries model DeepAR.

This seems to be working, but there seems to be no way to verify that the M1 is being fully utilized and the Jupyter cell-output has become extremely sluggish, regardless of what is being outputted. A simple dataframe takes a minute to be displayed.

@giswqs - It seems that the documentation has been chance to state that Apple silicon is not supported. The link to this issue is gone. Can you reflect on that a bit?

@Innixma - can you please tell me why this issue now has 0 priority?

Thanks for the instructions, @gradientsky!
Are there any caveats that I should know about?

@Innixma - can you please tell me why this issue now has 0 priority?

priority 0 = maximum priority

@giswqs I created a GitHub issue to track upgrading sktime.

sktime range has been updated to >=0.14,<0.16! Starting in AG v0.7, all modules should now be supported on M1 via conda install.

@Innixma Great! I will update the autogluon.timeseries conda-forge package tomorrow.

Next steps:

[ ] @gradientsky can you update our website install doc for M1 to provide conda install steps?

@giswqs Now ray is lazily imported in multimodal, so you should be able to get multimodal installed and running on MacOS in conda

@giswqs Would you be able to verify if things will work in conda for M1? Or allow users with an M1 to test?

@Innixma Both autogluon.tabular  (PR) and autolguon.multimodal (PR) conda-forge recipes have passed all checks. They should support M1 once v0.7 is released. Waiting to test autogluon.timeseries after autogluon.tabular v0.7 becomes available on conda-forge.

autogluon v0.7.0 is now available on conda-forge. To install it on Linux and macOS:
conda create -n ag python=3.9
conda activate ag
conda install -c conda-forge mamba
mamba install -c conda-forge autogluon

The autogluon.multimodal conda-forge package does not yet support Windows. To install autogluon.tabular and autogluon.timeseries on Windows:
conda create -n ag python=3.9
conda activate ag
conda install -c conda-forge mamba
mamba install -c conda-forge autogluon.tabular autogluon.timeseries

This issue can be closed now.

Any chance to properly detect Mac M1 GPU ?
		The total system num_gpus=0 is less than minimum num_gpus=1 to fit MultiModalPredictorModel. Consider using a machine with more GPUs.
Detailed Traceback:
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.10/site-packages/autogluon/core/trainer/abstract_trainer.py", line 1502, in _train_and_save
    model = self._train_single(X, y, model, X_val, y_val, total_resources=total_resources, **model_fit_kwargs)
  File "/opt/homebrew/lib/python3.10/site-packages/autogluon/core/trainer/abstract_trainer.py", line 1447, in _train_single
    model = model.fit(X=X, y=y, X_val=X_val, y_val=y_val, total_resources=total_resources, **model_fit_kwargs)
  File "/opt/homebrew/lib/python3.10/site-packages/autogluon/core/models/abstract/abstract_model.py", line 695, in fit
    kwargs = self._preprocess_fit_args(**kwargs)
  File "/opt/homebrew/lib/python3.10/site-packages/autogluon/core/models/abstract/abstract_model.py", line 428, in _preprocess_fit_args
    kwargs = self._preprocess_fit_resources(**kwargs)
  File "/opt/homebrew/lib/python3.10/site-packages/autogluon/core/models/abstract/abstract_model.py", line 597, in _preprocess_fit_resources
    assert system_num_gpus >= minimum_model_num_gpus, f'The total system num_gpus={system_num_gpus} is less than minimum num_gpus={minimum_model_num_gpus} to fit {self.__class__.__name__}. Consider using a machine with more GPUs.'
AssertionError: The total system num_gpus=0 is less than minimum num_gpus=1 to fit MultiModalPredictorModel. Consider using a machine with more GPUs.

@Innixma
Mac M1 is supported in Torch.
Please find this article helpful:
https://towardsdatascience.com/installing-pytorch-on-apple-m1-chip-with-gpu-acceleration-3351dc44d67c
I was able to run torch==2.0.0 on M1 without problems. Didn't try different versions.

Thanks @maver1ck! I've created an issue to track adding support: #3126


Get "https://xbarapp.com/docs/plugins/featured-plugins.json": dial tcp: lookup xbarapp.com: no such host

Just reporting the issue (on startup) as requested.

Hi @matryer Yes. And I also checked Little Snitch and xbar has full internet access. But I also just noticed that I'm on beta 2.0.39 so I upgraded to 2.0.42. On relaunching xbar, Little Snitch complained...something about xbar being different but I ok'd it.
It's working now, so I'm closing this. Thanks!


Update find file func according to latest go/cover code

Just an update from latest version of the go cover tool, this improve the way that golang file path are retrieve from profile.
On a big project like the one I'm working on (github.com/ovh/cds), it used to take more than 3 minutes to generate a report now its only 3 seconds.

Pull Request Test Coverage Report for Build 32

37 of 86 (43.02%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-7.7%) to 72.032%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

gocover-cobertura.go
5
7
71.43%

profile.go
13
30
43.33%

func.go
19
49
38.78%

Totals

Change from base Build 29:
-7.7%

Covered Lines:
273

Relevant Lines:
379

💛  - Coveralls

FYI, this PR and the underlying fork by @richardlt helped me fix the XML coverage report I generate for Codacy on the open source project I'm working on! 🎉
Cf https://github.com/signaux-faibles/opensignauxfaibles/pull/289 (in French, but the diff is self explanatory)
=> I recommend to merge that PR. And thank you Richard, for this fix! 🙌

FYI, this PR and the underlying fork by @richardlt helped me fix the XML coverage report I generate for Codacy on the open source project I'm working on! 🎉
Cf https://github.com/signaux-faibles/opensignauxfaibles/pull/289 (in French, but the diff is self explanatory)
=> I recommend to merge that PR. And thank you Richard, for this fix! 🙌


SWA callback takes more memory at the last epoch -> crashing

🐛 Bug
found quite annoying that the SWA at the last epoch needs more memory, which results in crashing all training at the very end... :confused:
To Reproduce
https://www.kaggle.com/jirkaborovec/brain-tumor-classif-lightning-efficientnet3d/edit/run/73264784
Expected behaviour
thinking about lowering batch size for the last epoch within the callback... other thoughts?
additional context
#9480 and #9441

Closing in favor of #9441. We need to explore what is really causing the increase.


Add endpoint /wallet/utxo:address to provide UTXO for the required amount

Currently, SDK requests all UTXO and then extracts the UTXO required.
I changed it like this.
SDK requests Stoa for UTXO with the required amount for a specific address.
Stoa extracts UTXO that meets the conditions and provides it to SDK.
Relates to https://github.com/bosagora/boa-sdk-ts/issues/198

Query cost: 2.72 And Full Table scan.

Query cost: 2.72 And Full Table scan.

I'll make an issue and solve it.


Invert a block diagonal HypreParMatrix

Hi All,
I'm solving a wave equation where at each iteration I need to solve a system of equations AX=b. The SLAE matrix A is, however, a block diagonal (for example, if the DG method is used, the SLAE matrix is block diagonal with number of blocks equal to the number of mesh cells, and each block has a size of the number of dofs in that cell). I would like to compute an inverse matrix A^-1, so that at each iteration in time I'd need to do only matrix-vector multiplication X=A^-1 b. For general sparse matrices this typically doesn't make sense as the inverse of a sparse matrix is dense, but the inverse of a block diagonal matrix is also block diagonal with each block being the inverse of the corresponding block of the original matrix. Therefore, I am wondering if there is an effective approach to implement such an inversion within Hypre/MFEM framework. In case of sequential implementation, I can compute the offsets of the blocks, extract them as dense matrices, invert, and put them back. But I'm interested in parallel implementation, and maybe there is something in Hypre specifically for my task.
Thank you,
Mikhail

How about assembling the inverses of the local stiffness matrices? See https://github.com/mfem/mfem/blob/master/fem/bilininteg.hpp#L132

Hi Tzanio,
Thank you for the suggestion. The inverse integrator is an interesting feature. My SLAE matrix is, however, computed this way: A = R M R^T, where M is a standard mass matrix, and as far as I understood I can compute the M^-1 using the inverse integrator, but R is some rectangular projection matrix to a coarser space (I work with some multiscale methods), so I don't see how I can compute A^-1 with that.
I suspect I still can compute the offsets of the block of the diagonal for the parallel matrix A, and invert it block by block, but I'm wondering if there is a better approach.
Any idea would be highly appreciated.
Thank you,
Mikhail

Hi Mikhail,
If both M and A are block-diagonal over the elements, then so must be R. If that's the case, can't you compute the element action R_e M_e R_e^T, maybe as a special integrator, and then assemble its inverse?
If you are starting with A, I can't think of anything better than what you proposed.
Cheers,
Tzanio

Hi Tzanio,
Thank you for the idea! I implemented that initial approach that I had in mind, so I think I'll go with it.
Cheers,
Mikhail


Fingerprint prompt non-responding

I setup fingerprint on my login page So that when user open login page and fingerprint sensor is present, Prompt for fingerprint will open. But when prompt has opened and user put the app in the background and bring back to the app a new prompt comes on old prompt and says **Fingerprint operation canceled **. But old prompt is still visible and it is un-responsive means when I touched the finger on fingerprint sensor No action is performed by the plugin and I need to cancel the fingerprint manually.

Same issue as https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth/issues/95
Perhaps the second prompt is deregistering the first prompt?  You should not open the modal automatically onResume of your application.  You should track if you have opened the modal or not.  That should prevent multiple modals from being displayed.  Otherwise it is the same issue as referenced above.  Please switch to that thread and read my questions and provide any additional information you can.


Please display the temporary hls video in the download folder so that we can playback the temporary video while it is downloading

UPDATE :
Aiee I am downloading a streaming video and unfortunately, contrary to my expectations for chromium kernel 126, our beloved Supermiumn does not allow to display the temporary hls video in the download folder so impossible to playback the temporary video and we hope Supermium will display temporary video in the download folder please when we use Cat-Catch video downloader extension please :)
Hi, my internet connection is very weak especially when my sister uses HDMI, I can't playback streaming video because it lags and jerks, so the trick is to download the video and playback the temporary hls video while it's downloaded by Cat-Catch extension, unfortunately catsxp browser is migrating to chromium kernel 131 which removes this possibility and we hope Supermium browser will do what is necessary to continue to display the temporary hls video in the download folder in order to playback it, thank you!
I explain this serious bug in this issue made in the github of Cat-Catch extension video downloader :
https://github.com/xifangczy/cat-catch/issues/567
i use catsxp for downloading because it uses the latest chromium kernel recommended by a video extension for video downloading, but now after the disaster in chromium 131, I use Supermium to download, because Supermium uses chromium 126 which allows to display the temporary video in the download folder, in addition chromium 131 changes custom url protocol so I can no longer use preview with potplayer of Cat Catch while Supermium allows me to preview with potplayer, thank you! we hope these defects of chromium 131 will be erased by Supermium, thank you!

You need BitTorrent...
https://github.com/Eclipse-Community/r3dfox/issues/225
Why are you posting the same issue in different places?

not enough to playback 480p vidmoly videos, plus since the summer my sister has been using HDMI because a part of the TV dish was stolen and she connects her computer connected to the wifi to the tv, and my other sister and my mother connect to the wifi at night so the connection strength decreases a lot....my hope was in coc coc browser which allowed me to see the video while it was downloading but coc coc browser is not compatible with my windows 7 os

What's your ISP(Internet Service Provider)?

Why can't you just keep what you're using? A version works good for at least 2 years (in the meantime, you might get a better connection of PC)
Tip: Use a mobile user-agent in your browser to load mobile-optimized web pages (which should use less CPU/RAM/bandwidth).

It's a famous ISP

I don't know what the most famous ISP is if you don't tell me.

There are special online services for downloading and saving videos from YouTube. For example, ssyoutube.com
There is also software. There should probably be extensions for Chrome.
Only with a slow connection you will also have to wait a long time, this will definitely not increase speed.

@Half-Modern sorry, I didn't understan well, you means i should keep the same version of the web browser? I have to update the web browser, because some critical sites that I use like gmail may not work properly, there are security holes that the update fixes, and the stream recorder extension recommends using the latest version of chrome.... surfing the web, loading web pages is no problem for me, it's fluid on my eee pc, and I discover when downloading a video that even Supermium with chromium kernel 126 does not allow the temporary hls video to be displayed in the download folder...

Security? You're using Windows 7 and talking about security... seems odd. Sure, you should try to close every hole possible, but you need to give up some if you need something else. It's probably a Chromium code change that caused this to happen, but I'm in the same boat, who has to use an older version because the newer versions don't have VDAVideoDecoder (which makes use of my old GeForce GT220M's HW acceleration feature on videos). While you're a bit luckier (121) while I have to use 115 since it was the last version with the feature I need.
TL,DR: If I can use Version 115 without getting hacked/broken sites, you shouldn't have problem at all with what you have.

I affirm that windows 7 os can be more secure than windows 11

Is the Windows 7 operating system more secure than Windows 11? sethc.exe oversteps its authority to change passwords Windows 7 hasn't been fixed yet.

groups of hackers are financed by rogue states, dictators want to hack computers of large multinational companies and steal industrial secrets, I do not think dictators want to hack my od eee pc windows 7 os of an average african like me ....

At the time CVE-2024-38063 was first released, my NAS was under attack in Europe and Japan.

I tried this extension and it is able to download content using both the "current page" and "capture" options. On that site you provided, I could see previews of the content within the extension window as well. Is another method being used to view this content, since I couldn't see any issue with the extension in particular.

some linux defenders say some flaws have been corrected since this article was written but it's surprising that linux seems to be less secure than windows os !! I am incredulous and a little disappointed

Yep, Linux Mint's installer recently overwrote the firmware on a ReactOS developer's laptop, and also installed the OS to multiple hard drives which overwrote work on various major components.

i prefer an os without emulation, huawei has released a new universal os for its laptops, smartphones....but we know the chinese government likes to spy on people and I fear huawei, the press says hiawei has swung where an african political opponent is when an african dctatetr asked huawei to reveal the coordinates of this opponent who has a huawei smartphone ..... and the african union has found spying software in the headquarters of the african union built by china in an african country ....

Do you even know the location of the base station... An electronic device with a phone SIM card is fine, it doesn't even need a cell phone manufacturer to support it.

I am relaying what the press says, the press says that Xiaomi is censoring "Uyghurs" 维吾尔 search requests in some countries....

ah,I like Fake news

maybe the African dictator does not have the technical means to find his political opponent and it is easier to ask Huawei to expose this political opponent

You could also replace “Huawei” with “Google” or “Apple” or some other big company. After all, PRISM is still going on.

I don't think this is fake news, serious newspapers or TV reports have talked about it

That's not necessarily true. News is a service to politics.For example:
“Threat Alliance's rephrasing is particularly intriguing. In an interview with the media, the company claimed that it had modified the original report because it had discovered in its follow-up research that there were errors in the infection indicators provided in the previous report on Typhoon Volt, a “perfunctory” explanation that is all the more suspicious. “The unusual behavior of the Threat Coalition can only mean that the process of altering the original report was done in a passive and hasty manner under strong external pressure. The evidence in the latest report makes it abundantly clear that U.S. intelligence agencies' cyber-espionage activities against China, Russia, Iran and Arab countries, as well as disinformation campaigns against the U.S. Congress and taxpayers, are hard facts.
Sherrod DeGrippo, director of threat intelligence strategy at Microsoft, said during BlackHat 2024 that the so-called “Volt Typhoon” organization is still active and shows no signs of stopping, but still gave no indication that the organization has a so-called “Chinese government-backed background”. “Chinese government-backed background”.

I'm smelling some off-topic here... 👃

jonm58 try to translate this article, china censor even her super powerful open source AI models :

https://www.clubic.com/actualite-545948-meme-open-source-les-modeles-d-ia-chinois-les-plus-performants-sont-censures-et-cela-inquiete-le-p-d--g-d-huggingface.html

OpenAI even reviewed her super-powerful open source AI model
Each LLM company provides a model with a content review

@trimechee
You Africans are too young to understand what censorship is and that every country has conditions and restrictions.

I'm smelling some off-topic here... 👃

So am I.

Users should refrain from making political statements in the Supermium issue tracker.

... Sadly, this has also happened in another open issue:
https://github.com/win32ss/supermium/issues/1012#issuecomment-2518859545
@win32ss (or other member with administrative rights on this tracker), could you please hide these OT comments, please?
This is a purely technical issue tracker, and should remain as such :wink: ; FWIW, more "latitude" could be allowed in the "general" section of Discussions, though I'd strongly advise myself against any world-politics-related talk in this repo...

... Sadly, this has also happened in another open issue:
#1012 (comment)

This is not just a discussion of politics. There are obvious extremist statements about massacres! This cannot be allowed!

@billi857 massacres should not be allowed, yes who makes massacres of innocents kids womans mans is extremist, when you download notepad plus plus, you see support of just causes, I'm not sure if you lived in a country at war and your family was bombed, it's not certain that you will say talking about massacres is not allowed, end of controversy please, don't reply me

notepad plus plus don't support Palestine.
Lmao

the Arab Spring

The heroic peaceful revolution of the Arab Spring that brought back the slave trade in Libya, lmao.

we are the fathers and mothers of civilization, we are not youngs, China has a prestigious civilization but our prestigious civilization is older than China ... we have civilized the world and we have spread the faith, the light through Islam who is carrying on despite the terrible plots and persecutions massacre of Uighur Muslims by the hypocritical Chinese pseudo-communist party which pretends to support Palestine even though it is as cruel as the zio ni sts

There is no genocide in Xinjiang, I spent a month there with my Japanese colleague and I have a friend in Guangxi who is a Uyghur from Xinjiang.


Fix CI pipeline

Fixes -

many textstyle has been deprecated after v3.1.0-0.0.pre
flutter format has been deprecated

Describe the changes you have made in this PR -

In codebase deprecated TextStyle has been updated as per this docs : https://api.flutter.dev/flutter/material/TextTheme-class.html
in ci.yml flutter format has been

Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

@aman-singh7 @manjotsidhu can you take a look to this .
The CI pipeline is broken.
The CI is failing at flutter pub get for windows-latest.

@manjotsidhu i have not changed the setps actually. Will try to add that specific line.
Thanks

@manjotsidhu can you run the workflow once of this PR. Last time ot was going fine for ubuntu and windows. mac needs some more time, so increased timeout by 5 minute

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

72 of 90 (80.0%)  changed or added relevant lines in 36 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.0%) to 64.63%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/ui/views/about/about_privacy_policy_view.dart
2
3
66.67%

lib/ui/views/groups/add_assignment_view.dart
1
2
50.0%

lib/ui/views/groups/assignment_details_view.dart
8
9
88.89%

lib/ui/views/groups/my_groups_view.dart
0
1
0.0%

lib/ui/views/groups/update_assignment_view.dart
1
2
50.0%

lib/ui/components/cv_drawer.dart
0
2
0.0%

lib/ui/views/ib/components/ib_pop_quiz.dart
0
2
0.0%

lib/ui/views/ib/components/ib_pop_quiz_button.dart
0
2
0.0%

lib/ui/views/ib/ib_page_view.dart
5
7
71.43%

lib/ui/views/projects/project_details_view.dart
4
9
44.44%

Totals

Change from base Build<PHONE_NUMBER>:
-0.0%

Covered Lines:
4040

Relevant Lines:
6251

💛  - Coveralls

@manjotsidhu @tachyons now ig it's ready to be merged . As , the deprecation warning and CI has been resolved.


Rocrand build: Fix Update method

When upgrading to newer version of Rocrand RPM library,
pre uninstall script of old library will delete the symlinks
created by the post installation scripts.
This is the sequence of steps followed for RPM package upgrade.
pre install ; install; post install ; pre uninstall ;
uninstall; post uninstall
Add logic in pre uninstall script to check if its uninstall or
upgrade.
Add new script for pre installation. If its upgrade, then this script will
remove symlinks.
For Debian packages, these changes will not have ay effect since uninstall scripts
are called before calling the installation scripts.

Hi @jaglinux Can you get this PR finished by addressing issues brought up by @srinivamd ? It will be good to get these fixes in for the 2.9 feature complete date.

Without the patch,
[root@localhost /]# rpm -U rocrand_.rpm
ln: failed to create symbolic link ‘/opt/rocm/hiprand/lib/../../lib/libhiprand.so’: File exists
ln: failed to create symbolic link ‘/opt/rocm/hiprand/lib/../../lib/cmake/hiprand/hiprand’: File exists
ln: failed to create symbolic link ‘/opt/rocm/rocrand/lib/../../lib/librocrand.so’: File exists
ln: failed to create symbolic link ‘/opt/rocm/rocrand/lib/../../lib/cmake/rocrand/rocrand’: File exists
[root@localhost /]# ls -la /opt/rocm/rocrand/lib/
total 4880
drwxr-xr-x. 1 root root     115 Sep  4 16:38 .
drwxr-xr-x. 1 root root      32 Aug 28 04:36 ..
drwxr-xr-x. 1 root root      21 Aug 28 04:36 cmake
lrwxrwxrwx. 1 root root      15 Sep  4 16:38 librocrand.so -> librocrand.so.1
lrwxrwxrwx. 1 root root      19 Sep  4 16:38 librocrand.so.1 -> librocrand.so.1.8.2 (pointing to old library)
-rwxr-xr-x. 1 root root 4995672 Aug 27 21:59 librocrand.so.1.1
After applying the patch,
[root@localhost /]# rpm -U --nopreun rocrand_fix.rpm
warning: file /opt/rocm/rocrand/lib/librocrand.so.1.8.2: remove failed: No such file or directory
warning: file /opt/rocm/hiprand/lib/libhiprand.so.1.8.2: remove failed: No such file or directory
We can ignore the warning, since we are deleting the files in pre install script.
[root@localhost /]# ls -la /opt/rocm/rocrand/lib/
total 4880
drwxr-xr-x. 1 root root     115 Sep  4 18:05 .
drwxr-xr-x. 1 root root      32 Sep  3 21:43 ..
drwxr-xr-x. 1 root root      21 Sep  3 21:43 cmake
lrwxrwxrwx. 1 root root      15 Sep  4 18:05 librocrand.so -> librocrand.so.1
lrwxrwxrwx. 1 root root      17 Sep  4 18:05 librocrand.so.1 -> librocrand.so.1.1 (correct library)
-rwxr-xr-x. 1 root root 4995672 Sep  3 21:33 librocrand.so.1.1
[root@localhost /]# ls -la /opt/rocm/lib/librocrand.so
lrwxrwxrwx. 1 root root 32 Sep  4 18:05 /opt/rocm/lib/librocrand.so -> ../rocrand/lib/librocrand.so.1.1

After applying the patch,
[root@localhost /]# rpm -U --nopreun rocrand_fix.rpm
warning: file /opt/rocm/rocrand/lib/librocrand.so.1.8.2: remove failed: No such file or directory
warning: file /opt/rocm/hiprand/lib/libhiprand.so.1.8.2: remove failed: No such file or directory
We can ignore the warning, since we are deleting the files in pre install script.
@jaglinux Is "--nopreun" option to upgrade REQUIRED? Does it not work without that option?
Most folks probably don't specify those options when upgrading, and it may be difficult to insert that into their scripts for a specific package, should they use scripts to upgrade.

After applying the patch,
[root@localhost /]# rpm -U --nopreun rocrand_fix.rpm
warning: file /opt/rocm/rocrand/lib/librocrand.so.1.8.2: remove failed: No such file or directory
warning: file /opt/rocm/hiprand/lib/libhiprand.so.1.8.2: remove failed: No such file or directory
We can ignore the warning, since we are deleting the files in pre install script.
@jaglinux Is "--nopreun" option to upgrade REQUIRED? Does it not work without that option?
Most folks probably don't specify those options when upgrading, and it may be difficult to insert that into their scripts for a specific package, should they use scripts to upgrade.

The flag is required for old libraries since it does not have the pre uninstall check which is addressed in this patch.
Once this patch is merged, for subsequent update we do not need the --nopreun flag since the pre uninstall script will follow the logic coded in this patch.

Ok, thanks. LGTM


Refactor set up of input files (--sample vs --test)

I need these changes in order to be able to add a --sampleDir option (that does not require a TSV). Perhaps some of the code could even be moved into a setup function, but that’s for later.

:+1:


error when attempting to run-ingest on original path

`$ aerolab agi run-ingest --name 'repro-lucien'
2024/08/05 16:07:46 +0000 could not get current config: error running cat /opt/agi/ingest.yaml: dial tcp <IP_ADDRESS>:22: connect: connection refused:
-=-=-=-=- [ExitCode] 1 -=-=-=-=-
exit status 1
-=-=-=-=- [END] -=-=-=-=-`

Fixed, deploying. was caused by ubuntu-s unattended upgrades


Document suggested cleanup approach

On Windows I was seeing memory leaks for a simple case. Turned out that you need to run the loop to actually clean stuff up. I ended up with this approach:
      auto loop = uvw::loop::get_default();

      // ...

      loop->run(); // stops at some point

      while (loop->close() == UV_EBUSY) {
         loop->walk([](auto&& h) {
            if (!h.closing())
               h.close();
         });

         loop->run(uvw::loop::run_mode::ONCE);
      }

It would be good to know if this approach is reasonable, and if so perhaps add it to the docs (potentially with some max wait time).

This is definitely not quite right - getting access violations sometimes

It's impossible to tell what you're doing wrong without a repro. As far as I can see, you can have tons of UBs everywhere. 🤷♂
That being said, EnTT stays true to the requirements of libuv and the latter requires users to close handles before leaving.

I apologize...here's a complete example:
#include <uvw.hpp>
#include <crtdbg.h>
#include <iostream>

auto setup_leak_detection() -> void;

auto main() -> int {
    setup_leak_detection();

    // Simple loop
    auto loop = uvw::loop::get_default();

    auto socket = loop->resource<uvw::pipe_handle>();

    loop->walk([](auto&& h) {
        h.close();
    });
}

auto alloc_hook(
   int /*allocType*/,
   void* /*userData*/,
   size_t size,
   int /*blockType*/,
   long request_number,
   unsigned char const* /*filename*/,
   int /*lineNumber*/) -> int {

   // a memory leak can jump around a bit run to run
   // so we define a window around the reported allocation
   // number

   int       nominal_request = 163;
   int       leak_size       = 200;
   int const window_size     = 20;

   if (
      request_number >= nominal_request - window_size &&
      request_number <= nominal_request + window_size && size == leak_size)
   {
      // set a breakpoint here to find the allocation
      int five = 5;
   }

   return true;
}

auto setup_leak_detection() -> void {
   auto initial_flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
   _CrtSetDbgFlag(initial_flag | _CRTDBG_LEAK_CHECK_DF);
   _CrtSetAllocHook(alloc_hook);
   _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
   _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
   _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
   _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDOUT);
   _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
   _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT);
}

and here's the output:
Detected memory leaks!
Dumping objects ->
{168} normal block at 0x0000019C8710C6C0, 1192 bytes long.
 Data: <h               > 68 DD 97 C5 F7 7F 00 00 01 00 00 00 02 00 00 00
{167} normal block at 0x0000019C870F91B0, 24 bytes long.
 Data: <8               > 38 DD 97 C5 F7 7F 00 00 01 00 00 00 02 00 00 00
{166} normal block at 0x0000019C870E6560, 120 bytes long.

 Data: <                > 80 17 9C C5 F7 7F 00 00 00 00 00 00 00 00 00 00
{164} normal block at 0x0000019C870FE130, 16 bytes long.

 Data: <                > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Object dump complete.

ok...this seems to work:
auto main() -> int {
    setup_leak_detection();

    // Simple loop
    auto loop = uvw::loop::get_default();

    auto socket = loop->resource<uvw::pipe_handle>();

    loop->walk([](auto&& h) {
        h.close();
    });

    loop->run();
}

That's because you run the loop for another tick after closing your handles.
If you don't do that, handles aren't cleaned up properly and thus the leak.
It boils down to libuv and how it works though. uvw stays true to this requirement as mentioned. 👍

Sure - I get you probably don't want to reproduce the libuv docs, but I would suggest you update your "Code Example" to:
int main() {
    auto loop = uvw::loop::get_default();
    listen(*loop);
    conn(*loop);
    loop->run();

    loop->walk([](auto&& h) {
        h.close();
    });

    loop->run();
}

Since it seems that's the canonical approach people should use...but it's your library :)

Which code example? Do you mean this one?

yes - although optionally to your tests as well (libuv tests do something similar).

The test in the README file already closes handles as requested. I don't think there is nothing to fix.
Thanks for the heads-up though. I'm glad you found (and fixed) the issue. 👍


Fix stablehlo_capi_objects to depend on :CAPIIRObjects, not :CAPIIR.

Depending on :CAPIIR from a capi_objects target causes duplicate symbol problems in JAX on Windows.

So I had tried a fix like this first and I recall hitting the same issue as the other APIs also were doubly linked.
If I’m misremembering and it works, great!
If not I can retry in a couple of hours

never mind, this looks to work -- closing other PR


Print x.0 when x is is a double/float representing a whole number

See original CodePlex issue

I think NUnit might provides some good conventions worth following.  If I recall correctly, it will print '1.0f' and other such suffixes on types to disambiguate beyond the integer vs floating point ambiguity raised here.

Like to original issue is broken. Can some more details be added to this?

When there is a numeric type mismatch but the numeric value is the same the error message is akin to:

4 does not equal 4

which does not allow the user to easily tell what the issue is.  Even when the user is aware of this limitation in FluentAssertions, it still can be challenging to find the culprit because there may be many members compared on an object in a single assertion.
Errors such as:

4 does not equal 4.0

and

4.0f does not equal 4.0d

could contribute significantly to quickly identifying the cause of a failing test.

Ah, yes. I see. Interesting. Thanks for adding the detail.


Possible Data Issue in gerudo_fortress.json

I was looking through the entrance data for Gerudo Fortress, and I think there might be some mixup in the data between GF Lower Vines -> Hideout 4 Torch Jail U Tunnel and Gerudo Fortress by GTG -> Hideout 4 Torch Jail L Tunnel:
"GF Lower Vines -> Hideout 4 Torch Jail U Tunnel": {
    "area": "Gerudo Fortress",
    "reverse": "Hideout 4 Torch Jail U Tunnel -> GF Lower Vines",
    "oneWay": false,
    "oneWayArea": "",
    "connector": "Hideout 4 Torch Jail L Tunnel -> Gerudo Fortress by GTG",
    "isReverse": false,
    "alias": "1F Near Toll Gate",
    "reverseAlias": "from 1F Near Toll Gate",
    "tag": "4 Torch Jail U Tunnel",
    "tagRep": true,
    "tagRules": [],
    "enableTag": true,
    "type": "hideoutInterior",
    "lKey": "",
    "aLink": "",
    "userALink": "",
    "eLink": "",
    "userELink": "",
    "oneWayELink": "",
    "userOneWayELink": "",
    "shuffled": false
},
"Gerudo Fortress by GTG -> Hideout 4 Torch Jail L Tunnel": {
    "area": "Gerudo Fortress",
    "reverse": "Hideout 4 Torch Jail L Tunnel -> Gerudo Fortress by GTG",
    "oneWay": false,
    "oneWayArea": "",
    "connector": "Hideout 4 Torch Jail U Tunnel -> GF Lower Vines",
    "isReverse": false,
    "alias": "2F North Vines",
    "reverseAlias": "from 2F North Vines",
    "tag": "4 Torch Jail L Tunnel",
    "tagRep": true,
    "tagRules": [],
    "enableTag": true,
    "type": "hideoutInterior",
    "lKey": "",
    "aLink": "",
    "userALink": "",
    "eLink": "",
    "userELink": "",
    "oneWayELink": "",
    "userOneWayELink": "",
    "shuffled": false
}```

At the very least, the aliases are mixed up; `1F Near Toll Gate` should match `Gerudo Fortress by GTG -> Hideout 4 Torch Jail L Tunnel`

You're right, the aliases are backwards. Thanks for reporting it!

added a quick fix for this in #46

Merged with #46


Feature/delegate debt path

Based on https://github.com/trustlines-protocol/relay/pull/548
closes https://github.com/trustlines-network/project/issues/752
Add the information about the maximum claimable debt and path

I guess backwards compatibility is broken because the previous e2e tests were using interests rates of 300% while the current contract version limits to 20%.
We shall now run the backwards compatibility checks to newest clientlib e2e test version.


Feature Request:  Auto disable of failed tests

How about a config parameter that can be set to a number of failures for a collector before diamond stop trying to run the collector.  If I don't have mysql installed, run it X times, but then only check once per day/per hour/configurable time period.

By default, only a small handful of collectors are enabled to run at a time. Why would you enable the mysql collector if it's not configured and working?

Because then I don't have to keep track of what is running on which machine.  I just blast out all the collectors as enabled to all machines.  If mysql is on there, it collects and runs.  If it's not, it errors out after X times, and I don't see the errors in the logs anymore.


calculateSwapExactIn return wrong value

I use calculateSwapExactIn function to calculate amount out but it is returning different data than the interface.
Tried with the ADA/tMELD pair and it is displaying amount out correctly with the interface. But it doesn't need divide by 10^6
Where is it going wrong?
async function getPool(
  assetA: string,
  assetB: string
): Promise<PoolState | undefined> {
  for (let i = 1; ; i++) {
    const pools = await blockfrostAdapter.getPools({
      page: i,
    });
    if (pools.length === 0) {
      // last page
      break;
    }
    const pool = pools.find((p) => p.assetA === assetA && p.assetB === assetB);
    if (pool) {
      return pool;
    }
  }
  return;
}

async function main(): Promise<void> {
  {
    // tMELD/tMIN
    const pool = await getPool(
      "88dc7cd1c28d3a0c7ef4df99036c7c9688d309d91a1bb6fe4b08fee9744d454c44",
      "f6f49b186751e61f1fb8c64e7504e771f968cea9f4d11f5222b169e3744d494e"
    );
    if (pool) {
      const amountIn = 10_000_000n;
      const data = calculateSwapExactIn({
        amountIn,
        reserveIn: pool.reserveA,
        reserveOut: pool.reserveB,
      });
      const amountOut = new Big(data.amountOut.toString()).div(
        new Big(10).pow(6)
      );
      console.log("amountOutFull", data.amountOut.toString());
      console.log("amountOut", amountOut.toString());
      console.log("priceImpact", data.priceImpact.toString());
    }
  }
}

Output:
amountOutFull 907854
amountOut 0.907854
priceImpact 90.60331783793637772309

UI:

@kieutuan218 The Testnet Enviroment is quite different with the Mainnet. There's no Token Metadata, it means that all Token on the Testnet will have decimal zero as well (except ADA, we assume that ADA always has 6 decimals)
In that case, you are exchanging 10 tMELD to get around 9 tMIN, not 10_000_000 tMELD

1 Tip for it is we always show Invisible Token on the Swap page for zero decimals Tokens like the picture you provided above.

Thank you.
I have 1 more question. If I reverse swap tMIN -> tMELD, the parameters reserveIn, reserveOut, assetIn, assetOut will be reversed, right?
const data = calculateSwapExactIn({
    amountIn,
    reserveIn: pool.assetA === tMinAddress ? pool.reserveA : pool.reserveB,
    reserveOut: pool.assetB === tMeldAddress ? pool.reserveB : pool.reserveA,
});

@h2physics
Decimal = 0 then amount out is the same as UI but priceImpact is always different from UI
amountOut 9. amountOut 9
priceImpact 0.00099300609363561084


Updating binaries doesn't report new version on successful update anymore

Describe the bug
I'm frequently updating zinit and plugins using zi update -p -q and I'd like to know only when something changes (i.e. when there is an actual update on a snippet, plugin or binary). This seemed to work well for some time, but a couple of days/weeks ago, the updates for binary github releases didn't show up anymore (regular plugins still work, not sure if it is also broken for snippets).
To Reproduce
One of the programs for which I've noticed this is k9s:
# install k9s from github binaries
zi wait'0a' lucid has'kubectl' from'gh-r' for sbin derailed/k9s

# making zinit believe that the version is outdated
zi run derailed/k9s sed -i 's/v[0-9.]\\+/v0.0.0/g' './._zinit/*'

# update isolated:
zi update derailed/k9s
# this prints:
# (Requesting `k9s_Linux_x86_64.tar.gz', version v0.20.1... Current version: v0.0.0.)
# ################################################################################################################################## 100.0%################################################################################################################################## 100.0%
# ziextract: Unpacking the files from: `k9s_Linux_x86_64.tar.gz'...
# ziextract: Successfully extracted and assigned +x chmod to the file: `k9s'.

# update with -p -q:
zi update -p -q
# this prints:
# Updating Zinit...

Expected behavior
After a successful update, zinit should print the name and version of the updated plugin.

Not sure what changed, but it's fixed now 👍


pug: code folding/collapse for big regions has to low offset

When having a blank line in a region, it doesn't collapse the whole tag-tree
https://user-images.githubusercontent.com/7195563/141366362-ad13564f-f363-487f-83f7-e77d90598dd3.mp4
Repro:
div
  div 1

  div 2

It's not perfect, but much better then before 🙂
I think (at least for me) it's okay for now 👍

@Shinigami92 Are there unhandled edge cases?

Yes, like:
https://user-images.githubusercontent.com/7195563/141466620-167f9f14-231e-4415-8759-7f965e5b1a31.mov
Running with "vue-tsc": "~0.29.4"
At the end of the video I use shift + click to collapse all nested at once
Ignore errors, I currently working on things with i18n :D

@Shinigami92 could you provide reproduce code?

@Shinigami92 could you provide reproduce code?

I will try over weekend

Sry, didn't had time ^^'
Hope I find time next days, but also will try out your newest change tomorrow at work

Using ~0.29.5 it works perfectly 🤩


TabBar Height

Expected behaviour
Tabbar should be small/fit
Actual behaviour

Code sample
App.js
import React, { PureComponent } from 'react';
import { Text, View, StyleSheet, Dimensions, WebView, NavigatorIOS } from 'react-native';
import { TabViewAnimated, TabBar, SceneMap } from 'react-native-tab-view';

const initialLayout = {
  height: 0,
  width: Dimensions.get('window').width,
};

const f1 = () => <WebView source={{uri: 'http://github.com'}} style={[ styles.container, { backgroundColor: '#ff4081' } ]} />;
const f2 = () => <WebView source={{uri: 'http://www.google.com'}} style={[ styles.container, { backgroundColor: '#ff4081' } ]} />;

export default class NavigatorIOSApp extends React.Component {
  render() {
    return (
      <NavigatorIOS
        initialRoute={{
          component: TabbedBrowsers,
          title: 'My Initial Scene',
        }}
        style={styles.container}
        tintColor="#008888"
      />
    );
  }
}

class TabbedBrowsers extends PureComponent {

  state = {
    index: 0,
    routes: [
      { key: 'f1', title: 'Github' },
      { key: 'f2', title: 'Google' },
    ],
  };

  _handleIndexChange = index => this.setState({ index });

  _renderHeader = props => <TabBar style={{flex: 1,
    flexDirection: 'column',
    justifyContent: 'flex-start',
    alignItems: 'baseline',

  }}   scrollEnabled={true} {...props} />;

  _renderScene = SceneMap({
    f1: f1,
    f2: f2,
  });

  render() {
    return (
      <TabViewAnimated
        navigationState={this.state}
        renderHeader={this._renderHeader}
        renderScene={this._renderScene}
        onIndexChange={this._handleIndexChange}

      />
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
});

this is my first approach to react-native, so i am not 100% sure if this is related to this library, but i still hope for help.
its just a proof, for one of our native ios app's, how it could be done in react.

don't use flex: 1 inTabBar styles. all those styles you have added are unnecessary.

@satya164 but without the flex  the tabbar  seems to be below tha navbar, on top.

this was my first try, and the reason i ended up trying the flex.

the navbar is absolutely positioned. Add a top margin to <TabViewAnimated />

thx  - i ended up using a scrollview arround the TabViewAnimated -> which gets the insets fixed (as it is the first scroll view in hirachy)
with that i don't need a magic number for padding:
for the record:
<ScrollView scrollEnabled={false}  contentContainerStyle={{flex:1}}>
      <TabViewAnimated
        navigationState={this.state}
        renderHeader={this._renderHeader}
        renderScene={this._renderScene}
        onIndexChange={this._handleIndexChange}
      />

      </ScrollView>


New version: astral-sh.ruff version 0.6.5

Created in https://github.com/stevenlele/winget-update/actions/runs/10852460734
Microsoft Reviewers: Open in CodeFlow

@wingetbot run


How to install with Network Service as Log on user

I'm interested in installing a service created with Topshelf using a batch file or Powershell script. I want to use Network Service as the user. Network Service does not have a password. I've tried installing with no password parameter, leaving the parameter blank and using two double quotes (i.e. empty string). The service does not get installed. Is there a way to do this with the install option, or do I have to install the service first and change the user after that? If the latter is true, how is that done? I've looked around for a way to do that (change log on user for a service), and have not found clear guidance on this matter.
Thanks for any help.

Closed due to inactivity.


variable VERSION_NAME is already defined in class BuildConfig

my .env.development:
VERSION_TAG = dev
VERSION_NAME = 1.1
my build.gradle:
android {
... ..
defaultConfig {
... ...
versionName project.env.get("VERSION_NAME")
}
my BuildConfig.java:
public final class BuildConfig {
... ...
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.1";
// Fields from default config.
public static final String VERSION_NAME = "1.1";
public static final String VERSION_TAG = "dev";
}
the error:
variable VERSION_NAME is already defined in class BuildConfig
public static final String VERSION_NAME = "1.1";
I want to config versionCode and versionName through react-native-config.
I don't get why this happened,
How to fix it?

react-native-config automatically populates some standard configuration variables.
Currently it generates these:
  public static final boolean DEBUG = false;
  public static final String APPLICATION_ID = "au.com.xyzzy";
  public static final String BUILD_TYPE = "release";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0.0";

You have defined a variable with the same name as one of the automatic variables.  In fact the README.md includes this example which is going to fail for the same reason:
versionCode project.env.get("VERSION_CODE").toInteger()

To fix it, rename your variable VERSION_NAME to something non-conflicting, like APP_VERSION_NAME.

@guyc That is an awesome feature, I didn't realize this package included those useful standard config variables. I initially installed another package just to get those until I came across this.
I think this would be great to add to the documentation, if you like I'd help put together the wording in a PR. I was trying to locate the code where it actually sets these variables but couldn't find it offhand, if you point me to the right place I can try to assist with that PR. Thanks!

Hey folks! VERSION_CODE is set by the Android platform itself, so when we try to set it in react-native-config it conflicts.
Would be nice to alert users of the conflict, or make some of these official (like version/bundle/etc)!

How to get Version Number and Build Number for iOS?

@iadcg have you figured it out? I need the same value.

I'm trying to access these automatic variables in RN but I'm unable to - am I missing something?
import Config from 'react-native-config'
Config.FLAVOR // undefined
Config // {}

Try change name in env the name of variable: VERSION_NAME


Runtime Error: segmentation fault codeowners-validator

Description
When I run the codeowners-validator executable, the following error is emitted:

[1]    83061 segmentation fault  codeowners-validator

Environment:

Terminal App
macOS Ventura 13.4.1
Intel Chipset

Expected result
I should see a help menu or script results.
Actual result
I get a segmentation fault error.
Steps to reproduce

Manually (or using brew) install version 0.7.4
Verify installation
Run codeowners-validator

Troubleshooting

I tried several installation methods and several invocation techniques. All result in that error.

This also happens to me when I download the Darwin-arm64 binary from the release page. A binary produced from main works.

Did a quick test. It might be some issue around upx:
❯ git rev-parse --verify HEAD
84b4fa2742240c05af8c81185e91947d90222106

❯ go build

❯ ./codeowners-validator --help
Ensures the correctness of your CODEOWNERS file.

Usage:
  codeowners-validator [flags]
  codeowners-validator [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  version     Print the CLI version

Flags:
  -h, --help   help for codeowners-validator

Use "codeowners-validator [command] --help" for more information about a command.

❯ upx -9 codeowners-validator
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2023
UPX 4.0.2       Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 30th 2023

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
  15186898 ->   8486928   55.88%   macho/arm64   codeowners-validator

Packed 1 file.

❯ ./codeowners-validator --help
[1]    1754 killed     ./codeowners-validator --help

Environment:

macOS 13.4.1 (c)
M2
go version go1.20.6 darwin/arm64


wrong number of arguments (1 for 0) for `flex'

Hello guys!
Thank you for your great gem!
I've got weird error. All other mixins (including flexbox) working fine. And I clearly see this mixin in code of local folder of bourbon. Can you tell me what can go wrong?

I'm guessing you upgraded Bourbon to a new version. The flex mixin has been removed since it is well supported without needing a prefix now. You can change the places you had @include flex; to just the regular display: flex;

Hello @joshuaogle !
Sadly no. I am using 4.2.7
Maybe It can be related to sassc?

Oh. Actually if it is good supported when no need to solve this issue/problem :)
Thanks!

Well in that case I'm not sure what the issue was, but glad that helps sidestep the issue. If you do need IE support further back, then Autoprefixer is the way to go.


Get proxy response time

It would be interesting to have the response time (in milliseconds) for each proxy.
Thus, we could obtain proxies by a filter on the maximum response time.
For example:
proxies = fetcher.get(
  timeout=3000
)
print(proxies)

Good idea. The problem is that most providers does not supply that information, so by filtering by response time you will significantly reduce your results.
Let me think about it.
Thanks for the great idea though!

aiohttp docs suggest to use loop.time() (which is also monotonic):
You can do something like this:
        proxy = Proxy(
            protocol=Protocols.HTTPS,
            ip='<IP_ADDRESS>',
            port='8080',
            country='',
            anonymity=Anonymities.UNKNOWN,
        )
        judge_protocol = Protocols.HTTPS if proxy.protocol == Protocols.HTTPS else Protocols.HTTP
        async with aiohttp.ClientSession(
            timeout=ClientTimeout(total=30),
            connector=ProxyConnector.from_url(str(proxy))
        ) as session:
            try:
                start = asyncio.get_event_loop().time()
                async with session.get(f"{judge_protocol}://httpheader.net/azenv.php", ssl=False) as response:
                    response_time = asyncio.get_event_loop().time() - start
                    print(f'Proxy: {proxy} is valid, response time: {response_time:.4f} sec')
            except Exception:
                print(f'Proxy: {proxy} is invalid')