chart.width: "100%" and chart.height: "100%" does not work properly

Codepen
https://codepen.io/xtech-dev/pen/VwwEQyM
Explanation
In my case chart container size is determined by parent elements and has both non zero width and height,. When setting chart.width: "100%" and chart.height: "100%" I'm expecting that chart will nicely fill the container. That doesn't happens because chart size exceeds container size.

What is the behavior you expect?
Chart should fill container area exactly with 100% width and 100% height.

What is happening instead?
Chart is overflowing container area.
https://i.imgur.com/gY8hTPo.png

What error message are you getting?
No error message in this scenario.

I have a similar issue when using 100% width and 100% height. This appears to happen during the initial render, as soon as the screen is resized it'll fix itself.

I am experiencing the same issue
On first page load:

On resize screen:

I fixed it in Vue.js using <client-only> around the chart

I am experiencing the same issue
On first page load:

On resize screen:

Same issue i am also facing

The same problem.

I've same issue :-(

Hello, same problem here with angular 10 module :(

Hello, I did a workaround and the problem has been solved.
First, In data property define the "renderKey": 0
data() {     return {       renderKey: 0       .....     }
Second, add a key as "renderKey" to the   to be like the code below:
<vue-apex-charts
                v-show="renderKey === 100"
                :key="renderKey"
                :height="300"
                :options="chartOptions"
                :series="series"
              >
</vue-apex-charts>

Third, in mounted add  the code below:
 setTimeout(() => {       this.renderKey = 100     }, 100)

Also experiencing this issue. The renderKey solution above does work, however this essentially disables the animation you see what loading the page, so it's not ideal.
No error in the console, it simply overflows its container then fixes itself when the screen is resized.

Hi, I have done this in react.js by updating the state value using the useEffect hook.
I have used preloader before showing the chart.
import React, { useState, useEffect } from "react";
import ReactApexChart from "react-apexcharts";
import { Spinner } from "baseui/spinner";

const ProductChart = () => {
  const [chartData, setChartData] = useState(null);

  // update state
  useEffect(() => {
    setChartData({
      options: {
        chart: {
          id: "basic-bar",
        },
        xaxis: {
          categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul"],
        },
      },
      series: [
        {
          name: "products shipment",
          data: [30, 40, 45, 50, 49, 60, 70],
        },
      ],
    });
  }, []);

  if (chartData) {
    return (

        <ReactApexChart
          options={chartData.options}
          series={chartData.series}
          height={"300"}
          type="bar"
        />

    );
  }
  return (

      <Spinner />

  );
};

export default ProductChart;

we can add a delay before render the chart by using setTimeout(). This solve in my case.

If someone is still facing the problem, simply do not wrap it in a flex container directly.
It will not work in the first case.
But, it will resolve the issue on the second one.

NOTE: I used React with Chakra UI, but it works with any framework.

 <Flex w="88%" h="350px">
    <ColumnChart
        width="100%"
        height="100%"
     />
 <Flex/>

<Flex w="88%" h="350px">
    <Box w="100%">
        <ColumnChart
           width="100%"
           height="100%"
        />
   </Box>
</Flex>

faced the same problem in vue-apexcharts and i solved it with this combination:

<ClientOnly>

      <apexchart
        :options="options"
        :series="series"
        height="75%"
        type="area"
        width="100%"
      />

  </ClientOnly>

If someone is still facing the problem, simply do not wrap it in a flex container directly. It will not work in the first case. But, it will resolve the issue on the second one.

NOTE: I used React with Chakra UI, but it works with any framework.

 <Flex w="88%" h="350px">
    <ColumnChart
        width="100%"
        height="100%"
     />
 <Flex/>

<Flex w="88%" h="350px">
    <Box w="100%">
        <ColumnChart
           width="100%"
           height="100%"
        />
   </Box>
</Flex>

this worked for me, thanks so much!

All of these solutions that I can see (I'm not familiar with Vue) only work if you explicitly set the height on some parent. In my dashboard, the chart is laid out in a flexbox row where the height is determined by the sibling elements. I'm seeing the same behaviour where the chart doesn't take up the full height, but if you resize the page it fixes the issue.

Hi, I have done this in react.js by updating the state value using the useEffect hook. I have used preloader before showing the chart.
import React, { useState, useEffect } from "react";
import ReactApexChart from "react-apexcharts";
import { Spinner } from "baseui/spinner";

const ProductChart = () => {
  const [chartData, setChartData] = useState(null);

  // update state
  useEffect(() => {
    setChartData({
      options: {
        chart: {
          id: "basic-bar",
        },
        xaxis: {
          categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul"],
        },
      },
      series: [
        {
          name: "products shipment",
          data: [30, 40, 45, 50, 49, 60, 70],
        },
      ],
    });
  }, []);

  if (chartData) {
    return (

        <ReactApexChart
          options={chartData.options}
          series={chartData.series}
          height={"300"}
          type="bar"
        />

    );
  }
  return (

      <Spinner />

  );
};

export default ProductChart;

Thanks a lot, this works perfectly in React.

My issue here was that may container has max-width 600px and initially the container has 400px so the chart rendered with 400. I had a api call wich toggled a condition to show a 600px width div. But the rendered chart was stillt 400px
So my solution
.page {
&__container {
width: 600px;
max-width: 100%;
}
}
The max-width i set so on mobile the container wont stick on 600px

I am also experiencing this problem with angular.  I've made minimal changes to the demo code, and it works if I set width=100%
but as soon as height=100% is added it displays complete blank except for the 3 lines in the upper right and corner that provide the ability to export image.
app.component.html looks like:

  <apx-chart
  [series]="chartOptions.series"
  [chart]="chartOptions.chart"
  [xaxis]="chartOptions.xaxis"
>
</apx-chart>

and  app.component.ts looks like:
import { Component } from "@angular/core";

import {
  ChartComponent,
  ApexAxisChartSeries,
  ApexChart,
  ApexXAxis,
  ApexTitleSubtitle
} from "ng-apexcharts";

export type ChartOptions = {
  series: ApexAxisChartSeries;
  chart: ApexChart;
  xaxis: ApexXAxis;
  title: ApexTitleSubtitle;
};

@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent {
  public chartOptions: ChartOptions;
  title!: 'Charting';

  constructor() {
    this.chartOptions = {
      series: [
        {
          name: "My-series",
          data: [10, 41, 35, 51, 49, 62, 69, 91, 148]
        }
      ],
      chart: {
        width: "100%",
        height: "100%",
        type: "bar"
      },
      title: {
        text: "My First Angular Chart"
      },
      xaxis: {
        categories: ["Jan", "Feb",  "Mar",  "Apr",  "May",  "Jun",  "Jul",  "Aug", "Sep"]
      }
    };
  }
}

I had the same issue, but I solved it like this -
`const [parentWidth, setParentWidth] = useState<string | number | undefined>(undefined);
const parentComponent = useRef(null);
useEffect(() => {
    let timeout: NodeJS.Timeout;

    const observer = new ResizeObserver(entries => {
        for (let entry of entries) {
            if (parentComponent.current === entry.target) {
                timeout = setTimeout(() => {
                    setParentWidth(entry.contentRect.width);
                }, 500);
            }
        }
    });

    if (parentComponent.current) {
        observer.observe(parentComponent.current);
    }

    return () => {
        observer.disconnect();
        clearTimeout(timeout); // Clear the timeout on component unmount
    };
}, []);

`


Cloning doesn't carry over IC flavor text

Description
When cloning a person, the flavor text component is not carried over, and is lost.
Didn't think of that when coding it. Oops.
Reproduction
Make a character with flavor text.
Scan.
Die.
Get cloned.
Examine yourself.

mind moment


CodeLens becomes unresponsive / frozen

Issue Type: Bug
I am developing an extension that uses the codelens feature.  Upon initial window load, the codelenses render correctly and clicking the codelens command links functions properly.  After some period of time and/or interaction, the existing codelenses rendering in the document are no longer clickable (css pointer not updated) and no further codelens updates are rendered in the page, or any other page.  When this occurs, the codelens provider continues to be invoked (meaning, vscode is still asking for (and getting) codelenses; this is true when the provider is implemented via the javascript codelens provider API or as an LSP implementation). As such, this appears within an issue within vscode itself.
This erroneous behavior is observed either within a debug context (while developing the extension) or after locally installed it.
I cannot reproduce the specific condition that causes it.  I have ruled out unhandled promise rejections inside the command handler implementations by wrapping all these with try/catch blocks.
Unfortunately, the extension is unshippable in this state; although it works for a time, it consistently becomes unusable.
What could be causing this?  Any method to debug this?
Log (shared) reports the following, but I don't think it is related as it occurs on window startup and not during the transition from not-broken to broken:
[2021-06-19 12:39:40.128] [sharedprocess] [error] [uncaught exception in sharedProcess]: The "path" argument must be of type string. Received type undefined: Error: The "path" argument must be of type string. Received type undefined
    at C (file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/sharedProcessMain.js:14:14258)
    at Object.basename (file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/sharedProcessMain.js:14:22494)
    at i.groupImportantTipsByExe (file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/sharedProcessMain.js:47:5099)
    at i.collectTips (file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/sharedProcessMain.js:47:4594)
    at async file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/sharedProcessMain.js:47:3791

VS Code version: Code 1.57.0 (Universal) (b4c1bd0a9b03c749ea011b06c6d2676c8091a70c, 2021-06-09T17:22:31.215Z)
OS version: Darwin x64 20.5.0
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz (16 x 2300)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 2

Memory (System)
32.00GB (8.41GB free)

Process Argv
--crash-reporter-id b11ac3c5-a741-4d56-9951-728701adef0a

Screen Reader
no

VM
0%

Extensions (10)

Extension
Author (truncated)
Version

go
gol
0.26.0

file-downloader
min
1.0.11

remote-containers
ms-
0.183.0

remote-ssh
ms-
0.65.7

remote-ssh-edit
ms-
0.65.7

remote-wsl
ms-
0.56.5

vscode-remote-extensionpack
ms-
0.21.0

bazel-stack-vscode
Sta
0.7.1

rewrap
stk
1.14.0

vscode-proto3
zxh
0.5.4

I believe I figured it out.  The LSP server I'm implementing was leaking debug messages to stdout.  Given the LSP protocol uses stdin/stdout for JSON communication, this was borking the connection.
I'd still say this is a bug either with vscode-languageserver-node or vscode given the codelens labels get hung in the UI with no discernable feedback or debug information, but it's due to a bad extension implementation.


asv html site not working correctly

I am having issues previewing the HTML results site for the following example repo:
https://github.com/astrofrog/asv-debug
If I clone this, then do:
asv publish
asv preview

then click on one of the preview graphs that appears, the resulting pages are very slow and show either no results or only some of them.

The problem is in how graphdisplay.js deals with environment parameter permutations.
In particular, on graphdisplay.js:779, var state_permutations = permutations(state); generates 16200 combinations --- of which only 5 are valid. Since the valid combinations are known at asv publish stage, this part needs to be rewritten so that index.json contains a list of available combinations, and the list is filtered based on state in graphdisplay.js:replace_graphs.collect_graphs.
Permutation generation is OK for parameterized benchmarks, since for those all combinations are anyway generated, but not for the machine parameters where the result set can be much sparser.

iow, not a new bug afaics, but requires just running on more environment combinations than what anyone seems to have tested before this

@pv - ok, thanks for clarifying this! Just for info, I'm also running into this for another benchmark repo where I've added a second set of results - I think because all the version numbers for dependencies differ, the number of permutations is again very large.

fix in #440


Combine MET Surface and MET Air Quality apps

In METexpress there is a MET Surface app and a MET Air Quality app. However, air quality is a surface field and was originally included in the v1 MET Surface app. I split it off into its own app because Air Quality was on the list of desired apps that we received from EMC. However, this did result in extra code to maintain, so at this point I'd like to combine them back into one MET Surface app.

Done.


move CI to GitHub Actions, add fix for Python 3.9 ast

Only relevant change for 3.9 is in ast.Subscript (https://bugs.python.org/issue34822).

Thanks for doing this! As soon as we have some basic documentation I'm planning on working on this.


GG-12775 Backport fixes for NPE in GridDhtPartitionDemander

Closing in favor of https://github.com/gridgain/apache-ignite/pull/84


fix(cyclops-ui): path link on module card fixed

closes #336
📑 Description
✅ Checks

[x] I have updated the documentation as required
[x] I have performed a self-review of my code

ℹ Additional context
This PR fixes incorrect path url on the module card.
Path URL will contain resolvedVersion if it is not empty else it uses version and if both are not null then main

@petar-cvit can you please review this PR in your free time?

@petar-cvit made suggested changes and squashed them


XeroTenant is actually a connection, not a tenant

This model is named XeroTenant:
https://github.com/calcinai/oauth2-xero/blob/master/src/XeroTenant.php
For people coming new to this provider, that can be somewhat confusing, since it does not represent a tenant. It is the Xero connection model - the linking model, or pivot model, providing the many-to-many join between the resource owners (aka users) and the tenants (usually organisations).
Ideally this model would have a different name, IMO. That would be a breaking change, that you would not want to do, but would it be worth making this clearer in the documentation?
Simialarly, the "access token" returned by the driver is not actually the access token, but what Xero call the "token set", which consists of an access token, renewal token, expiry, list of scopes, and optional identifier token. It's confusing but kind of hard-coded into the League parent library now, so difficult to change. It is confusing having the need to get the access token from the "access token", and the identity token also from the "access token", mainly because the access token fetched by getAccessToken() is not actually an access token, which needs to be understood. Again, unless it is just me being easily confused by naming, would a section in the documentation help?

If you'd like to update the readme, feel free!  I've tried to keep this provider consistent with the other providers but may have missed something!


Simplify Installation Process

Deploy the quay.io images produced by Travis by default.
Add make install targets:

Rename crd.sh to shipwright.sh.
Add subcommands to install only the apis, sample strategies, and the
operator.
Add install targets to the Makefile

Update README to improve getting started experience.
Update make commands used to run CI tests.

@adambkaplan thanks. I think setting to latest in pr code change have an implication:
Currently when crd.sh is executed, it applies the operator.yaml which fails because the image doesn´t exists. If we merge this PR, this will not longer fail and we will get two build-operators on the cluster when running e2e tests.  This scenario might work, while one build-operator will be watching for resources in the build-operator namespace, and the one we start in e2e test will be watching other namespaces afaik. This might work but is not ideal, so we should fix this. I think is a known bug nobody have fixed. What this fix implies is that during e2e tests execution, we are not applying those resources under https://github.com/shipwright-io/build/tree/master/deploy, to avoid this situation.

Having two controllers running in the e2e is not ideal, especially if they are vying for leader lock. That would make it difficult to tell if we are testing the right thing.
I'll see if in the e2e I can scale the "official" operator to 0 before the tests run.

Added wip for the time being @adambkaplan as this is not ready for a longer time now to prevent reviewers from checking it. Please remove it once there is a solution for the e2e tests. Thank you.

@SaschaSchwarze0 expanded the scope of this PR a bit:

Made the install experience cleaner via a make install command.
Updated the commands that invoke the e2e tests so that we don't deploy the operator directly.

Nice work @adambkaplan.
Regarding @qu1queee concern about the script name. I agree that shipwright.sh is not ideal, but in my opinion, build.sh can also irritate as one might assume it runs a build of the project. kube-resources.sh or build-k8s-resources.sh might be neutral names.
Regarding @qu1queee's shellcheck suggestions, I can suggest the VS code extension. Works nice for me.

@qu1queee @SaschaSchwarze0 feedback incorporated and pushed.
I decided to name the script shipwright-build.sh so the commands <un>install <component> flowed naturally, while making it clear that the script installs the build system of the project. I also updated the components to be a bit more neutral:

apis - for the CRDs.
controllers - this replaced the previous "operator" terminology.
strategies - for the sample build strategies.

There is still a bit of naming that IMO we should re-evaluate (ex - the operator.yaml file, the shipwright-operator image name). Does it make sense to continue the discussion in the "operator/controller" issue I filed a while back? See #310

@adambkaplan yeah, is fine to continue in 310. I broke your PR, I will send you a "git suggestion" to fix this later, so we can merge this one today.

@qu1queee @SaschaSchwarze0 this should be ready to go now. Commits squashed and had a green test run.

/lgtm

/approve


Too few arguments to function Victorybiz\LaravelTelInput\LaravelTelInput::__construct()

> Illuminate\Foundation\ComposerScripts::postUpdate
> @php artisan ide-helper:generate

   ArgumentCountError

  Too few arguments to function Victorybiz\LaravelTelInput\LaravelTelInput::__construct(), 0 passed in /var/www/html/vendor/victorybiz/laravel-tel-input/src/LaravelTelInputServiceProvider.php on line 76 and at least 1 expected

  at vendor/victorybiz/laravel-tel-input/src/LaravelTelInput.php:17
     13▕      * Create a new component instance.
     14▕      *
     15▕      * @return void
     16▕      */
  ➜  17▕     public function __construct(string $id, string $name = 'phone')
     18▕     {
     19▕         $this->id = $id;
     20▕         $this->name = $name;
     21▕     }

      +28 vendor frames
  29  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()
Script @php artisan ide-helper:generate handling the post-update-cmd event returned with error code 1

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

I think id should at least have a default value (null, '').
Also do you need to use directives? I want to use Laravel Mix.

The default value for id has been set in v1.1.6, run composer update to install the changes.
The package works with Laravel Mix... The directives are required, you need to ensure the directives are placed in the appropriate areas as stated in the installation section of the README to have the component work in your project.


Use built-in log.warn function from Tailwind CSS

This PR improves the warning message to be consistent with the default warnings you get from Tailwind CSS.
The log.warn function ensures that, given a key, the warning is only logged once instead of n times in case the function is invoked multiple times.

Closing in favor of #28 👍


Update native-modules-ios.md

No, before resolve and reject parameters in Promise example
Thank you for the PR! Contributors like you keep React Native awesome!
Please see the Contribution Guide for guidelines:
https://github.com/facebook/react-native-website/blob/master/CONTRIBUTING.md
If your PR references an existing issue, please add the issue number below:
#

Good catch, can you also apply your changes to the versioned_docs?


atomic: portable atoms

close #27
I've made the decorators dummy decorators if we're on the server
Some API questions:
We could use a decorator - @portable_atom
I've made all atoms portable classes that use the default name argument
This would be a problem if someone decides to use custom names because they're doing stuff on uplink
But there's no public api for accessing a portable_class's registered name information
So I can't really see a way around this - apart from using a custom @portable_atom decorator

@portable_atom seems clean and clear to me.

Nice! I'll have a play with this!

Please do - I did have a little play with the app you wrote to see if I could send things back and forth and it seemed to work ok.
Now to do the advanced capability stuff 😉

In that example app, there's a comment on the repeating panel template about how I can't use writeback there.
I'll have a play, but I'm guessing that might still be the case.
i.e.  TodoList is an atom with a todos attribute being a list/dict of Todo instances. If a Todo attribute changes, I'm guessing the TodoList renders won't get called.

To the TodoList renders wouldn't get called - that would be too expensive for a change in a checkbox value.
I might also do something like
writeback(self.check_box_1, "checked", lambda: self.item.done, self.item.set_done, ["change"])
# where set_done is an action that triggers the save

Yeah, I don't think there's a way to avoid an action on the Todo itself.


Data sets provided

Hi, I have a problem reproducing the NGSIM results of your program, I processed the raw data using the data preprocessing code of CS-LSTM as you said, but the result after processing is not the same as the dataset you provided, can you provide a copy of the data preprocessing code? Also, I found that your error on the NGSIM dataset is very small, did you add filtering and other operations in the data preprocessing process?

There were no filters applied to NGSIM data during preprocessing. Please find the example code for creating text files out of Matlab files.
cslstm_mat_to_text.py.zip


Better snapshot management: no duplicates; keep same snapshot alive; better cleanup

Motivation
Current snapshot logic seems a bit finicky:

Callling evm_snapshot multiple  times will create duplicate copies (even though they should be identical)
reverting to a snapshot will remove it from the active_snapshots list, even though it is theoretically still valid, and would be useful to allow users to continuously revert to the same past point. The backend re-pushes it to the same db, but since we remove it from active_snapshots it becomes unreachable by the RPC anyway
the DB deletes all future snapshots, but the backend active_snapshots map would retain them

All these problems get exposed a bit more due to what I'm also proposing in #6364 . for an outside application to manage and view snapshots, this would be very limiting
Seems this was sort of tackled at #5487, but not fully?
Solution

if evm_snapshot is called at a point for which a snapshot already exists, we do nothing and return that same ID instead
during evm_revert, we don't remove the snapshot from the list, instead we clone it, apply it, and remove only future ones

Need some help particularly reviewing the ForkedDatabase part. not as familiar with that side of the codebase


Fix: Updated dever-env-id to defer-env-id in Cloud CLI docs

What are you changing in this pull request and why?

Ref issue: https://github.com/dbt-labs/docs.getdbt.com/issues/4337
This PR fixes a typo in our Cloud CLI docs, updating dever-env-id to defer-env-id.

Straightforward :)
I admittedly have not tested this, and I'm not even sure how - but hoping this is straightforward and perhaps doesn't require versioning?
Checklist

[ ] Review the Content style guide and About versioning so my content adheres to these guidelines.
[ ] Add a checklist item for anything that needs to happen before this PR is merged, such as "needs technical review" or "change base branch."

Adding new pages (delete if not applicable):

[ ] Add page to website/sidebars.js
[ ] Provide a unique filename for the new page

Removing or renaming existing pages (delete if not applicable):

[ ] Remove page from website/sidebars.js
[ ] Add an entry website/static/_redirects
[ ] Ran link testing to update the links that point to the deleted page

Closes https://github.com/dbt-labs/docs.getdbt.com/issues/4337


Videos do not play

Bug description
Opening videos will show the tags and the video controls, but the video itself, as well as audio, will not play. I have attached a GIF displaying this issue below.
Steps to reproduce

Search for webm
Open any result that is an MP4 or webm
See that it doesn't display the video or play audio

Expected behavior
Video and audio (if there is any) to display inside the preview window that opens when you click on a result.
Context
Log: main.log
Settings: settings.txt
I had to change the extension to .txt to upload this, it is still .ini on my pc
Screenshots

System information

OS: Fedora Linux 35 (Workstation Edition) 64 bit
Grabber version: 7.9.0 (x86)

Additional Context
I am using the AppImage release of Grabber, I have not tested any other release type.

I have noticed that when trying to open a video result, and then checking the log, it spams the following warning:
[20:17:24.625][Warning] [Qt][default] Error: "" : "no element \"identity\""
[20:17:24.627][Warning] [Qt][default] Error: "" : "no element \"identity\""
[20:17:28.974][Warning] [Qt][default] Error: "" : "no element \"identity\""

Same on Manjaro Linux with AppImage from https://github.com/Bionus/imgbrd-grabber/releases/download/v7.9.0/Grabber_v7.9.0-x86_64.AppImage . Log: main.log
But it works fine in the version installed from AUR.

Strange, are gstreamer plugins not bundled with the AppImage, but are getting installed when installed from AUR? (or maybe already on the machine?) 🤔
Is the same issue there on previous releases? (I don't have a Linux on hand right now)

I've tested every single available appimage from v7.8.1 to v7.4.0 and none of them seems to be able to play videos. The only difference is that 7.4.2 showed the following message after downloading video:

I don't like one thing that Grabber shows x86 in its About dialog, while my system is x64. I'll try to google in that direction.

This is a bit late but the problem lies with the user not having all the gst-plugins installed and the the AppImage not containing them either, nor them being a required dependency when installing off AUR with yay/paru for example. Qt-gstreamer should be added to the depends of the PKGBUILD and those libs should be included in the AppImage as well. Imgbrd-grabber-bin on AUR also lacks this dependency.

I had the same issue building from source on Debian 12. I needed at least one of the gst-plugins-good to play mp4
 [11:03:54.672][Warning] [Qt][default] Warning: "No decoder available for type 'video/quicktime, variant=(string)iso'."


Check on the main page for broken images

Description: You must check on the main page for broken images.
Precondition: The website is up and running

Step 2: Check on the main page for broken images on your mobile.

Expected result: All images from the main page should be displayed on your mobile.


add eslint + small formatting changes

I'd prefer to format with prettier if that's OK (I know the formatting needs cleaned up though).

I've not looked into it too much, but would it be worthwhile to extend prettier/react as well - https://github.com/prettier/eslint-config-prettier.  I'm not exactly sure what it does, but I've seen other configs reference it (I think to keep eslint/prettier from interferring more).  I've only used eslint or prettier in isolation TBA.

Thanks!


// Using Serial.end() to plug a power leak on an un-powered serial port //

It appears Snooze doesn't shut down the serial ports before hibernating. I'm using serial2 and serial3 on the Teensy 3.2 and I'm seeing ~13mA draw on each port in the hibernate mode. I'm guessing that the devices on these ports are pulling power even though they are powered down. If I use Serial.end() on both ports before calling Snooze the power leak is gone. Of course, I need to remember to call Serial.begin() for both ports after I wake back up.

Yes, pins configuration matters a lot in low power, SPI also will do this also.
If you look at the examples there is one for a 'skeleton driver class' where you can make your own drivers which could help for your issue with the serial ports. Once you have this class (driver) you can use it like any other driver that is currently part of the core (timer, clock, digital etc..).
You don't need to use this driver and just call the code in the sketch but it makes it cleaner and gives you more control of what order you want your drivers called.

Perfect, I'll work on a driver.


Update ngrok to 2.1.14

Haha whoops, looks like you can download https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-WHATEVER-windows-amd64.zip and it still works. Might just have to keep an eye on it and see what happens when they update the .zip version.


Improvements based on feedback + MKR Compensation split

2021-04-28 Changes:

Integrations Incubation Team is joining the SES Permanent Team instead. The Integrations Core Unit was removed from the Incubation Program for now.
Added potential new Incubation Projects.
Updated Project X-Ray Objectives.
Confirmed Seb as our Self-Accountability Auditor.
Updated URLs to point to our new Google Drive.

Modified Budget Implementation Subproposal, removing MKR Compensation (which will come in a future subproposal).
@LongForWisdom , @CPSTL , @blimpa ,
changes to reflect Forum Updates.

Budget Implementation mechanic was defined in detail
Multi-sig wallet addresses were added
Expectations around MKR incentives were added
Salary changes

Adding 2 legal roles (2 x 0.4 FTE)
Moved 3 Integrations Engineers from the Incubation Program to permanent team (3 FTEs total)

LGTM! Thanks, Juan.


Cannot evict pods with PDB when all hosting nodes are expired at the same time

Version

Karpenter: v0.8.2

Kubernetes: v1.22 (EKS)
Expected Behavior

I deployed a sample deployment with 3 replicas. This deployment has a PDB with minAvailable: 2 to ensure that Karpenter keeps my app running during node expiry etc.
For a kubernetes version upgrade, I manually set ttlSecondsUntilExpired to trigger a k8s node expiry which will bring up new nodes with the new version.
If the nodes hosting those pods are expired at the same time, I'd expect Karpenter to move the pods to newly created nodes, while respecting the PDB (i.e. one pod at a time).
Actual Behavior

Unfortunately, if the underlying nodes of the deployment are expired at the same time, Karpenter appears to be stuck in a loop:

All nodes hosting the deployments transition to state Ready,SchedulingDisabled
One pod is deleted, and Karpenter successfully brings that pod up on a newly created node (which makes sense, since that pod can be deleted while still fulfilling the PDB)
However, the other two remaining pods are never deleted. In Karpenter's log the line Cannot evict pod as it would violate the pod's disruption budget. for the two remaining pods appear forever.
I can only recover from this state by manually deleting the pods on the expired nodes, so that Karpenter fully deletes the nodes and spawns pods on the new nodes.

Steps to Reproduce the Problem

Create a EKS cluster and configure Karpenter (I deployed Karpenter on Fargate instead of EC2, so that my sample deployment does not end up on a non-Karpenter node group)
Apply a sample Deployment with 3 replicas -> Karpenter will bring up necessary nodes and spawn the pods
Apply a PDB with minAvailable: 2
Keep the nodes running for some minutes
Set ttlSecondsUntilExpired on the Provisioner lower than the age of the nodes, so that they are expired immediately.

Resource Specs and Logs
Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
  namespace: app
spec:
  selector:
    matchLabels:
      app: app
  replicas: 3
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
        - image: brndnmtthws/nginx-echo-headers
          name: app
          ports:
            - containerPort: 8080
          resources:
            requests:
              cpu: 1

PDB:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: app-pdb
  namespace: app
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: app

Provisioner:
  apiVersion: karpenter.sh/v1alpha5
  kind: Provisioner
  metadata:
    name: default
  spec:
    requirements:
      - key: karpenter.sh/capacity-type
        operator: In
        values: ["spot", "on-demand"]
    limits:
      resources:
        cpu: 1000
    provider:
      subnetSelector:
        karpenter.sh/discovery: ${local.cluster_name}
      securityGroupSelector:
        karpenter.sh/discovery: ${local.cluster_name}
      tags:
        karpenter.sh/discovery: ${local.cluster_name}
    ttlSecondsAfterEmpty: 30
    # set manually after some time.
    # ttlSecondsUntilExpired: 900

Karpenter logs: https://gist.github.com/MatthiasWinzeler/2f9c2e93dae377f458829a23564cf5d7

FWIW, it all works fine if the nodes are expired one after another.

Quick update: I noticed that the two remaining pods are indeed eventually evicted. It just takes time. For example, for my deployment with 3 replicas all pods were moved after ~10 minutes, sometimes a bit longer.
Another problem that then surfaced was that I set ttlSecondsUntilExpired rather low for testing - i.e. 15 minutes - and so Karpenter started to expire the new nodes already, causing chaos. I think a low ttlSecondsUntilExpired could indeed cause issues for bigger clusters with lots of PDBs where such a rollout could take longer.
I wonder what the best practice for such a forced rolled out would be for operators that don't want to set a permanent ttlSecondsUntilExpired:

Set ttlSecondsUntilExpired to a value lower than the youngest node age, but higher than the expected time for all pods to be rolled out - maybe 3-4 hours?
After all new nodes are rolled out, but before ttlSecondsUntilExpired, remove ttlSecondsUntilExpired
Or could the value theoretically be removed right after it triggers the expiry?

Maybe we could add such a recommendation to the documentation.

I read this as a feature request for an "imperative upgrade mechanism". I can potentially see implementing this using: https://github.com/aws/karpenter/issues/1457

@ellistarn thanks for the prompt response!
Yes, in the end such an imperative upgrade mechanism is what we're looking for. For the moment, I can confirm that the following workaround does the job:

Add ttlSecondsUntilExpired to a value higher than the youngest node
Observe that all nodes are expired immediately - nodes go into state Ready,SchedulingDisabled
Right after the nodes went into state Ready,SchedulingDisabled, ttlSecondsUntilExpired can be removed again

This process should suffice for us to implement a manual k8s node upgrade without downtime, since PDBs are respected.
This worked for us even with very young nodes/very low ttlSecondsUntilExpired (i.e. 2 minutes).
I'm fine with closing this issue, WDYT?

@MatthiasWinzeler Sounds good, I'm going to close this as a duplicate of #1018 which has more discussion on providing control over the node recycle process.
However, we wanted to make you aware of Karpenter's existing support for node deletion that may be easier to script/use than changing the provisioner ttlSecondsUntilExpired and changing it back.  Karpenter places a finalizer on nodes that it creates, if you delete those node objects (e.g. kubectl delete node nodename), the node will be cordoned, drained and the EC2 instance will be terminated.

@tzneal many thanks for this piece of information!
I just tested it and it works flawlessly; for our use case (imperative node upgrade) the approach of deleting (all or selected) nodes is even better than setting ttlSeconsUntilExpired. Thx!


[WIP] default to global.imageRegistry when defined.

updated all image: references to a consistent template call.
reconfigured template cilium.image to image.url and made it apply
generically to all images.
fixed up the values for all image references to be consistent for digest handling.

Since this change references a global variable global.imageRegistry this value can be inherited from parent charts.
for reference the image.url template assumes the following definition of an image url:
quay.io/cilium/cilium:latest@sha256:23423423423423423
registry is the value before the first /
repository is the remaining text until :
tag is the text before @
the last bit is the image digest.

Since these are the assumptions, all images should have the following values when defined in the values file:
image:
  registry: quay.io
  repository: cilium/cilium
  tag: latest
  pullPolicy: Always
  # cilium-digest
  digest: ""
  useDigest: false

and when we template the image url:
image: {{ include "image.url" (list $ . .Values.this.image) | quote }}

This passes to the image.url template the global scope (which would include .Values.global) and the local scope so that we can default to the local registry value if the global imageRegistry is not defined.
Fixes: #17203
with this change a user can optionally set global.imageRegistry and this change the registry part of the image url.

Signed-off-by: Duffie Cooley<EMAIL_ADDRESS>

@seanmwinn here is a wip on the helm global.imageRegistry stuff.

Don't merge => draft :smile_cat:


clean some redundant else clauses

related issue:  #13296
Signed-off-by: Zhang Wei<EMAIL_ADDRESS>

DockerSuite.TestLogsFollowGoroutinesWithStdout seems failed, is that my problem?

I think TestLogsFollowGoroutinesWithStdout  is unrelated, see #13233

@WeiZhang555 it's unrelated as already said, tests are running again. Besides this, LGTM

LGTM

LGTM
even if in units you can remove all else clauses :)

yeah maybe a switch would have worked there, thanks @WeiZhang555 btw!


Fix problems with processing images of different sizes

Made EOS_ON_FRAME_PARAMS_CHANGE parameter in image source adapter configurable.
Added pipeline.source.properties.eos_on_frame_resolution_change config in module.
Added reusing existing nvjpegenc elements on dGPU to prevent GPU memory leak.

@tomskikh please fix conflicts

@tomskikh please fix conflicts


Header size

How could I change this? It looks way to big, especially for small devices:

Sometimes, buttons are not even displayed at all

Wenn is an update planned to show the overflowed buttons?
Is it possible to upgrade the deprecated WillPopScope function?
Are works ic progress or do you need and appreciate contributions?

Hi @xunreal75,
Thank you for your interest in our project!
We want to let you know that this package is maintained on a biannual basis, with updates and reviews happening every six months. We are always open to contributions and greatly appreciate community involvement.
If you have any ideas, improvements, or bug fixes, please feel free to submit a pull request or open an issue. Your contributions are valuable to us, and we look forward to collaborating with you.


TS Query Builder always uses camelCase naming, but Swagger Spec requires PascalCase when using [FromQuery]

Version
2.15.0
Details
Using Gridify and heyapi to get the query options from the URL like so:
    public async Task<IActionResult> GetTasks([FromQuery] GridifyQuery query)

produces the following client type
export type GetApiTasksData = {
    query?: {
        Filter?: string;
        OrderBy?: string;
        Page?: number;
        PageSize?: number;
    };
};

However, the TS Gridify Query builder produces always lowercased query options. This makes the types incompatible without additional mapping or recasting.
Funnily enough, at runtime, it doesn't matter whether the query params are PascalCase or camelCase.
I am assuming that this is just missing something to tell swagger.
Steps to reproduce

Acquire the query options using [FromQuery] like above.
Check out the Swagger Schema.

Hi @max-scopp,
I have so many questions about this, and unfortunately, I'm not familiar with Heyapi. To make it short, is there any specific error you're facing? As you said, query strings are not case-sensitive, so you shouldn't have any problem. Do you have any custom JSON serializer settings for your project?

Thank you for taking the time to look into this.
To clarify, we’re not using any specific converters that might interfere with serialization.
In brief, Heyapi utilizes the Swagger JSON to auto-generate a client that allows data fetching without manually managing interfaces, requests, or transformations (like converting strings to Date objects). It’s quite effective at sticking to the Swagger spec, which, in this case, results in TypeScript types that aren't compatible with Gridify’s QueryBuilder.
I’ll outline the situation as I understand it (from my experience and input from a backend colleague):
By default, .NET converts DTO properties in request and response bodies to camelCase.
This default also informs Swagger for requests that involve a request body.
For GET requests, however, we rely on search params for query options instead of a request body.
It seems that .NET lacks a configuration to enforce camelCase naming conventions for these query parameters.
As a result, Swagger leaves the DTO property names as they are, leading to PascalCase names in the spec, which aligns with .NET standards.
So, while query parameters are case-insensitive at runtime, Heyapi reads the Swagger spec exactly as written and generates corresponding TypeScript types with PascalCase, which makes them incompatible with Gridify’s QueryBuilder.
In short, the issue seems to be that Swagger is missing configuration to enforce camelCase for query parameters in the generated spec. I’ll add a minimal demo tomorrow when I’m back at work.


[Bug]

Version
5.2.2
Link to minimal reproduction
https://jsfiddle.net/09z8yutx/
Steps To Reproduce
Get to the link
Current Behavior
Legend items are not square.
Expected Behavior
Legend items should be square.
Environment
- OS: ubuntu20.04, win10
- Browser: Firefox
- Framework: -

Any additional comments?
No response

I think this is the one you looking for

I think this is the one you looking for

Thanks, that's what I was looking for!


Found broken /api link. Please fix!

Add a page for /api

Idk how to do it. :/
Normally making the api.mdx doesn't work. Maybe because I have /api/ folder in public?

Added pull request #4


LuxCore not rendering on CPU

I'm trying to render glass with caustics. When I select CPU, it processes apparently normally, i.e. the processor gets at full power and the samples counter adds up at some samples/second. But I get only the background rendered, i.e. black or a HDRI, if there is one. It happens for both light integrators — pathtracing and bidirectional.
When I select GPU with OpenCL or CUDA, it renders normally, but Light Tracing, which is required for caustics to work, is not visible, because it is done on the CPU. So I get the rendered image with no caustics.
Tested with LuxCore Blender 2.6 on Blender 3.6 and 2.8 Alpha on Blender 4.0.
System:

O.S.: Ubuntu 22.04 LTS
CPU:  Intel i7-13700K
GPU: NVIDIA GeForce 4070 ti
GPU driver: NVIDIA 535.

Please upload a test file which show the problem.

Test file

For me, the file renders fine. Can you explain the problem more in detail and make screenshots?

Rendering with CPU as compute device:

Using GPU as compute device:

@neo2068 what other information do you need? Everything rendered on the CPU gets invisible, except for the background colour/sky/HDRI. What could be the cause? Do you suggest some test for me to do?

I just found the version 2.61 is working fine with Blender 3.4.1. So it must be some regression with the newer versions.

Thanks for the screenshots. It is very strange. Are there any error messages in the console?

Thanks for the support. When opening Blender, selecting LuxCore as rendering engine and rendering the default cube without changing anything, I get for Blender 3.41:
Read prefs: /home/luiz/.config/blender/3.4/config/userpref.blend
RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xf . Check the section C-API incompatibility at the Troubleshooting ImportError section at https://numpy.org/devdocs/user/troubleshooting-importerror.html#c-api-incompatibility for indications on how to solve this problem .
ImportError: numpy.core._multiarray_umath failed to import
BlendLuxCore 2.61alpha registered (with pyluxcore 2.6)
Updating device list
==================================================
[Engine/Final] Rendering layer "ViewLayer"
[Exporter] Creating session
[SDL][8.533] Define ImageMap: NamedObject
[SDL][8.534] Camera type: perspective
[SDL][8.534] Camera position: Point[7.35889, -6.92579, 4.95831]
[SDL][8.534] Camera target: Point[6.70733, -6.31162, 4.51304]
[SDL][8.534] Camera clipping plane disabled
WARNING: Material "Material": Missing node tree
[SDL][8.534] Material definition: Material139762912581256
[SDL][8.534] Scene objects count: 1
[SDL][8.534] Light definition:<PHONE_NUMBER>07752
[SDL][8.534] Light definition: __WORLD_BACKGROUND_LIGHT__
[LuxCore][8.543] Configuration:
[LuxCore][8.543]   path.pathdepth.total = 7
[LuxCore][8.543]   path.pathdepth.diffuse = 5
[LuxCore][8.543]   path.pathdepth.glossy = 5
[LuxCore][8.543]   path.pathdepth.specular = 6
[LuxCore][8.543]   path.hybridbackforward.enable = 0
[LuxCore][8.543]   path.hybridbackforward.partition = 0.8
[LuxCore][8.544]   path.hybridbackforward.glossinessthreshold = 0.049
[LuxCore][8.544]   film.noiseestimation.warmup = 8
[LuxCore][8.544]   film.noiseestimation.step = 32
[LuxCore][8.544]   sampler.sobol.adaptive.strength = 0.9
[LuxCore][8.544]   sampler.sobol.bucketsize = 16
[LuxCore][8.544]   sampler.sobol.tilesize = 16
[LuxCore][8.544]   sampler.sobol.supersampling = 1
[LuxCore][8.544]   sampler.sobol.overlapping = 1
[LuxCore][8.544]   renderengine.type = "PATHCPU"
[LuxCore][8.544]   sampler.type = "SOBOL"
[LuxCore][8.544]   film.width = 1920
[LuxCore][8.544]   film.height = 1080
[LuxCore][8.544]   film.filter.type = "NONE"
[LuxCore][8.544]   film.filter.width = 1.5
[LuxCore][8.544]   lightstrategy.type = "LOG_POWER"
[LuxCore][8.544]   scene.epsilon.min = 1e-05
[LuxCore][8.544]   scene.epsilon.max = 0.1
[LuxCore][8.544]   path.albedospecular.type = "REFLECT_TRANSMIT"
[LuxCore][8.544]   path.albedospecular.glossinessthreshold = 0.05
[LuxCore][8.544]   film.opencl.enable = 1
[LuxCore][8.544]   film.opencl.device = 0
[LuxCore][8.544]   path.forceblackbackground.enable = 0
[LuxCore][8.544]   renderengine.seed = 1
[LuxCore][8.544]   film.outputs.0.type = "RGB_IMAGEPIPELINE"
[LuxCore][8.544]   film.outputs.0.index = 0
[LuxCore][8.544]   film.outputs.0.filename = "RGB_IMAGEPIPELINE_0.png"
[LuxCore][8.544]   film.outputs.1.type = "RGB_IMAGEPIPELINE"
[LuxCore][8.544]   film.outputs.1.index = 1
[LuxCore][8.544]   film.outputs.1.filename = "RGB_IMAGEPIPELINE_1.png"
[LuxCore][8.544]   film.imagepipelines.001.0.type = "NOP"
[LuxCore][8.544]   film.imagepipelines.001.1.type = "TONEMAP_LINEAR"
[LuxCore][8.544]   film.imagepipelines.001.1.scale = 1
[LuxCore][8.544]   film.imagepipelines.001.radiancescales.0.enabled = 1
[LuxCore][8.544]   film.imagepipelines.001.radiancescales.0.globalscale = 1
[LuxCore][8.544]   film.imagepipelines.001.radiancescales.0.rgbscale = 1 1 1
[LuxCore][8.544]   film.imagepipelines.001.2.type = "GAMMA_CORRECTION"
[LuxCore][8.544]   film.imagepipelines.001.2.value = 2.2
[LuxCore][8.544]   film.noiseestimation.index = 1
[LuxCore][8.544]   film.imagepipelines.000.0.type = "NOP"
[LuxCore][8.544]   film.imagepipelines.000.1.type = "TONEMAP_LINEAR"
[LuxCore][8.544]   film.imagepipelines.000.1.scale = 1
[LuxCore][8.544]   film.imagepipelines.000.radiancescales.0.enabled = 1
[LuxCore][8.544]   film.imagepipelines.000.radiancescales.0.globalscale = 1
[LuxCore][8.544]   film.imagepipelines.000.radiancescales.0.rgbscale = 1 1 1
[LuxCore][8.544]   batch.haltspp = 0 0
[LuxCore][8.544]   batch.halttime = 0
[LuxCore][8.544] File Name Resolver Configuration:
Export took 0.0 s
[LuxCore][8.544] Film resolution: 1920x1080
[SDL][8.544] Film output definition: RGB_IMAGEPIPELINE [image.png]
[SDL][8.544] Image pipeline: film.imagepipelines.000
[SDL][8.544] Image pipeline step 0: NOP
[SDL][8.544] Image pipeline step 1: TONEMAP_LINEAR
[SDL][8.544] Image pipeline: film.imagepipelines.001
[SDL][8.544] Image pipeline step 0: NOP
[SDL][8.544] Image pipeline step 1: TONEMAP_LINEAR
[SDL][8.544] Image pipeline step 2: GAMMA_CORRECTION
[SDL][8.544] Film output definition: RGB_IMAGEPIPELINE [RGB_IMAGEPIPELINE_0.png]
[SDL][8.544] Film output definition: RGB_IMAGEPIPELINE [RGB_IMAGEPIPELINE_1.png]
[LuxRays][8.550] OpenCL support: enabled
[LuxRays][8.550] OpenCL Platform 0: NVIDIA CUDA
[LuxRays][8.550] CUDA support: enabled
[LuxRays][8.550] CUDA support: available
[LuxRays][8.550] CUDA driver version: 12.20
[LuxRays][8.550] CUDA device count: 1
[LuxRays][8.550] Optix support: available
[LuxRays][8.550] Device 0 name: Native
[LuxRays][8.550] Device 0 type: NATIVE_THREAD
[LuxRays][8.550] Device 0 compute units: 1
[LuxRays][8.550] Device 0 preferred float vector width: 4
[LuxRays][8.550] Device 0 max allocable memory:<PHONE_NUMBER>4415MBytes
[LuxRays][8.550] Device 0 max allocable memory block size:<PHONE_NUMBER>4415MBytes
[LuxRays][8.550] Device 0 has out of core memory support: 0
[LuxRays][8.550] Device 1 name: NVIDIA GeForce RTX 4070 Ti
[LuxRays][8.550] Device 1 type: OPENCL_GPU
[LuxRays][8.550] Device 1 compute units: 60
[LuxRays][8.550] Device 1 preferred float vector width: 1
[LuxRays][8.550] Device 1 max allocable memory: 12009MBytes
[LuxRays][8.550] Device 1 max allocable memory block size: 3002MBytes
[LuxRays][8.550] Device 1 has out of core memory support: 0
[LuxRays][8.550] Device 2 name: NVIDIA GeForce RTX 4070 Ti
[LuxRays][8.550] Device 2 type: CUDA_GPU
[LuxRays][8.550] Device 2 compute units: 1
[LuxRays][8.550] Device 2 preferred float vector width: 1
[LuxRays][8.550] Device 2 max allocable memory: 12009MBytes
[LuxRays][8.550] Device 2 max allocable memory block size:<PHONE_NUMBER>4415MBytes
[LuxRays][8.550] Device 2 has out of core memory support: 1
[LuxRays][8.550] Device 2 CUDA compute capability: 8.9
[LuxRays][8.550] Creating 24 intersection device(s)
[LuxRays][8.550] Allocating intersection device 0: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 1: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 2: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 3: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 4: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 5: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 6: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 7: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 8: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 9: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 10: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 11: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 12: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 13: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 14: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 15: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 16: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 17: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 18: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 19: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 20: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 21: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 22: Native (Type = NATIVE_THREAD)
[LuxRays][8.550] Allocating intersection device 23: Native (Type = NATIVE_THREAD)
[LuxCore][8.550] Configuring 24 CPU render threads
[LuxRays][8.550] Preprocessing DataSet
[LuxRays][8.550] Total vertex count: 24
[LuxRays][8.550] Total triangle count: 12
[LuxRays][8.550] Preprocessing DataSet done
[LuxRays][8.550] Adding DataSet accelerator: EMBREE
[LuxRays][8.550] Total vertex count: 24
[LuxRays][8.550] Total triangle count: 12
[LuxRays][8.550] EmbreeAccel build time: 0ms
Session started in 0.1 s
[LuxCore][8.657] Film hardware image pipeline
[LuxCore][8.748] Film hardware device used: NVIDIA GeForce RTX 4070 Ti OpenCLIntersect (Type: OPENCL_GPU)
[LuxCore][8.749]   Device OpenCL version: OpenCL 3.0 CUDA
[LuxRays][8.749] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] IMAGEPIPELINE buffer size: 24300Kbytes
[LuxRays][8.758] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Merge buffer size: 32400Kbytes
[LuxRays][8.771] [MergeSampleBuffersOCL] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][8.771] [MergeSampleBuffersOCL] Compiling kernels
[LuxRays][8.789] [MergeSampleBuffersOCL] Program cached
[LuxCore][8.789] [MergeSampleBuffersOCL] Compiling Film_MergeBufferInitialize Kernel
[LuxCore][8.789] [MergeSampleBuffersOCL] Compiling Film_MergeRADIANCE_PER_PIXEL_NORMALIZED Kernel
[LuxCore][8.789] [MergeSampleBuffersOCL] Compiling Film_MergeRADIANCE_PER_SCREEN_NORMALIZED Kernel
[LuxCore][8.789] [MergeSampleBuffersOCL] Compiling Film_MergeBufferFinalize Kernel
[LuxCore][8.789] [MergeSampleBuffersOCL] Kernels compilation time: 18ms
[LuxRays][8.805] [LinearToneMap] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][8.815] [LinearToneMap] Compiling kernels
[LuxRays][8.815] [LinearToneMap] Program cached
[LuxCore][8.815] [AutoLinearToneMap] Compiling LinearToneMap_Apply Kernel
[LuxCore][8.815] [LinearToneMap] Kernels compilation time: 10ms
Recommended clamp value: 7.571259082947623
[LuxRays][13.196] [LinearToneMap] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][13.196] [LinearToneMap] Compiling kernels
[LuxRays][13.198] [LinearToneMap] Program cached
[LuxCore][13.198] [AutoLinearToneMap] Compiling LinearToneMap_Apply Kernel
[LuxCore][13.198] [LinearToneMap] Kernels compilation time: 2ms
[LuxRays][13.198] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Gamma table buffer size: 16Kbytes
[LuxRays][13.198] [GammaCorrectionPlugin] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][13.198] [GammaCorrectionPlugin] Compiling kernels
[LuxRays][13.198] [GammaCorrectionPlugin] Program cached
[LuxCore][13.198] [GammaCorrectionPlugin] Compiling GammaCorrectionPlugin_Apply Kernel
[LuxCore][13.198] [GammaCorrectionPlugin] Kernels compilation time: 0ms
[LuxCore][13.201] Noise estimation: first pass
[LuxCore][18.519] Noise estimation: Error mean = 0.00172431
[LuxCore][26.390] Noise estimation: Error mean = 0.000921225
[LuxCore][33.758] Noise estimation: Error mean = 0.000398862
[LuxCore][41.260] Noise estimation: Error mean = 0.000272417

