Advanced MERGE incremental settings

Describe the feature
Currently merge conditions are not supported in merge strategy.
If following the Databricks terminology, merge conditions are matched_conditions and not_matched_conditions in MERGE definition.
Taken from DBricks docs:
MERGE INTO target_table_name [target_alias]
   USING source_table_reference [source_alias]
   ON merge_condition
   { WHEN MATCHED [ AND matched_condition ] THEN matched_action |
     WHEN NOT MATCHED [ AND not_matched_condition ] THEN not_matched_action } [...]

As for now the full power of MERGE statement is not supported.
Describe alternatives you've considered
Writing customized adapter with own merge macro to perform such operations. Add conditions to configuration for model.
Additional context
Databricks is more and more often used as a tool to support a variety of data operations that was previously relied on some analytical MPPs. Specifically preparing some DWH-like normalized models for long-term entity-oriented storage and creating non-denormalized data marts.
One of the drawbacks of the merge is that update operation is basically DELETE + INSERT, so it creates some additional expenses for each record that you are updating. So it is widely used techniques to minimise such updates by additional conditions which may apply only for already observed records, and thus can't be defined as merge predicates (in dbt terminology).
Moreover, there are business cases that require that. For example, I am tracking some object and its properties as an entry of the form <o, P>. If I observe some specific instance of such record (<1, A>) I may want to skip all consequent updates if the properties are not changing. And do the update only if I see <1, B> (for example).
Who will this benefit?
Anyone who uses MERGE as a strategy for model updates and requires additional business checks for the records before making updates / inserts.
Are you interested in contributing this feature?
Probably, but due to variety of possible solutions I will appreciate the solution design suggestion to be discussed with maintainers.

Any updates on this? Seems an interesting feature

No updates. Just to note, that there's a work-around that currently might work - with dbt you have to manually rebuild the whole update set by your model. That makes the model code unbearably huge, but it works.
For me this just outlines the cases when dbt modelling approach is not nice. Also the usage of null-aware joins I think is missing as a feature, as MERGE is frequently used for denormalized "cubes" where missing dimensions are allowed to be NULL. So using <=> on merge predicates instead of = is also required. And I don't know a workaround for this.

Okay, now I feel the urge to make a try and come up with my own solution.
What I generally propose as the capabilities:

Add match_conditions and non_match_conditions optional parameters that will hold explicit string for predicate. Probably I will need help to understand how to protect string injection here.
I am also thinking on how I can better control the merge capabilities. Today we have obligatory insert + update. ALso no support for "not matched by source". I want to add this capabilities as well.

I see that there's a connected context in #645 . @IvanDerdicDer are you really on it? Do you see any potential conflicts with what is proposed above?
Also, @benc-db WDYT about creating the umbrella issue that will highlight the gap between Databricks merge capabilities and dbt implementation, so we can track the progress.

Hey,
Still not working on it, collage got the priority.  I was thinking mostly the same but just for the match statement, rest of it sounds good.
I did a proof of concept at work when we were developing delta data delivery method, and we tried to create a custom merge connector. That didn't work because there is no support for custom connectors.
In short what I did was that I just copied the merge_update_columns function and modified it to return an update condition ie. one column not equal. Haven't tested it because custom incremental strategies don't work but the generated SQL looked good.
I believe the same approach can be utilized for everything you described. Also I believe that you don't have to worry about string injection, none of the functions that take merge_update_columns, or merge_exclude_columns  take that into account. As well most of dbt code is generally written by hand and not auto generated by an API or such.

Ok, I also will wait for @benc-db response.
I also see a potential issue with the matched conditions, as they have to be explicit. And therefore should use aliases.
And here it seems that it creates unnecessary bound  with the aliases in the code.
So if I understand correctly now one should write
DBT_INTERNAL_DEST.A > DBT_INTERNAL_SOURCE.A
I know that it is possible to workaround this with particular placeholders that we can automatically transcribe. For instance, allow to write dest.A > source.A... But I am not sure it is solid.

@mi-volodin at the moment I don't have capacity myself, but I'm happy to help you develop a solution.  I would recommend after your initial investigation that you write your proposed approach here (what files you plan on modifying, and how), and I can give you some initial feedback before the PR.  Once you put a PR out, I can pull/push to get our integration tests to run on it.

I don't see a need for transcribing DBT_INTERNAL_SOURCE/DEST seem fine to me. Plus they would be autogenerated, at least that is what I had in mind. You would pass a list of columns that need to be different so that update occurs. To achieve that i modified
get_merge_update_set function. Replaced '=' with '<>', and ',' with 'AND'. That works for wast majority of upserts/merge operations I believe.
From what I gather you want to let the user write a SQL string as a condition. I don't think that is necessary, a list of columns should suffice. But if you decide to go the SQL string route then the same as for the incremental predicate the user should write DBT_INTERNAL_SOURCE/DEST.

@IvanDerdicDer the matched conditions could be an arbitrary predicate, very complex in general case. So I probably don't follow, but I see no way to autogenerate it.
For example, if I want something like this
when matched
    and SRC.change_ts > TGT.change_ts
    and hash(SRC.a, SRC.b) <> hash(TGT.a, TGT.b)

I will have to either use DBT_INTERNAL_SOURCE here as an alias (which I don't think is smart), or introduce special hardcoded aliases like I used above which will be then mapped to DBT_INTERNAL_SOURCE/TARGET.
Yes, as an alternative - it is possible to limit the space of predicate that could be used, and then use generators.
@benc-db got it. Will get back.

@benc-db I am starting with a higher level vision, will be glad to specify more after the discussion.
Features logical descriptions
In general I think it make sense to extend the functionality with the following features

[ ] Allow definition of matched_conditions as an explicit predicate
[ ] Allow definition of non_matched_conditions as an explicit predicate
[ ] Allow to skip WHEN MATCHED by adding skip_matched: true
[ ] Allow to skip WHEN NOT MATCHED by adding skip_non_matched: true

Ideally it would be great to also extend for support of WHEN NOT MATCHED BY SOURCE condition, but let's keep it out of scope due to complexity. Though, I would keep it in mind, to narrow the solution space for better compatibility.
The matched_conditions and non_matched_conditions
Both of the features will expect the following:

The new keys are introduced in the config, both string like.
The changes to (at least) strategies.sql, specifically to databricks__get_merge_sql macro.
Changes to DatabricksConfig, I assume it's in impl.py.

Important note is that for now I don't see any other way but to allow explicit predicates, where user should use source and target aliases to define the logic. The surfaced solution is that we allow to use specific aliases like s. / t. or src./tgt. (maybe several) to describe logic and then transcode it to this "DBT_INTERNAL_SOURCE" thingy after.
If we keep this idea - that will require 1 extra macro in strategies.sql.
Also I don't know if DBT_INTERNAL_* prefix is required for something specific, otherwise we could just replace it with SRC/TGT and allow the explicit usage of it.
The skip_ flags
First of all, I understand that it is not, probably, very elegant. As ideally we actually should expect the user to ASK for a certain step. And why we perform both insert and update by default is probably the dbt standard (but not the SQL style).
So if we later go for WHEN NOT MATCHED ON SOURCE - the implementation will have to differ with insert/update blocks.
Nevertheless, I would be glad to have that logic implemented, so we can avoid ugly dbt hacks with left anti join "if target exists" to avoid updates.
From the implementation perspective I also see for now that it can be done on the databricks__get_merge_sql macro level and will require additional keys in config.
Summary of changes

New keys in the DatabricksConfig in impl.py + corresponding validations if needed:

matched_conditions: Optional[str]
non_matched_conditions: Optional[str]
skip_matched_step: Optional[bool] = False
skip_non_matched_step: Optional[bool] = False

Macro extension databricks__get_merge_sql in strategies.sql that utilises new keys and introduces the logic.
Documentation. Obviously new functionality have to be included there.
Tests. To cover the introduced use cases.

Questions to clarify

As unexperienced dbt internals / adapters developer I don't see any other points where I have to introduce changes. Would be glad if someone can highlight some missed complexity.
I am not sure if we need to care about security... The example with matched_conditions might allow string injections. There are cases when it is dangerous, but they are anyway superseded by the ability to explicitly put any code in the model. Thus - I ignore that risk.
There's an options key in the config. It is not currently used in merge and I am not sure if I need to move certain config keys in the options dict actually.

Also I don't know if DBT_INTERNAL_* prefix is required for something specifi

To the best of my knowledge, these are just aliases assigned to help the readability of the generated SQL.  You could use a different placeholder, it will just need to be documented.

I am not sure if we need to care about security... The example with matched_conditions might allow string injections. There are cases when it is dangerous, but they are anyway superseded by the ability to explicitly put any code in the model. Thus - I ignore that risk.

Agreed, safe to ignore as we already allow users to write arbitrary SQL in their dbt project.

There's an options key in the config. It is not currently used in merge and I am not sure if I need to move certain config keys in the options dict actually.

I believe this is for OPTIONS clause on table create, which are nearly the same as TBLPROPERTIES, but I think older, Hive-related; should not be reused.
Any new config that is not defined by dbt-core can be read from model.config.extra dict, so you don't strictly need to modify DatabricksConfig either, but it's probably a good idea for visibility sake.  I believe adding them to DatabricksConfig makes them available in config, rather than config.extra.
Could you give a couple of examples of config and what the translated SQL should like?

Any new config that is not defined by dbt-core can be read from model.config.extra dict, so you don't strictly need to modify DatabricksConfig either, but it's probably a good idea for visibility sake. I believe adding them to DatabricksConfig makes them available in config, rather than config.extra.

Then it probably makes sense to prototype first with config.extra and if we will not receive any objections from the review - extend the config. For users it will make no difference if I understand correctly.

Could you give a couple of examples of config and what the translated SQL should like?

Yeah, let me prepare few examples.

@benc-db
I generated couple of examples, will attach the file to save space, but here are some of them.
Example with step skip.
/*
    skip_matched_step: True,
    skip_not_matched_step: False,
    matched_conditions: 'None',
    not_matched_conditions: 'None',
*/

merge into
    TABLE1 as tgt
using
    TABLE2 as src
on
    predicates ...
when not matched
then insert >>get_merge_insert(on_schema_change, source_columns) <<

Example with matched conditions
/*
    skip_matched_step: False,
    skip_not_matched_step: False,
    matched_conditions: 'src.updated_at_ts > tgt.updated_at_ts or tgt.updated_at_ts is NULL',
    not_matched_conditions: 'some_attribute > 0',
*/

merge into
    TABLE1 as tgt
using
    TABLE2 as src
on
    predicates ...
when matched
    and src.updated_at_ts > tgt.updated_at_ts or tgt.updated_at_ts is NULL
then update set
     >> get_merge_update_set(update_columns, on_schema_change, source_columns)<<
when not matched
    and some_attribute > 0
then insert >>get_merge_insert(on_schema_change, source_columns) <<

This is how it works right now
/*
    skip_matched_step: False,
    skip_not_matched_step: False,
    matched_conditions: 'None',
    not_matched_conditions: 'None',
*/

merge into
    TABLE1 as tgt
using
    TABLE2 as src
on
    predicates ...
when matched
then update set
     >> get_merge_update_set(update_columns, on_schema_change, source_columns)<<
when not matched
then insert >>get_merge_insert(on_schema_change, source_columns) <<

output.txt

One of the problem I don't know how to elegantly fight with - is that these aliases. In my example I used src and tgt to distinguish between the source and destination, but what I initially thought I would do was something like this
{{ conditions_str | regexp_replace('(^| )s[\w]+\.', 'DBT_INTERNAL_SOURCE.', ...flags...) }}

i.e. we allow to write any alias like source., s., Src. etc and replace it.
But appears that for this I will have to register a custom filter for Jinja, which I would prefer to avoid to keep complexity lower.

But appears that for this I will have to register a custom filter for Jinja, which I would prefer to avoid to keep complexity lower.

Anything that is not just formatting I would put in the Adapter class and write it/unit test it in python.  I hate Jinja personally :P.  I wish we had better mechanisms for exposing logic than just always throw in the adapter class, but using Python will make testing/maintenance simpler in the long run.  Also, if you look at tests/unit/macros, I've tried to make it more painless to tests Jinja macros, but it's still a bigger lift than doing the same in python.

I think you're in a good place to do a PR.  I think I will understand the nuances better once I see some tests :).

Anything that is not just formatting I would put in the Adapter class and write it/unit test it in python.

Gosh... it's my Friday evening dumbness. Why on earth haven't I thought about Python side implementation 🤦🏻♂ I also hate Jinja.
Ok, I will need some time to implement a draft and go through all contributions preparation steps. And of course pass through test 😄

@mi-volodin take your time.  This seems like a great include for 1.9, which I'm thinking will land sometime in July.  I appreciate your effort/contribution!

@benc-db I ran functional tests on all-purpose cluster (the only one option I have now).
And 6 tests in total are failing.

No code change done yet. Since it is likely not OK, I wanted to ask for a quick tip from an experienced maintainer. Probably I missed some requirement for DBR Runtime, for example.
I will dig into it anyway, but hopefully you can help me to save some time.

@mi-volodin if you want to email me your cluster config, and we can compare notes<EMAIL_ADDRESS> Also, good call running all of the integration tests before code change, cause otherwise we'd be running down dead ends :)

@mi-volodin will you be adding support for the delete option of the merge statement as well? I know that's something we were just looking to do but it looks like you are well ahead of us with your ongoing changes.

@kmarq Yes, I was thinking about this, as the next step.
Also there's a request for SCHEMA EVOLUTION in #707, which also looks relatively straightforward.
But I would certainly commit only once I can achieve the first changes passing the tests.
@benc-db sent you a mail.

Short update. Tests are still failing, but I have studied the logs and found the following reasons:

One test is failing, because it tries to store the data in s3 bucket (which is non-existent). I think it is fine, because it is not supposed to work in my case. Probably that test should not be included in my test-set (General purpose cluster).
Other 5 tests are failing because of the same error of duplicated reference to dbt_unique_key. My hunch is that it is because of that peace of code that snapshot macro generates:

    snapshotted_data as (

        select *,
            id as dbt_unique_key

        from `hive_metastore`.`snapshots`.`target_snap`
        where dbt_valid_to is null

    ),

And the reason for failure is that there is already a dbt_unique_id in the target_snap. Thus in snapshotted_data CTE there are exactly 2 dbt_unique_id attributes.
Databricks allows this (at least in Runtimes < 15)

@benc-db I need an advice if I need to deal with this. Seems also an interesting problem, but it also might be related to some of my local policies, so if the test passes during pull request review - I can try to just ingore that precise reason in the context of my local dev tests.

One test is failing, because it tries to store the data in s3 bucket (which is non-existent). I think it is fine, because it is not supposed to work in my case. Probably that test should not be included in my test-set (General purpose cluster).

This is almost certainly fine.  External location tests should happen with all types of compute, I believe, but they require setup outside of Databricks.

@mi-volodin I was wondering if you have any thoughts on this being near completion? Is there anything that I could help assist with testing?

@kmarq Sorry, actually I had not much time working on this. And since it is my first PR in this repo, getting it to the point even with minor changes is tricky.
Let's collaborate!
I think we can focus first on adding flags and cover it with tests. Then I finally become acquainted with the whole process, I will add the more challenging change with match conditions.
WDYT?
p.s. @benc-db haven't found it in the rules. Is it okay to open WIP Draft PR here, or is it discouraged?

@mi-volodin absolutely open a draft :)

