Single array value from command line overrides all other properties defined in values.yml

Hi there, we try to pass in a value using the --set parameter on the command line that is a nested value in an array. When doing to, all other child properties defined in our values.yml file are ignored.
We have a chart that has a dependency to another chart in requirements.yml. Our chart has a values.yml containing the following properties:
kafka-lag-exporter:
  clusters:
  - name: "default"
    # bootstrapBrokers: <from command line>
    consumerProperties:
      client.id: kafka-lag-exporter
      reconnect.backoff.max.ms: 15000
      reconnect.backoff.ms: 2000
      request.timeout.ms: 20000
      retry.backoff.ms: 5000
      sasl.mechanism: PLAIN
      security.protocol: SASL_SSL
      session.timeout.ms: 30000
      ssl.endpoint.identification.algorithm: https

When deploying the chart, we hand over the values for the commented property above using the --set parameter like this:
helm upgrade --install --set kafka-lag-exporter.clusters[0].bootstrapBrokers=***

As soon as the additional property is handed over using the --set parameter, all values defined for index 0 of the "clusters" array from the values.yml file are ignored.
We expected the values to be merged. Are we doing anything wrong here or is this not supported?
Help and answers are much appreciated! Thanks a lot in advance!

What version of Helm are you using?

We are using 3.5.2

Before I responded in detail I wanted to double check the expected behavior. I verified in both Helm v2 and v3 along with looking at the docs.
The current Helm behavior is the expected behavior and has been this way for quite a few years. Any change to this behavior will end up being treated as a behavior change and could happen in one of the two following ways:

As a default behavior change that could be proposed for Helm v4. Breaking changes only occur in Helm at major releases
Using an opt-in flag

All of the functionality for this is in pkg/strvals/. Basically, at each level of the data structures Helm replaces the old one with the new one. In the case of kafka-lag-exporter.clusters[0].bootstrapBrokers=***, bootstrapBrokers is set to ***, then clusters[0] is set to the new object with bootstrapBrokers=***, and up the data structure it walks doing the same thing. There is no merging.
It sounds like you would like the merging behavior.

Yes, that is right. Whether it is as a default behaviour or via opt-in flag does not matter that much from my perspective.
The reason why I find the current behaviour a bit strange is as follows:
Imagine in my example above, there would only be a single cluster
kafka-lag-exporter:
  cluster:
    name: "default"
    # bootstrapBrokers: localhost://abcd
    consumerProperties:
      client.id: kafka-lag-exporter
      reconnect.backoff.max.ms: 15000
      reconnect.backoff.ms: 2000
      request.timeout.ms: 20000
      retry.backoff.ms: 5000
      sasl.mechanism: PLAIN
      security.protocol: SASL_SSL
      session.timeout.ms: 30000
      ssl.endpoint.identification.algorithm: https

When doing the same now using the helm command line as in my original post above like this:
helm upgrade --install --set kafka-lag-exporter.cluster.bootstrapBrokers=***

it merges the values. It only behaves different in the original post because "clusters" is a list element. That is quite confusing and since it is a common use case to set helm values on the command line to override default values that are delivered with the chart, you should not be forced to pass in all values of the list element again.

Is there any progress on this? Will this be considered for a future helm release?

Even if it is a default behaviour i find it very strange. I am with the OP. It should only override the path mentioned in the --set.

Is there any update on this topic? Any chance that this will be considered?

Hi there again, just wanted to catch up and see, if there is any progress on this issue?

Hi there! Is there any progress on this issue?

Hey, looks like I have very same problem. Any updates?

Hey, same issue happens to me. It looks like #5711

However, this values.yaml works as expected:
webserver:
  service:
    type: NodePort
    ports:
      - name: airflow-ui
        port: 8080
        nodePort: 30001

But it would be nicer to avoid the repetition in some cases.

iirc, you don't have to repeat the whole stanza, just the value you want to change and the name:
webserver:
  service:
    type: NodePort
    ports:
      - name: airflow-ui
        nodePort: 30001

As for the question about updates, no. A core maintainer said it's working as intended and laid out a path for a contribution. Unless someone's willing to step up and contribute, there won't be any updates from the core maintainers until, possibly, there are enough breaking feature requests to start on helm v4.

iirc, you don't have to repeat the whole stanza, just the value you want to change and the name:

This is true and false at the same time. It works only if you don't have any array value properties in parent array.

Easy to fix, simply set values to ... default values.yaml file:
helm template --set "ingress.hosts[0].host=toto" --values values.yaml .

The "merge" operation:

default values
parameters
default values

@ebuildy does this fix the issue?


Update PyPI package

Since #6 was fixed with #7 I think a release of the package on PyPI could be ideal.

This can be closed now. Sry for the delay. BTW I'll soon push a fix for #9 and will then release it as 0.3.


Distinguish between receiver and initiator of a payment

Describe the bug
See https://github.com/getAlby/lightning-browser-extension/pull/762#discussion_r839345174
The only situation where we know something about the receiver is when we pay to a lightning address in directly.

Use-Case
Initiator
Receiver

Pay to Lightning Adress
Alby
✅

Pay an invoice in Alby
Alby
❌

Pay via WebLN (Invoice)
Website
❌

The UI of Alby should reflect what we know about the payment being made.
Affected areas

Payment dialogs
Payment notifications

To Reproduce
Pay an invoice in Alby

Open Alby
Paste an invoice

The UI currently indicates that one is paying to Alby, while Alby is only the initiator of the payment.

Pay via WebLN

Pay an invoice via WebLN

The UI currently indicates that one is paying to the website, while the website ist only the initiator of the payment.
Are you working on this issue? No

Looking into this.
Filling this would be helpful:

Expected behavior
A clear and concise description of what you expected to happen

maybe let's pair on this?
And I think this should be tackled when we do @dvoroneca new designs. One major topic here is that we don't show the Alby publisher card as seen in the screenshot above. (we currently do that because we reused a component that expects origin data that typically comes from the website that initiates the payment. )
so we must check which components are used in these flows and what we can reuse and what we need to adjust.


Share link with the encoded data

User story:
As a user, I want to get the link to the page with the encoded data so that I will be able to share or bookmark my code snippets with their AST and NCM representations

It would be great to share the link with the encoded into URL params data.

[ ] Decide which encoding to use for code compression (write 3 options and choose the best)
[ ] code=encoded code
[ ] &lang=language ID
[ ] &parser=parser name
[ ] Create ShareLink component

Use plain text (as encoded URI)
Convert text to bytes array with native TextEncoder interface in js
Use lz-string lib

I think lz-string is the best option here

base64

@metafates , how will you pass the encoded lz-string through URL params?