...

[LuxCore][42.533] [NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Memory used for hardware image pipeline: 56700Kbytes

Here the cube gets rendered normally with the CPU. I pressed ESC to stop it after the 4th noise estimation log message, so I manually wrote the ... at this place. After pressing ESC, that last message about the video card came out.

The same with Blender 3.6.0:
Read prefs: "/home/luiz/.config/blender/3.6/config/userpref.blend"
BlendLuxCore 2.7beta2 registered (with pyluxcore 2.6)
Updating device list
==================================================
[Engine/Final] Rendering layer "ViewLayer"
[Exporter] Creating session
[SDL][8.666] Define ImageMap: NamedObject
[SDL][8.667] Camera type: perspective
[SDL][8.667] Camera position: Point[7.35889, -6.92579, 4.95831]
[SDL][8.667] Camera target: Point[6.70733, -6.31162, 4.51304]
[SDL][8.667] Camera clipping plane disabled
WARNING: Material "Material": Missing node tree
Material140214491615752
[SDL][8.668] Material definition: Material140214491615752
[SDL][8.668] Scene objects count: 1
[SDL][8.668] Light definition:<PHONE_NUMBER>75336
[SDL][8.668] Light definition: __WORLD_BACKGROUND_LIGHT__
[LuxCore][8.678] Configuration:
[LuxCore][8.678]   path.pathdepth.total = 7
[LuxCore][8.678]   path.pathdepth.diffuse = 5
[LuxCore][8.678]   path.pathdepth.glossy = 5
[LuxCore][8.678]   path.pathdepth.specular = 6
[LuxCore][8.678]   path.hybridbackforward.enable = 0
[LuxCore][8.678]   path.hybridbackforward.partition = 0.8
[LuxCore][8.678]   path.hybridbackforward.glossinessthreshold = 0.049
[LuxCore][8.678]   film.noiseestimation.warmup = 8
[LuxCore][8.678]   film.noiseestimation.step = 32
[LuxCore][8.678]   sampler.sobol.adaptive.strength = 0.9
[LuxCore][8.678]   sampler.sobol.bucketsize = 16
[LuxCore][8.678]   sampler.sobol.tilesize = 16
[LuxCore][8.678]   sampler.sobol.supersampling = 1
[LuxCore][8.678]   sampler.sobol.overlapping = 1
[LuxCore][8.678]   renderengine.type = "PATHCPU"
[LuxCore][8.678]   sampler.type = "SOBOL"
[LuxCore][8.678]   film.width = 1920
[LuxCore][8.678]   film.height = 1080
[LuxCore][8.678]   film.filter.type = "NONE"
[LuxCore][8.678]   film.filter.width = 1.5
[LuxCore][8.678]   lightstrategy.type = "LOG_POWER"
[LuxCore][8.678]   scene.epsilon.min = 1e-05
[LuxCore][8.678]   scene.epsilon.max = 0.1
[LuxCore][8.678]   path.albedospecular.type = "REFLECT_TRANSMIT"
[LuxCore][8.678]   path.albedospecular.glossinessthreshold = 0.05
[LuxCore][8.678]   film.opencl.enable = 1
[LuxCore][8.678]   film.opencl.device = 0
[LuxCore][8.678]   path.forceblackbackground.enable = 0
[LuxCore][8.678]   renderengine.seed = 1
[LuxCore][8.678]   film.outputs.0.type = "RGB_IMAGEPIPELINE"
[LuxCore][8.678]   film.outputs.0.index = 0
[LuxCore][8.678]   film.outputs.0.filename = "RGB_IMAGEPIPELINE_0.png"
[LuxCore][8.678]   film.outputs.1.type = "RGB_IMAGEPIPELINE"
[LuxCore][8.678]   film.outputs.1.index = 1
[LuxCore][8.678]   film.outputs.1.filename = "RGB_IMAGEPIPELINE_1.png"
[LuxCore][8.678]   film.imagepipelines.001.0.type = "NOP"
[LuxCore][8.678]   film.imagepipelines.001.1.type = "TONEMAP_LINEAR"
[LuxCore][8.678]   film.imagepipelines.001.1.scale = 1
[LuxCore][8.678]   film.imagepipelines.001.radiancescales.0.enabled = 1
[LuxCore][8.678]   film.imagepipelines.001.radiancescales.0.globalscale = 1
[LuxCore][8.678]   film.imagepipelines.001.radiancescales.0.rgbscale = 1 1 1
[LuxCore][8.678]   film.imagepipelines.001.2.type = "GAMMA_CORRECTION"
[LuxCore][8.678]   film.imagepipelines.001.2.value = 2.2
[LuxCore][8.678]   film.noiseestimation.index = 1
[LuxCore][8.678]   film.imagepipelines.000.0.type = "NOP"
[LuxCore][8.678]   film.imagepipelines.000.1.type = "TONEMAP_LINEAR"
[LuxCore][8.678]   film.imagepipelines.000.1.scale = 1
[LuxCore][8.678]   film.imagepipelines.000.radiancescales.0.enabled = 1
[LuxCore][8.678]   film.imagepipelines.000.radiancescales.0.globalscale = 1
[LuxCore][8.678]   film.imagepipelines.000.radiancescales.0.rgbscale = 1 1 1
[LuxCore][8.678]   batch.haltspp = 0 0
[LuxCore][8.678]   batch.halttime = 0
[LuxCore][8.678] File Name Resolver Configuration:
Export took 0.0 s
[LuxCore][8.678] Film resolution: 1920x1080
[SDL][8.679] Film output definition: RGB_IMAGEPIPELINE [image.png]
[SDL][8.680] Image pipeline: film.imagepipelines.000
[SDL][8.680] Image pipeline step 0: NOP
[SDL][8.680] Image pipeline step 1: TONEMAP_LINEAR
[SDL][8.680] Image pipeline: film.imagepipelines.001
[SDL][8.680] Image pipeline step 0: NOP
[SDL][8.680] Image pipeline step 1: TONEMAP_LINEAR
[SDL][8.680] Image pipeline step 2: GAMMA_CORRECTION
[SDL][8.680] Film output definition: RGB_IMAGEPIPELINE [RGB_IMAGEPIPELINE_0.png]
[SDL][8.680] Film output definition: RGB_IMAGEPIPELINE [RGB_IMAGEPIPELINE_1.png]
[LuxRays][8.685] OpenCL support: enabled
[LuxRays][8.685] OpenCL Platform 0: NVIDIA CUDA
[LuxRays][8.686] CUDA support: enabled
[LuxRays][8.686] CUDA support: available
[LuxRays][8.686] CUDA driver version: 12.20
[LuxRays][8.686] CUDA device count: 1
[LuxRays][8.686] Optix support: available
[LuxRays][8.686] Device 0 name: Native
[LuxRays][8.686] Device 0 type: NATIVE_THREAD
[LuxRays][8.686] Device 0 compute units: 1
[LuxRays][8.686] Device 0 preferred float vector width: 4
[LuxRays][8.686] Device 0 max allocable memory:<PHONE_NUMBER>4415MBytes
[LuxRays][8.686] Device 0 max allocable memory block size:<PHONE_NUMBER>4415MBytes
[LuxRays][8.686] Device 0 has out of core memory support: 0
[LuxRays][8.686] Device 1 name: NVIDIA GeForce RTX 4070 Ti
[LuxRays][8.686] Device 1 type: OPENCL_GPU
[LuxRays][8.686] Device 1 compute units: 60
[LuxRays][8.686] Device 1 preferred float vector width: 1
[LuxRays][8.686] Device 1 max allocable memory: 12009MBytes
[LuxRays][8.686] Device 1 max allocable memory block size: 3002MBytes
[LuxRays][8.686] Device 1 has out of core memory support: 0
[LuxRays][8.686] Device 2 name: NVIDIA GeForce RTX 4070 Ti
[LuxRays][8.686] Device 2 type: CUDA_GPU
[LuxRays][8.686] Device 2 compute units: 1
[LuxRays][8.686] Device 2 preferred float vector width: 1
[LuxRays][8.686] Device 2 max allocable memory: 12009MBytes
[LuxRays][8.686] Device 2 max allocable memory block size:<PHONE_NUMBER>4415MBytes
[LuxRays][8.686] Device 2 has out of core memory support: 1
[LuxRays][8.686] Device 2 CUDA compute capability: 8.9
[LuxRays][8.686] Creating 24 intersection device(s)
[LuxRays][8.686] Allocating intersection device 0: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 1: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 2: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 3: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 4: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 5: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 6: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 7: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 8: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 9: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 10: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 11: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 12: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 13: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 14: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 15: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 16: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 17: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 18: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 19: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 20: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 21: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 22: Native (Type = NATIVE_THREAD)
[LuxRays][8.686] Allocating intersection device 23: Native (Type = NATIVE_THREAD)
[LuxCore][8.686] Configuring 24 CPU render threads
[LuxRays][8.686] Preprocessing DataSet
[LuxRays][8.686] Total vertex count: 24
[LuxRays][8.686] Total triangle count: 12
[LuxRays][8.686] Preprocessing DataSet done
[LuxRays][8.686] Adding DataSet accelerator: EMBREE
[LuxRays][8.686] Total vertex count: 24
[LuxRays][8.686] Total triangle count: 12
[LuxRays][8.688] EmbreeAccel build time: 1ms
Session started in 0.1 s
[LuxCore][8.761] Film hardware image pipeline
[LuxCore][8.844] Film hardware device used: NVIDIA GeForce RTX 4070 Ti OpenCLIntersect (Type: OPENCL_GPU)
[LuxCore][8.844]   Device OpenCL version: OpenCL 3.0 CUDA
[LuxRays][8.844] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] IMAGEPIPELINE buffer size: 24300Kbytes
[LuxRays][8.853] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Merge buffer size: 32400Kbytes
[LuxRays][8.853] [MergeSampleBuffersOCL] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][8.853] [MergeSampleBuffersOCL] Compiling kernels
[LuxRays][8.855] [MergeSampleBuffersOCL] Program cached
[LuxCore][8.869] [MergeSampleBuffersOCL] Compiling Film_MergeBufferInitialize Kernel
[LuxCore][8.869] [MergeSampleBuffersOCL] Compiling Film_MergeRADIANCE_PER_PIXEL_NORMALIZED Kernel
[LuxCore][8.869] [MergeSampleBuffersOCL] Compiling Film_MergeRADIANCE_PER_SCREEN_NORMALIZED Kernel
[LuxCore][8.869] [MergeSampleBuffersOCL] Compiling Film_MergeBufferFinalize Kernel
[LuxCore][8.869] [MergeSampleBuffersOCL] Kernels compilation time: 16ms
[LuxRays][8.896] [LinearToneMap] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][8.898] [LinearToneMap] Compiling kernels
[LuxRays][8.898] [LinearToneMap] Program cached
[LuxCore][8.898] [AutoLinearToneMap] Compiling LinearToneMap_Apply Kernel
[LuxCore][8.898] [LinearToneMap] Kernels compilation time: 2ms
Recommended clamp value: 9.745637878972957
[LuxRays][12.501] [LinearToneMap] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][12.503] [LinearToneMap] Compiling kernels
[LuxRays][12.504] [LinearToneMap] Program cached
[LuxCore][12.504] [AutoLinearToneMap] Compiling LinearToneMap_Apply Kernel
[LuxCore][12.504] [LinearToneMap] Kernels compilation time: 2ms
[LuxRays][12.504] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Gamma table buffer size: 16Kbytes
[LuxRays][12.504] [GammaCorrectionPlugin] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][12.504] [GammaCorrectionPlugin] Compiling kernels
[LuxRays][12.504] [GammaCorrectionPlugin] Program cached
[LuxCore][12.504] [GammaCorrectionPlugin] Compiling GammaCorrectionPlugin_Apply Kernel
[LuxCore][12.504] [GammaCorrectionPlugin] Kernels compilation time: 0ms
[LuxCore][12.507] Noise estimation: first pass
[LuxCore][17.185] Noise estimation: Error mean = 8.76162e-07
[LuxCore][21.936] Noise estimation: Error mean = 4.12968e-07
[LuxCore][27.746] Noise estimation: Error mean = 2.70452e-07
[LuxCore][33.348] Noise estimation: Error mean = 1.84107e-07