Hi @mi-volodin,
We are currently running our dbt project on pre-released version 1.9.0, which includes your contribution for matched and not matched conditions. This is super useful so thank you so much for working on this!
We are currently facing a blocker since, due to the nature of our workflow, we cannot perform a direct delete action when not matched by source. Instead, we need to run an update set on a flag that indicated the rows to be deleted.
This is an example:
      MERGE INTO {catalog}.{silver_database}.purchase_promotion r
      USING tab_update u
      ON r.purchase_promotion_row_code = u.purchase_promotion_row_code  -- Match on promotion_row_code
      AND r.promotion_code = u.promotion_code
      -- If a row in the target (r) is not matched by any row in the source (u)
      WHEN NOT MATCHED BY SOURCE
      AND r.promotion_end_date > CAST('{date_from}' AS DATE)
      THEN
        UPDATE SET
          r.update_date = CAST('{update_date}' AS TIMESTAMP),
          r.to_be_deleted = 1

We understand only the delete action is supported at the moment.
I contacted Ben from databricks and he suggested reaching out to you for this. I would love to connect with you to see if there is a way to include this logic in the merge conditions and actions improvement you developed. Do you have an email address I can contact you on?
Thanks in advance :)

Hi, @sabrinas-tuidi
Yes, I am afraid you are right.
The reason I haven't included this is the management of update conditions. I didn't have the valid use case at hand, and also the when match then update clause didn't give me much of reusable code, because I won't expect that the whole row will be updated on delete.
Having your case, I think it won't be that difficult to extend the code if we assume that update action shall be stated explicitly in the same fashion the conditions are provided.
@benc-db what is the best branch to fork from for this extension?

Hi, @sabrinas-tuidi
Yes, I am afraid you are right.
The reason I haven't included this is the management of update conditions. I didn't have the valid use case at hand, and also the when match then update clause didn't give me much of reusable code, because I won't expect that the whole row will be updated on delete.
Having your case, I think it won't be that difficult to extend the code if we assume that update action shall be stated explicitly in the same fashion the conditions are provided.
upd Regarding the contact - I changed my privacy settings (🤷♂ already signed by email my commits anyway) and also added linkedin link, feel free to text me.
@benc-db what is the best branch to fork from for this extension?

Hi @mi-volodin, thank you so much for your reply. I sent you a request on LinkedIn, it would be great to work with you on this, my colleagues and I are more than happy to discuss the best way to move forward. Let me know! :)


Recommend setting autorollback for Postgres in example config

We noticed that sometimes errors arising from database transactions were killing other database transactions with the error message "DatabaseError: current transaction is aborted, commands ignored until end of transaction block".  This happens because Postgres wants you to roll back queries with serious errors before doing anything else.  Peewee can do this automatically if autorollback is set in the database config.

I added another commit to remove the recommendation to set autocommit for Postgres, because I found the following deprecation warning in the peewee source code:
DeprecationWarning: Peewee no longer uses the "autocommit" option, as the semantics now require it to always be True. Because some database-drivers also use the "autocommit" parameter, you are receiving a warning so you may update your code and remove the parameter, as in the future, specifying autocommit could impact the behavior of the database driver you are using.

Just found out that we use autorollback in prod too. Dunno why I never added it to the config before


Method teasers

This adds in all the method teasers as written by @labond and @iamjessklein.
I also removed the page.desc from the method page since we are only using the teaser now.

Closing as master is in this and we don't want that.


Correcting k to K

Just correcting this minor spelling mistake.

Thanks Niels, nice to know others are having a play with this :)


Add egui integration

Implement egui into the engine.
I haven't found an integration of glfw and ash for egui, so I need to write one myself. I can maybe base this off egui-winit-ash-integration.
This will require the following additional features:

#16