@metafates , how will you pass the encoded lz-string through URL params?

Since it's just an int array I can join it with separator (like "-") and that's it
/?code=179-938-627-377... like that

You mean joining these LZ-string symbols?

Do you mean joining these LZ-string symbols?

Yes, not int array, I think it's hex or something, anyways, it's easy to implement

Now I think about it - maybe it does take less bytes but overall length is longer, so maybe plain text is better🤔

Yes, the idea of compressing is that it generates a shorter string in the another encoding and if you transfer it using the initial one, you will only increase size :)

Yes, the idea of compressing is that it generates a shorter string in the another encoding and if you transfer it using the initial one, you will only increase size :)

So, plain text?

I don't know the best option, it would be better if you get several code samples with different sizes (50 chars - 10000 chars) with different symbols like emoji 🙂 and test different options. And the only option I see now it's base64, because it can be passed as URL param.

Firstly we should understand the specification of URL strings, how browser process them and what we can do.


Login Twig extension requires Session

Hi @bitgandtter ,
I am trying to get my Symfony2 application not to start a session where it isn't needed, but I have a blocker : as soon as this GoogleBundle is loaded in my AppKernel, if I load Twig to render a page, the Twig extensions of this bundle are loaded (because of the "twig.extension" tag), and as one of them requires service "bit_google.client" which itself requires a Symfony2 Session, a session is started.
I see a few ways to handle this situation, and I can implement the solution you will choose among:

Very easy but not very convenient for your bundle's user: not declaring the Twig extensions services and adding to the bundle's documentation how to enable them
A bit better: add a boolean configuration parameter (to false by default) to your bundle to enable the Twig extensions, and enable them with a Compiler Pass depending on the value of the configuration parameter
Change the way the Session is injected to the GoogleClient service to avoid an automatic instantiation, but I'm not really sure how to do this

Please tell me what's your favorite approach (or if you'd use a different one) and I can implement it for you this weekend, as this is a blocker to me in a professional project.
Thanks

Hi there. Has been a while since i deprecate this bundle i advice to use the Hwoauthbundle that its more complete on this matter and has a greate documentation. Now if you like it you can take over this bundle and keep maintaining it.
About the blocker issue. From my perspective the best solution its #2 since #1 as you say is not a good one and #3 is impossible, at far as I know; since once your require to inject the session service on one of your the session will be automatically started. Also SF since version 2.3 autostar session on every request you need to toggle that off on the commit.
About solution #2 I think to add the configuration parameter is great but I advice to set it on true by default since the aim of the bundle is easy configuration and easy start to use integration. So in the most cases that behavior will apply. For casea like yours you will then have this configuration option to disable the extension.
Cheera

Hello,
So there is PR #22 that fixes the issue. Some information:

Didn't know this bundle was deprecated, but actually I'm using it for its GoogleContacts feature, so Hwoauthbundle doesn't apply to me ;)
Symfony2 doesn't autostart sessions, but many people think it does because they use session stuff without noticing (like flash messages in Twig templates for example, or in more complex cases like setting a tag that will make a session-dependent service instantiated on every request)
I implemented solution 2/ but without Compiler Pass, I just isolated the Twig extension in a separate configuration file that I load only if the configuration parameter is set to true (and yes, true is the default value ;))
I also changed the symfony components dependencies to make your bundle still compatible with Symfony 2.3 projects :)

So if you have a minute, please consider merging #22 and create a release for this bundle ;)
Thanks


Error deleting a column from a table in MySQL - Lightweight Sink Connector

When trying to remove a column from the MYSQL database the following error occurs in the docker-clickhouse-sink-connector-lt-1:
2024-04-30 08:38:54 [Sink connector Debezium Event Thread] INFO com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - ClickHouse DDL: ALTER TABLE `leads`
2024-04-30 08:38:54 [Sink connector Debezium Event Thread] WARN com.clickhouse.jdbc.parser.ClickHouseSqlParser - Parse error at line 1, column 20.  Encountered: <EOF>. If you believe the SQL is valid, please feel free to open an issue on Github with this warning and the following SQL attached.
2024-04-30 08:38:54 ALTER TABLE `leads`
2024-04-30 08:38:54 [Sink connector Debezium Event Thread] ERROR com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - Error running DDL Query: java.sql.SQLException: Code: 62. DB::Exception: Syntax error: failed at position 21 (end of query): . Expected one of: ON, a list of ALTER commands, ALTER command, ADD COLUMN, RENAME COLUMN, MATERIALIZE COLUMN, DROP PARTITION, DROP PART, DROP DETACHED PARTITION, DROP DETACHED PART, DROP COLUMN, CLEAR COLUMN, ADD INDEX, DROP INDEX, CLEAR INDEX, MATERIALIZE INDEX, ADD PROJECTION, DROP PROJECTION, CLEAR PROJECTION, MATERIALIZE PROJECTION, MOVE PART, MOVE PARTITION, ADD CONSTRAINT, DROP CONSTRAINT, DETACH PARTITION, DETACH PART, ATTACH PARTITION, REPLACE PARTITION, ATTACH PART, FETCH PARTITION, FETCH PART, FREEZE, UNFREEZE, MODIFY COLUMN, ALTER COLUMN, MODIFY ORDER BY, MODIFY SAMPLE BY, REMOVE SAMPLE BY, DELETE, UPDATE, COMMENT COLUMN, MODIFY TTL, REMOVE TTL, MATERIALIZE TTL, MODIFY SETTING, RESET SETTING, MODIFY QUERY, MODIFY COMMENT. (SYNTAX_ERROR) (version <IP_ADDRESS> (official build))

Hello @subkanthi nice to meet you,
Yes, of course, here you go:
Version of the clickhouse-sink-connector is: altinity/clickhouse-sink-connector:2.0.2-lt
2024-04-30 08:37:24 [Sink connector Debezium Event Thread] INFO io.debezium.connector.mysql.MySqlConnectorConfig - Using io.debezium.connector.mysql.strategy.mysql.MySqlConnectorAdapter
2024-04-30 08:37:24 [Sink connector Debezium Event Thread] INFO io.debezium.connector.mysql.MySqlConnectorConfig - Using io.debezium.connector.mysql.strategy.mysql.MySqlConnectorAdapter
2024-04-30 08:37:24 [Sink connector Debezium Event Thread] INFO com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - Executed Source DB DDL: alter table `leads` add `country` varchar(255) null after `phone` Snapshot:false
2024-04-30 08:37:24 [Sink connector Debezium Event Thread] INFO com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - ClickHouse DDL: ALTER TABLE `leads` ADD COLUMN `country` Nullable(String)  after `phone`