...

[LuxCore][35.511] [NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Memory used for hardware image pipeline: 56700Kbytes

Here, the cube doesn't get rendered using the CPU, what corresponds to the log messages here. I see only the sky (default background) as if the cube were invisible. But I get these very small noise estimation values in the log.

The same now with Blender 4.0.1:
Read prefs: "/home/luiz/.config/blender/4.0/config/userpref.blend"
BlendLuxCore 2.8alpha1 registered (with pyluxcore 2.6)
Updating device list
==================================================
[Engine/Final] Rendering layer "ViewLayer"
[Exporter] Creating session
[SDL][8.241] Define ImageMap: NamedObject
[SDL][8.241] Camera type: perspective
[SDL][8.241] Camera position: Point[7.35889, -6.92579, 4.95831]
[SDL][8.241] Camera target: Point[6.70733, -6.31162, 4.51304]
[SDL][8.241] Camera clipping plane disabled
WARNING: Material "Material": Missing node tree
[SDL][8.242] Material definition: Material140183094191752
[SDL][8.242] Scene objects count: 1
[SDL][8.242] Light definition:<PHONE_NUMBER>43688
[SDL][8.242] Light definition: __WORLD_BACKGROUND_LIGHT__
[LuxCore][8.251] Configuration:
[LuxCore][8.251]   path.pathdepth.total = 7
[LuxCore][8.251]   path.pathdepth.diffuse = 5
[LuxCore][8.251]   path.pathdepth.glossy = 5
[LuxCore][8.251]   path.pathdepth.specular = 6
[LuxCore][8.251]   path.hybridbackforward.enable = 0
[LuxCore][8.251]   path.hybridbackforward.partition = 0.8
[LuxCore][8.251]   path.hybridbackforward.glossinessthreshold = 0.049
[LuxCore][8.251]   film.noiseestimation.warmup = 8
[LuxCore][8.251]   film.noiseestimation.step = 32
[LuxCore][8.251]   sampler.sobol.adaptive.strength = 0.9
[LuxCore][8.251]   sampler.sobol.bucketsize = 16
[LuxCore][8.251]   sampler.sobol.tilesize = 16
[LuxCore][8.251]   sampler.sobol.supersampling = 1
[LuxCore][8.251]   sampler.sobol.overlapping = 1
[LuxCore][8.251]   renderengine.type = "PATHCPU"
[LuxCore][8.251]   sampler.type = "SOBOL"
[LuxCore][8.251]   film.width = 1920
[LuxCore][8.251]   film.height = 1080
[LuxCore][8.251]   film.filter.type = "NONE"
[LuxCore][8.251]   film.filter.width = 1.5
[LuxCore][8.251]   lightstrategy.type = "LOG_POWER"
[LuxCore][8.251]   scene.epsilon.min = 1e-05
[LuxCore][8.251]   scene.epsilon.max = 0.1
[LuxCore][8.251]   path.albedospecular.type = "REFLECT_TRANSMIT"
[LuxCore][8.251]   path.albedospecular.glossinessthreshold = 0.05
[LuxCore][8.251]   film.opencl.enable = 1
[LuxCore][8.251]   film.opencl.device = 0
[LuxCore][8.251]   path.forceblackbackground.enable = 0
[LuxCore][8.251]   renderengine.seed = 1
[LuxCore][8.251]   film.outputs.0.type = "RGB_IMAGEPIPELINE"
[LuxCore][8.251]   film.outputs.0.index = 0
[LuxCore][8.251]   film.outputs.0.filename = "RGB_IMAGEPIPELINE_0.png"
[LuxCore][8.251]   film.outputs.1.type = "RGB_IMAGEPIPELINE"
[LuxCore][8.251]   film.outputs.1.index = 1
[LuxCore][8.251]   film.outputs.1.filename = "RGB_IMAGEPIPELINE_1.png"
[LuxCore][8.251]   film.imagepipelines.001.0.type = "NOP"
[LuxCore][8.251]   film.imagepipelines.001.1.type = "TONEMAP_LINEAR"
[LuxCore][8.251]   film.imagepipelines.001.1.scale = 1
[LuxCore][8.251]   film.imagepipelines.001.radiancescales.0.enabled = 1
[LuxCore][8.251]   film.imagepipelines.001.radiancescales.0.globalscale = 1
[LuxCore][8.251]   film.imagepipelines.001.radiancescales.0.rgbscale = 1 1 1
[LuxCore][8.251]   film.imagepipelines.001.2.type = "GAMMA_CORRECTION"
[LuxCore][8.251]   film.imagepipelines.001.2.value = 2.2
[LuxCore][8.251]   film.noiseestimation.index = 1
[LuxCore][8.251]   film.imagepipelines.000.0.type = "NOP"
[LuxCore][8.251]   film.imagepipelines.000.1.type = "TONEMAP_LINEAR"
[LuxCore][8.251]   film.imagepipelines.000.1.scale = 1
[LuxCore][8.251]   film.imagepipelines.000.radiancescales.0.enabled = 1
[LuxCore][8.251]   film.imagepipelines.000.radiancescales.0.globalscale = 1
[LuxCore][8.251]   film.imagepipelines.000.radiancescales.0.rgbscale = 1 1 1
[LuxCore][8.251]   batch.haltspp = 0 0
[LuxCore][8.251]   batch.halttime = 0
[LuxCore][8.251] File Name Resolver Configuration:
Export took 0.0 s
[LuxCore][8.251] Film resolution: 1920x1080
[SDL][8.251] Film output definition: RGB_IMAGEPIPELINE [image.png]
[SDL][8.252] Image pipeline: film.imagepipelines.000
[SDL][8.252] Image pipeline step 0: NOP
[SDL][8.252] Image pipeline step 1: TONEMAP_LINEAR
[SDL][8.252] Image pipeline: film.imagepipelines.001
[SDL][8.252] Image pipeline step 0: NOP
[SDL][8.252] Image pipeline step 1: TONEMAP_LINEAR
[SDL][8.252] Image pipeline step 2: GAMMA_CORRECTION
[SDL][8.252] Film output definition: RGB_IMAGEPIPELINE [RGB_IMAGEPIPELINE_0.png]
[SDL][8.252] Film output definition: RGB_IMAGEPIPELINE [RGB_IMAGEPIPELINE_1.png]
[LuxRays][8.257] OpenCL support: enabled
[LuxRays][8.257] OpenCL Platform 0: NVIDIA CUDA
[LuxRays][8.257] CUDA support: enabled
[LuxRays][8.257] CUDA support: available
[LuxRays][8.257] CUDA driver version: 12.20
[LuxRays][8.257] CUDA device count: 1
[LuxRays][8.257] Optix support: available
[LuxRays][8.257] Device 0 name: Native
[LuxRays][8.257] Device 0 type: NATIVE_THREAD
[LuxRays][8.257] Device 0 compute units: 1
[LuxRays][8.257] Device 0 preferred float vector width: 4
[LuxRays][8.257] Device 0 max allocable memory:<PHONE_NUMBER>4415MBytes
[LuxRays][8.257] Device 0 max allocable memory block size:<PHONE_NUMBER>4415MBytes
[LuxRays][8.257] Device 0 has out of core memory support: 0
[LuxRays][8.257] Device 1 name: NVIDIA GeForce RTX 4070 Ti
[LuxRays][8.257] Device 1 type: OPENCL_GPU
[LuxRays][8.257] Device 1 compute units: 60
[LuxRays][8.257] Device 1 preferred float vector width: 1
[LuxRays][8.257] Device 1 max allocable memory: 12009MBytes
[LuxRays][8.257] Device 1 max allocable memory block size: 3002MBytes
[LuxRays][8.257] Device 1 has out of core memory support: 0
[LuxRays][8.257] Device 2 name: NVIDIA GeForce RTX 4070 Ti
[LuxRays][8.257] Device 2 type: CUDA_GPU
[LuxRays][8.257] Device 2 compute units: 1
[LuxRays][8.257] Device 2 preferred float vector width: 1
[LuxRays][8.257] Device 2 max allocable memory: 12009MBytes
[LuxRays][8.257] Device 2 max allocable memory block size:<PHONE_NUMBER>4415MBytes
[LuxRays][8.257] Device 2 has out of core memory support: 1
[LuxRays][8.257] Device 2 CUDA compute capability: 8.9
[LuxRays][8.257] Creating 24 intersection device(s)
[LuxRays][8.257] Allocating intersection device 0: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 1: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 2: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 3: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 4: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 5: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 6: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 7: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 8: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 9: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 10: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 11: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 12: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 13: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 14: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 15: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 16: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 17: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 18: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 19: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 20: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 21: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 22: Native (Type = NATIVE_THREAD)
[LuxRays][8.257] Allocating intersection device 23: Native (Type = NATIVE_THREAD)
[LuxCore][8.257] Configuring 24 CPU render threads
[LuxRays][8.257] Preprocessing DataSet
[LuxRays][8.257] Total vertex count: 24
[LuxRays][8.257] Total triangle count: 12
[LuxRays][8.257] Preprocessing DataSet done
[LuxRays][8.257] Adding DataSet accelerator: EMBREE
[LuxRays][8.257] Total vertex count: 24
[LuxRays][8.257] Total triangle count: 12
[LuxRays][8.258] EmbreeAccel build time: 0ms
Session started in 0.1 s
[LuxCore][8.347] Film hardware image pipeline
[LuxCore][8.409] Film hardware device used: NVIDIA GeForce RTX 4070 Ti OpenCLIntersect (Type: OPENCL_GPU)
[LuxCore][8.410]   Device OpenCL version: OpenCL 3.0 CUDA
[LuxRays][8.410] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] IMAGEPIPELINE buffer size: 24300Kbytes
[LuxRays][8.419] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Merge buffer size: 32400Kbytes
[LuxRays][8.419] [MergeSampleBuffersOCL] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][8.419] [MergeSampleBuffersOCL] Compiling kernels
[LuxRays][8.427] [MergeSampleBuffersOCL] Program cached
[LuxCore][8.427] [MergeSampleBuffersOCL] Compiling Film_MergeBufferInitialize Kernel
[LuxCore][8.427] [MergeSampleBuffersOCL] Compiling Film_MergeRADIANCE_PER_PIXEL_NORMALIZED Kernel
[LuxCore][8.427] [MergeSampleBuffersOCL] Compiling Film_MergeRADIANCE_PER_SCREEN_NORMALIZED Kernel
[LuxCore][8.427] [MergeSampleBuffersOCL] Compiling Film_MergeBufferFinalize Kernel
[LuxCore][8.427] [MergeSampleBuffersOCL] Kernels compilation time: 8ms
[LuxRays][8.443] [LinearToneMap] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][8.443] [LinearToneMap] Compiling kernels
[LuxRays][8.447] [LinearToneMap] Program cached
[LuxCore][8.447] [AutoLinearToneMap] Compiling LinearToneMap_Apply Kernel
[LuxCore][8.447] [LinearToneMap] Kernels compilation time: 4ms
Recommended clamp value: 9.745634157497207
[LuxRays][11.973] [LinearToneMap] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][11.973] [LinearToneMap] Compiling kernels
[LuxRays][11.975] [LinearToneMap] Program cached
[LuxCore][11.975] [AutoLinearToneMap] Compiling LinearToneMap_Apply Kernel
[LuxCore][11.975] [LinearToneMap] Kernels compilation time: 1ms
[LuxRays][11.975] [Device NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Gamma table buffer size: 16Kbytes
[LuxRays][11.975] [GammaCorrectionPlugin] Compiler options: -D LUXRAYS_OPENCL_KERNEL -D SLG_OPENCL_KERNEL -D LUXRAYS_OPENCL_DEVICE -D LUXRAYS_OS_LINUX -cl-fast-relaxed-math -cl-mad-enable
[LuxRays][11.975] [GammaCorrectionPlugin] Compiling kernels
[LuxRays][11.975] [GammaCorrectionPlugin] Program cached
[LuxCore][11.975] [GammaCorrectionPlugin] Compiling GammaCorrectionPlugin_Apply Kernel
[LuxCore][11.975] [GammaCorrectionPlugin] Kernels compilation time: 0ms
[LuxCore][11.977] Noise estimation: first pass
[LuxCore][16.760] Noise estimation: Error mean = 8.82863e-07
[LuxCore][21.526] Noise estimation: Error mean = 4.23896e-07
[LuxCore][27.347] Noise estimation: Error mean = 2.82725e-07
[LuxCore][32.995] Noise estimation: Error mean = 1.85011e-07
[LuxCore][39.198] Noise estimation: Error mean = 1.54755e-07
[LuxCore][45.105] Noise estimation: Error mean = 1.30081e-07
[LuxCore][51.906] Noise estimation: Error mean = 1.16772e-07
[LuxCore][57.181] Noise estimation: Error mean = 9.1717e-08
[LuxCore][62.927] Noise estimation: Error mean = 7.54376e-08

...
[LuxCore][64.277] [NVIDIA GeForce RTX 4070 Ti OpenCLIntersect] Memory used for hardware image pipeline: 56700Kbytes

Here the cube doesn't get rendered as well, exactly like with Blender 3.6.0 + BlendLuxCore 2.7beta2 above.

@neo2068
I just found out, if I open Blender 4.0.1 with BlendLuxCore 2.8alpha1, select LuxCoreRender as render engine and viewport shading as Rendered, Blender crashes. The log file in /tmp/blender.crash.txt contains:
# Blender 4.0.1, Commit date: 2023-11-16 16:40, Hash d0dd92834a08
bpy.context.space_data.context = 'RENDER'  # Property
bpy.context.scene.render.engine = 'LUXCORE'  # Property
bpy.context.space_data.shading.type = 'RENDERED'  # Property

# backtrace
./blender() [0xf3a700]
./blender() [0x8c42ec]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7fb946642520]
/home/luiz/Public/Software/blender-4.0.1-linux-x64/lib/libembree4.so.4(+0x163667d) [0x7fb95643667d]
/home/luiz/Public/Software/blender-4.0.1-linux-x64/lib/libembree4.so.4(+0x147c535) [0x7fb95627c535]
/home/luiz/Public/Software/blender-4.0.1-linux-x64/lib/libembree4.so.4(rtcIntersect1+0x34) [0x7fb954e88fa4]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(_ZNK7luxrays11EmbreeAccel9IntersectEPKNS_3RayEPNS_6RayHitE+0xc3) [0x7fb8f77d1463]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(+0xa62972) [0x7fb8f7462972]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(_ZN3slg16ProjectiveCamera10UpdateAutoEPKNS_5SceneE+0x13e) [0x7fb8f746847e]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(_ZN3slg5Scene10PreprocessEPN7luxrays7ContextEjjPKjb+0x155) [0x7fb8f73a2e65]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(+0x86efe0) [0x7fb8f726efe0]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(_ZN7luxcore6detail17RenderSessionImpl5StartEv+0x34) [0x7fb8f71c2674]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(+0x7208d9) [0x7fb8f71208d9]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(+0x1ff527d) [0x7fb8f89f527d]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(+0x1ff548c) [0x7fb8f89f548c]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(+0x1ffa0c3) [0x7fb8f89fa0c3]
/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/bin/pyluxcore.so(+0x1ff2a76) [0x7fb8f89f2a76]
./blender(_PyObject_MakeTpCall+0x7b) [0x81868b]
./blender() [0x66888b]
./blender(_PyEval_EvalFrameDefault+0x4fda) [0x878e6a]
./blender() [0x8730a2]
./blender() [0x854a5b6]
./blender() [0x852f524]
/lib/x86_64-linux-gnu/libc.so.6(+0x94ac3) [0x7fb946694ac3]
/lib/x86_64-linux-gnu/libc.so.6(+0x126850) [0x7fb946726850]