Nevermind.
I won't torture myself, so I'll just use winit (#20) and the integration I found.

The crate I mentioned, egui-winit-ash-integration is using an outdated version of gpu_allocator, I'm...
I will now fork it and bump everything to the latest version.


Interactive Argo workflows

Summary

Currently Argo workflows accepts parameters only at workflow start and after that workflow just runs on autopilot without any human interaction (except for suspend)
But there are use cases where the workflow could intelligently generate and accept parameters in different stages of workflows
This proposal adds the following capabilities
Ability for any node to generate inputs programatically for the next node
And these inputs could be of the form text, multi select etc
User should have the ability to select from the dropdown like he does when starting the workflow
Jenkins has a similar feature: https://www.jenkins.io/doc/pipeline/steps/pipeline-input-step/

Use Cases

We use argo workflows to update schemas for our postgres instances
So our DBA has to first search for available shards, then search for an available database, then search for an available schema manually from our internal metadata.
If the workflow when started listed all the shards and DBS could just choose from the dropdown, then the workflows uses the selected shard to list all available databases and so on for schema, his job would be much more friendly
This leads to more interactive workflows where the workflows are getting constant feedback from the user on how the workflow should proceed.

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

It would be great to have this feature!
Currently, it is possible to suspend a workflow and request users to provide a set of parameters as depicted here: https://github.com/argoproj/argo-workflows/blob/e67e94c02e52eb9097b8f1316e7b3cddd091e121/examples/suspend-template-outputs.yaml#L27-L33
However, users are not able to set those parameters through the UI. They can be set through the CLI or API as explained in the example: https://github.com/argoproj/argo-workflows/blob/e67e94c02e52eb9097b8f1316e7b3cddd091e121/examples/suspend-template-outputs.yaml#L1-L7
This is a requirement for non-developers.
Here is a related request: https://github.com/argoproj/argo-workflows/issues/6665

Yup, planning to work on it next week for an internal hackathon at Intuit.

This should be available in next release
https://argoproj.github.io/argo-workflows/intermediate-inputs/

Any idea how we can integrate this feature with identity management to support features such as second person approval?


Copy required natives to gdx-tests-android

Not sure how this ever worked without this, but it doesn't work without this now.

It's based on the standard version, but customized for in repository structure. The project doesn't have full normal native jars available.

Thanks. Tests are now working on my Android device. Previously, every last one would crash due to a lack of native libraries.
I had a quick run through them, and most appear to be working. Here are some of concern:

Test
Result

APKExpansion
Error reading file: data/obbasset-DroidSerif-Regular.ttf (Internal)

AudioRecorder
Do you have the RECORD_AUDIO permission?

Clipboard
Flashing static - unsafe for photosensitive epilepsy

InstancedRendering
GLES 3.0 profile required for this test

PixelBufferObject
Attempt to invoke interface method 'java.nio.Buffer com.badlogic.gdx.graphics.GL30.glMapBufferRange(int, int, int, int)' on a null object reference

ReflectionCorectness
Expected that value of is Annotation is false but is true

SystemCursor
Flickering static

TextureArray
TextureArray requires a device running with GLES 3.0 compatibilty

The missing font can probably be fixed by using DroidSerif-Regular.ttf instead.
Tests that have a horrible static background can be fixed by clearing the screen. This will also prevent the previous frame from being visible when resizing on PC.
I don't know why some tests fail due to a lack of GLES 3.0, as GLES30Test works and my device has a GL Version of ES 3.0. On LWJGL3, they're greyed out.
It's already known that libGDX's audio recording functionality is dead as of Android 6 Marshmallow. It doesn't ask for permission at runtime.

It would be good to re-add the newline at the bottom of build.gradle, as there was previously one and the formatter that runs on Java code adds one. In practice, it makes no odds to my life.

I'd love to know why it used to work before but yeah, it's broken now and it makes sense it requires a similar task to the one we use on Gdx Setup template Android apps. Thanks for the fix!

I assume it worked before because the old fetch natives (ant) copied the files to the right place and the corresponding Gradle task just invoked that ant fetch. I'm guessing when maven/ant was removed, something like this should have been added to replace what fetch.xml was doing.

Ah you're right, so it was my fault again.
https://github.com/libgdx/libgdx/blob/gdx-parent-1.10.0/fetch.xml#L86


Validation step metrics

We need to add more metrics for the validation of the test dataset. RMSE, R2, and MAE are in the works. RMSE needs to be in-house developed.

r2_score is a good regression metric and different than the standard correlation coefficient from a linear regression version
scikit.


Proxy not supported temporarily

Currently, Proxy is temporarily not supported, as of https://github.com/es-meta/esmeta/commit/dabff653340a45c16e0c8f3ef05bd6ad02ce4e6b
This is because e. [Assert](https://tc39.es/ecma262/#assert): p is a Proxy object. is failing in Proxy.revocable, for example in tests like proxy-revoked.js.
This can be fixed when https://github.com/tc39/ecma262/pull/2994 is merged.

https://github.com/tc39/ecma262/pull/2994 is merged, but we are temporarily delaying the update to support Proxy again after update of esmeta to es2023.

As this will be fixed automatically when esmeta is updated to future es2025,  I'm closing this issue.


ORMAdapter with repositories

Hello,
Is there any example on how I can make this work with ORMAdapter when using EntityRepository?
Ex.
Controller
$jobs = $this->jobRepository->findByManager($currentUser);
$table = $dataTable->create()
            ->add('id', TextColumn::class)
            ->createAdapter(ORMAdapter::class, [
                  'entity' => Job::class,
                  'query' => $jobs
            ])
            ->handleRequest($request);

JobRepository
public function findByManager(User $manager)
    {
        $queryBuilder = $this->createQueryBuilder('j');
        $queryBuilder->select('j')
            (...joins and where...)
            ->getQuery();
        return $queryBuilder->getQuery()->getResult();
    }

This with ->getResult() won't obviously work, I tried returning only query but nothing. I did succeeded with using ArrayAdapter and using getArrayResult to return but I need objects as I call some additional checks on models.
Thanks

I'm not sure what you would expect of it. The point of an Entity Repository is to bundle and parametrize reusable queries centrally. The point of a QueryBuilder is to construct dynamic queries at runtime with flexible parameters. As DataTables inherently need to sort and filter dynamically the ORMAdapter plugs in at the QueryBuilder level where it can manage those things.
To integrate with repositories you're likely better of just using an ArrayAdapter as you wouldn't be using any of the "magic" that makes ORMAdapter tick.

Essentially duplicate of https://github.com/omines/datatables-bundle/issues/67 and same answer applies.


Change Mutual Aid page format to match the Volunteers page.

Current State
on https://ethiocovid19rt.com/mutualaid ..
the information is presented by embeding an AirTable spreadsheet directly into the page.
Desired State
on https://ethiocovid19rt.com/mutualaid ..
the information is presented in a similar way to the Volunteers page
https://ethiocovid19rt.com/volunteers
The Mutual Aid page will pull data from a Google Spreadsheet:
https://docs.google.com/spreadsheets/d/1xIQkSbUVoTh94Vsn3wq9cYCemoG3s7LA1Ug-Zt9Q_9k/edit#gid=0
and then put that directly on the Mutual Aid page in a manner which is more consistent with the ECRT website branding.

initial version on feature/mutual_aid branch


xterm text corruption

Text in xterm is randomly corrupt such that some characters are only drawn partially. No such issue when running the same xterm under Weston.

Can you reproduce this problem with orbment?

I'll try to build and run orbment for comparison.

Same corruption with xterm under orbment.

Report to wlc.

Okay, done: Cloudef/wlc#170.


performance/a11y improvements follow up

Is this a bug, enhancement, or feature request?
bug
Briefly describe your proposal.
follow up the lighthouse report and address the issues

Related accessibility issues:
https://github.com/SAP/ui5-webcomponents/issues/6854


The  pip install for  langchain-pinecone shows error.

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.

Example Code
%pip install --upgrade --quiet  langchain-pinecone langchain-openai langchain
Error Message and Stack Trace (if applicable)
ERROR: Could not find a version that satisfies the requirement langchain-pinecone (from versions: none)
ERROR: No matching distribution found for langchain-pinecone
Description
To install the new pinecone vector store library LangChain suggests to install the langchain-pinecone library through pip install. But the pip install says that such a package does not exist. This is the document page I'm referring to.
System Info
langchain==0.1.5
langchain-community==0.0.19
langchain-core==0.1.21
pinecone-client==3.0.2
Platform: linux and Google colab

@dosubot The issue is that the LangChain docs and README mention pip install langchain-pinecone and the pip install is not working.

langchain-pinecone is available on pypi now. This issue is fixed.


POST event layer returns "entity too large"

Describe the bug
Getting error 413 'request entity too large' when POST this file (2.8 MB) as admin-1 layer.
To Reproduce
Example python code:
# post event layer
layer = "admin-1"
url = "https://www.geoboundaries.org/data/geoBoundaries-3_0_0/AFG/ADM1/geoBoundaries-3_0_0-AFG-ADM1.geojson"
data = str(requests.get(url).json())
print(sys.getsizeof(data))
res = requests.post(f'http://<IP_ADDRESS>/events/{id}/layers/{layer}', headers=headers, data=data)
print(res)

Expected behaviour
No error

This is resolved in #24


docs: minor spelling mistake of nvm

Signed-off-by: Vikhyath A Maiya<EMAIL_ADDRESS>

:tada: This PR is included in version 1.4.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Code Highlighting

Hi! I'm working on https://github.com/tangrams/data2image (http://tangrams.github.io/data2image/) and I would love to highlight the code... I was doing it by my own but probably you already have a way to do this. Can we support JS and GLSL ?? thanks!

Related issues with markdown:
https://github.com/mapzen/mapzen-docs-generator/issues/6
https://github.com/mapzen/mapzen-docs-generator/issues/10


BackgroundService blocked the execution of whole host

Describe the bug
When I run the specific foreach cycle in BackgroundService-derived class, it blocks the whole host from starting. Even second hosted service doesn't start. When I comment foreach cycle, everything works as expected.
To Reproduce
TargetFramework: netcoreapp2.1
Version: 2.1.12
Use following hosted service: NotificationRunner.cs
And singleton: NotificationService.cs
Expected behavior
BackgroundService.ExecuteAsync should work in background without blocking even if it has blocking code. As you can see in NotificationService class, cancellation of enumerator is based on IApplicationLifetime.ApplicationStopping, but anyway it shouldn't affect the host startup because BackgroundService is expected to run in background :)
Screenshots
When foreach cycle exists

Then execution is blocked on this cycle

But when foreach cycle is commented

Then execution continues as expected

(But why twice?)
Additional context
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100-preview7-012821
 Commit:    6348f1068a

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.0.100-preview7-012821\

Host (useful for support):
  Version: 3.0.0-preview7-27912-14
  Commit:  4da6ee6450

.NET Core SDKs installed:
  2.1.700 [C:\Program Files\dotnet\sdk]
  2.1.701 [C:\Program Files\dotnet\sdk]
  2.1.801 [C:\Program Files\dotnet\sdk]
  2.2.300 [C:\Program Files\dotnet\sdk]
  2.2.301 [C:\Program Files\dotnet\sdk]
  2.2.401 [C:\Program Files\dotnet\sdk]
  3.0.100-preview7-012821 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0-preview7.19365.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0-preview7-27912-14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.0.0-preview7-27912-14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Fixed by adding await Task.Yield() at the top of method

Yeah the method shouldn't be blocking. Wrapping in a Task,Run will also dispatch.

Reopening this so we can look at it. I'm glad that you solved your problem but we should try to solve this so others don't hit it.

@anurse @Tratcher - thoughts?
It looks like if your run a bunch of CPU-bound code in ExecuteAsync then it will stall startup until that work reaches the first actual async point.
See: https://github.com/aspnet/Extensions/blob/master/src/Hosting/Abstractions/src/BackgroundService.cs#L33
In health checks I ended up inserting a Task.Yield to avoid this. We'd get an additional state machine in this case, 1 per service, but it seems like a worthwhile tradeoff.

Async method executes synchronously till first await is reached (it means BackgroundService.ExecuteAsync won't return till await is called). So this problem is not related to ASP.NET Core, but to async compilation.

But it would be great if you can solve this case

It's a trade off. There may be reasonable initialization code the service needs to do before letting the app continue. It's within the service's control how long it blocks.

I have also encountered this issue and solved it in the same way as @vova-lantsov-dev did. However, my main concern is that this behavior is not straightforward, would be nice if this was more predictable or documented somewhere

I think it's reasonable to dispatch ExecuteAsync to the thread-pool in StartAsync. If the user wants to perform initialization that must complete before letting the app continue, they can override StartAsync itself, right?
public class MyService: BackgroundService
{
	public override async Task StartAsync()
	{
		await InitializeAsync();
		await base.StartAsync();
	}

	public override async Task ExecuteAsync()
	{
		// Do background stuff...
	}
}

It's called BackgroundService. It seems odd that you can block the foreground in the default case. If we're not happy with overriding StartAsync we could add a new InitializeAsync that is called and awaited during StartAsync.
This would be a breaking change however, since existing services may depend on the initial synchronous work blocking the startup process.

Sorry I never did this change but enough people have hit it now I think we should just do it. https://github.com/aspnet/Extensions/tree/davidfowl/background-service


Update tokencolor to support PSReadLine 2

PSReadLine 2 made a breaking change on token colors, update to support it.

Thanks


Memory footprint

Hi! While playing around with Regression.jl, I noticed that the memory allocations for GD() scale with the number of iterations as well as observations in the dataset. After some digging, I discovered that the source of this is the predict method of EmpiricalRisks.jl which allocates the predicted vector within the method.
Since Regression.solve! calls Regression.backtrack! multiple times, which in turn calls EmpiricalRisks.predict multiple times, the memory footprint accumulates. So the issue is that the prediction vector gets allocated multiple times each iteration when using Regression.solve!
I have come up with a potential solution by implementing a predict! method that fills a preallocated prediction vector. Using this method I could rewrite solve! to preallocate the prediction vector only once
function predict!{T<:BlasReal}(pm::AffinePred, θ::StridedVector{T}, X::StridedMatrix{T}, r::StridedVector{T})
    d = pm.dim
    n = size(X,2)
    @_checkdims length(θ) == d + 1 && size(X,1) == d && n == length(r)
    b = convert(T, pm.bias) * θ[d+1]
    for col = 1:n
        @inbounds r[col] = b
        for row = 1:d
            @inbounds r[col] += X[row, col] * θ[row]
        end
    end
    r
end

Here is a benchmark:
d = 3
n = 1000000
w = randn(d+1)
X = randn(d, n)
t = sign(X'w[1:d] + w[d+1] + 0.01 * randn(n))

using EmpiricalRisks
pm = AffinePred(d, 1.)

@time predict(pm, w, X)
@time predict(pm, w, X)

r = zeros(n)
@time predict!(pm, w, X, r)
@time predict!(pm, w, X, r)

println("Loop with predict")
@time for i = 1:1000
  s = predict(pm, w, X)
end

println("Loop with predict!")
@time for i = 1:1000
  s = predict!(pm, w, X, r)
end

elapsed time: 0.356688159 seconds (21377200 bytes allocated)
elapsed time: 0.005305386 seconds (8000456 bytes allocated) <-- predict
elapsed time: 0.021158343 seconds (409856 bytes allocated)
elapsed time: 0.006868238 seconds (80 bytes allocated) <-- predict!
Loop with predict
elapsed time: 16.95238578 seconds<PHONE_NUMBER> bytes allocated, 43.88% gc time)
Loop with predict!
elapsed time: 4.788862339 seconds (0 bytes allocated)

What do you think? would you be interested in merging these changes if I create the PRs?

This is very nice!
A PR is welcomed, and would make this happen sooner. Following the Julia convention, I would place the output array r as the first argument, preceding pm in predict!.

Great! Ok, good to know. I will follow that convention.
No worries, I will implement it. And with "it" I mean the necessary functions and tests for value!, predict!, and value_and_addgrad!, so that I can adapt Regression.jl accordingly after that PR is merged.
I am about half way done

Could you consider tagging a new version? I could then change the require for PR 10 of Regression and we could proceed there

already tagged just now.


Karma 0.12.1 hangs

When I run karma start it simply hangs using the configuration below (note- this was working previously with Karma 0.10)
module.exports = function(karma) {
    karma.set({
        basePath: 'js',
        files: [
          "dist/deps.min.js"
        ],
        port: 9876,
        runnerPort: 9100,
        colors: true,
        reporters: ['progress'],
        logLevel: karma.LOG_ERROR,
        browsers: ['PhantomJS'],
        singleRun: true,
        autoWatch: false,
        frameworks: ["qunit"]
    });
};

Closing due to inactivity


I want to output the FPS value in the D435i camera config settings(C#)

I want to output the FPS value in the D435i camera config settings with consoleWriteLine(); What should I do?

The part circled in red is the framerate part.

Hi @KITAE-KIM-MOBYUS  https://github.com/IntelRealSense/librealsense/issues/11111 is the best available example of C# code for printing the current actual FPS using consoleWriteLine();

@MartyG-RealSense

If I change it in C# as above, will the FPS be displayed in the command window in a changed state?

@MartyG-RealSense  How can I check the set FPS in real time?

An example of C# code for doing so is referenced above at https://github.com/IntelRealSense/librealsense/issues/11663#issuecomment-1501489014

Hi @KITAE-KIM-MOBYUS  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


peacock vs code extension

New Theme
Peacock extension on vs code you can choose favourite colours so of course it had to be the dracula colour palette.
https://gist.github.com/shmink/01e977af077dd3070842b2ae9de64cf1
I can add as a repo if it's liked.

Hey, very cool! ✨
I just sent you an invitation to join the organization.
I also cloned your repository for Dracula's organization, so you can go ahead and delete or archive yours:

Your repository.
New repository.

Thanks for building this! 🎉


{ams asset} HTML tag isn't allowed in example syntax

Describe the bug
The source code for ams asset is using HTML tags for examples
Instance 1: https://github.com/MicrosoftDocs/azure-docs-cli/blob/main/latest/docs-ref-autogen/ams/asset.yml#L267
Example: --remove property.list <indexToRemove> OR --remove propertyToRemove.'
Instance 2: https://github.com/MicrosoftDocs/azure-docs-cli/blob/main/latest/docs-ref-autogen/ams/asset.yml#L274
Example: --set property1.property2=<value>.'
Modify these instances to use some other character like a backtick or escape character.
Contributor's Guide guideance:
https://review.learn.microsoft.com/en-us/help/platform/validation-ref/disallowed-html-tag?branch=main
Instance 1 YML syntax looks like this:
summary: 'Remove a property or an element from a list.  Example: --remove property.list <indexToRemove> OR --remove propertyToRemove.'
Instance 1 published content renders like this:

This impacts \latest only

https://github.com/MicrosoftDocs/azure-docs-cli/blob/main/latest/docs-ref-autogen/ams/asset.yml

Related command
az ams asset update --remove
az ams asset update --set
Errors
GitHub build warning:

Issue script & Debug output
See "Describe the bug" section above.
Expected behavior
See "Describe the bug" section above.
Environment Summary
See "Describe the bug" section above.
Additional context
No response

Thank you for opening this issue, we will look into it.

Since this is non-customer reported, Adding Service team to look into this.

@yonzhan, do you know if this issue made it to anyone's backlog to get fixed?

Duplicate of #27054


side menu navigation two clicks on first navigation

Removed the href tag from side menu which was causing the issue

closes #1


Fix license documentation

Hello,
In https://github.com/mimemagicrb/mimemagic/blob/master/README.md and also on the github repository we see that the licence is MIT. But apparently it's not it's GPL.
Please fix the documentation/github description.

Looking at LICENSE, it is most definitely still using MIT. It was changed briefly to the GPL following a short issue with shared-mime-info, and then changed back when the GPL code was pulled.
In short, the GPL is harmful to ecosystems.

After the whole mess with rails breaking all over the place I'm now confused, can I keep the mimemagic gem or not? :laughing:
I have some old app that links to 3.3 which is apparently deleted.

can I keep the mimemagic gem or not?

Yes.

I have some old app that links to 3.3 which is apparently deleted.

It is, they got yanked because they contained license incompatible code.
And I don't know why people are disliking my comment. I guess they're still all for the GPL despite all the harm it has caused.


feat: Add support throwable benchmarks, add startup/shutdown hooks

Description
As outlined in https://github.com/ordo-one/package-benchmark/pull/88 this would be useful for some use cases.
Set up the hooks with:
   Benchmark.startupHook = { print("Startup hook") }
   Benchmark.shutdownHook = { print("Shutdown hook") }

How Has This Been Tested?
Manual testing.
Minimal checklist:

[x] I have performed a self-review of my own code
[x] I have added DocC code-level documentation for any public interfaces exported by the package
[ ] I have added unit and/or integration tests that prove my fix is effective or that my feature works

Current dependencies on/for this PR:

main

PR #96

PR #97

PR #99

PR #100

PR #102

PR #103   👈

This comment was auto-generated by Graphite.

Thank you for making the setup and tear down more convenient! I verified the influx output format and all looks to be good with the changes.

@hassila queued this pull request to merge with Graphite.


Fix duplicate assets

After the layout and assets refactor in #380 the CSS and JavaScript assets were loaded twice. Aside from the performance issues this was the autocompletes to be rendered twice as captured in https://trello.com/c/nViNavOU.
This PR:

removes the CSS and JavaScripts tags from the application layout and relies on them being imported by the admin_layout in govuk_publishing_components
rename the JavaScripts file consistently

Duplicate of #398

i have a duplicate asset for ya.
get rid of verify!!!
just use government gatway instead. look how nice it look, and doesnt even need to sell my data to the post office to work
stop 👏 wasting 👏 tax 👏 payer 👏 euros 👏
did no one see government already built one of these login pages?
whole thing a scam anyway
leo out


Crash in int chip::app::CHIPDeviceCallbacksMgr::GetCallback

Problem
Crash:
 Thread 11 Crashed:
 0   CHIP                          	 0x00000001e1a33300 int chip::app::CHIPDeviceCallbacksMgr::GetCallback<(anonymous namespace)::ReportCallbackInfo>((anonymous namespace)::ReportCallbackInfo&, chip::Callback::CallbackDeque&, chip::Callback::Cancelable**) + 60 (CHIPDeviceCallbacksMgr.h:80)
 1   CHIP                          	 0x00000001e1a3320c int chip::app::CHIPDeviceCallbacksMgr::CancelCallback<(anonymous namespace)::ReportCallbackInfo>((anonymous namespace)::ReportCallbackInfo&, chip::Callback::CallbackDeque&) + 52 (CHIPDeviceCallbacksMgr.h:67)
 2   CHIP                          	 0x00000001e1a3320c int chip::app::CHIPDeviceCallbacksMgr::CancelCallback<(anonymous namespace)::ReportCallbackInfo>((anonymous namespace)::ReportCallbackInfo&, chip::Callback::CallbackDeque&) + 52 (CHIPDeviceCallbacksMgr.h:67)
 3   CHIP                          	 0x00000001e1a331b4 chip::app::CHIPDeviceCallbacksMgr::AddReportCallback(unsigned long long, unsigned char, unsigned short, unsigned short, chip::Callback::Cancelable*) + 132 (CHIPDeviceCallbacksMgr.cpp:104)
 4   CHIP                          	 0x00000001e1a3f3e0 chip::Controller::Device::AddReportHandler(unsigned char, unsigned short, unsigned short, chip::Callback::Cancelable*) + 68 (CHIPDevice.cpp:366)
 5   CHIP                          	 0x00000001e1a337ec chip::Controller::ClusterBase::RequestAttributeReporting(unsigned short, chip::Callback::Cancelable*) + 92 (CHIPCluster.cpp:77)
 6   CHIP                          	 0x00000001e1a3d110 chip::Controller::OnOffCluster::ReportAttributeOnOff(chip::Callback::Cancelable*) + 40 (CHIPClusters.cpp:3963)

Logs
🔵 CHIP: [ZCL] RX len 4, ep 1, clus 0x 6
🔵 CHIP: [ZCL]  FC 8 seq 2 cmd 7 payload[
🔵 CHIP: [ZCL] 00
🔵 CHIP: [ZCL] ]
🔵 CHIP: [ZCL] ConfigureReportingResponseCallback:
🔵 CHIP: [ZCL]   ClusterId: 0x0006
🔵 CHIP: [ZCL]   status: EMBER_ZCL_STATUS_SUCCESS (0x00)

@vivien-apple / @bzbarsky-apple could you take a peek?

Assigning to myself for now.

What I do not understand in the stack at the moment are why do we have:
 1   CHIP                          	 0x00000001e1a3320c int chip::app::CHIPDeviceCallbacksMgr::CancelCallback<(anonymous namespace)::ReportCallbackInfo>((anonymous namespace)::ReportCallbackInfo&, chip::Callback::CallbackDeque&) + 52 (CHIPDeviceCallbacksMgr.h:67)
 2   CHIP                          	 0x00000001e1a3320c int chip::app::CHIPDeviceCallbacksMgr::CancelCallback<(anonymous namespace)::ReportCallbackInfo>((anonymous namespace)::ReportCallbackInfo&, chip::Callback::CallbackDeque&) + 52 (CHIPDeviceCallbacksMgr.h:67)

The stack suggest that someone is trying to add a report handler in the ConfigureReportingResponseCallback, which sounds perfectly legitimate.

Given this is an older issue, does this till reproduce on current builds? Please re-open if so!


Create w-init stimulus controller and use in skeleton.html

Fixes #11071
In line with steps 1-5:
I created the InitController to replace the jQuery part for adding a ready class to HTML elements.
I also wrote unit tests, and used the controller in the skeleton.html file.
Please check the following:

[x] Do the tests still pass?[^1]
[x] Does the code comply with the style guide?

[x] Run make lint from the Wagtail root.

[ ] For Python changes: Have you added tests to cover the new/fixed behaviour?
[ ] For front-end changes: Did you test on all of Wagtail’s supported environments?[^2]

[ ] Please list the exact browser and operating system versions you tested:
[ ] Please list which assistive technologies [^3] you tested:

[ ] For new features: Has the documentation been updated accordingly?

Please describe additional details for testing this change.
[^1]: Development Testing
[^2]: Browser and device support
[^3]: Accessibility Target

Thank you @Chiemezuo  - Would you be up for an additional change on this PR?
We have unused support for data-w-reveal-initial-class in https://github.com/wagtail/wagtail/blob/main/client/src/controllers/RevealController.ts#L20C6-L20C13
This should no longer be required as we can achieve the same goal with this new data-w-init-remove-class.
It would be great to remove the initial from the RevealController and also remove the test covering that functionality - see https://github.com/wagtail/wagtail/blob/main/client/src/controllers/RevealController.test.js#L152 & https://github.com/wagtail/wagtail/blob/main/client/src/controllers/RevealController.test.js#L174

There's a failing test related to the revealController. I'll find it, fix it, and then push.

Fixed it. @lb-

This is looking good, thank you. I will try to do a proper review soon.
If you do get the chance, please can you revert the unrelated formatting changes in skeleton.html - I am happy to fix these up when merging but it is something that would be best to remove on the PR if you get to it.
Thanks again for working through this.

I just went through your comment @lb-
Thank you for breaking down the details for me. I will follow up on the changes you've made, so I can learn to do things a bit better subsequently.


HSEARCH-2851 Update 5.5 branch to be compatible with Hibernate ORM 5.…

https://hibernate.atlassian.net/browse/HSEARCH-2851

Merged, thanks!


Updated typo with  prop

What's Changing
Small typo on documentation.
Change Type

[x] documentation
[ ] patch
[ ] minor
[ ] major

:rocket: PR was released in v3.0.1 :rocket:


MB-2591 Price Domestic Linehaul

Description
Price linehaul service item.
Dom Linehaul Price Millicent  * distance * cwtWeight * escalationCompounded
//baseTotalPrice := weightPounds.ToCWTFloat64() * distanceMiles.Float64() * priceAndEscalation.PriceMillicents.Float64()
240000000 = 40.00 * 1200.00 * 5000.00

//escalatedTotalPrice := priceAndEscalation.EscalationCompounded * baseTotalPrice
249770400.00 = 1.040710 * 240000000.00 =

// to cents
249770.4 = 249770400.00  / 1000

TODO use setup steps from here https://github.com/transcom/mymove/pull/4250  or https://github.com/transcom/mymove/wiki/Acceptance-Testing-Payment-Requests
also see https://github.com/transcom/mymove/wiki/How-to-Test-the-Prime-API-(Local,-Staging,-and-Experimental)
Reviewer Notes
Is there anything you would like reviewers to give additional scrutiny?
Setup
Add any steps or code to run in this section to help others prepare to run your code:
echo "Code goes here"

Code Review Verification Steps

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in
Querying the Database Safely
have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change
this article explains more about the approach used.

Screenshots
If this PR makes visible UI changes, an image of the finished UI can help reviewers and casual
observers understand the context of the changes. A before image is optional and
can be included at the submitter's discretion.
Consider using an animated image to show an entire workflow instead of using multiple images. You may want to use GIPHY CAPTURE for this! 📸
Please frame screenshots to show enough useful context but also highlight the affected regions.

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against 34ed279f0a9d2d3eadb23806a2fd65dbbb88a858

moved code to new branch, no longer needed.


feat: activity logging

Description
The client's activity pulse logging mechanism. Works in conjunction with #12340
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?
This is a prototype, no tests are necessary, at this juncture.
Checklist:

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

Test coverage results :test_tube:
:white_circle: Total coverage has not changed
No changes to code coverage between the base branch and the head branch

/ok-to-test sha=73005a7

/ok-to-test sha=73005a7

/ok-to-test sha=e6bafd2

/ok-to-test sha=23751a1


Immediate Window unexpected behavior

This is about Visual Studio 2022 Community edition. According to https://learn.microsoft.com/en-us/visualstudio/debugger/debugging-dll-projects?view=vs-2022 DLL can be debugged with Immediate Window without a calling app, I have been using it for a very long time all the way till using .net framework 4.8.x.  However, when I recently recreated a .net 4.8.6 based C# Class Library project (whole solution) to switch to using .NET 5.0, I started getting a popup window telling me that "A project with an Output Type of Class Library cannot be started directly" and it no longer works like it used to.  Is there a fix for this problem? This was such a handy/heavily used feature while programming a DLL, I need to upgrade to .NET 5.0 but due to the above referenced issue I may have to hold off and keep using .net framework 4.8.6. Please help if you have knowledge on this issue! (For now I have created a dummy calling app, but it takes significant amount of additional time to compile the blank GUI of that dummy project which is of absolutely no use to me, I rather not waste so much compiling time every time I have to make a small change, I have over 140 new DLL calls to implement).

@desidotnet -- Desi, thank you for your thorough feedback.  This repo is solely for documentation, and this issue seems product-related.  Please add it here:

Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in the Visual Studio IDE.
Use the new Suggest a feature for Visual Studio IDE menu item.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.

I am closing this issue now.  You are welcome to @ mention me for any followup.  We hope to hear from you again.


Class name change when the file is minified

Version
3.0.0-beta.6
Reproduction link
https://codesandbox.io/s/vnq0v2w8z3
Steps to reproduce
Create any class and print its name by using constructor.name then reproduce it in production mode.
What is expected?
Prints the correct class name.
What is actually happening?
It prints a letter instead of the class name.

Probably it happens because of the file is minified in production mode.

I did it and worked perfectly. Thank you @dhensche ! Unfortunately, the file size has increased from 880.89 kb to 1291.50 kb.
chainWebpack: config => {
    config
        .plugin('uglify')
        .tap(args => {
          args[0].uglifyOptions.mangle = false
          return args
     })
},

@ftgibran If you're just concerned with class names, and want to minimize file size, can you just set the option keep_classnames: true?

hello!
This code doesn.t work any more. And link to vue.js docs is incorrect. Can you provide actual way

Building for production... ERROR  TypeError: Cannot read property 'uglifyOptions' of undefined
TypeError: Cannot read property 'uglifyOptions' of undefined
at /home/alexey/WebstormProjects/kopnik-client/vue.config.js:23:25
at Object.tap (/home/alexey/WebstormProjects/kopnik-client/node_modules/webpack-chain/src/Plugin.js:25:24)
at chainWebpack (/home/alexey/WebstormProjects/kopnik-client/vue.config.js:22:14)
at /home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/lib/Service.js:241:40
at Array.forEach ()
at Service.resolveChainableWebpackConfig (/home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/lib/Service.js:241:26)
at PluginAPI.resolveChainableWebpackConfig (/home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/lib/PluginAPI.js:146:25)
at module.exports (/home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/lib/commands/build/resolveAppConfig.js:2:22)
at build (/home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/lib/commands/build/index.js:146:50)
at /home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/lib/commands/build/index.js:88:13
at Service.run (/home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/lib/Service.js:235:12)
at Object. (/home/alexey/WebstormProjects/kopnik-client/node_modules/@vue/cli-service/bin/vue-cli-service.js:37:9)
at Module._compile (internal/modules/cjs/loader.js:1121:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1160:10)
at Module.load (internal/modules/cjs/loader.js:976:32)
at Function.Module._load (internal/modules/cjs/loader.js:884:14)

This vue.js doc

I did it and worked perfectly. Thank you @dhensche ! Unfortunately, the file size has increased from 880.89 kb to 1291.50 kb.
chainWebpack: config => {
    config
        .plugin('uglify')
        .tap(args => {
          args[0].uglifyOptions.mangle = false
          return args
     })
},

if anyone is still looking for this.
module.exports = {
  chainWebpack: config => {
    config.optimization
          .minimizer('terser')
          .tap(args => {
            const { terserOptions } = args[0]
            terserOptions.keep_classnames = true
            terserOptions.keep_fnames = true
            return args
          })
  }
}

Thanks for that hing @djpate this made my day after 2 hours debugging an issue that only happened in production build, not in dev mode...
if I may add a modest contribution here:
if you only need to keep some of your class names, you can use regex , cf Terser minify options
module.exports = {
  chainWebpack: config => {
    config.optimization
          .minimizer('terser')
          .tap(args => {
            const { terserOptions } = args[0]
            terserOptions.keep_classnames = /.*ClassNameThatIWantToKeep.*/
            terserOptions.keep_fnames = /.*ClassNameThatIWantToKeep.*/
            return args
          })
  }
}```


here's a couple best-practice security headers

Ping @rohitpaulk @rorepo @kzisme @techtonik et al.

Also ping @greggles @benhc123. :-)


Remove machine config render check for bundle generation

Without debug it is hard to find why bundle generation is failing. Right
now machine config is not rendered after removing pull secret (x22) is
coming from the CI but need to make sure if mco really not able to
create new config after pull secret update.

One thing is not clear to me regarding the log saying if the only thing which changed is the pull secret.
Let's say I start the cluster from scratch (pull secret is initially empty, a new one is added, config is rendered). I work with the cluster, including MCO changes (waiting for the config to be rendered). Then I create a new bundle. Will it also be able to reuse a preexisting config from before?

One thing is not clear to me regarding the log saying if the only thing which changed is the pull secret.
Let's say I start the cluster from scratch (pull secret is initially empty, a new one is added, config is rendered). I work with the cluster, including MCO changes (waiting for the config to be rendered). Then I create a new bundle. Will it also be able to reuse a preexisting config from before?

@cfergeau It will support to render because your flow is something like

Cluster started with empty pull secret
MCO rendered because you add your pull secret.
You again make some changes to MCO (not related to pull secret) so again rendered
Now you are trying to create bundle but since your initial rendered config doesn't have your MCO change which you did in step 3 so it will going to render again.

If there is no step-3 (no MCO changes) then mco can reuse the initial rendered config.

This means sometimes the current code is needed, sometimes not? If we remove this code, what happens if a render is needed but we don't wait for it?

Sorry I blindly merge to continue the release. I didn't see the above question.
Should I hold on a bit?

This means sometimes the current code is needed, sometimes not? If we remove this code, what happens if a render is needed but we don't wait for it?

This doesn't break the cluster, what might be happen that pending render will then happen when user start the cluster from generated bundle if there is any. All we are trying with this render wait is to make sure the pull secret is not part of the cluster and that we also check with ssh to the VM and reading that file. So we are safe even if sometime render happen or sometime it doesn't.


Solr query exception on workspace submission save due to ORCID "will be generated::orcid::..." authority key syntax

Describe the bug
DSpace 7.3:
When adding a new ORCID authority author (dc.contributor.author) to a submission workspace item, a temporary authority key is created with the syntax "will be generated::orcid::ID" (where ID is the ORCID ID). If you select Save, or Save for later, a Solr authority query is performed with this temporary key and results in a server-side Solr org.apache.solr.search.SyntaxError exception. The exception also occurs when first loading a previously saved submission that has any such temporary authority keys.
See solr-exception.txt for full stack trace.
To Reproduce
Steps to reproduce the behavior:

Enable ORCID authority for dc.contributor.author
Start a new submission that accepts dc.contributor.author in the input form
Search for and add an ORCID author
Select Save or Save for later
Check dspace.log file for exception

Expected behavior
Solr queries for "will be generated::orcid::..." keys should be skipped since they will not be in the Solr authority core. Or, the Solr query should be transformed into an acceptable syntax to avoid the exception.
Related work
First discovered while investigating issue #8436

I see the the code attempt to escape the ":" in the string "will be generated::orcid::...". But, the since String.replaceAll(regex,regex) expects regex as the replacement, the \ needs to be escaped twice, once for the java string and one for the regex. So, "\\:" => : as final replacement value.
See https://github.com/DSpace/DSpace/compare/main...amtuannguyen:DSpace:main
Can I create a PR for this?

When testing an alternate fix for this issue, I found cases where a successful Solr query actually causes other issues related to authority lookup. I'm working on a fix for those cases that I can submit as a PR before we close this issue. Basically, the extended fix makes sure that queries for "will be generated::" authority keys never occur so that acceptable default logic can properly handle these cases. I will also need to create a separate issue and PR for dspace-angular.

While creating pull request #8799, I suddenly realized that there might be a deeper issue here. Indexing an item's content via the discovery consumer should have the properly generated authority key from the authority consumer as configured below:
event.dispatcher.default.consumers = authority, versioning, discovery, eperson
They are executed in order as far as I can tell because Dispatcher uses LinkedHashMap for the list of consumers.
Why would the IndexEventConsumer (discovery) be trying to look up a preferred label for an authority key that has not yet been generated if AuthorityConsumer (authority) runs first?


Week slice option

          Hey @pohodnya, thanks for the PR! The code looks super clean. From my understanding, Postgres can handle thousands of partitions, so I'm not sure an additional period is needed.

Originally posted by @ankane in https://github.com/ankane/pgslice/issues/36#issuecomment-698768270
Nevertheless, PG is able to handle thousands of partitions, but there may be issues if you have fewer CPU cores than partitions.
There may be an issue if you need to request  2 weeks of data and the server has let's say only 4 CPU cores.
It is a request to 2 tables vs a request to 14 tables. I believe that one core may do only one table request at a time.
Considering that index time processing is not linear, I suppose that the request to 2 larger tables will be faster than the request to 14 small tables. Therefore the week option may be very helpful.
Just saying.

Hi @Serg0, feel free to create a new issue with performance data if you try it.


Upload button does not like me

(__/)
(•ㅅ•)
/ 　 づ🐞
I regret to inform you that I found a bug in the upload button that appears sometimes. Perhaps during a full moon?
Describe the bug
An error message appears when the applicant attempts to upload a document to their proposal.
To Reproduce
Steps to reproduce the behavior:

Go to a proposal
Click on 'upload'
See error

Expected behavior
The error message should not appear when the user upload a document.
Priority

High (keeping you from completing day-to-day tasks)

What are the steps to replicate this issue @fourthletter?

@fourthletter couldn't reproduce the issue in test site. Could you share the django log If you get the error in your live site?

@vimal1083 Please let me know if you have other questions.  Kindly open the server django log, at the same time try upload a file in the application. you would see some error log, post that log here.

@frjo Can you please take a look into the bug if it is reproducible?

@frjo I created this just for you. @Parbhat I hope things are well with you and your team.
https://user-images.githubusercontent.com/20019656/118459372-fd70b280-b6fb-11eb-91e0-2e3489ebe4d0.mp4

@fourthletter Are you experiencing it on live or test site? Yeah, I and my team are safe from the second wave till now. Hope things become better soon.

@Parbhat I'm glad to hear you are safe. I'm only experiencing on live because it's a database issue https://github.com/HyphaApp/hypha/issues/2342#issuecomment-828287804

This is a not an upload issue, this is a UI issue. The upload button is able to successfully upload a document, but the UI presents the message 'Upload fail' in red. I'm closing this issue because it's related to #2462


Can't reset zoom

Issue Type: Bug
Long ago I changed the zoom in Azure Data Studio for screen sharing.
Now I can't reset the zoom back to 100%.
When I select View: Reset Zoom it changes to 100% but after a while it changes back to my presentation zoom setting.
Azure Data Studio version: azuredatastudio 1.36.1 (e56e1d931bbb110fe8f24751423c4e184bb8f22d, 2022-04-21T21:25:10.399Z)
OS version: Windows_NT x64 10.0.19044
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz (12 x 2592)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.85GB (9.12GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (5)

Extension
Author (truncated)
Version

cms
Mic
0.8.0

managed-instance-dashboard
Mic
0.4.2

profiler
Mic
0.11.0

schema-compare
Mic
1.13.1

sql-assessment
Mic
0.6.1

Duplicate of https://github.com/microsoft/azuredatastudio/issues/14128
If there's a specific action that you've noticed resets your zoom please add it to that issue so we can make sure to track the places this occurs for fixing!


date anchoring timestamp for context

Codecov Report

Merging #184 into master will decrease coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #184      +/-   ##
==========================================
- Coverage   51.55%   51.53%   -0.02%
==========================================
  Files          72       72
  Lines       15650    15644       -6
==========================================
- Hits         8068     8062       -6
  Misses       6549     6549
  Partials     1033     1033

Impacted Files
Coverage Δ

vm/vm.go
50.61% <100%> (-0.36%)
:arrow_down:

Continue to review full report at Codecov.

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


[NPM] Temporary test fix, don't check workqueue length in UT's

Reason for Change:

Currently experiencing issues in UT's where multiple events are being called. Commenting out checking workqueue length until RCA can occur so active PR's are unblocked.
Issue Fixed:

Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests

Notes:

Resolved this issue in PR #880


Add API?

Would be nice if the application could get an API to use it as a bridge with external applications

yip

What features would you like to see in this API beyond what you get from OpenAI API?

It would be amazing to interact with a chat through API,
-> keeping the context, system prompt, temperature ...
-> The API would actually POST the messages through the chat.
I can see such an API very usefull for monitoring messages sent through an app.


UpdateTestingRollback not working with Liquibase 4.4.0

Environment
Liquibase Version: 4.4.0
Liquibase Integration & Version: gradle
Database Vendor & Version: RDS Postgres
Description
UpdateTestingRollback not working with Liquibase 4.4.0
**[Container] 2021/06/29 21:04:35 Running command export migrate_status_temp=$(docker run --rm -v $CODEBUILD_SRC_DIR/Database/liquibase/migration/:/liquibase/changelog liquibase/liquibase --defaultsFile=/liquibase/changelog/liquibase.properties --username=$USERNAME --password=$PASSWORD --defaultSchemaName=$SCHEMA --url=$TEMP_DB_URL updateTestingRollback)
Unexpected argument(s): updateTestingRollback
For detailed help, try 'liquibase --help' or 'liquibase  --help'
Did you mean: rollback-one-update or rollback-to-date or update?**
Actual Behavior
UpdateTestingRollback works with Liquibase 4.3.5. It should work on 4.4.0

Hi @chanpreetkaurv Thanks for alerting us to this issue.  We will add it to the list of issues that were are processing.

This is a duplicate of #1909. I'll close this one to keep discussion centralized. Thanks for the report


Document auto release procedure

This adds initial documentation of how to do semi-automated release.
Signed-off-by: Mike Kolesnik<EMAIL_ADDRESS>

Thanks for the reviews and suggestion, I've updated the document and incorporated many of them and hopefully it's much clearer now.


How to increase GUI metrics refersh frequency?

Hello, IBM support team. Is there any solution to increase metrics data refresh frequence? We meet a problem that the timestamp of data display at GUI is 5mins later than system time.

Hi,
could you please describe your question more precise, provide screenshots, etc.
Thanks,
Helene

@Helene As you can see, the neweset data is later 5 mins than PC time.

You are looking at IBM Spectrum Scale GUI interface. The IBM Spectrum Scale GUI interface and the IBM Spectrum Scale bridge for Grafana are different applications.
For questions about the  IBM Spectrum Scale GUI check the IBM Knowledge Center docs and contact the official IBM Spectrum Scale Product Support.

@Helene I guess this the same issue with GUI and bridge-grafana. So I wonder does it matter with pmcollector?

@antzjm - no, grafana-bridge and GUI do use differet source code logic.
Your grafana-bridge dashboard refresh interval is set to 15 minutes:

compare with my dashboard:

For more info please read Grafana documentation https://grafana.com/docs/grafana/latest/troubleshooting/troubleshoot-dashboards/

@Helene No, I guess you have misunderstand my intentions. The refresh internal of grafana does not matter with this issue. Although I set refresh internal to 5s, I still only see data about five minutes ago.


fix(state): CoreAccessor manages its own context

Resolves https://github.com/celestiaorg/celestia-node/issues/1248 and https://github.com/celestiaorg/celestia-node/issues/1246

For this to be tested. We need either a Swamp test that sends PFDs or a per-module API testing. The latter would construct the API/Module, and test each method on the API

we have testground tests that incorporate PFD submission cc @Bidon15

we have testground tests that incorporate PFD submission cc @Bidon15

True, the problem is that it didn't catch it

@Wondertan I think they did catch it because that's how @Bidon15 found the error

Actually it was found via testing directly on arabica, I stand corrected


Can you bump three.js peerDependency version number to 0.149.0?

Is there a reason that v 149.0 is explicitly not supported?

= 0.125.0 < 0.149.0

This is currently causing issues when installing @react-three/postprocessing 2.7.0 via pnpm
└─┬ @react-three/postprocessing 2.7.0
  └─┬ postprocessing 6.29.3
    └── ✕ unmet peer three@">= 0.125.0 < 0.149.0": found 0.149.0

Ok, apologies. I now see that v 0.149.0 does NOT work with this package, so the peer dependency versioning is correct. I'll close this and add an issue to @react-three/postprocessing

This issue does belong here and there's a fix in #448 waiting to be released, but I currently don't have access to my PC because I'm moving.


fixing read_list_by_name looping on MAX_ADS_SUB_COMMANDS case with lo…

This pull request fixes an issue encountered when using the read_list_by_name function with structure_defs. If more than 500 tags are read and structure_defs is provided with a size matching the tags being requested, the for loop in sum_read raises an error. This happens because the tag list is sliced, but structure_defs is not.
To address this, I adjusted the for loop to ensure that the sliced chunk also includes the corresponding tags in structure_defs. This change resolves the issue.

nice work, thank you, how do you fancy taking a look and seeing if this affects write_list_by_name too?

Awesome thank you so much!


HDDS-5261. Delete Useless ozone subcommand 'noz'

What changes were proposed in this pull request?
If noz does not continue to develop, whether we need to delete it?
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-5261?filter=-2
How was this patch tested?

Thank You @wzhallright for the fix and @adoroszlai for the review.


How to wait until one of the two elements is present

I posted the question here - https://stackoverflow.com/questions/50917590/coypu-wait-until-one-of-the-two-elements-is-present
How can I wait until either a certain css appears or a certain text?
Right now my solution is this:
    browser.Visit(uriContext.Uri.ToString());
    var deadline = DateTime.UtcNow.Add(WebAppWarmUpTimeout);
    while (DateTime.UtcNow < deadline)
    {
    	if (browser.HasContent("404 - File or directory not found.", SmallTimeoutOptions))
    	{
    		Assert.Fail("404");
    	}
    	else if (browser.FindCss("body nav a", "Job Search", SmallTimeoutOptions).Exists())
    	{
    		break;
    	}
    }

Is there a better way to do it?

Yes there is:
https://github.com/featurist/coypu#finding-states-nondeterministic-testing
Appreciate if you answered your own question on SO with this too. Thanks!
On Mon, Jun 18, 2018 at 10:17 PM, MarkKharitonov<EMAIL_ADDRESS>wrote:

I posted the question here - https://stackoverflow.com/
questions/50917590/coypu-wait-until-one-of-the-two-elements-is-present
How can I wait until either a certain css appears or a certain text?
Right now my solution is this:
browser.Visit(uriContext.Uri.ToString());
var deadline = DateTime.UtcNow.Add(WebAppWarmUpTimeout);
while (DateTime.UtcNow < deadline)
{
	if (browser.HasContent("404 - File or directory not found.", SmallTimeoutOptions))
	{
		Assert.Fail("404");
	}
	else if (browser.FindCss("body nav a", "Job Search", SmallTimeoutOptions).Exists())
	{
		break;
	}
}

Is there a better way to do it?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/featurist/coypu/issues/187, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEppKAK-J9njK_t7l1dVaD9B-a8kD_tks5t-Bj6gaJpZM4UsfXe
.

Done. Thank you very much.


CHEBI:135748 wrong structure

The paper https://scholar.google.de/scholar?cluster=4284798881876815212&hl=en&as_sdt=0,5 has a structure that shows a methylene is missing in CHEBI:135748. Also, the abstract of the paper at http://en.cnki.com.cn/Article_en/CJFDTotal-HNHG200406010.htm reads: "Lenampicillium hydrochloride was synthesized by the reaction of 4-bromomethyl-5-methyl-1,3-dioxolen-2-one and ampicillin." (assuming HBr gets eliminated forming the ester).

Now fixed. Thanks


Renovate + Traefik gnutls_handshake() failed: Error in protocol version

Issue in traefik/compose.yaml
ECDSA cipher suites will fail in Renovate due to bad implementation of gnutls, see https://github.com/renovatebot/renovate/discussions/25258
Testing adding new cipher suites
        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

error log:
renovate-prod-1  |          "message": "fatal: unable to access 'https://gitlab-prod-1.srv-prod-1.home.clcreative.de/homelab/gitea.git/': gnutls_handshake() failed: Error in protocol version\n",
renovate-prod-1  |          "stack": "Error: fatal: unable to access 'https://gitlab-prod-1.srv-prod-1.home.clcreative.de/homelab/gitea.git/': gnutls_handshake() failed: Error in protocol version\n\n    at Object.action (/usr/src/app/node_modules/simple-git/src/lib/plugins/error-detection.plugin.ts:42:29)\n    at PluginStore.exec (/usr/src/app/node_modules/simple-git/src/lib/plugins/plugin-store.ts:54:29)\n    at /usr/src/app/node_modules/simple-git/src/lib/runners/git-executor-chain.ts:124:42\n    at new Promise (<anonymous>)\n    at GitExecutorChain.handleTaskData (/usr/src/app/node_modules/simple-git/src/lib/runners/git-executor-chain.ts:121:14)\n    at GitExecutorChain.<anonymous> (/usr/src/app/node_modules/simple-git/src/lib/runners/git-executor-chain.ts:97:40)\n    at Generator.next (<anonymous>)\n    at fulfilled (/usr/src/app/node_modules/simple-git/dist/cjs/index.js:52:24)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)"

Removing these entries seems to solve it, need more research:
 curvePreferences:
    - CurveP521
    - CurveP384


test: extended integration test for deployment

Changes

:test_tube: Extended knative deployment integration test: added more tests for envvars and volumes.
:bug: Fixed race-condition.

/lgtm
This is great - thanks @matejvasek !


Fix some instances of overly aggressive enum de-duplication

TODO: add example.

lots of these for rp2040

Just made it so some of these optimizations are completely turned off for the RP2040.


Consider whether s_delta_blocks is necessary

If we are only using the params for getting delta then we know it.
Also we can easily get it by just doing the first difference.
If we get rid of this we can get rid of delta blocks as a state variable as well
Putting it to tier 3 because it might save space

sgtm as long as removal doesnt screw us anywhere

Switching to tier 5 since it probably only gives a bit of performance gain


simple example: replugging SD-Card while unmounted results in low level disk error

Dear Carl,
I am trying to extend your simple example for an application where sd cards  get removed and replugged while the program continues to run.
I've modified the code the code to run within a loop and added delays between unmount and remount for replugging the sd card.
During testing testing i've noticed the following behavior:
As soon as i remove and insert the sd-card again, the app "panics" with the following output:
No response CMD:17
No response CMD:17
No response CMD:17
No response CMD:17 response: 0xff

*** PANIC ***

f_mount error: A hard error occurred in the low level disk I

As long as the card stays plugged-in the first time since reboot - access works fine. Also if I replug the card without ever accessing it (since reboot) it works just fine.
Would you please point me in the right direction regarding the additional things that need to be considered for this usecase?
The modified sample code:
#include <stdio.h>
//
#include "f_util.h"
#include "ff.h"
#include "pico/stdlib.h"
#include "rtc.h"
//
#include "hw_config.h"

int main() {
    stdio_init_all();
    // Set display chip select to high (connected to same SPI)
    gpio_init(5);
    gpio_set_dir(5, GPIO_OUT);
    gpio_put(5, 1);

    // set and hold i2c portexpander in reset (high impedance outputs)
    gpio_init(17);
    gpio_set_dir(17, GPIO_OUT);
    gpio_put(17, 0);
    time_init();
    sleep_ms(2000);
    puts("------------");
    puts("Hello, world!");
    puts("------------");

    while (true) {
    	puts("Insert Card...");
    	sleep_ms(8000);
	// See FatFs - Generic FAT Filesystem Module, "Application Interface",
	// http://elm-chan.org/fsw/ff/00index_e.html
	FATFS fs;
	puts("mount...");
	FRESULT fr = f_mount(&fs, "", 1);
	if (FR_OK != fr) panic("f_mount error: %s (%d)\n", FRESULT_str(fr), fr);
	FIL fil;
	const char* const filename = "filename_long.txt";
	puts("fr_open file.txt...");
	fr = f_open(&fil, filename, FA_OPEN_APPEND | FA_WRITE);
	if (FR_OK != fr && FR_EXIST != fr) {
		panic("f_open(%s) error: %s (%d)\n", filename, FRESULT_str(fr), fr);
        }
	puts("write hello world into file...");
	if (f_printf(&fil, "Hello, world!\n") < 0) {
		printf("f_printf failed\n");
	}
	puts("close file");
	fr = f_close(&fil);
	if (FR_OK != fr) {
		printf("f_close error: %s (%d)\n", FRESULT_str(fr), fr);
	}
	puts("unmount...");
	f_unmount("");

	puts("Done!");
	puts("Remove Card now!");
	sleep_ms(8000);
    }

}

Kind Regards
Nasrudin

Does your SD card socket support Card Detection (Insertion/Removal)? I recommend that you set up an interrupt on the Card Detect line to detect removal or insertion of the card when it happens. For example, see main.cpp. Also, see Notes about Card Detect.


update xsimd add reducer to latest version

@ArborealAudio, ran into some strange Git behaviour with the last PR... I'm honestly not sure what happened. Anyway, this PR should have all your commits from the previous one. If it looks right to you, feel free to merge once the CI is finished!

Looks good to me! I think you'll have to be the one to merge it, either because it's your repo or because you authored this PR, not sure which


1.1 GA Release Checklist

[ ] Ensure the Version.props has the PreReleaseVersionLabel updated to the next release/preview (@joperezr)
[x] Identify and validate the build on the dotnet.systemweb-adapters pipeline (@twsouthwick)
[ ] Release the build (@joperezr)
[ ] Tag the commit (@joperezr)
[ ] Draft release notes (@joperezr)
[ ] Publish the docs
[ ] Publish release notes
[ ] Close the old milestone
[ ] 1.1 Announcement blog post (cc @sayedihashimi)
[ ] Announce on social media

I validated 1.1.0-preview.1.23151.2 and LGTM


[Issue 9576] Fix flaky test BrokerServiceLookupTest.testModularLoadManagerSplitBundle

Fixes #9576
Motivation
Fixes a flaky test
Modifications
Increase timeout from 10 seconds to 20 seconds, use Awaitility for waiting.

/pulsarbot run-failure-checks


Teju-Manchenella_180723_164224.040

etst

You can review the change introduced to the full definiton at ClearlyDefined.


Fix verity in our automated builds

What is the error that this is fixing?

Verity is completely disabled in all of our automated builds, including the current alpha.


The condition of originissuer.cert-manager.k8s.cloudflare.com does not become Redy.

I see the README.
I can't proceed because the condition of originissuer.cert-manager.k8s.cloudflare.com doesn't exist.
$ kubectl get originissuer.cert-manager.k8s.cloudflare.com prod-issuer -o json -n hoge | jq .status.conditions
<empty>

$ kubectl get originissuer.cert-manager.k8s.cloudflare.com prod-issuer -o json -n hoge | jq .
{
  "apiVersion": "cert-manager.k8s.cloudflare.com/v1",
  "kind": "OriginIssuer",
  "metadata": {
    "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"cert-manager.k8s.cloudflare.com/v1\",\"kind\":\"OriginIssuer\",\"metadata\":{\"annotations\":{},\"name\":\"prod-issuer\",\"namespace\":\"hoge\"},\"spec\":{\"auth\":{\"serviceKeyRef\":{\"key\":\"key\",\"name\":\"service-key\"}},\"requestType\":\"OriginECC\"}}\n"
    },
    "creationTimestamp": "2020-12-17T14:32:21Z",
    "generation": 2,
    "name": "prod-issuer",
    "namespace": "hoge",
    "resourceVersion": "58522222",
    "selfLink": "/apis/cert-manager.k8s.cloudflare.com/v1/namespaces/hoge/originissuers/prod-issuer",
    "uid": "9073f00b-d7ce-40f4-ba02-207bedc16e2e"
  },
  "spec": {
    "auth": {
      "serviceKeyRef": {
        "key": "key",
        "name": "service-key"
      }
    },
    "requestType": "OriginECC"
  }
}

Where should I look? Or if there is a solution, please let me know.

There's should be logs in the "origin-ca-issuer" deployment.

E1218 02:09:31.649284       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.CertificateRequest: failed to list *v1.CertificateRequest: certificaterequests.cert-manager.io is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "certificaterequests" in API group "cert-manager.io" at the cluster scope
E1218 02:10:01.935060       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.OriginIssuer: failed to list *v1.OriginIssuer: originissuers.cert-manager.k8s.cloudflare.com is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "originissuers" in API group "cert-manager.k8s.cloudflare.com" at the cluster scope
E1218 02:10:21.233633       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.CertificateRequest: failed to list *v1.CertificateRequest: certificaterequests.cert-manager.io is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "certificaterequests" in API group "cert-manager.io" at the cluster scope
E1218 02:10:34.017353       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.OriginIssuer: failed to list *v1.OriginIssuer: originissuers.cert-manager.k8s.cloudflare.com is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "originissuers" in API group "cert-manager.k8s.cloudflare.com" at the cluster scope
E1218 02:11:05.056364       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.CertificateRequest: failed to list *v1.CertificateRequest: certificaterequests.cert-manager.io is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "certificaterequests" in API group "cert-manager.io" at the cluster scope
E1218 02:11:18.341013       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.OriginIssuer: failed to list *v1.OriginIssuer: originissuers.cert-manager.k8s.cloudflare.com is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "originissuers" in API group "cert-manager.k8s.cloudflare.com" at the cluster scope
E1218 02:11:42.666428       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.CertificateRequest: failed to list *v1.CertificateRequest: certificaterequests.cert-manager.io is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "certificaterequests" in API group "cert-manager.io" at the cluster scope
E1218 02:12:12.699924       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.OriginIssuer: failed to list *v1.OriginIssuer: originissuers.cert-manager.k8s.cloudflare.com is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "originissuers" in API group "cert-manager.k8s.cloudflare.com" at the cluster scope
E1218 02:12:29.072923       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.CertificateRequest: failed to list *v1.CertificateRequest: certificaterequests.cert-manager.io is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "certificaterequests" in API group "cert-manager.io" at the cluster scope
E1218 02:12:45.382325       1 reflector.go:127] k8s.io/client-go@v0.19.0/tools/cache/reflector.go:156: Failed to watch *v1.OriginIssuer: failed to list *v1.OriginIssuer: originissuers.cert-manager.k8s.cloudflare.com is forbidden: User "system:serviceaccount:origin-ca-issuer:originissuer-control" cannot list resource "originissuers" in API group "cert-manager.k8s.cloudflare.com" at the cluster scope

ServiceAccount has not been created?

Did you deploy the RBAC files?
kubectl apply -f deploy/rbac

$ kubectl apply -f deploy/rbac
clusterrolebinding.rbac.authorization.k8s.io/originissuer-control unchanged
clusterrole.rbac.authorization.k8s.io/originissuer-control configured

Oh, I'm sorry. It seems that some difference was made.

https://github.com/cloudflare/origin-ca-issuer/blob/trunk/deploy/rbac/role.yaml#L7
Is there no namespace in Role metadata?

That's a cluster role, so there's no namespace associated with it.

$ kubectl auth can-i list originissuers --as=system:serviceaccount:origin-ca-issuer:originissuer-control
No
$ kubectl auth can-i list certificaterequests --as=system:serviceaccount:origin-ca-issuer:originissuer-control
No

$ kubectl get ClusterRoleBinding originissuer-control -o yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRoleBinding","metadata":{"annotations":{},"name":"originissuer-control"},"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"originissuer-control"},"subjects":[{"kind":"ServiceAccount","name":"originisuer-control","namespace":"origin-ca-issuer"}]}
  creationTimestamp: "2020-12-17T06:09:14Z"
  name: originissuer-control
  resourceVersion: "58023827"
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/originissuer-control
  uid: be01786b-6249-45b9-a442-a2091523ebc9
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: originissuer-control
subjects:
- kind: ServiceAccount
  name: originisuer-control
  namespace: origin-ca-issuer

$ kubectl get ClusterRole originissuer-control
NAME                   AGE
originissuer-control   20h

Role and Rolebind are behaviors that exist but are not bound to SA.

I was able to confirm that this problem was solved by the above PR. Thank you for your support.