@subkanthi did you test
alter table `leads` drop column `country`;
alter table `leads`  drop `country`;

both should be translated in CH

@Jimerson21 please confirm that it is a similar statement that is not translated.

2024-04-30 15:50:45 [Sink connector Debezium Event Thread] INFO com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - ***** DDL received, Flush all existing records
2024-04-30 15:50:45 [Sink connector Debezium Event Thread] INFO com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - Executed Source DB DDL: alter table `leads` drop `country` Snapshot:false
2024-04-30 15:50:45 [Sink connector Debezium Event Thread] INFO com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - ClickHouse DDL: ALTER TABLE `leads`
2024-04-30 15:50:45 [Sink connector Debezium Event Thread] WARN com.clickhouse.jdbc.parser.ClickHouseSqlParser - Parse error at line 1, column 20.  Encountered: <EOF>. If you believe the SQL is valid, please feel free to open an issue on Github with this warning and the following SQL attached.
2024-04-30 15:50:45 ALTER TABLE `leads`
2024-04-30 15:50:45 [Sink connector Debezium Event Thread] ERROR com.altinity.clickhouse.debezium.embedded.cdc.DebeziumChangeEventCapture - Error running DDL Query: java.sql.SQLException: Code: 62. DB::Exception: Syntax error: failed at position 21 (end of query): . Expected one of: ON, a list of ALTER commands, ALTER command, ADD COLUMN, RENAME COLUMN, MATERIALIZE COLUMN, DROP PARTITION, DROP PART, FORGET PARTITION, DROP DETACHED PARTITION, DROP DETACHED PART, DROP COLUMN, CLEAR COLUMN, ADD INDEX, DROP INDEX, CLEAR INDEX, MATERIALIZE INDEX, ADD STATISTIC, DROP STATISTIC, CLEAR STATISTIC, MATERIALIZE STATISTIC, ADD PROJECTION, DROP PROJECTION, CLEAR PROJECTION, MATERIALIZE PROJECTION, MOVE PART, MOVE PARTITION, ADD CONSTRAINT, DROP CONSTRAINT, DETACH PARTITION, DETACH PART, ATTACH PARTITION, REPLACE PARTITION, ATTACH PART, FETCH PARTITION, FETCH PART, FREEZE, UNFREEZE, MODIFY COLUMN, ALTER COLUMN, MODIFY ORDER BY, MODIFY SAMPLE BY, REMOVE SAMPLE BY, DELETE, UPDATE, COMMENT COLUMN, MODIFY TTL, REMOVE TTL, MATERIALIZE TTL, MODIFY SETTING, RESET SETTING, MODIFY QUERY, MODIFY SQL SECURITY, MODIFY DEFINER, MODIFY REFRESH, MODIFY COMMENT, APPLY DELETED MASK. (SYNTAX_ERROR) (version <IP_ADDRESS> (official build))
2024-04-30 15:50:45 , server ClickHouseNode [uri=http://host.docker.internal:18123/automatichat, options={custom_settings=allow_experimental_object_type=1,insert_allow_materialized_columns=1,client_name=Client_1}]@2103633646

alter table leads drop country

ok that confirms the exact DDL,  that should be supported
 alter table `leads` drop `country`

it is equivalent to
 alter table `leads` drop column `country`

Thank you @subkanthi !

Thank you very much @aadant  and @subkanthi for your collaboration.


STM32: Multiple ADCs using same interrupt not possible

Is this request related to a missing driver support for a particular hardware platform, SoC or board? Please describe.
Some STM32 chips have multiple ADCs. At the moment e.g. the STM32F407 ADC1 is the only available one out of three.
Describe why you are asking for this support?
On some of the larger chips (e.g. LFPQ144) the ADC3 has dedicated inputs I would like to use.
If this is a new board or SoC, please state whether you are willing to maintain the Zephyr support for it if it is included in the main tree
I am willing to implement this feature if I get some help.
I have attempted to add ADC2 and ADC3 to the device tree, but when multiple of them have the status "okay", I get the error
gen_isr_tables.py: error: multiple registrations at table_index 18 for irq 18 (0x12)
Existing handler 0x801c283, new handler 0x801c283
Has IRQ_CONNECT or IRQ_DIRECT_CONNECT accidentally been invoked on the same irq multiple times?

Which is due to the fact that the three ADCs share interrupt 18 as a global ADC interrupt.
Addition is done in a .overlay:
/ {
    soc {
        adc2: adc@40012100 {
            compatible = "st,stm32-adc";
            reg = <0x40012100 0x100>;
            clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000100>;
            interrupts = <18 0>;
            status = "disabled";
            label = "ADC_2";
            #io-channel-cells = <1>;
        };
        adc3: adc@40012200 {
            compatible = "st,stm32-adc";
            reg = <0x40012200 0x100>;
            clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000100>;
            interrupts = <18 0>;
            status = "disabled";
            label = "ADC_3";
            #io-channel-cells = <1>;
        };
};

Could there be an option to nest the ADCs? This could be beneficial as they also share the ADC_Common register, which defines e.g. interleaving options.

This enhancement would be great!  @lsangild how did you end up dealing with this limitation?

This enhancement would be great! @lsangild how did you end up dealing with this limitation?

I have not dealt with it. My application does not necessarily need the dedicated inputs at the moment, so I am using only ADC1.
Later on in the development process, if this feature is not implemented, I will probably use the HAL or LL libraries to circumvent the limitations present in Zephyr.

@Jeepgoing please check https://github.com/zephyrproject-rtos/zephyr/pull/37585

@Jeepgoing please check #37585

LGTM
#ifdef CONFIG_ADC_STM32_SHARED_IRQS
static bool init_irq = true;
#endif

But i am not sure is the best solution.

Fixed by https://github.com/zephyrproject-rtos/zephyr/pull/41497


cups-browsed high CPU consumption.

Hi,
I just realized this process was consuming all of my resources.
As a mitigation, I removed CUPS but I wanted to know whether I was been affected by this vulnerability and how can I check it:
https://ubuntu.com/blog/cups-remote-code-execution-vulnerability-fix-available
Thanks in advance.
Removing cups-browsed (2.0.0-0ubuntu10.2) ... Removing cups-core-drivers (2.4.7-1.2ubuntu7.3) ... Removing cups-daemon (2.4.7-1.2ubuntu7.3) ... Removing cups-server-common (2.4.7-1.2ubuntu7.3) ... Removing hplip-data (3.23.12+dfsg0-0ubuntu5) ...

phew!
Thanks so much for the clarification, @tillkamppeter
Will do!


ImportError DLL load failed: %1 is not a valid win32 application from wheel packaged library

Python Version: python 3.7.1
Windows 10 build 17763
64-bit processor
Visual studio 2017 installed
I am writing a library called pyjtmorrisbytes that holds common code that I will use across all flask applications. flask depends on werkzeug which is imported from pyjtmorrisbytes.factories.flaskfactory and called from pyjtmorrisbytes.factories.flaskfactory::create_app. When imported from inside the same project, no error is thrown. I can call the create_app function inside tests and other code inside the same package, but when I package and distribute the application in another project inside the same computer, I get the following traceback while trying to import the function:
>>> from pyjtmorrisbytes.factories.flaskfactory import create_app
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "src\pyjtmorrisbytes\factories\flaskfactory.pyx", line 31, in init pyjtmorrisbytes.factories.flaskfactory
  File "C:\Users\jthec\.virtualenvs\flask-app-template-zB0k0H-c\lib\site-packages\flask\__init__.py", line 17, in <module>
    from werkzeug.exceptions import abort
  File "C:\Users\jthec\.virtualenvs\flask-app-template-zB0k0H-c\lib\site-packages\werkzeug\__init__.py", line 152, in <module>
    __import__('werkzeug.exceptions')
  File "C:\Users\jthec\.virtualenvs\flask-app-template-zB0k0H-c\lib\site-packages\werkzeug\exceptions.py", line 71, in <module>
    from werkzeug.wrappers import Response
ImportError: DLL load failed: %1 is not a valid Win32 application.

Is this a problem with cython or is the way werkzeug importing libraries causing the import to fail? I can resort to just using a python library if necessary, but I would like to know why it happens

Doesn't look like a Cython issue at all. I would suggest deleting your venv and recreating it.


Merge Ant parent license fix

We need to merge https://github.com/apache/ant-ivy/pull/7 into this repo's Ant fork to fix https://github.com/sbt/sbt-license-report/issues/7

It's actually the sbt/ivy repo that needs to merge it. I'll look at that today.

I looked into migrating that into our ivy branch. Just FYI, the tests are not passing for that patch on our back-port, so it'll be a while to merge it.


[CLOSED] [BetterDiscord] Pfps not showing up properly (+ temp fix)

Profile pictures show up as invisible.
When I open Inspect Element, the url is "goose-nest.github.io/assets/0e291f67c9274a1abdddeb3fd919cbaa.png" rather than "discord.com/assets/0e291f67c9274a1abdddeb3fd919cbaa.png"
In the pfps.css, the url is: "/assets/0e291f67c9274a1abdddeb3fd919cbaa.png"
I can imagine this bug is due to the origin of the pfps.css file being from goose-nest.github.io, so it doesn't work properly.
Does this happen for other people as well? Or is it just on my side.
Temporary fix css:
pfps.theme.css.zip

Yeah I see the issue, will fix in a bit.

(Issue is BD-only afaik.)

Fixed a while ago by #48


[SAM] RuntimeError: The size of tensor a (10) must match the size of tensor b (314) at non-singleton dimension 1

obj = SAM_handson(num_hidden_generator=200, num_hidden_discriminator=200, train_epochs=100, test_epochs=30, batchsize=10, dagloss=True, verbose=True, nruns=1)
output = obj.predict(data, graph=skeleton_g)
#output = obj.predict(toy_dummy)

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-30-ebf0bd99ce25> in <module>()
      1 obj = SAM_handson(num_hidden_generator=200, num_hidden_discriminator=200, train_epochs=100, test_epochs=30, batchsize=10, dagloss=True, verbose=True, nruns=1)
----> 2 output = obj.predict(data, graph=skeleton_g)
      3 #output = obj.predict(toy_dummy)

6 frames
<ipython-input-21-0098e2a71c5b> in predict(self, data, graph, return_list_results)
    106                                losstype=self.losstype,
    107                                hidden_layers=self.hidden_layers,
--> 108                                ) for i in range(self.nruns)]
    109
    110         list_out = [i for i in results if not np.isnan(i).any()]