# Python backtrace
  File "/home/luiz/.config/blender/4.0/scripts/addons/BlendLuxCore/engine/viewport.py", line 13 in start_session

Blender 3.6.0 is also crashing when I do this, but in Blender 3.4.1 I can do this without any problem.

I am having the same issue.
System
O.S.: Fedora 38 KDE
CPU: AMD Ryzen 7 2700
GPU: NVIDIA RTX 3070 Ti


After install Firebase/Firestore via pod I am getting error

I am getting "grpc/support/port_platform.h' file not found" error after I install pod 'Firebase/Firestore' in pod file in current project.

Xcode version: 10.1_
Firebase SDK version: ___5.15.0
Firebase Component: _____ (Auth, Core, Database, Firestore, Messaging, Storage, etc)
Component version: _____

I have alredy so many pod files

This isn't anything I've seen before.
Firebase 5.15 is quite old now, so before you start, please update and try again. The latest release is Firebase 6.0, which does include some breaking changes for products other than Firestore. If you can't take that change yet, at least upgrade to 5.20.2, which was the last release in the 5.x series. See the release notes for more details.
Aside from that you might try getting into a clean state:

Remove your ~/Library/Developer/Xcode/DerivedData folder
Remove your Pods folder
pod install again

If that doesn't clear up your problem, please share a copy of your project. If you're not open source, you can share project with me privately at<EMAIL_ADDRESS>

@wilhuff after updating to 5.20.2 version I am getting error
"Cyclic dependency in module 'Darwin': Darwin -> grpc -> Darwin"
please find image:

and my gRCP-c++ and gRCP-Core supporting file looks like this

In that case, something must be terribly wrong with your project. There's no way Darwin can depend on gRPC. If you search for Cyclic dependency in module 'Darwin' you'll see plenty of other other issues similar to this one that all indicate project misconfiguration.
I suspect this is a problem with your HEADER_SEARCH_PATHS setting. You've set it in such a way that two headers with the same name are available with what looks like the same name and this is confusing your build. See advice I gave here to others where experiencing other nonsensical build problems.
Alternatively, it's possible that one of the other pods you're using is very aggressive about adding to HEADER_SEARCH_PATHS itself. Try pulling your pods out and adding them back incrementally to see if one of them is causing the problem.
As I mentioned earlier, you're welcome to share your project with me, but absent that there's not much more we can do for you here.


RFC: ActiveMerchant 2.x

@Shopify/active-merchant I'd like to propose that we cut an ActiveMerchant 2.0 in the near future. The goal would be to remove a lot of crufty backwards compatibility and deprecations. Off the top of my head:

drop support for recurring
drop support for Money
review all public gateway methods and bring them inline with what AM supports, either via shifting args around and/or cutting them
drop the unnecessary billing intermediate directory
no more autoload
explicit requires only, no requiring the world
etc.