<ipython-input-21-0098e2a71c5b> in <listcomp>(.0)
    106                                losstype=self.losstype,
    107                                hidden_layers=self.hidden_layers,
--> 108                                ) for i in range(self.nruns)]
    109
    110         list_out = [i for i in results if not np.isnan(i).any()]

<ipython-input-20-43884eca4be5> in run_SAM(input_data, skeleton, device, train, test, batch_size, lr_gen, lr_disc, lambda1, lambda2, num_hidden_generator, num_hidden_discriminator, tqdm, losstype, dagstart, dagloss, dagpenalization, dagpenalization_increase, hidden_layers, idx)
     77             generated_variables = sam(batch, noise,
     78                                       torch.cat([drawn_graph, noise_row], 0),
---> 79                                       drawn_neurons)
     80
     81             disc_vars_d = discriminator(generated_variables.detach(), batch)

/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    539             result = self._slow_forward(*input, **kwargs)
    540         else:
--> 541             result = self.forward(*input, **kwargs)
    542         for hook in self._forward_hooks.values():
    543             hook_result = hook(self, input, result)

<ipython-input-18-fae8b7226719> in forward(self, data, noise, adj_matrix, drawn_neurons)
     38         """
     39
---> 40         output = self.output_layer(self.layers(self.input_layer(data, noise, adj_matrix * self.skeleton)), drawn_neurons)
     41         return output.squeeze(2)
     42

/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    539             result = self._slow_forward(*input, **kwargs)
    540         else:
--> 541             result = self.forward(*input, **kwargs)
    542         for hook in self._forward_hooks.values():
    543             hook_result = hook(self, input, result)

/usr/local/lib/python3.7/dist-packages/cdt/utils/torch.py in forward(self, input, adj_matrix, permutation_matrix)
    372
    373         if adj_matrix is not None and permutation_matrix is not None:
--> 374             input_.append((input_[-1].transpose(0, 1) @ (adj_matrix.t().unsqueeze(2) * permutation_matrix)).transpose(0, 1))
    375         elif adj_matrix is not None:
    376             input_.append(input_[-1] * adj_matrix.t().unsqueeze(0))

RuntimeError: The size of tensor a (10) must match the size of tensor b (314) at non-singleton dimension 1

class SAM_handson(GraphModel):
    """SAM Algorithm.
    Args:
        lr (float): Learning rate of the generators
        dlr (float): Learning rate of the discriminator
        lambda1 (float): L0 penalization coefficient on the causal filters
        lambda2 (float): L0 penalization coefficient on the hidden units of the neural network
        num_hidden_generator (int): Number of hidden units in the generators' hidden layers(regularized with lambda2)
        num_hidden_discriminator (int): Number of hidden units in the discriminator's hidden layer
        train_epochs (int): Number of training epochs
        test_epochs (int): Number of test epochs (saving and averaging the causal filters)
        batch_size (int): Size of the batches to be fed to the SAM model. Defaults to full-batch.
        losstype (str): type of the loss to be used (either 'fgan' (default),'gan' or 'mse').
        hlayers (int): Defines the number of hidden layers in the discriminator.
        dagloss (bool): Activate the DAG with No-TEARS constraint.
        dagstart (float): Controls when the DAG constraint is to be introduced
           in the training (float ranging from 0 to 1, 0 denotes the start of
           the training and 1 the end).
        dagpenalisation (float): Initial value of the DAG constraint.
        dagpenalisation_increase (float): Increase incrementally at each epoch
           the coefficient of the constraint.
        linear (bool): If true, all generators are set to be linear generators.
        nruns (int): Number of runs to be made for causal estimation.
               Recommended: >=8 for optimal performance.
        njobs (int): Numbers of jobs to be run in Parallel.
               Recommended: 1 if no GPU available, 2*number of GPUs else.
        gpus (int): Number of available GPUs for the algorithm.
        verbose (bool): verbose mode
    """

    def __init__(self, lr=0.01, dlr=0.01, lambda1=0.01, lambda2=0.00001, num_hidden_generator=200, num_hidden_discriminator=200,
                 train_epochs=10000, test_epochs=1000, batchsize=-1,
                 losstype="fgan", dagstart=0.5, dagloss=True, dagpenalization=0,
                 dagpenalization_increase=0.001, hidden_layers=2,
                 njobs=None, gpus=None, verbose=None, nruns=1):

        """Init and parametrize the SAM model."""
        super(SAM_handson, self).__init__()
        self.lr = lr
        self.dlr = dlr
        self.lambda1 = lambda1
        self.lambda2 = lambda2
        self.num_hidden_generator = num_hidden_generator
        self.num_hidden_discriminator = num_hidden_discriminator
        self.train = train_epochs
        self.test = test_epochs
        self.batchsize = batchsize
        self.losstype = losstype
        self.dagstart = dagstart
        self.dagloss = dagloss
        self.dagpenalization = dagpenalization
        self.dagpenalization_increase = dagpenalization_increase
        self.hidden_layers = hidden_layers
        self.njobs = SETTINGS.get_default(njobs=njobs)
        self.gpus = SETTINGS.get_default(gpu=gpus)
        self.verbose = SETTINGS.get_default(verbose=verbose)
        self.nruns = nruns

    def predict(self, data, graph=None,
                return_list_results=False):
        """Execute SAM on a dataset given a skeleton or not.
        Args:
            data (pandas.DataFrame): Observational data for estimation of causal relationships by SAM
            skeleton (numpy.ndarray): A priori knowledge about the causal relationships as an adjacency matrix.
                      Can be fed either directed or undirected links.
        Returns:
            networkx.DiGraph: Graph estimated by SAM, where A[i,j] is the term
            of the ith variable for the jth generator.
        """
        if graph is not None:
             skeleton = torch.Tensor(graph)

        else:
            skeleton = None

        assert self.nruns > 0

        results = [run_SAM(data, skeleton=skeleton,
                               lr_gen=self.lr,
                               lr_disc=self.dlr,
                               tqdm=self.verbose,
                               lambda1=self.lambda1, lambda2=self.lambda2,
                               num_hidden_generator=self.num_hidden_generator,
                               num_hidden_discriminator=self.num_hidden_discriminator,
                               train=self.train,
                               test=self.test, batch_size=self.batchsize,
                               dagstart=self.dagstart,
                               dagloss=self.dagloss,
                               dagpenalization=self.dagpenalization,
                               dagpenalization_increase=self.dagpenalization_increase,
                               losstype=self.losstype,
                               hidden_layers=self.hidden_layers,
                               ) for i in range(self.nruns)]

        list_out = [i for i in results if not np.isnan(i).any()]

        try:
            assert len(list_out) > 0
        except AssertionError as e:
            print("All solutions contain NaNs")
            raise(e)

        W = sum(list_out)/len(list_out)

        return nx.relabel_nodes(nx.DiGraph(W),
                                {idx: i for idx,
                                 i in enumerate(data.columns)})

    def orient_directed_graph(self, *args, **kwargs):
        """Orient a (partially directed) graph."""
        return self.predict(*args, **kwargs)
        # undirected? check parent/child

    def orient_undirected_graph(self, *args, **kwargs):
        """Orient a undirected graph."""
        return self.predict(*args, **kwargs)

    def create_graph_from_data(self, *args, **kwargs):
        """Estimate a causal graph out of observational data."""
        return self.predict(*args, **kwargs)

class SAM_generators(Module):
    """
    Args:
        data_shape (tuple): Shape of the true data
        num_hidden: Initial number of hidden units in the hidden layers
    """
    def __init__(self, data_shape, num_hidden, skeleton=None):
        super(SAM_generators, self).__init__()

        num_vars = data_shape[1]
        self.num_vars = num_vars
        # Build fully connected skeleton
        if skeleton is None:
            skeleton = 1 - torch.eye(num_vars + 1, num_vars)
        else:
            skeleton = torch.cat([torch.Tensor(skeleton), torch.ones(1, num_vars)], 1)
        self.register_buffer('skeleton', skeleton)
        # Build layers
        print(num_vars, num_hidden)
        self.input_layer = Linear3D(num_vars, num_vars+1, num_hidden)

        layers = []
        layers.append(ChannelBatchNorm1d(num_vars, num_hidden))
        layers.append(torch.nn.Tanh())
        self.layers = torch.nn.Sequential(*layers)

        self.output_layer = Linear3D(num_vars, num_hidden, 1)

    def forward(self, data, noise, adj_matrix, drawn_neurons=None):
        """
        Args:
            data: True data
            noise: Samples of noise variables
            adj_matrix: Sampled adajacency matrix
            drawn_neurons: Sampled matrix of active neurons
        Returns:
            torch.Tensor: Batch of generated data
        """

        output = self.output_layer(self.layers(self.input_layer(data, noise, adj_matrix * self.skeleton)), drawn_neurons)
        return output.squeeze(2)

    def reset_parameters(self):
        self.output_layer.reset_parameters()
        for layer in self.layers:
            if hasattr(layer, 'reset_parameters'):
                layer.reset_parameters()
        self.input_layer.reset_parameters()

Hi, I have error while using SAM algorithm.
I have original data shape (1000 row x  313 column), and batch size is 10, and I am trying to infer data structure using SAM.
And error is as above.
The code worked some month ago, so I totally am confused why it complains about
batch size(10) should be same to intermediate neural net node number(314 = that's 314 + 1, as i have set..) now.
Tried to

transpose data itself and then predict output, but still didn't work, same error message but with different dimension number
changed batch size to 314 (I know.. this would never work.)

Can someone help?
(Sorry if I might be asking something very basic.)

Hello,
This is strange, but the  implementation of SAM should change soon to fit the new version of the paper. I'll keep you updated! In the meantime, do you have sample data on which the error occurs ?

Thanks for reply.
I think SAM algorithm itself is okay, but I think other dependency libraries caused the problem. Might be wrong, but I think pytorch version I used caused the issue. Downgrading it to the old version, worked well!

Okay ! noted, thanks, we should test with newer versions so it works


Uncovered lines

This exception handling in osbrain/proxy.py is not always covered by the test suite:
class Proxy():
    def shutdown(self, timeout=10.):
        # ...
        except ConnectionClosedError:
            pass

We should create a test that forces a ConnnectionClosedError on shutdown.

Worst thing is not that those lines are not covered, but that they are randomly covered by our test suite. This can lead to unwanted failing coverage reports.


[Feedback] Tunernome

[x] Change exit button to 'hold to quit.' This should be consistent with Colorchord
[ ] Metronome - scroll BPM faster when the button is held down longer

Done in https://github.com/AEFeinstein/Super-2021-Swadge-FW-Sandbox/pull/96


Allow _ViewImports to remove default inherited tag helpers.

Additionally simplifying the contract for ChunkInheritaceUtility \ IChunkMerger so we don't have to understand the
order in which CodeTrees appear.
Fixes #2989

cc @NTaylorMullen

:shipit:


Unable to locate package dotnet-runtime-3.0

Problem encountered on https://dotnet.microsoft.com/download/linux-package-manager/debian10/runtime-current
Operating System: Linux Debian 10 - x64
I'm unable to install the dotnet-runtime-3.0 package.  I keep getting this message.  I tried is with several other packages and get the same results.
sudo apt-get install dotnet-runtime-3.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package dotnet-runtime-3.0
E: Couldn't find any package by glob 'dotnet-runtime-3.0'
E: Couldn't find any package by regex 'dotnet-runtime-3.0'

Can you post the results from every step you ran? Not finding dotnet-runtime-3.0 is usually caused by a failure in an earlier step.
Could you also confirm what OS you're using by posting the output of cat /etc/os-release? The automatic issue filing says Debian 10 x64 based on the page you filed from but I want to make sure that's accurate.

The full story:
My OS Info:
cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
To install the .net Core 3 runtime for Debian 10 x32, I followed these instructions
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.0.100-linux-arm.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
which I got form this location
https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-3.0.100-linux-arm32-binaries
After this, I tried to install the SDK, thinking I would need this for development, but this was my mistake because the SDK isn't available for the Raspberry Pi (as far as I know).  Rather, you have to develop on a separate machine and then deploy to the Pi.
Before I realized that, I executed the instructions below. You can see the error I get in the final step, which is might make sense if the SDK isn't available for my situation, but when trying to load the runtime (which i know I already had, but just wanted to see that happened if I tried), I get the same message, which is strange.
pi@raspberrypi:~ $
pi@raspberrypi:~ $
pi@raspberrypi:~ $ sudo apt-get update
Hit:1 http://archive.raspberrypi.org/debian buster InRelease
Hit:2 https://packages.microsoft.com/debian/10/prod buster InRelease
Hit:3 http://raspbian.raspberrypi.org/raspbian buster InRelease
Reading package lists... Done
pi@raspberrypi:~ $ sudo apt-get install apt-transport-https
Reading package lists... Done
Building dependency tree
Reading state information... Done
apt-transport-https is already the newest version (1.8.2).
0 upgraded, 0 newly installed, 0 to remove and 60 not upgraded.
pi@raspberrypi:~ $ sudo apt-get update
Hit:1 http://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:2 http://archive.raspberrypi.org/debian buster InRelease
Hit:3 https://packages.microsoft.com/debian/10/prod buster InRelease
Reading package lists... Done
pi@raspberrypi:~ $ sudo apt-get install dotnet-sdk-3.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package dotnet-sdk-3.0
E: Couldn't find any package by glob 'dotnet-sdk-3.0'
E: Couldn't find any package by regex 'dotnet-sdk-3.0'
pi@raspberrypi:~ $
Output (below) when trying to load the runtime, which should have worked (or at least given a different message, I feel).
sudo apt-get install dotnet-runtime-3.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package dotnet-runtime-3.0
E: Couldn't find any package by glob 'dotnet-runtime-3.0'
E: Couldn't find any package by regex 'dotnet-runtime-3.0'
I don't think there is a technical problem, but rather a procedural/instructional problem with the instructions being unclear as to what is available for which platform.
I am able to develop on a separate machine and deploy to the Pi, so everything is working, it was just painful to get to that point.

Raspberry Pi runs on ARM, not x64. You have to follow the link in this message on the linux-package-manager page:

Not running x64? You'll need to download the .NET Core binaries instead.

But you say you installed the dotnet-sdk-3.0.100-linux-arm.tar.gz binaries successfully this way. That is the SDK! 🙂 Note dotnet-sdk rather than dotnet-runtime. If you really do want just the runtime, there is a different tar.gz you can get in the runtime column.


Add "API documentation in event-driven applications" post

Description

...
...
...

Related issue(s)

@hvalls don't you want to use the opportunity to promote this tweet https://twitter.com/hhccvvmm/status/1258411064947073024 or directly the github project you work on?

@derberg Actually, I would prefer to promote my Vert.x project when it is more advanced. Thank you!

@hvalls the blog post is still not featured https://deploy-preview-102--asyncapi-website.netlify.app/blog/ because of the weight, please remove featured flag from this post https://github.com/asyncapi/website/blob/master/content/blog/asyncapi-conference-kick-off.md and also set weight of your post to 50.
please also set publish date for 18th, Monday

@derberg Done :)


Strike Input type="toggle" does not utilize the checked attribute

There is currently no way to bind the value of the toggle-style checkbox to an attribute. It should be using the checked attribute just like how type="checkbox" works.

just ran into this as well..if you add the checked attribute to the toggle's input and bind it to strike_input's checked attribute it works


Upload fails empty alert.

Category

[ ] Question
[ ] Typo
[x] Bug
[ ] Additional article idea

Expected or Desired Behavior
Upload a document in the same domain.
Observed Behavior
Using the code provided as is with the addition of setting the the following vars and adding the console.log below:
function uploadFile() {

appWebUrl = "https://joetest.com/sites/crdev/fred/rot/applications/AMF";
hostWebUrl = "https://joetest.com/sites/crdev/fred/rot";

and
console.log(appWebUrl, serverRelativeUrlToFolder, fileName, hostWebUrl);

    // Construct the endpoint.
    var fileCollectionEndpoint = String.format(

When running the code there are no errors in the console. There is an empty alert message box. And there is no uploaded file.
Steps to Reproduce
*SP2013 on prem

Create a new web part page in a doclib

Add a CEWP

link CEWP to the html file containing

    <meta charset="utf-8" />
    <title>Testing Only</title>

<input id="getFile" type="file"/>

<input id="displayName" type="text" value="ABC123" />

<input id="addFileButton" type="button" value="Upload" onclick="uploadFile()"/>

Run code selecting a txt file and click upload
Observe Empty "Message from Website" alert
Observe no errors in the console/debugger

@cyberjetx - unless we can build the repro, we can't really act on this issue. Challenge here is that even though you define in the high level what was there, we can't really know exactly how your code is looking. Also, the SharePoint 2013 version might have an impact on this and it's important for testing. We would need more details before we can move forward with this.

Could we, perhaps, set up a skype screenshare? The shoulder surf might reveal something to you.
I don't know how to explain this better and I understand that every environment is different.

Hi @cyberjetx, we do not, unfortunately, scale for one-to-one Skype calls as there are tens of thousands on hundreds of thousands of SharePoint developers out there. What I'd ask is the actual source code for reproducing this in our environment and also the exact version of the SP2013 server. What CUs or patches has been installed on that environment?

Just to follow up on this. We would need more details on the exact version which you are using to be able to proceed with the trouble shooting.

MicrosoftSharePointTeamServices: <IP_ADDRESS>69 per the response headers.

Please engage support for this on premises issue.  This bug is not currently actionable by us.


500-solutions lock should not prevent kata authors from editing the tests

For example, this kata has some issues, but the author can't do anything because 500+ people have already completed it in the language in question.
┆Issue is synchronized with this Clickup  by Unito

Not really. I'll close this because kata can be fixed by forking and approving the fix.


revert supports[:manage_home] behavior

even though i violently disagree that this is correct behavior and we're
just going to break everyone in one massive go when we hit Chef 13.
Signed-off-by: Lamont Granquist<EMAIL_ADDRESS>

@thommay probably up to you as to if this is a regression or not.
should probably get feedback from an affected user that this reverts to the old behavior of supports[:manage_home]

👍 from me, but I also defer to @thommay's wisdom.

@lamont-granquist lol at the "violently" disagree, I may steal that

pretty certain i stole it from someone on Usenet around 1992 (or some dragcit BBS or something back in the dawn of time)

:+1:


run_dlbs.py

Hi @stnava ,
From the README

An example "full study" (at small scale) is illustrated in ~/.antspyt1w/run_dlbs.py which demonstrates/comments on:

I can't find this file run_dlbs.py, could you point me to it?
Thanks

Great, I'll run that


cephbootstrap: run bootstrap with --apply-spec

As reported in the downstream bug cited below, "cephadm bootstrap"
is now deploying 5 MONs and 2 MGRs by default.
The expectation is that "ceph-salt apply" will cause one (and only one)
MON and one (and only one) MGR to be deployed, and that both the MON and
the MGR will be deployed on the node specified by the user as the
bootstrap node.
Fixes: https://bugzilla.suse.com/show_bug.cgi?id=1174422
Signed-off-by: Nathan Cutler<EMAIL_ADDRESS>

added temporary revert for testing

lgtm

So, I added a commit to specify the Mon IP in the placement YAML. It didn't make sense to me to specify the same piece of information in two places, so I dropped the --mon-ip option. However, when invoked without --mon-ip or --mon-addrv, cephadm bootstrap barfs out a Traceback:
Traceback (most recent call last):
  File "/usr/sbin/cephadm", line 5046, in <module>
    r = args.func()
  File "/usr/sbin/cephadm", line 1214, in _default_image
    return func()
  File "/usr/sbin/cephadm", line 2537, in command_bootstrap
    raise Error('must specify --mon-ip or --mon-addrv')
__main__.Error: must specify --mon-ip or --mon-addrv

Opened https://tracker.ceph.com/issues/46782 to track this upstream.

@ricardoasmarques I just tested this and it works for me.

So, I added a commit to specify the Mon IP in the placement YAML. It didn't make sense to me to specify the same piece of information in two places, so I dropped the --mon-ip option. However, when invoked without --mon-ip or --mon-addrv, cephadm bootstrap barfs out a Traceback:
Traceback (most recent call last):
  File "/usr/sbin/cephadm", line 5046, in <module>
    r = args.func()
  File "/usr/sbin/cephadm", line 1214, in _default_image
    return func()
  File "/usr/sbin/cephadm", line 2537, in command_bootstrap
    raise Error('must specify --mon-ip or --mon-addrv')
__main__.Error: must specify --mon-ip or --mon-addrv

Opened https://tracker.ceph.com/issues/46782 to track this upstream.

@sebastian-philipp is your approval still valid now that we are specifying the Mon IP in the placement YAML?

we have to specify the --mon-ip here. bootstrap works like so:

create the first mon using --mon-ip
create the first mgr
configure dashboard etc...
ceph orch apply -i spec.yaml
mgr/cephadm will follow the instructions that were passed in the spec.

Which means, we're looking at the spec much later. Meaning after bootstrapping the first mon.

lgtm

@sebastian-philipp Ah! Now I understand what is missing. If we had a --no-apply-spec option, we could restore the original behavior of cephadm bootstrap, which was to create 1 MON and 1 MGR on the node where it is running.
Then we wouldn't need to bend over backwards sending it a spec file which merely specifies what it has already done.
What do you think?

Opened https://tracker.ceph.com/issues/46801 to track the issue.

The --no-apply-spec is called --orphan-initial-daemons, but you really don't want to do that, except if you're Teuthology, as it leaves the deplyed daemons orphaned and scheduled for potential removal

In that case, it sounds like we need a "--no-apply-spec" that is just like --orphan-initial-daemons, except it doesn't orphan the initial daemons :-)


[Page] Settings && Themes

Migrate Themes page from vue-element-admin

[x] Settings
[x] Themes

Settings are mostly done, will finish Themes later this week.

Done.


修复Bug

Coverage increased (+0.02%) to 93.548% when pulling a15599eda87c8c2c6fb79a0aafee6abc7c18d88b on develop into 088234d604dd38393568058cb8ff74b3b6465581 on master.


Pre-propose multichoice

Implements the new pre-propose flow for cw-proposal-multiple.
Cleaned up a few things. Figured it would be nice to have all of the contracts in our testing package. There may be a few more things we want in there. Went ahead and made testing modules public because some may find them useful.

there is a pretty non-zero amount of work remaining here before we can bring this into main as we need to update the actual cw-proposal-multiple contract to integrate with the new pre-propose interface. as we don't currently have a multiple choice implementation in the frontend, i'm going to move cw-proposal-multiple into legacy and close this for now.
getting back to this work is important, but probably best done once we get v2 out the door and audited.


Cannot read code

Description
Cannot read code block. Blends in with the background.
(Optional:) Please add any files, screenshots, or other information here.
No response
(Required) What is this issue most closely related to? Select one.
Formula
Internal issue ID
00c0bf10-d0ea-4121-859b-1a1d09f87206
Paper URL
https://arxiv.org/html/2404.07878v1
Browser
Chrome/<IP_ADDRESS>
Device Type
Desktop


some zip file can't extract

What system are you running Yazi on?
Linux Wayland
What terminal are you running Yazi in?
foot version: 1.17.2 +pgo +ime +graphemes -assertions
yazi --debug output

##### ↓↓↓ Paste the output here: ↓↓↓ #####
Yazi
    Version: 0.3.0 (516cd23 2024-08-05)
    Debug  : false
    OS     : linux-x86_64 (unix)

Ya
    Version: 0.3.0

Emulator
    Emulator.via_env: ("foot", "")
    Emulator.via_csi: Ok(Foot)
    Emulator.detect : Foot

Adapter
    Adapter.matches: Sixel

Desktop
    XDG_SESSION_TYPE: Some("wayland")
    WAYLAND_DISPLAY : Some("wayland-0")
    DISPLAY         : Some(":0")

SSH
    shared.in_ssh_connection: false

WSL
    /proc/sys/fs/binfmt_misc/WSLInterop: false

Variables
    SHELL              : Some("/bin/fish")
    EDITOR             : Some("nvim ")
    YAZI_FILE_ONE      : None
    YAZI_CONFIG_HOME   : None
    ZELLIJ_SESSION_NAME: None

Text Opener
    default: Some(Opener { run: "$EDITOR \"$1\"", block: true, orphan: false, desc: "neovim", for_: None, spread: false })
    block  : Some(Opener { run: "$EDITOR \"$1\"", block: true, orphan: false, desc: "neovim", for_: None, spread: false })

tmux
    TMUX   : false
    Version: 3.4

Dependencies
    file             : 5.45
    ueberzugpp       : No such file or directory (os error 2)
    ffmpegthumbnailer: 2.2.2
    magick           : 7.1.1-36
    fzf              : 0.54.0
    fd               : 10.1.0
    rg               : 14.1.0
    chafa            : 1.14.1
    zoxide           : 0.9.4
    7z               : No such file or directory (os error 2)
    7zz              : 23.01
    jq               : 1.7.1

Did you try the latest nightly build to see if the problem got fixed?
Yes, and I updated the debug information above (yazi --debug) to the nightly that I tried
Describe the bug
some zip file can use ouch to extract, but can't use build-in feat to extract .
Minimal reproducer
use yazi to extract this file
rust.zip
Anything else?
No response

I think this is because 7zip has trouble handling certain GBK characters:
❯ 7zz x rust.zip -orust

7-Zip (z) 24.07 (arm64) : Copyright (c) 1999-2024 Igor Pavlov : 2024-06-19
 64-bit arm_v:8.5-A locale=en_US.UTF-8 Threads:8 OPEN_MAX:256, ASM

Scanning the drive for archives:
1 file, 11391510 bytes (11 MiB)

Extracting archive: rust.zip
--
Path = rust.zip
Type = zip
Physical Size = 11391510

ERROR: Cannot open output file : errno=92 : Illegal byte sequence : rust/Rust /Rust_Rust߼ǰȫ_rustٷ.pdf

Sub items Errors: 1

Archives with Errors: 1

Sub items Errors: 1

Unfortunately, I don't think there's anything Yazi can do since Yazi's extract plugin is just a wrapper of 7zip.
I suggest you using ouch for the compressed files if it works for you. I considered using ouch instead of 7zip before, but it has terrible preview speed for large archives. Maybe if they improve it in the future, we can switch to it.


Minor refactoring

I suggest some code readability and simplification improvements.
Such as:
One constructor with optional parameters
public Transport(TConnectionSettings configurationValues,
IRequestPipelineFactory pipelineProvider = null,
IDateTimeProvider dateTimeProvider = null,
IMemoryStreamFactory memoryStreamFactory = null)
instead of two:
public Transport(TConnectionSettings configurationValues)
: this(configurationValues, null, null, null){ }
and
public Transport(TConnectionSettings configurationValues,
IRequestPipelineFactory pipelineProvider,
IDateTimeProvider dateTimeProvider,
IMemoryStreamFactory memoryStreamFactory)
And some other minor refactoring (for example - mark private members as readonly, etc.)

Hm... CLA was already signed (couple hours ago)

@dubrovkinmaxim thanks for the PR,
We didn't use default arguments for our dependency chain on purpose, they don't version well if we want to introduce an additional dependency in 2.x's lifetime.
The other refactorings make sense but please make sure you are using tabs as indentation. See our style guide in our contributing.md
Thanks!
Closing this but please feel free to resubmit with tabs and without the default argument changes :+1:


Update README announcing migration and pointing to migrated package in core

Closing and reopening to link with epic: https://github.com/MetaMask/core/issues/1842


Streamlined search parameters.  Fixes #51.

Updated capability statements and ITI-90 to simplify the required search parameters.

I would propose to keep the following parameters on Organization:
_revInclude=OrganizationAffiliation:participating-organization
_revInclude=OrganizationAffiliation:primary-organization
These allow a client working with Organizations to easily get the associated OrganizationAffiliation resources.

I would propose to keep the following parameters on Organization:
_revInclude=OrganizationAffiliation:participating-organization _revInclude=OrganizationAffiliation:primary-organization
These allow a client working with Organizations to easily get the associated OrganizationAffiliation resources.

I've added these back into this pull request.

Reviewed during committee and accepted.


FFmpeg issue , Outpath not found??

Hi! I have issue using this lib.
when I try follow option it shows following error.
opt optino :  {
inputPath: '/opt/..../public/uploads/video/video_1604660099057.mp4',
outputPath: '/opt/..../public/uploads/video/opt/video_1604660099057.mp4',
format: 'mp4',
size: '640x480'
}
excption: Error: ffmpeg exited with code 1: /opt/.../public/uploads/video/opt/video_1604660099057.mp4: No such file or directory
Please help me.

I have solved by myself,
Main point is I have not created sub directory for output path.
I thought it will make output sub path automatically.
Thanks for your lib.