I'd be happy to spearhead this, and would propose:

[ ] create a 1.x branch
[ ] master becomes 2.x
[ ] all changes go into master first, and get backported to 1.x if we need it or it's requested
[ ] we make the changes, let it bake for a few weeks, cut an RC or two, roll RC's to our respective apps, and the cut a 2.0 once all looks good.
[ ] once 2.0 final is cut in gem form, we only do new 1.x gems for security fixes

Thoughts?

This sounds pretty awesome.

drop support for Money

:+1: But we should use a well documented, standard way of passing around monetary values (including currency)

no more autoload

You mean you have to explicitly require the gateway you're using?

I'll add: as an abstraction library we should define the abstraction we define much more strictly. Mostly in terms of documentation, but also tooling around it.
E.g. def purchase(amount, payment, options = {}). What is amount? What is payment? What keys in options have special meaning, and what keys can you use for gateway specific things? What does it return? How do we make sure new gateways conform to this contract?

define the abstraction we define much more strictly

:+1: for this.

Maybe: remove builder dependency for generating XML? (This will require rewriting a bunch of gateways using Nokogiri instead)

@wvanbergen I'm totally down with getting more strict; my only hesitation is tying that to v2. I'd like to focus v2 mostly on removing cruft, and moving towards more consistent abstraction without actual enforcement thereof yet. Mostly I just don't want to try to do so much that v2 never gets cut.
I'm thinking we do a lot of cleanup in v2, and once it's cut we can start adding tools that we can run across new changes to validate our desired API abstraction. Then we can move that validation into the codebase and get actively strict about it come v3.

I actually think removing Builder doesn't have to be tied to v2, since it should have no external API effect. So big :+1:, but no need to either wait for v2 or hold up v2.

@wvanbergen in terms of requires, yes, I want to make users explicitly require gateways they use. I also want to ditch the huge "require everything" file that is https://github.com/Shopify/active_merchant/blob/master/lib/active_merchant.rb and instead have each file require only what it needs.

Yeah I would be wary of trying to do too much for v2

Full speed ahead sounds like! Going to make it so.

I'll always :+1: cruft removal efforts.

Guys, what do you think about extracting gateways into separate gems? pros/cons of such solution?

@alovak for 2.0 I'm :-1:, that's outside of scope from my opinion.
That said, I've thought a lot about this, and my thinking is that ActiveMerchant should always have a lot of built in gateways, that the AM maintainers explicitly support. But, I want to make it easy for odd gateways, or gateways that for some reason can't/won't follow our coding conventions, new gatewyas that the maintainers aren't sure will make it, etc., to offer sidecar gems to plug their gateway into AM.
For instance, I'd like to kick Braintree out of ActiveMerchant "core" due to their annoying gem-only policy. I'd also consider kicking out all gateways that won't provide public test credentials for the maintainers. And I'd like to make the majority of new gateways start out as sidecar gems before getting pulled into AM core.
So, that's my $0.02.

I'm with @ntalbott on all of this. I'd rather keep the ecosystem stable inside one gem and promote best practices for new integrations as much as possible. I'm fully on board with a quality policy too: I'd ideally like to see AM2 provide a "remote-testable" guarantee and have gateways provide/maintain API credentials for remote testing. Overly stale credentials could be construed as a disinterest in staying integrated in AM (and thus Spreedly and Shopify.)
I also think it would make sense for there to exist a "core" API and then something like an active_merchant_extensions (working title :wink:) that takes care of integrations that don't/can't cleanly follow the API -- but are necessary to integrate -- like a Braintree.
I'd also like for us to consider removing any consideration for Ruby 1.9 compatibility.

@bizla done :)
https://github.com/Shopify/active_merchant/pull/1583

:heart_eyes: @j-mutter you continue to be a wind beneath my wings

@bizla all :+1:, except I think this is more AMv3; v2 is...
:musical_note: All about that cruft, bout that cruft, no features, ... :musical_note:.

@ntalbot Should I close this (and other v2.0) issues at this point? There doesn't appear to have been movement for three years.

@ntalbott Should I close this (and other v2.0) issues at this point? There doesn't appear to have been movement for three years.

@bpollack yah. Such big dreams...


4096 named maps per account limit is not working

Context
Based on https://github.com/CartoDB/support/issues/733 it seems the 4096 max named map limit per account is not working when reached.
cc @kevin-reilly

Digging through the notes and talking to Stephanie, it seems like the root of the issue is that they are not able to create a named map through the API because of the limit.  But they are able to create a named map in Editor.
So, either the API is wrong or Editor is not respecting the limits.

@dgaubert Can you look at this issue?  Is this something we can fix easily?

Yes, I can.
I don't know if it's easy to fix or isn't, I need to figure out what's going on.

@zingbot Just to confirm here, this issue seems to have two parts:

They are hitting the limit of 4096 maps but it isn't preventing them from creating more maps.
They need to be able to create more than 4096 maps.

If we fix the problem in part 1, they won't be able to create maps.
If the work around is working, can we just let this lay?  What is their concern if it is not impacting them?  What are they worried about in terms of creating and managing data?


How to state in requirements.txt a direct github source

Please follow the guide below

Issues submitted without this template format will be ignored.
Rlease read them carefully and answer completely.
Do not post screenshots of error messages or code.
Put an x into all the boxes [ ] relevant to your issue (==> [x] no spaces).
Use the Preview tab to see how your issue will actually look like.
Issues about reverse engineering is out of scope and will be closed without response.
Any mention of spam-like actions or spam-related tools/libs/etc is strictly not allowed.

Before submitting an issue, make sure you have:

[x] Updated to the lastest version v1.5.7
[x] Read the README and docs
[x] Searched the bugtracker for similar issues including closed ones
[x] Reviewed the sample code in tests and examples

Which client are you using?

[x] app (instagram_private_api/)
[x] web (instagram_web_api/)

Describe your Question/Issue:
I'm trying to have the url repo install in my pip requirements.txt description. For that, i need to do:
pip install -e git+ssh://git<EMAIL_ADDRESS>https://stackoverflow.com/questions/16584552/how-to-state-in-requirements-txt-a-direct-github-source
It seems i can't..

pip install -e git+https://git<EMAIL_ADDRESS>


ENH: Write CompositeTransform when combination has multiple transforms

When the AdvancedCombinationTransform to be written by the WriteToFile member function of elx::TransformBase has more than one transform, WriteToFile now writes an ITK CompositeTransform of all of them to TFM or HDF5 (experimentally).
Removed the BSpline test from TransformIO.CorrespondingItkTransform, as it is broken by this enhancement.
Added itkElastixRegistrationMethod.WriteCompositeTransform GoogleTest unit test.

This pull request supports combinations of Affine, BSpline, Euler, Similarity, and Translation transformations from an elastix registration to be written into a single ITK TFM or HDF5 file, as an ITK CompositeTransform.
(Users may specify that they want to have such output files from elastix by parameter file entry (TransformOutputFileNameExtensions ".h5" ".mat" ".tfm"), as implemented by pull request  #358  "ENH: Add parameter file support for TransformOutputFileNameExtensions")
Questions to be discussed (possibly at the sprint):

Is it already a useful feature, given the fact that it is now limited to a combination of those five transform types?
What if the "combination" consists of just one transform (i.e. there is no "initial transform", only a "current transform")? Is it OK to then just output the one transform, instead of a "CompositeTransform" of one.
What if "HowToCombineTransforms" is "Add", rather than "Compose"? The current pull request just ignores "HowToCombineTransforms".
What if the combination contains elastix "advanced" transforms that cannot (yet) be converted to ITK transforms? The current pull request will then just write the one elastix transform to a TFM/HDF5 file.  (Relates to question 1.)

elastix already supports configuration parameter "UseBinaryFormatForTransformationParameters". When enabled, the transform parameter "TransformParameters" will have the ".dat" file name, instead of the ITK-style list from itk::Transform::GetParameters().
Personally I found it clearer to use a separate "TransformFileName" parameter, to refer to an external ITK Transform file (HDF5 or TFM). But if the two options are so similar, should the parameter conversion be synchronized, one way or the other?

TODO:

Document this! (wiki, example ITKElastix notebook)
Remove redundant transform parameters from txt file, when using ITK format
.dat may go.


uploading images to AWS / Azure

As an image builder user, I should be able to upload the cloud images I create for AWS and Azure to my accounts with AWS and Azure.
Some work has already happened in the UI for this feature in https://github.com/weldr/cockpit-composer/pull/767. This flow was captured in this document along with questions about this flow. The feedback provided in this document should inform some of the decisions we make when implementing this in osbuild-composer.
Rough list of requirements:
Minimum (these should be possible with the functionality that would be available if we have parity with lorax-composer)

When the user chooses to create an AWS or Azure image, the user is presented with an option to upload the image
Any authentication information that is equivalent to a password is treated as a password in the UI
The form that captures information about uploading images should clearly identify which fields are required.

Nice to have

Within the modal/wizard for specifying upload information, the user sees an error message if the authentication information they provided failed. (this would require an enhancement to the functionality that is currently available with lorax-composer)
For existing AWS/Azure images, the user can choose to upload the image
The user is provided helpful information about each field that displays in the Upload forms.

Help for Azure is captured in https://github.com/weldr/cockpit-composer/issues/781
Help for AWS is to be provided

For fields that allow the user to create vs select existing values (like S3 buckets), we display the values that currently exist if possible. (this probably requires an enhancement to the functionality that is currently available with lorax-composer)
In the list of images, the user can see upload status
When viewing upload status, the user can cancel upload (this might require an enhancement to the functionality that is currently available with lorax-composer)

To simplify what we try to deliver initially, I suggest that we don't support the ability to create an S3 bucket in AWS, and instead rely on the user to have an existing bucket to use. This will help simplify the user flow and also avoid the need to handle additional error cases that come along with bucket creation.
My understanding is that currently, the "Region" field is only included for the case where the user wants to create a new bucket in the upload UI. If that's the case, then we can remove that field from the UI. Additionally, the help text for the S3 bucket input field can specify that the user is expected to provide the name of an existing bucket.