Add a kani::solver attribute to allow specifying a SAT solver

Description of changes:
Add a kani::solver attribute that allows selecting the backend SAT solver to use with a harness, e.g.
#[kani::proof]
#[kani::solver("/path/to/solver-binary")]
fn check() { ... }

This requires #2087 to be merged first as one of the included tests uses Kissat. Keeping this as a draft till then.
Resolved issues:
Resolves #1656
Related RFC:

Optional #ISSUE-NUMBER.
Call-outs:

Testing:

How is this change tested? Added several tests

Is this a refactor change? No

Checklist

[X] Each commit message has a non-empty body, explaining why the change was made
[X] Methods or procedures are documented
[X] Regression or unit tests are included, or existing tests cover the modified code
[X] My PR is restricted to a single feature or bugfix

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

I would prefer if the attribute is based on an ID, not a path. I don't think it's a good practice to hardcode paths in the code, since it is hard to ensure that the path works for every developer and the CI.
To make this extensible for users that want to try something new that doesn't ship with Kani, I would prefer adding installation instructions, command line or a utility that configures a new engine via its path into a format / path that Kani expects.

I would prefer if the attribute is based on an ID, not a path. I don't think it's a good practice to hardcode paths in the code, since it is hard to ensure that the path works for every developer and the CI.

Point taken. A kani::solver attribute should be ID-based to support future plans of integrating multiple backends.
For the purposes of allowing the user to control CBMC's SAT solver specifically (which this PR is targeting), I can think of two options:

Introduce a CBMC-specific annotation, e.g. kani::cbmc_solver or even kani::cbmc_sat_solver where the argument would be kissat, cadical, etc.
Use kani::solver, and prefix each SAT solver option with cbmc (as we discussed offline), e.g. cbmc_kissat, cbmc_cadical, etc.

The advantage of option 1 is that it would keep the more valuable/more generic kani::solver attribute free, allowing us some time to design it based on future plans for integrating more backends.
The advantage of option 2 is that the user only needs to learn about one attribute for specifying the solver (i.e. fewer control knobs) which makes the usage simpler.
Thoughts?

Option 2 sounds better.

Just a nit... maybe use "::" as a convention, it is also less likely that "::" will be in the same of a binary.
I was thinking, since we only have cbmc today, we could consider that things that an id that doesn't have "::" uses cbmc. I.e.: kani::solver("minisat") is the same as kani::solver("cbmc::minisat").
Another option would be to start with what you have, and once we add more options, we use key / value for the attribute. And we support the previous mode as legacy purpose. I.e.:
kani::solver("minisat") == kani::solver(engine="cbmc", sat_solver="minisat")

Thanks for pushing on this, @zhassan-aws !
Why are we adding a new attribute? We could just make engine and solver optional arguments in kani::proof, your example would look like this:
#[kani::proof(solver = kissat)]
fn check() { ... }

This idea comes from @fzaiser in #1656, and in my opinion is much cleaner than the other options considered here. It'd work in a similar way to @celinval 's last suggestion, assuming engine = cbmc and solver = minisat at the moment.
I don't think engines and solvers should be coupled in any of these options neither (i.e., things like cbmc_kissat or cbmc::kissat). Is there a technical reason for us to keep them that way? Even if newer backends only work with certain solvers, we can always limit these choices from Kani, but in principle we should aim for maximum flexibility.

Why are we adding a new attribute? We could just make engine and solver optional arguments in kani::proof:

I fully agree with making attributes arguments to kani::proof, and have proposed it in #1217.

Are we going in the direction of adding a new attribute vs attribute arguments?

We agreed that we will support both approaches.

I have a few comments regarding the UX from the PR description:

We should also accept minisat as a value.
We should create a --list-sovers that prints all the solvers known to Kani.
I was wondering if we should consider adding a --default-solver similar to the --default-unwind option.

We should also accept minisat as a value.

Make sense.

We should create a --list-sovers that prints all the solvers known to Kani.

Good idea.

I was wondering if we should consider adding a --default-solver similar to the --default-unwind option.

TBH, I don't like --default-unwind, and I haven't seen it being used much. The behavior that makes sense to me is that command-line options should override attributes.

We should also accept minisat as a value.

Make sense.

We should create a --list-sovers that prints all the solvers known to Kani.

Good idea.

I was wondering if we should consider adding a --default-solver similar to the --default-unwind option.

TBH, I don't like --default-unwind, and I haven't seen it being used much. The behavior that makes sense to me is that command-line options should override attributes.

Sounds good to me.

Added minisat in e426f7905ff7a967f1321fe736eacc234baba191.
For --list-solvers, I just recalled that the help already displays the options:
$ kani --help
...
      --solver <SOLVER>
          Specify the CBMC solver to use. Overrides the harness `solver` attribute
          [possible values: "SAT solver binary", kissat, minisat]
...

Is this sufficient?

I think we should consider other solutions for that scenario (e.g., have a custom literal and a way to pass the path).

One option that I really like is passing the path to the solver with an environment variable KANI_CUSTOM_SOLVER, similar to how we allow an alternative setup path with KANI_HOME.

I don't think the arguments to the annotation should be strings.

I updated the PR to not use strings, e.g. #[kani::solver(kissat)]. Custom solver binaries can be specified using #[kani::solver(custom = "my_solver_binary")].

I do wonder if we should make a distinction between a builtin solver and a custom one. So:

Done. This only works for the attribute though, but not the command-line option :( It seems that to support passing --solver custom="solver_binary", we would need to parse the argument ourselves. In this case, we would lose the automatic listing of variants in the help message that strum provides.

I updated the PR to not use strings, e.g. #[kani::solver(kissat)]. Custom solver binaries can be specified using #[kani::solver(custom = "my_solver_binary")].

Thanks, @zhassan-aws !
One question: How would the user specify the solver in #[kani::proof(solver = ...)] if he wants to use a custom solver? I don't know if there's a syntax that'd support this case, since custom receives a string now, right?

How would the user specify the solver in #[kani::proof(solver = ...)] if he wants to use a custom solver?

I'm not sure :) We could perhaps do kani::proof(solver = custom("solver-binary")).

In my opinion, there shouldn't be any differences between the CLI and the annotation, which AFAIK is not true at the moment.

I implemented a clap parser for the --solver option, so that we allow --solver kissat, --solver minisat, or --solver custom=<any-binary>. I added a couple of tests for it.
@celinval this is something that you have requested as well.


regeneratorRuntime error when using ledger packages in chrome extension`

Currently, including any ledger packages from CAL in a chrome extension, will return the following regeneratorRuntime error.

Not including any ledger packages solves this problem, but webusb and ledger packages should be usable.
Also this is problematic for users that include @liquality/bundle as they may run into this error, not realizing that they should instead only include the necessary packages to stop this error from occurring.

CAL migrated to Chainify


How many supervised algorithms are?

Hi everyone,
I have a dataset labeled with normal samples and outliers.
As far as I can see, only pyod.models.xgbod import XGBOD supports this configuration.
Are there more supervised algorithms supported?
Thanks in advance! 😄

So we are planning to incorporate more semi-supervised approaches. At the moment, maybe using lightgbm and xgboost, and xgbod is already good.


Why does not the "Install App" offer appear in the browsers Safari, Opera.?

Installed a versions: Vue storefront api v1.12.1, Vue storefront 1.12.1, Capybara 1.0.2, Magento 2.3.5.
What needs to be done for the application to be installed from these browsers?

Do you mean desktop versions of those browsers?
If so, it's a matter of A2HS support, you can easily check that here:
https://caniuse.com/#feat=web-app-manifest

Yes. It turns out that safari won't work?

@Qrzy do you have an application running on iOS?


fix: Prevent Runtime log for skills from being swallowed when switching between projects

Description
This PR ensure the runtime log content for the skill is surfaced. The existing bug on main is that it persists the log content to always the first selected project.
Task Item
Refs #6749

Coverage increased (+0.01%) to 51.14% when pulling fdd95eab778fc63de06342594f155120ffcc4b67 on srravic/fix-log-skill into d3ae3e2addd819608ab63c61e9be2188fa7e27c0 on main.


Guidance for long if condition

Hello,
Are there any guidelines on what to do with long, multiline conditions in Formatting if expressions?
Something like:
    if List.exists
        (function
        | CompExpr _ -> true
        | _ -> false)
        es then
        shortExpression ctx
    else
        expressionFitsOnRestOfLine shortExpression longExpression ctx

If nothing comes to mind I would propose something like:
if
    List.exists
        (function
        | CompExpr _ -> true
        | _ -> false)
        es
then
    shortExpression ctx
else
    expressionFitsOnRestOfLine shortExpression longExpression ctx

Where if and then align and the expression has one indent.
This is the safest option you have in case the expression is any try/with or a match or any other horribly long construct.
Personally, I would avoid multiline expressions and go for an intermediate let binding.
Thoughts?

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

ID: 8c09996f-24ac-cf39-ef43-d7909cbc2b89
Version Independent ID: 1efdd523-8552-6421-e149-74f76826ef8f
Content: F# code formatting guidelines
Content Source: docs/fsharp/style-guide/formatting.md
Product: dotnet-fsharp
GitHub Login: @cartermp
Microsoft Alias: phcart

Some other nice examples from the wild:
            if
              // Don't support implicit [<ReflectedDefinition>] on generated members, except the implicit members
              // for 'let' bound functions in classes.
              (not v.IsCompilerGenerated || v.IsIncrClassGeneratedMember) &&

              (// Check the attributes on any enclosing module
               env.reflect ||
               // Check the attributes on the value
               HasFSharpAttribute g g.attrib_ReflectedDefinitionAttribute v.Attribs ||
               // Also check the enclosing type for members - for historical reasons, in the TAST member values
               // are stored in the entity that encloses the type, hence we will not have noticed the ReflectedDefinition
               // on the enclosing type at this point.
               HasFSharpAttribute g g.attrib_ReflectedDefinitionAttribute v.TopValDeclaringEntity.Attribs) then

                ()

        if sourceCode.EndsWith("\n")
               && not
                  <| formattedSourceCode.EndsWith(Environment.NewLine) then
                return formattedSourceCode + Environment.NewLine
            elif
                not <| sourceCode.EndsWith("\n")
                && formattedSourceCode.EndsWith(Environment.NewLine)
            then
                return formattedSourceCode.TrimEnd('\r', '\n')
            else
                return formattedSourceCode

if
    Uri.Compare
        (
            foo,
            bar,
            UriComponents.Host ||| UriComponents.Path,
            UriFormat.UriEscaped,
            StringComparison.CurrentCulture
        ) = 0
then
    ()
else
    ()

    if match! (node.Attribute(XName.Get "GSettingsSchemaDir"), String.IsNullOrWhiteSpace s) with
       | (null, false) ->
           node.Add(XAttribute(XName.Get "GSettingsSchemaDir", s))
           true
       | (a, false) ->
           a.Value <- s
           true
       | (null, true) -> false
       | (a, true) ->
           a.Remove()
           true
    then config.Save file

I think what you propose is reasonable, although I would say that it should come with guidance that says something to the effect of:
"If you have a condition that is this long, first consider refactoring it into a separate function and calling that function instead"


Create classical control methods

These are regularization methods

[ ] LQR
[ ] LQG
[ ] ADP
[ ] MPC

(Optional) Nonlinear controls

[ ] SMC
[ ] MRAC
[ ] FL

We don't need those. close.


Primitives interface for error resilience and transpilation settings

Summary
First pass at the primitives interface for error resilience and transpilation settings. Feedback is welcome!
TODO:

[ ] Do client side validation of passed settings
[ ] Write tests

Details and comments
Fixes #346
cc: @tmittal947

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 4 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 66.187%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
2666

Relevant Lines:
4028

💛  - Coveralls


feat: Unit tests for serialize_v0 file model

Part of https://github.com/google/model-transparency/issues/57

Hmm, pytest cannot be found in the runner :(

oops, I might have clicked the auto-merge and the pre-submit was not marked "required". I'm looking at the pre-submit failure and will send a PR

I made it as required now.

I set the pre-submits as required in settings.

Ujjfgjolvf

Kjgjklffkkk

model_signing/install/requirements.test.in

Dlxkdnsjfjaknzjdlalxvdsos


Add management of images under infrastructure

Inline with #3398, containers belongs to Applications. In this ticket I propose and argue that "Images" belongs to Infrastructure and deserve a management page.
Right now v0.56, Rancher does now provide and overview of Docker images available on all host of an environment. It does provide a list of all running / stopped containers on each Host though and why not Images?
I would like to see under infrastructure (instead of containers) a list of all Images and versions available on each host, basically the output of the command docker images.
On this "Images" page I would also like the button "Add Image".
Some use cases/motivation for this proposal
This will allow me to docker pull a specific image on all hosts (or a selected number of hosts) before a planned deployment. This will make sure that when I deploy a Stack it will run faster since all images are already available within the environment. The new images page will also make it possible to have an overview of which images are available on the hosts and possibility to clean up un-used images. There are for sure more use cases that the one I mentioned here. Right now it is impossible to debug if an image is present or not on the hosts. One is forced to ssh into the host, however we want to avoid user to have to ssh into hosts, and manage all the docker deployments via Rancher UI / CLI.

We only indirectly keep track of images used by containers on hosts.  There is no record of all the images on the host today.
Duplicate of https://github.com/rancher/rancher/issues/1277


Docs.MS Release Updates for azure-app-configuration

Update docs metadata and targeting for release of azure-app-configuration

Docs Build status updates of commit 86b1868:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-services/latest/app-configuration-readme.md
:warning:Warning
View (azure-node-latest)
Details

docs-ref-services/latest/app-configuration-readme.md

Line 2, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 9, Column 16: [Warning-ms-prod-technology-invalid] Invalid value for 'ms.technology': 'azure' is not valid with 'ms.prod' value 'azure'.
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Strange... This didn't auto-merge after approval.


ImportError: cannot import name 'toimage' from 'scipy.misc

i meet the problem ：‘ImportError: cannot import name 'toimage' from 'scipy.misc’

i have the same problem......


bug: graphviz missing in the deployment env

Sample project dockerfile contains
RUN apt-get update && apt-get install -y graphviz
We need this in the apis instances for the documentation app to work, I think

fixed in 1c7bbb1a8fd8be38806b65313b32f0f20c632e2e


labelProps not applying on label elements

Hi! I'm trying to pass labelProps on an input in react package.
It seems that labelProps are not applying on any  element on the components.
see: https://github.com/creativetimofficial/material-tailwind/blob/1a8738335c41c0a2065a6025cda85875bcdd24ad/packages/material-tailwind-react/src/components/Input/index.tsx#L111

Hi @lautaro-osacar,
The issue is fixed on v1.2.4 please update to the latest version for resolving this issue.
Cheers,
Sajad


Update image to contains the new change for NLP

NLP fully is enabled
Tested-by: zlq on sandbox

/gcbrun


Check if gpfdist is running / autocheck?

@netj Pardon my ignorance / laziness here, but I don't think we've had gpfdist running for some of our recent deepdive runs.  I can / will soon get some actual evidence about this... but are there large performance gains from having it running vs. not?

Also I tried running it (gpfdist -d ${GPPATH} -p ${GPPORT} -m 268435456 &) as I'd done before and it throws a command not found error...

Make sure greenplum's bin is on your PATH:
export PATH="/dfs/scratch1/netj/wrapped/greenplum:$PATH"

If you don't have inference.parallel_grounding or db.default.gpload turned on, gpfdist won't be used.  If either config is turned on, you need to keep it running.  Otherwise, weird errors will pop up.  This is another part DD could have been more user friendly.  We'll probably have DD launch gpfdist automatically when necessary, but for now you'll have to manage it.

Inserting a few lines to your run.sh may do the job for now: https://github.com/HazyResearch/deepdive/blob/v0.6.x/test/test_gp.sh#L32-L35

@ajratner We should change PARALLEL_GROUNDING=false to PARALLEL_GROUNDING=true in our env_local.sh to make sure we have parallelism using greemplum like @netj advised.
I also inserted @netj 's lines into run.sh for safety


mpv: 0.35.0 -> 0.35.1

Changes: https://github.com/mpv-player/mpv/releases/tag/v0.35.1
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

We need meta changelog!


ISSUE 615:  Changes to support "seekEpoch", "seekTimestamp" in Kafka Consumer step, removing "seek" from ConsumerCommonConfigs

New Feature: Support to consume on all partitions from specified timestamp/epoch
PR Branch
https://github.com/a1shadows/zerocode/tree/issue-615/seekToTimestamp
fixes #615
Motivation and Context
Right now, the seek method available can only seek from one partition and has no semantics to consume from a specific timestamp. It only consumes the last 'n' messages on the specified partition.
With this new feature, we will be able to consume on all partitions from specified timestamp/epoch in the following fashion:
"consumerLocalConfigs" : {
    "seekTimestamp" : {
      "timestamp" : "2024-02-04T14:53:20.071",
      "format" : "yyyy-MM-dd'T'HH:mm:ss.SSS"
    }

or like this:
"consumerLocalConfigs" : {
    "seekEpoch" : "1707038600071"
  }

in the kafka consume step.
In addition, we have also removed "seek" from ConsumerCommonConfigs as it made no sense in a common context and can now only be specified as a consumerLocalConfig.
Checklist:

[x] Unit tests added

[x] Integration tests added

[x] Test names are meaningful

[x] Feature manually tested

[ ] Branch build passed

[x] No 'package.*' in the imports

[ ] Relevant Wiki page updated with clear instruction for the end user

[ ] Not applicable. This was only a refactor change, no functional or behaviour changes were introduced

[ ] Http test added to http-testing module(if applicable) ?

[x] Not applicable. The changes did not affect HTTP automation flow

[x] Kafka test added to kafka-testing module(if applicable) ?

[ ] Not applicable. The changes did not affect Kafka automation flow

@nirmalchandra  Which Wiki page should I update with details of use of this feature? Have added a ser/des unit test and an integration test for the feature which is working as expected

@nirmalchandra  @authorjapps  @M3lkior hey, let me know if there is any action i need to take on this


chore(cross checker): Cross The Checker

What ❔
This PR removes the cross checker binary and all its references.
Why ❔
The checker's scope is covered by other components.
Checklist

[x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[x] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.
[x] Code has been formatted via zk fmt and zk lint.
[ ] Spellcheck has been run via zk spellcheck.

@shahar4 looks like we've waited too long and now have a merge conflict 😅
Do you mind updating the PR?


Adjusted test_encounters to specimens based FAQs

Chase asked about this categorization of test_encounters vs specimens.  After further review, I found this information.
https://www.tn.gov/health/cedep/ncov/data/data-faqs.html
Under "What changes have been made to how TDH presents the COVID-19 data?" they do references the changes in the data on 6/12. "On the full data report, the numbers will be broken down into confirmed and probable cases and confirmed and probable deaths consistent with Centers for Disease Control and Prevention surveillance case definitions: wwwn.cdc.gov/nndss/conditions/coronavirus-disease-2019-covid-19/case-definition/2020/."
The CDC definition seems to state specimens, not test encounters.

All relevant tests passing. Merging.


Search result

Q
A

Bug report?
[ ]

Feature request?
[ ]

Support request?
[ x ]

hi @cocolabssas ,
I would like the result of a search to be in descending order, that is to say that the result is from recent articles to older ones.
i found:
src/Cocorico/CoreBundle/Controller/Frontend/ListingSearchController.php
 /* @var ListingSearchRequest $listingSearchRequest /
        $listingSearchRequest = $this->get('cocorico.listing_search_request');
        $isXmlHttpRequest ? $listingSearchRequest->setSortBy('distance') : null;
        $form = $this->createSearchResultForm($listingSearchRequest);

It seems to be sorted by distance
src/Cocorico/CoreBundle/Model/Manager/ListingSearchManager.php
        switch ($listingSearchRequest->getSortBy()) {
            case 'price':
                $queryBuilder->orderBy("l.price", "ASC");
                break;
            case 'distance':
                $queryBuilder->orderBy("distance", "ASC");
                break;
            default:
                $queryBuilder->orderBy("distance", "ASC");
                break;
        }

How I can simply modify the code so that the search result is from the most recent to the oldest as for the list of ads on the home page ?
Thanks

Just change the default option to $queryBuilder->addOrderBy("l.createdAt", "DESC");

hi @SchulzWill ,
which page is it on?
Thanks :)

@gonzasylv , you should put it as the first order by in your query, which will render it before the other ordinators you will use... so, in your ListingSearchManager.php, in the search method you could put the  ->addOrderBy('l.createdAt', 'desc'); before         switch ($listingSearchRequest->getSortBy()) {             case 'price':                 $queryBuilder->orderBy("l.price", "ASC");                 break;             case 'distance':                 $queryBuilder->orderBy("distance", "ASC");                 break;             default:                 $queryBuilder->orderBy("distance", "ASC");                 break;         }

        //Order
        $queryBuilder->addOrderBy('l.createdAt', 'desc');
        switch ($listingSearchRequest->getSortBy()) {
            case 'price':
                $queryBuilder->orderBy("l.price", "ASC");
                break;
            case 'distance':
                $queryBuilder->orderBy("distance", "ASC");
                break;
            default:
                $queryBuilder->orderBy("distance", "ASC");
                break;
        }

The result is the same @SchulzWill :/

Have you seen how the query is being mounted?
The first one is that the order clauses will be inputted together to the database. You can activate your MySql trace to see how the query is being executed there and identify the order used to input your ordenation

hi @SchulzWill ,
How can I enable mysql trace? I am a beginner, if you can detail the steps so that I can solve this problem, that would be nice :)

Hello, @gonzasylv . This depends on your MySQL version. You could try changing your MYSQL config as explained in here: https://stackoverflow.com/a/25080306/3618037


Added .ifFailed(Non)AbsentSendTo to Result

Most commonly absent is simply a value that hasn’t arrive yet. For error handling it’s useful to easily be able to filter out these errors. Also, similarly absent can be filtered out.

I signed it!

@smile616

LGTM


Fixes helm charts jupyterlab container: use release version as image tag

What do these changes do?

Related issue number

Fixes #398

for this container, why we use a user/group with uid=1000?
can it be unified with other containers, like a graphscope user?

@siyuan0322 for this container, why do we use a user/group with uid=1000? can it be unified with other containers, like a graphscope user?

Sure it can be unified. I'll add a commit about that.


set default kudos for entire site

pick the term we want to use
create a glyph for the default kudos

@lkpttn we are using the heart and here is the SVGs
https://dosomething.slack.com/files/piercey/F1EQSUM9P/gray-heart.svg
https://dosomething.slack.com/files/piercey/F1EP7FJHZ/pink-heart.svg

Here's what it looks like in practice:

Icon is 30px wide. Font is the gamma heading, which should be roughly 18px.
12px to the left and bottom edges. The text is normal #4a4a4a.

@deadlybutter mind picking this up next?

@angaither sure

talked w/ the 😎 fenders -- going to
1- use CSS to do this
2- switch the  to a button because that makes more sense


Feature/address and icons

Hello @tneschke! Welcome to the team!
Overall this all looks really good, nice job. I see 2 minor issue that needs to be fixed:
The App Survey link you replaced is actually used in 2 places which is why it was defined as a constant Constants.appSurveyURL. Take a look at AppCordinator.swift to see the other location. I would recommend moving the hard coded URL into the Constants.swift file so that it's fixed in both places.
On the map view, if you zoom out, it seems one of the icons you replaced is massive and takes over the whole screen. I'm seeing this issue on the simulator and on an actual device. Here are some screenshots showing the issue:

@tneschke good call out, I didn't think the issue could be with the asset on Firebase, @diego might have updated it but didn't use a proper size. Nice use of SDImageResizingTransformer(), I didn't know about that feature of SDWebImage.
Everything looks good from what I can see. Are you planning on adding more features before a new build goes on the App Store?
If your done with features go ahead and bump the version, I'm guessing 2.4.1 should work.

@tneschke this is all looking good. Your last comment mentions the "image upload crash". Where in the code did you make changes that fix that? Its not obvious to me?

@tneschke this is all looking good. Your last comment mentions the "image upload crash". Where in the code did you make changes that fix that? Its not obvious to me?

In the image carousel for submitting reports if the image isn't properly loaded (like the 6th image in the simulator), it will crash due to accessing an empty array. So I added "if !images.isEmpty" to ImageSliderViewController.swift


feat: add zip 1.22.1 release

update zip with release 1.22.1

:tada: This PR is included in version 1.154.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


test

Signed-off-by: Arunprasad Rajkumar<EMAIL_ADDRESS>

Codecov Report

Merging #2 (0c17f49) into master (b909781) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #2   +/-   ##
=======================================
  Coverage   96.71%   96.71%
=======================================
  Files          11       11
  Lines         426      426
  Branches       81       81
=======================================
  Hits          412      412
  Misses         14       14

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 b909781...0c17f49. Read the comment docs.


迁移到webpack4：从webpack.optimize.CommonsChunkPlugin到config.optimization.splitChunk

webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead.

会更新，但不定期。PR welcome


Hardcoded project id in Gentropy L2G

The run_predict method in L2G is pulling the GCP Secret for wandb with a hardcoded project id.
We need to take that out so, otherwise anybody who wants to run Gentropy requires permissions for that project.

@javfg Is this an issue to run the step for you or is it just an enhancement?
This is related to https://github.com/orgs/opentargets/projects/23/views/11?pane=issue&itemId=79900897&issue=opentargets|issues|3440

As we discussed, no blocker for now. We will eventually need it when we fix permissions (https://github.com/opentargets/issues/issues/3647), but that requires https://github.com/opentargets/issues/issues/3646 before, so it's fine for now.


3523 hosts pools ScheduledAgentUpdates issue

Description
Current desktop-virtualization/host-pools/main.bicep module has an incomplete agentUpdate object, which causes a 404 error when selecting Scheduled agent updates in the Settings pane for the Azure Virtual Desktop host pool.
Updated main.bicep host pools module adds parameters:

agentUpdateType
agentUpdateMaintenanceWindowHour
agentUpdateMaintenanceWindowDayOfWeek
agentUpdateMaintenanceWindows
agentUpdateMaintenanceWindowTimeZone
agentUpdateuseSessionHostLocalTime

These parameters are used to populate the agentUpdate object, which resolves the 404 error.

Please also include the context.
List any dependencies that are required for this change.

Pipeline references
No pipeline updates required

Pipeline

Type of Change
Please delete options that are not relevant.

[X] Bugfix (non-breaking change which fixes an issue)

Checklist

[X] I'm sure there are no other open Pull Requests for the same update/change
[X] My corresponding pipelines / checks run clean and green without any errors or warnings
[X] My code follows the style guidelines of this project
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation (readme)
[X] I did format my code

@microsoft-github-policy-service agree [company="{lunavi}"]

@microsoft-github-policy-service agree company="lunavi"

Great PR @ThojoUno, just a few thoughts added as comments.

Yes, they pass all pipeline tests, and deploy via the test files. I've been running the new templates in production for several weeks now


Moor Encryption package

We are using your encryption implementation for our database.
The only problem we have is the installation. Right now we need to use a git url that can change at any time. It would be nice to have a package hosted on pub.dev. So we can make sure we are using the correct version. And we don't have to do extra tests fo make sure everything is working when something changes in this git directory
https://github.com/simolus3/moor/tree/master/extras/encryption

If you worry about the repository updating, you can include a specific commit hash to your pubspec.yaml. Then you are in control on when to update the version. In any case, the moor encryption code is a quite simple file.
https://github.com/simolus3/moor/blob/master/extras/encryption/lib/encrypted_moor.dart
encrypted_moor:
   git:
    url: https://github.com/simolus3/moor.git
    path: extras/encryption
    ref: 5cbc331ddaf7a3031d98a905c2e05080d9fbb2c8

Fair point.
Although I think should be available on pub.dev as well.

I'm thinking about changing the encrypted moor package to bind to SQLCipher with dart:ffi.
Still needs a git dependency for now, but you can use it with
dependencies:
  sqlcipher_flutter_libs:
    git:
      url: https://github.com/simolus3/sqlite3.dart.git
      path: sqlcipher_flutter_libs/

You can then use this to encrypt the database
VmDatabase(file, setup: (db) => db.execute("PRAGMA key = 'passphrase'"));

So far I didn't have the chance to fully test sqlcipher_flutter_libs, which is why it's not on pub yet. I hope I can release this soon though.

Alright thanks again for the amazing work.

[!] No podspec found for `sqlcipher_flutter_libs` in `.symlinks/plugins/sqlcipher_flutter_libs/ios`

Why is the podspec called sqlcipher_flutter_libs/ios/sqlite3_flutter_libs.podspec and nog sqlcipher_flutter_libs/ios/sqlcipher_flutter_libs.podspec?

Hmm I completely removed the sqlcipher_flutter_libs package and the PROGMA key = 'passphrase' worked as well. The db is not stored in clear text.
Why should I use the sqlcipher_flutter_libs?

In that case you probably have another package that's bundling SQLCipher along with your app? sqflite_sqlcipher probably.


Update README.md

emitSelf appears to default to true

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

The emitSelf default was changed on libp2p. Going to close this PR


Failed to activate the smart-tab-name package

[Enter steps to reproduce:]

...
...

Atom: 1.27.2 x64
Electron: 1.7.15
OS: Mac OS X 10.13.5
Thrown From: smart-tab-name package 1.0.5
Stack Trace
Failed to activate the smart-tab-name package
At Cannot find module 'atom-simple-logger'

Error: Cannot find module 'atom-simple-logger'
    at Module._resolveFilename (module.js:470:15)
    at Module._resolveFilename (/Applications/Atom.app/Contents/Resources/electron.asar/common/reset-search-paths.js:35:12)
    at Function.get_Module._resolveFilename (/Applications/Atom.app/Contents/Resources/app/src/module-cache.js:354:58)
    at Module.require (/app.asar/static/index.js:40:43)
    at require (/Applications/Atom.app/Contents/Resources/app/src/native-compile-cache.js:66:33)
    at Main.module.exports.Main.activate (/packages/atom-smart-tab-name-master/lib/main.coffee:25:13)
    at Package.activateNow (/Applications/Atom.app/Contents/Resources/app/src/package.js:230:33)
    at measure (/Applications/Atom.app/Contents/Resources/app/src/package.js:206:33)
    at Package.measure (/Applications/Atom.app/Contents/Resources/app/src/package.js:88:25)
    at activationPromise.Promise (/Applications/Atom.app/Contents/Resources/app/src/package.js:200:20)
    at Promise (<anonymous>)
    at Package.activate (/Applications/Atom.app/Contents/Resources/app/src/package.js:198:38)
    at PackageManager.activatePackage (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:695:42)
    at config.transactAsync (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:670:36)
    at Config.transactAsync (/Applications/Atom.app/Contents/Resources/app/src/config.js:866:28)
    at PackageManager.activatePackages (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:668:23)
    at PackageManager.activate (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:647:50)
    at loadStatePromise.loadState.then (/Applications/Atom.app/Contents/Resources/app/src/atom-environment.js:871:27)
    at <anonymous>

Commands

Non-Core Packages
auto-indent 0.5.0
atom-beautify 0.32.5
japanese-menu 1.14.0
file-icons 2.1.21
open-recent 5.0.0
pigments 0.40.2
project-manager 3.3.6
smart-tab-name 1.0.5
autocomplete-paths 2.12.2
emmet 2.4.3
imdone-atom 2.4.29
tool-bar 1.1.7

It seems a package hasn't been installed correctly. Please try to reinstall.


Potential Memory Leak: InfluxDB 2.5

Steps to reproduce:
We are seeing multiple users reporting large spikes in CPU and memory consumption since 2.5.
https://community.influxdata.com/t/cpu-utilization-of-influxdb-is-too-high/27458
https://influxcommunity.slack.com/archives/CH8RV8PK5/p1668601413474019
https://influxcommunity.slack.com/archives/CH8RV8PK5/p1667985792907689
https://community.influxdata.com/t/influxdb2-ram-consumption-inconsistent-over-longer-period/27465
https://github.com/influxdata/influxdb/issues/23930
Expected behavior:
InfluxDB should not be grabbing excessive amounts of CPU and memory on relatively low workloads.
Actual behavior:
InfluxDB performance should remain stable.
Environment info:
Seen on multiple deployments:

AWS EC2 instance of type R5a.8xlarge.
60%  CPU load on my 8 core ryzen 3700. Dashboard

Potentially another issue: https://github.com/influxdata/influxdb/issues/23930


The difference between pred_x0, pred_v, pred_noise three objectives

you'll need to read the following papers
https://arxiv.org/abs/2006.11239 (predict start, predict noise)
https://arxiv.org/abs/2202.00512 (predict v)

https://learnopencv.com/denoising-diffusion-probabilistic-models/#Training-Objective-&-Loss-Function-Used-In-Denoising-Diffusion-Probabilistic-Models


Enable extensions to manage extensions (special privileges required)

User Story
As an extension developer, I want to be able to ask for special privileges to manage extensions so that I can serve an extension marketplace.
Description
Create a way for an extension to request special privileges to manage extensions (install, uninstall, activate, deactivate, etc.). The extension marketplace will use this for managing extensions.

[ ] Add some kind of area in the extension manifest where extensions can list an array of special privileges they need for their extension to work (this can be displayed in the extension marketplace in some way so people know what they're installing)

[ ] For now, just add the ability for extensions to request to manage extensions

[ ] Add into the extension.service.ts some extension-related functions

[ ] Install and uninstall extensions (I guess just throw them into the installed-extensions folder)

[ ] Maybe make a network event for these occurrences like onDidInstallExtension and onDidUninstallExtension or onDidChangeInstalledExtensions or something? Doesn't need to be special privileged; should probably be on papi

[ ] List installed extensions (maybe this can just be a command or something. Doesn't need to be special privileged; should probably be on papi)

[ ] Pass into the extension's activate function some extra stuff for managing extensions if it has that special privilege

Maybe just leave whatever this extra stuff is undefined if the extension doesn't have that special privilege so they can know if they don't have it. But feel free to be creative

Wouldn't it be easier to implement the extension management as part of core and only uplink this to the the Paratext marketplace provider in a Paratext extension?

Wouldn't it be easier to implement the extension management as part of core and only uplink this to the the Paratext marketplace provider in a Paratext extension?

Extension management is a privilege we want to give to extensions so they can do what they want. If someone wants to build a marketplace with some other API, they can :)

If someone wants to build a marketplace with some other API, they can :)
Right, which they could also do, when extension management would be part of core, but only extensions can add a repo / url / api to query extensions from.

If someone else takes Platform and makes their own app, they probably want to control the look/feel of the marketplace, not just the backend service details.

Testing Repos steps:
Updated the test extension with the latest paranext-extension-template.
1.updated the manifest.json with below lines
"extensionDependencies": {},
 "elevatedPrivileges": ["manageExtensions"],

In the main.ts added the to test the methods available on ManageExtensions

const installExtension = async (context: ExecutionActivationContext) => {
  logger.debug(`Here in the install extension command ${JSON.stringify(context)}`);
  context.elevatedPrivileges.manageExtensions?.installExtension(
    'https://github.com/paranext/paratext-bible-extensions/releases/download/v0.0.1/paratext-bible-word-list_0.0.1.zip',
    154738,
    {
      sha512:
        'pLpFYPq67DSflQsJj9WcWWO+jdbJ9ylyW4Vs6gksIdbT9eqI2CE3/kNPrLdSNpp57ga6DGlciISSwliSOiLB3A==',
    },
  );

  return `Extension Installed`;
};

const disableExtension = async (context: ExecutionActivationContext) => {
  context.elevatedPrivileges.manageExtensions?.disableExtension({
    extensionName: 'paratext-bible-word-list',
    extensionVersion: '0.0.1',
  });
  return `Extension Disabled`;
};

const enableExtension = async (context: ExecutionActivationContext) => {
  context.elevatedPrivileges.manageExtensions?.enableExtension({
    extensionName: 'paratext-bible-word-list',
    extensionVersion: '0.0.1',
  });
  return `Extension Enabled`;
};

const allInstExtensions = async (context: ExecutionActivationContext) => {
  const allInstExtensionsList =
    await context.elevatedPrivileges.manageExtensions?.getInstalledExtensions();

  return `${JSON.stringify(allInstExtensionsList)}`;
};

Added commands and updated the UI to have test buttons to invoke individual functions.
I can see the extesnions zip is downloaded and saved under the installed-extensions folder at C:\Repos\paranext-core\dev-appdata\installed-extensions in dev environment.
When extension is disable the zip is moved to disabled-extensions folder at C:\Repos\paranext-core\dev-appdata\disabled-extensions .
When a disabled extension is enabled the zip is moved back to installed-extensions folder

Looks great. Thanks for verifying!


Python code to Check for balanced parentheses in an expression

Have you read the Contributing Guidelines on Pull Requests?
YES
Description
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:

Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.

Checklist

[yes] I've read the contribution guidelines.
[yes ] I've checked the issue list before deciding what to submit.

Related Issues or Pull Requests
Check for balanced parenthesis in Python #722
Fill up the DCP form
If you are a part of DCP 21, fill up this form after the PR is merged.
The links provided in the form will be checked thoroughly, if someone tries fooling around, strict actions will be taken against the individual.

I want to contribute for this problem statement.

@kiruthikvishaal, If you want to contribute to this problem statement, then create a new issue and mention the language in which you would want to contribute.


Tablet not saving full files

Joey from Virginia(East) said that he couldn't see the whole printed data files in the My Files application even though he was resetting the settings (checking "log") before each node. I reset his tablet from Esper and had him print the data again and he was able to see the full file afterwards.

Thanks Mia. Good reminder that resetting tablets is a good fallback and we need the whole file to print.
Here's a link to the steps about manual printing of the node files including pointers about checking and unchecking the "Log" button to get the whole data file to print.
https://docs.google.com/document/d/1ToRG8Xt2DXDCWn5xzeg0c9WELe_7dwSoAudpl0nsLhs/edit?ts=60ccbee3
Hotline techs - are we at a point where we need to be encouraging folks to do regular printing themselves and drop into a folder?
Let's talk about how many devices need manual data logging at the water sensor meeting.

Same issue again with Jared from Pennsylvania - reset his tablet through Esper and it worked.

I started creating an updated manual printing from nodes SOP to share with all tech a few weeks agao.  I can share this week if needed.  @Sarah @.***>
Anna Paulk Birnbaum
Agricultural Specialist
UGA-Department of Crop and Soil Sciences
1420 Experiment Station Rd
Watkinsville, GA 30677
C:<PHONE_NUMBER>

From: Sarah Seehaver @.>
Sent: Friday, July 16, 2021 8:53 AM
To: precision-sustainable-ag/On-farm-Protocols @.>
Cc: Anna Paulk Birnbaum @.>; Assign @.>
Subject: Re: [precision-sustainable-ag/On-farm-Protocols] Tablet not saving full files (#142)
[EXTERNAL SENDER - PROCEED CAUTIOUSLY]
Thanks Mia. Good reminder that resetting tablets is a good fallback and we need the whole file to print.
Here's a link to the steps about manual printing of the node files including pointers about checking and unchecking the "Log" button to get the whole data file to print.
https://docs.google.com/document/d/1ToRG8Xt2DXDCWn5xzeg0c9WELe_7dwSoAudpl0nsLhs/edit?ts=60ccbee3
Hotline techs - are we at a point where we need to be encouraging folks to do regular printing themselves and drop into a folder?
Let's talk about how many devices need manual data logging at the water sensor meeting.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://github.com/precision-sustainable-ag/On-farm-Protocols/issues/142#issuecomment-881425321, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APL6HJ6BKCO2ZC4JR7IP6DTTYATU5ANCNFSM5AOJYU2Q.


Might be an idea to copy the Inverter Test Script down with the Integration ?

Many people may have an issue with getting the test script into a HassOs setup - might be an idea to include that in the repository ?
Craig

Not that bad idea.
At the moment we are actually extracting all the goodwe communication code to standalone library (https://github.com/marcelblijleven/goodwe). Once we finish with that, we may slightly redesign the HomeAssistant related code and include some test scripts there ...

We started work on moving this plugin to become native part of HA and the communication code and auto-discovery was improved in recent days, so this task is getting obsolete/irrelevant, so I'm closing the ticket.


Release Google.Cloud.BigQuery.AnalyticsHub.V1 version 1.3.0

Changes in this release:
New features

Support selective sharing on data clean room Listings (commit 6aa0d67)
Support output fields on DcrExchangeConfig specifying selective sharing behavior on a data clean room (commit 6aa0d67)

Created release for Google.Cloud.BigQuery.AnalyticsHub.V1-1.3.0


[VL] Fall back collect_set, min and max when input is complex type

What changes were proposed in this pull request?
https://github.com/apache/incubator-gluten/issues/4763#issuecomment-2138401401
Caused by: java.lang.RuntimeException: Exception: VeloxUserError
Error Source: USER
Error Code: INVALID_ARGUMENT
Reason: ROW comparison not supported for values that contain nulls
Retriable: False
Expression: !decoded.base()->containsNullAt(indices[index])
Function: checkNestedNulls
File: /var/git/gluten/ep/build-velox/build/velox_ep/velox/functions/lib/CheckNestedNulls.cpp
Line: 34

Now we use Presto Velox impl for these 3 functions, there is behavior mismatch between Presto and Spark for complex types, we should disable them before implementing them separately for Spark in Velox.
How was this patch tested?
UT.

Spark35 failed twice but different errors. and both are related to CSV, cc @jinchengchenghh , thanks.
2024-05-31T07:36:17.3309580Z - change column type from short to int/long
2024-05-31T07:36:17.3335304Z 07:36:17.333 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.3443877Z 07:36:17.344 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.3552623Z 07:36:17.354 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.3663075Z 07:36:17.365 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.3771612Z 07:36:17.376 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.3881802Z 07:36:17.387 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.3991443Z 07:36:17.398 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.4099566Z 07:36:17.409 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.4208063Z 07:36:17.420 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.4317770Z 07:36:17.431 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.4426988Z 07:36:17.442 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.4802653Z 07:36:17.479 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.4847845Z #
2024-05-31T07:36:17.4848564Z # A fatal error has been detected by the Java Runtime Environment:
2024-05-31T07:36:17.4849328Z #
2024-05-31T07:36:17.4849925Z #  SIGSEGV (0xb) at pc=0x00007f2b1f3d88f4, pid=45579, tid=0x00007f2b18ffd700
2024-05-31T07:36:17.4850721Z #
2024-05-31T07:36:17.4851608Z # JRE version: OpenJDK Runtime Environment (8.0_362-b08) (build 1.8.0_362-b08)
2024-05-31T07:36:17.4853188Z # Java VM: OpenJDK 64-Bit Server VM (25.362-b08 mixed mode linux-amd64 compressed oops)
2024-05-31T07:36:17.4854127Z # Problematic frame:
2024-05-31T07:36:17.4855143Z # C  [jnilib-1977168895266751603.tmp+0x14a48f4]  arrow::PoolBuffer::~PoolBuffer()+0x44
2024-05-31T07:36:17.4856029Z #
2024-05-31T07:36:17.4857122Z # Core dump written. Default location: /__w/incubator-gluten/incubator-gluten/gluten-ut/spark35/core or core.45579
2024-05-31T07:36:17.4858365Z #
2024-05-31T07:36:17.4858843Z # An error report file with more information is saved as:
2024-05-31T07:36:17.4859970Z # /__w/incubator-gluten/incubator-gluten/gluten-ut/spark35/hs_err_pid45579.log
2024-05-31T07:36:17.4912553Z 07:36:17.490 WARN org.apache.spark.util.HadoopFSUtils: The directory file:/tmp/spark-de6cf04d-262a-4ae9-8796-b0bdadc19214 was not found. Was it deleted very recently?
2024-05-31T07:36:17.4914354Z - change column type from int to long
2024-05-31T07:36:17.4923626Z [thread<PHONE_NUMBER>70976 also had an error]
2024-05-31T07:36:17.5317153Z #
2024-05-31T07:36:17.5318039Z # If you would like to submit a bug report, please visit:
2024-05-31T07:36:17.5319958Z #   https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%208&component=java-1.8.0-openjdk
2024-05-31T07:36:17.5321395Z # The crash happened outside the Java Virtual Machine in native code.
2024-05-31T07:36:17.5322109Z # See problematic frame for where to report the bug.
2024-05-31T07:36:17.5322546Z #

/__w/incubator-gluten/incubator-gluten/ep/build-velox/build/velox_ep/_build/release/third_party/arrow_ep/src/arrow_ep/java/dataset/src/main/cpp/jni_util.cc:79: Failed to update reservation while freeing bytes: Java Exception: java.lang.IncompatibleClassChangeError

/tmp/jnilib-2388859298697668340.tmp(+0x12183e8)[0x7f989485a3e8]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow4util8ArrowLogD1Ev+0xed)[0x7f989485a56d]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow7dataset3jni31ReservationListenableMemoryPool4FreeEPhll+0x45d)[0x7f9893e5009d]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow10PoolBufferD0Ev+0x47)[0x7f9894ae68f7]
/tmp/jnilib-2388859298697668340.tmp(_ZNSt6vectorISt10shared_ptrIN5arrow6BufferEESaIS3_EED1Ev+0x6b)[0x7f9893f641fb]
/tmp/jnilib-2388859298697668340.tmp(_ZNSt23_Sp_counted_ptr_inplaceIN5arrow9ArrayDataESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv+0xda)[0x7f9894071e0a]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow17SimpleRecordBatchD1Ev+0x116)[0x7f98949903d6]
/tmp/jnilib-2388859298697668340.tmp(_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv+0x48)[0x7f9893e49758]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvRKNS_10FutureImplEEE6FnImplINS_6FutureISt10shared_ptrINS_11RecordBatchEEE20WrapResultOnComplete8CallbackINSC_14ThenOnCompleteIZNS_23DefaultIfEmptyGeneratorISB_EclEvEUt_NSC_17PassthruOnFailureISI_EEEEEEED0Ev+0x2e)[0x7f9893e9a6ae]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x3a4)[0x7f9894873124]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow6FutureISt10shared_ptrINS_11RecordBatchEEE12MarkFinishedENS_6ResultIS3_EE+0xda)[0x7f9893ebac6a]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvRKNS_10FutureImplEEE6FnImplINS_6FutureISt10shared_ptrINS_11RecordBatchEEE20WrapResultOnComplete8CallbackINS_6detail16MarkNextFinishedISC_SC_Lb0ELb0EEEEEE6invokeES4_+0x56)[0x7f9893ebb846]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl21RunOrScheduleCallbackERKSt10shared_ptrINS_10FutureImplEEONS2_14CallbackRecordEb+0x46)[0x7f98948735f6]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow10FutureImpl11AddCallbackENS_8internal6FnOnceIFvRKS0_EEENS_15CallbackOptionsE+0xcb)[0x7f989485eb0b]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvRKNS_10FutureImplEEE6FnImplINS_6FutureISt8functionIFNS8_ISt10shared_ptrINS_11RecordBatchEEEEvEEE20WrapResultOnComplete8CallbackINSG_14ThenOnCompleteIZNS_20FutureFirstGeneratorISC_EclEvEUlRKSF_E_NSG_17PassthruOnFailureISO_EEEEEEE6invokeES4_+0xde)[0x7f9893ebbd8e]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x397)[0x7f9894873117]
/tmp/jnilib-2388859298697668340.tmp(+0x83c23b)[0x7f9893e7e23b]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x397)[0x7f9894873117]
/tmp/jnilib-2388859298697668340.tmp(+0x82d04e)[0x7f9893e6f04e]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x397)[0x7f9894873117]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvRKNS_10FutureImplEEE6FnImplINS_6FutureISt10shared_ptrINS_3csv15StreamingReaderEEE20WrapResultOnComplete8CallbackINS_6detail16MarkNextFinishedISD_SD_Lb0ELb0EEEEEE6invokeES4_+0x164)[0x7f9893e9be34]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x397)[0x7f9894873117]
/tmp/jnilib-2388859298697668340.tmp(+0x119ba3b)[0x7f98947dda3b]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x397)[0x7f9894873117]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow6FutureINS_8internal5EmptyEE12MarkFinishedIS2_vEEvNS_6StatusE+0x94)[0x7f9893ea96e4]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvRKNS_10FutureImplEEE6FnImplINS_6FutureINS0_5EmptyEE21WrapStatusyOnComplete8CallbackINS_6detail16MarkNextFinishedISA_SA_Lb1ELb1EEEEEE6invokeES4_+0x28)[0x7f9893ea9848]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl21RunOrScheduleCallbackERKSt10shared_ptrINS_10FutureImplEEONS2_14CallbackRecordEb+0x46)[0x7f98948735f6]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow10FutureImpl11AddCallbackENS_8internal6FnOnceIFvRKS0_EEENS_15CallbackOptionsE+0xcb)[0x7f989485eb0b]
/tmp/jnilib-2388859298697668340.tmp(_ZNK5arrow6FutureINS_8internal5EmptyEE11AddCallbackINS_6detail16MarkNextFinishedIS3_S3_Lb1ELb1EEENS3_21WrapStatusyOnComplete8CallbackIS7_EEEEvT_NS_15CallbackOptionsE+0x5b)[0x7f98948213bb]
/tmp/jnilib-2388859298697668340.tmp(+0x11c8543)[0x7f989480a543]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x397)[0x7f9894873117]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow6FutureISt10shared_ptrINS_6BufferEEE12MarkFinishedENS_6ResultIS3_EE+0xda)[0x7f98[9422](https://github.com/apache/incubator-gluten/actions/runs/9312670615/job/25635452082?pr=5937#step:11:9423)5c4a]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvRKNS_10FutureImplEEE6FnImplINS_6FutureISt10shared_ptrINS_6BufferEEE20WrapResultOnComplete8CallbackINS_6detail16MarkNextFinishedISC_SC_Lb0ELb0EEEEEE6invokeES4_+0x56)[0x7f989422a706]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl21RunOrScheduleCallbackERKSt10shared_ptrINS_10FutureImplEEONS2_14CallbackRecordEb+0x46)[0x7f98948735f6]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow10FutureImpl11AddCallbackENS_8internal6FnOnceIFvRKS0_EEENS_15CallbackOptionsE+0xcb)[0x7f989485eb0b]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvRKNS_10FutureImplEEE6FnImplINS_6FutureISt10shared_ptrINS_6BufferEEE20WrapResultOnComplete8CallbackINSC_14ThenOnCompleteIZNS_21TransformingGeneratorISB_SB_E26TransformingGeneratorStateclEvEUlRKSB_E_NSC_17PassthruOnFailureISL_EEEEEEE6invokeES4_+0x99)[0x7f989481fe29]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow18ConcreteFutureImpl22DoMarkFinishedOrFailedENS_11FutureStateE+0x397)[0x7f9894873117]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow6FutureISt10shared_ptrINS_6BufferEEE12MarkFinishedENS_6ResultIS3_EE+0xda)[0x7f9894225c4a]
/tmp/jnilib-2388859298697668340.tmp(_ZN5arrow8internal6FnOnceIFvvEE6FnImplIZZNS0_8Executor10DoTransferISt10shared_ptrINS_6BufferEENS_6FutureIS9_EENS_6ResultIS9_EEEENSA_IT_EESF_bENUlRKSD_E0_clESH_EUlvE_E6invokeEv+0x52)[0x7f989422a5e2]
/tmp/jnilib-2388859298697668340.tmp(+0x1210abd)[0x7f9894852abd]
/lib64/libstdc++.so.6(+0xc2b23)[0x7f98c7a89b23]
/lib64/libpthread.so.0(+0x81ca)[0x7f99634bb1ca]
/lib64/libc.so.6(clone+0x43)[0x7f9962cf98d3]

This is because it does not use gluten modified and compile Arrow jar version, after this PR, it will not happen. https://github.com/apache/incubator-gluten/pull/5850

Get it, thanks.


feat: port Analysis.Calculus.Fderiv.Bilinear

Also golf/extend theorems about bounded bilinear maps and rewrite the proof using the fact that the derivative of a bilinear map is a continuous bilinear map.

[ ] depends on: #4239

This PR/issue depends on:

leanprover-community/mathlib4#4239
By Dependent Issues (🤖). Happy coding!

Also golf/extend theorems about bounded bilinear maps

Why are we doing this during porting?

It was easier for me to rewrite the proof than to fix it. Also, why not? My modifications are backwards compatible.

This PR/issue depends on:

leanprover-community/mathlib4#4239
By Dependent Issues (🤖). Happy coding!

bors merge


Adjust tracking record when content is promoted by path

A ftest is added. I also add "enabled" in folo.conf and default to true.

retest this please


What eslint command are you running on the command line tho?
What happens on the CLI is the source of truth; running eslint via webpack or an IDE adds extra complexity that might be causing problems.

I use eslint inside of a webpack build project, I did not create a command line for that.
eslint v6 did a lot of updates, I am 100% sure it is the compatibility issue. I noticed stylish formatter change the path.
With V5+ no problem at all with this importer.

linting needs to run by itself; and it doesn't really make sense to gate the build on linting, that just slows down development.
Your eslint config should be in a normal config file (.eslintrc or similar), and eslint . on the command line should work. If that's not working, we can fix it; if that is working, it's a webpack issue.

@ljharb just for clarify I did something like this: https://www.learnhowtoprogram.com/lessons/building-an-environment-automatic-linting-with-webpack
and I have a normal file .eslintrc.

so can you npx eslint . on the command line, and provide the output in eslint 6?

yes~

i'm also unable to use it with ESLint 6.x, however I'm using Yarn v2 which was quick to point out the culprit. i'm not certain this is the same issue, however I'm aware ESLint 6 had changes in regards to how configs/plugins/presets are resolved that could effect tooling integration in some scenarios. the error:
❯ yarn run eslint --resolve-plugins-relative-to packages/eslint-config-base **/*.js
Error: Failed to load plugin 'import' declared in '.eslintrc.js » @meatwallace/eslint-config-base': A package is trying to access a peer dependency that should be provided by its direct ancestor but isn't

Required package: eslint (via "eslint")
Required by: eslint-plugin-import@virtual:b2aadd09894d447c42a0dd2c8753d05cfe5d28d1061658c683615915339651d595438062190f5e75425de7387500692023505f4e9894090e04acbb56bec3eec3#npm:2.18.0 (via /home/meatwallace/projects/foundations/.yarn/virtual/eslint-plugin-import-virtual-27852718f1ed49c654311437e3a4f21a6d20ad80f107c17f133e85af424c6224/node_modules/eslint-plugin-import/lib/ExportMap.js)

ExportMap.js directly requires eslint, which is only listed in eslint-plugin-imports package manifest's peer and dev dependencies, and not it's actual dependencies. adding eslint as a dependency to my sharable config resolved the issue in my case, but it really should be done upstream in this package. i was going to open a PR, however when I dug in I saw you're testing against ESLint v2-6, so no solution comes to mind without simply dropping support for older versions or increasing complexity in your testing strategy.
@weilinzung - if you haven't, might be worth checking out https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0#-plugins-and-shareable-configs-are-no-longer-affected-by-eslints-location - might be irrelevant, might not.

@meatwallace @ljharb It is because V6 deprecated the plugins option, so any solution for this plugin?

I am not aware at all that that is the case; the plugins option is still very necessary afaik.

@ljharb yes! https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0#-plugins-and-shareable-configs-are-no-longer-affected-by-eslints-location

I certainly hope not - anything a project needs for linting should always have been only installed locally, not globally.

For anyone that might be encountering the error message "Failed to load plugin 'import'" in VS Code while using eslint 6.x, this issue/comment VS Code repo resolved the issue for me:
https://github.com/microsoft/vscode-eslint/issues/696#issuecomment-566949199


"Unsupported Media Type" when calling backend api

When trying API in swagger ui i face this issue.

Is this a problem with the swagger, or backend?
Thanks

Content-Type needs to be set to undefined.

The JsonObject in the body also needs to be uploaded through a file, and the value of the key is the same as the value in the @RequestPart of the API.

like this

Sorry for this, as it could be a legacy code. Although it works, the experience may not be good

like this

I don't think this will work.
'hobby' field should be send as a normal json attribute, not like a file (since it is not a file).
i suggest you fix this and review other apis.

Got, it will fix that

got it, I will fix that as soon as possible

Most solutions are like this, I will try other solutions, try not to transfer json as  file, maybe I need a write a converter for this.


[Feature Request] Add prettier

Closes issue #1386
Description
Added prettier for js files to keep clean formatting throughout the codebase
Screenshots

Checklist

[x] My code adheres to the established style guidelines of the project.
[x] I have included comments in areas that may be difficult to understand.
[x] My changes have not introduced any new warnings.
[x] I have conducted a self-review of my code.

hey its not required currently!


Add Support for ECDSA Signature Validation

We have a use case where a partner would like to use the ECDSA algorithm for validating signatures on data. Add support for this via the existing factory and capabilities in the Go std lilbrary.

FYI @jbonafide623 Indicated during a call 12-June that the format may actually be secp256k1


LUCI recipe links are broken

LUCI recipe links are broken.
For example, https://ci.chromium.org/p/flutter/builders/try/Linux web_integration_tests/2873 points to https://source.chromium.org/search?q=file:recipes%2Fflutter%2Fflutter_drone.py, which shows:

This was fixed by https://github.com/flutter/flutter/issues/69927


Define Test set

It would be super good to define a test set in order to do evaluations on.
The idea was to use ~50 sites from the passiv data - https://huggingface.co/datasets/openclimatefix/uk_pv from 2021
Idealy we should make a csv with
timestamp, id for all these sites.
We could do the whole of 2021, but it might be good to do a random subset, say ~5,000 times for all of those sites

Hey @peterdudfield, I'm keen to keep contributing if you'll have me!
Happy to take some of your guidance as to what will be most useful to do next, I'm particularly interested in this or #6

Yea, for this we might need @zakwatts to give the 50 pv sites he's be working on, but then you could pick the timestamps, randomly throughout the year. Perhaps 5000 different ones for each pv site, to keep it spread out.
Ill write on #6 about that one for you

Cool - I'll do #6 now, and stay updated on this issue to potentially contribute once we have the pv sites

This is in #23


Update generator to really be incremental

Fixes #82

Looks much better! Just left a few notes 🙂
As a follow up in another PR, you might want to also switch the generator to use a pooled indented text writer rather than syntax trees, which is orders of magnitude faster and more efficient in terms of memory use (I've shared some screenshots here). It is the recommended approach to generate code from source generators. I'd recommend reusing my implementation here, which also includes an interpolated string handler to improve performance even more when interpolating output text 🚀

Thanks a lot (and @Youssef1313) for taking some of your time to review this.
I had initially used a basic string builder, but I changed it to use the syntax factory because I thought it would be better to generate code using this than manually, but yeah, I will look at using your writer.


Modifications

lgtm

Thanks for this PR! All of these changes seem sane to me so I'd be happy merging this :)


werwer

Describe what this PR does / why we need it
Does this pull request fix one issue?

Describe how you did it
Describe how to verify it
Special notes for reviews

dfger


Why didn't use the DMA2D?

Why didn't use the DMA2D?
The DMA2D init function has been defined here HAL_DMA2D_MspInit but never used.
And using DMA2  Stream0 to transfer data in tft_flush，but why?

LVGL has built in support for DMA2D, see here.

LVGL has built in support for DMA2D, see here.

wow！excellent！


Read Access Violation caused by Resource Reference mishandling causes crash

Operating system: Windows 10
Game version: 2.12a
CET version: 1.32.0
GPU: GeForce RTX 3060
Description
Quoting psiberx, "when accessing res ref, cet makes a copy but doesn't increment the reference counter
after passing res ref to a function, cet destroys invalid/unaccounted copies and decrements the reference counter
when the counter goes to zero, the resource is freed and all res refs to the same resource are invalidated."
"CET just doesn't have a special lua wrapper to handle res refs right. It uses generic UnknownType wrapper that just copies memory." This leads to a read access violation that crashes the game when attempting to read or write to a resource multiple times, as handles are not properly destroyed.
Reproduction
Calling a method that is passed a ResourceReference multiple times will crash the game.
C++
struct TestClass {
static Red::DynArrayRed::CName Test(Red::ResourceReferenceRed::anim::Rig& aResRef)
{
Red::HandleRed::anim::Rig rigHandle = aResRef.Get();
return rigHandle->boneNames;
}
}
RTTI_DEFINE_CLASS(TestClass, {
RTTI_METHOD(Test);
});
Lua
registerForEvent("onUpdate", function()
player = Game.GetPlayer()
deformations = ComponentParser.getComponent(player, 'deformations') --returns component by name from player ent
boneNames = TestClass.Test(deformations.rig)
end)

Can confirm this here. The game crashes here and then with activated CET because of a Memory Access Violation.

Same issue here, though the exception the game spits back out isn't clear that CET is the culprit. I can reliably reproduce it when entering Little China by vehicle, on foot, and fast traveling there. After removing CET per the wiki instructions, no more crashing. I plan to narrow this down by reinstalling CET, then bringing back my mods one by one. I'll report back soon.
I've attached some anonymized logs from my system.
stacktrace.txt
report.txt
metadata.9.json
Cyberpunk2077.exe-20240717-235255-10540-10408.txt
sysinfo.json


snap command not working very well - snapping beyond what's on screen

hi
snap command not working very well
the image is cropped, not capturing the entire table
https://en.wikipedia.org/wiki/COVID-19_pandemic_death_rates_by_country
click //*[@id="mw-content-text"]/div[1]/table[2]/thead/tr/th[4]
snap //*[@id="mw-content-text"]/div[1]/table[2] to covid19.png

Oh Marcelo, this is the expected behaviour. In this case, you are trying to capture an entire snapshot of the whole table. But the whole table actually is not rendered and shown in Chrome browser because it overflows. Let me see what is the best way for this scenario.

I think we have a possible solution here. Are you able to run TagUI in headless mode for your use case?
If yes, change your config in tagui\src\tagui_config.txt and increase the height to a level you want.
Make it so long such that in headless mode the browser is super long. In normal mode it is limited by screen size.
When I run the same workflow with -headless or -h option and height 7680, I get below output file. Now more can be captured, but 7680 is still not enough. You'll probably choose some super large number that is more than enough for your scenario.

Also, adding on, in headless mode you can do a snap page to webpage.pdf to capture page to PDF
(using an inherent Chrome function that works only in headless mode)

hi Ken
sorry for the delay in the response
running headless and changing the height to 10622 it worked saving the png
thanks

No probs Marcelo, thanks for replying back!


dead link

theres a dead link in the create "Create development environment. You can find how to do that here" step, to url
https://bepinex.github.io/bepinex_docs/master/articles/dev_guide/plugin_tutorial/index.html#sidetoggle

this is the new page
https://docs.bepinex.dev/master/articles/dev_guide/plugin_tutorial/index.html#sidetoggle


DFFX

Type of issue
Typo
Description
[Tapez vos commentaires ici]
Page URL
https://learn.microsoft.com/fr-fr/dotnet/csharp/language-reference/keywords/using
Content source URL
https://github.com/dotnet/docs/blob/main/docs/csharp/language-reference/keywords/using.md
Document Version Independent Id
2ba9241c-0836-d05e-5ba1-ebc5498d2009
Article author
@BillWagner
Metadata

ID: a731ad7b-0655-4bb3-2478-0cbb4d063f02
Service: dotnet-csharp
Sub-service: lang-reference

closing as this was likely opened by mistake.


Overriding client cert with TSHttpOverridableConfig API has no effect

I am developing a plugin for 7.1.0. I'm trying to use the TSHttpOverridableConfig methods to override proxy.config.ssl.client.cert.filename/path configuration for certain transactions but the API has no effect. This seems to be because SSL context initialization function is using the configured path instead of the overridden one. I created the following patch to work around this:
--- ./iocore/net/P_SSLClientUtils.h 2018-02-09 17:09:37.000000000 0000
+++ ./iocore/net/P_SSLClientUtils.h 2018-02-09 17:27:57.000000000 0000
@@ -36,6 +36,7 @@

 // Create and initialize a SSL client context.
 SSL_CTX *SSLInitClientContext(const struct SSLConfigParams *param);
+SSL_CTX *SSLInitClientContextWithCert(const struct SSLConfigParams *param, char *certFilePath);

 int verify_callback(int preverify_ok, X509_STORE_CTX *ctx);

--- ./iocore/net/SSLClientUtils.cc  2018-02-09 17:09:37.000000000 0000
+++ ./iocore/net/SSLClientUtils.cc  2018-02-09 17:27:57.000000000 0000
@@ -94,10 +94,20 @@
 SSL_CTX *
 SSLInitClientContext(const SSLConfigParams *params)
 {
+    return SSLInitClientContextWithCert(params, nullptr);
+}
+
+SSL_CTX *
+SSLInitClientContextWithCert(const SSLConfigParams *params, char *certFilePath)
+{
   ink_ssl_method_t meth = nullptr;
   SSL_CTX *client_ctx   = nullptr;
   char *clientKeyPtr    = nullptr;

+  if (certFilePath == nullptr) {
+      certFilePath = params->clientCertPath;
+  }
+
   // Note that we do not call RAND_seed() explicitly here, we depend on OpenSSL
   // to do the seeding of the PRNG for us. This is the case for all platforms that
   // has /dev/urandom for example.
@@ -126,12 +136,12 @@
   // assume it is contained in the client certificate file.
   clientKeyPtr = params->clientKeyPath;
   if (clientKeyPtr == nullptr) {
-    clientKeyPtr = params->clientCertPath;
+    clientKeyPtr = certFilePath;
   }

-  if (params->clientCertPath != nullptr && params->clientCertPath[0] != '\0') {
-    if (!SSL_CTX_use_certificate_chain_file(client_ctx, params->clientCertPath)) {
-      SSLError("failed to load client certificate from %s", params->clientCertPath);
+  if (certFilePath != nullptr && certFilePath[0] != '\0') {
+    if (!SSL_CTX_use_certificate_chain_file(client_ctx, certFilePath)) {
+      SSLError("failed to load client certificate from %s", certFilePath);
       goto fail;
     }

@@ -141,7 +151,7 @@
     }

     if (!SSL_CTX_check_private_key(client_ctx)) {
-      SSLError("client private key (%s) does not match the certificate public key (%s)", clientKeyPtr, params->clientCertPath);
+      SSLError("client private key (%s) does not match the certificate public key (%s)", clientKeyPtr, certFilePath);
       goto fail;
     }
   }
--- ./iocore/net/SSLConfig.cc 2018-02-09 17:09:37.000000000 0000
+++ ./iocore/net/SSLConfig.cc 2018-02-09 17:27:57.000000000 0000
@@ -399,7 +399,7 @@
 SSLConfigParams::getNewCTX(char *client_cert) const
 {
   SSL_CTX *nclient_ctx = nullptr;
-  nclient_ctx          = SSLInitClientContext(this);
+  nclient_ctx          = SSLInitClientContextWithCert(this, client_cert);
   if (!nclient_ctx) {
     SSLError("Can't initialize the SSL client, HTTPS in remap rules will not function");
     return nullptr;

The way the overridable client cert path work is that it pulls the context from a map maintained internally. i.e., if you set the client cert path via a remap plugin, that should be used while making the actual connection with the origin server. The client cert path is more like a server property rather than a transaction specific config from ATS's point of view.
You might want to look at apache/trafficserver to understand how it works in 7.
Note: From 8.0 you can set the client cert using ssl_servername.config.
|
|
|
|  |  |
|
|
|
|  |
apache/trafficserver
trafficserver - Mirror of Apache Traffic Server
|
|
|
Syeda Persia Aziz
Software DeveloperYahoo! Inc.Champaign, Illinois
On Friday, February 9, 2018, 1:24:21 PM CST, camr2<EMAIL_ADDRESS>wrote:

I am developing a plugin for 7.1.0. I'm trying to use the TSHttpOverridableConfig methods to override proxy.config.ssl.client.cert.filename/path configuration for certain transactions but the API has no effect. This seems to be because SSL context initialization function is using the configured path instead of the overridden one. I created the following patch to work around this:
--- ./iocore/net/P_SSLClientUtils.h 2018-02-09 17:09:37.000000000 0000
+++ ./iocore/net/P_SSLClientUtils.h 2018-02-09 17:27:57.000000000 0000
@@ -36,6 +36,7 @@
// Create and initialize a SSL client context.
SSL_CTX *SSLInitClientContext(const struct SSLConfigParams *param);
+SSL_CTX *SSLInitClientContextWithCert(const struct SSLConfigParams *param, char *certFilePath);
int verify_callback(int preverify_ok, X509_STORE_CTX *ctx);
--- ./iocore/net/SSLClientUtils.cc  2018-02-09 17:09:37.000000000 0000
+++ ./iocore/net/SSLClientUtils.cc  2018-02-09 17:27:57.000000000 0000
@@ -94,10 +94,20 @@
SSL_CTX *
SSLInitClientContext(const SSLConfigParams *params)
{

return SSLInitClientContextWithCert(params, nullptr);
+}

+SSL_CTX *
+SSLInitClientContextWithCert(const SSLConfigParams *params, char *certFilePath)
+{
ink_ssl_method_t meth = nullptr;
SSL_CTX *client_ctx   = nullptr;
char *clientKeyPtr    = nullptr;

if (certFilePath == nullptr) {

 certFilePath = params->clientCertPath;

}
// Note that we do not call RAND_seed() explicitly here, we depend on OpenSSL
// to do the seeding of the PRNG for us. This is the case for all platforms that
// has /dev/urandom for example.
@@ -126,12 +136,12 @@
// assume it is contained in the client certificate file.
clientKeyPtr = params->clientKeyPath;
if (clientKeyPtr == nullptr) {

clientKeyPtr = params->clientCertPath;

clientKeyPtr = certFilePath;
}

if (params->clientCertPath != nullptr && params->clientCertPath[0] != '\0') {
if (!SSL_CTX_use_certificate_chain_file(client_ctx, params->clientCertPath)) {

 SSLError("failed to load client certificate from %s", params->clientCertPath);

if (certFilePath != nullptr && certFilePath[0] != '\0') {
if (!SSL_CTX_use_certificate_chain_file(client_ctx, certFilePath)) {

 SSLError("failed to load client certificate from %s", certFilePath);
 goto fail;

}

@@ -141,7 +151,7 @@
}
 if (!SSL_CTX_check_private_key(client_ctx)) {

 SSLError("client private key (%s) does not match the certificate public key (%s)", clientKeyPtr, params->clientCertPath);

 SSLError("client private key (%s) does not match the certificate public key (%s)", clientKeyPtr, certFilePath);
 goto fail;

}
}
--- ./iocore/net/SSLConfig.cc 2018-02-09 17:09:37.000000000 0000
+++ ./iocore/net/SSLConfig.cc 2018-02-09 17:27:57.000000000 0000
@@ -399,7 +399,7 @@
SSLConfigParams::getNewCTX(char *client_cert) const
{
SSL_CTX *nclient_ctx = nullptr;

nclient_ctx          = SSLInitClientContext(this);

nclient_ctx          = SSLInitClientContextWithCert(this, client_cert);
if (!nclient_ctx) {
SSLError("Can't initialize the SSL client, HTTPS in remap rules will not function");
return nullptr;

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thank you for the response. Are you saying that the TSHttpOverridableConfig API won't work in 7 to set the client cert path per transaction? I tried creating a remap pugin and calling the same API but got the same result. The cert from records.config is not overridden.

Can you please paste the API and the TSOverridableConfigKey you are using to override the client cert. I see that the code for overriding the config is present in ATS. So the API should work. I wonder if something is wrong with the overridableconfigkey.

At a minimum, you are using the wrong define, it should be e.g.
TS_CONFIG_SSL_CLIENT_CERT_FILENAME.

If this is still an issue please reopen.


Updated .gitignore

Ignore generates files since they don't belong in git

If we're going to ignore files in the dist directory then we should also remove them before we merge this.

@LukeSheard I was gonna make another PR for that if this one got approved

I like the idea of removing those files, but how will that affect our release process? Publishing to NPM and labeling builds in GIT?

How about adding a prepublish script to packages.json
"scripts": {
    ...
    "prepublish": "npm run build"
  }

This will run automatically when executing npm publish


Blacklist Hue devices

Hi! First off: I am new to homebridge, the freeathome plugin and github. So, please forgive me if this is 100% obvious to everyone else. Secondly: I totally dig what Henry has done and how it massively expands what you can do with your Busch-Jaeger system as a result. Now on to my question: Can I blacklist my (HomeKit compatible) Philips Hue devices and prevent them from showing up twice in the Home app? And if so, how? I am not sure which ID to use and where to find that.

Hi!
Usually, it should work like this:
"Plugins" - Freeathome-Plugin: "Configure" - "Custom Mappings"
{     "<#BEEDF9BE000E>": {         "blacklist": [             "ch0000"         ]     } }
You can find the ID in "Protocol", where you need to look for the device, you want to blacklist and copy it from there.
But actually, it didn't work on this way in my system. I think the general way should be right, but there seems to be some issue.

@Alox-K is correct. You can actually find the serial no and ID in the settings of the accessory in the HomeKit app.

Hey Henry!
I'm sorry - but the blacklisting seems to have a problem. Or maybe I did it wrong.

This is the device, i'd like to blacklist.
I took the serialnumber and model and pasted it to the config-window:

This one and even the native buschjäger-device are still visible in homekit.
I tried to add "#" in front of the serial and tried the "modell" with and without the second number.  Reboot didn't help either. No effect at all.
Any idea?

Your mapping is incorrect. Please try this:
{
  "BEEDF9BE000E": {
    "blacklist": [
      "ch0000"
    ]
  },
  "ABB700CD51F9": {
    "blacklist": [
      "ch0009"
    ]
  }
}

Awesome! This works! Thank you for your help!
The Paragraph       ```
"": {
"blacklist": ["ch0000", "ch0001"],
},
...of your Description Page lebt me think, i need the <>.

Thank you, gents! That has fixed it for me as well.


Stack overflow with to_str and to_enum

The following causes a C stack overflow due to infinite recursion which bypasses the recursion checks that are already in place:
def to_str
    [].to_enum(:each_slice,false).next
end.to_str

I think it's a duplication of #3789

Might be, but it seemed that #3789 relied on Fiber and the backtrace is also different.

to_enum uses Fiber inside.


RuntimeException: SplFileInfo::getSize(): stat failed for /private/var/folders/vb/9hnn_tq12w3bzrhj_2q22bch0000gn/T/laravel-excel-qLWNG77ede9LsMtFknygFds7cimbsidk

Versions

PHP version: PHP 7.3.5 (cli) (built: May  2 2019 12:42:24) ( NTS )
Laravel version:  Lumen 5.6.*
Package version: 3.1.*

Description
BinaryFileResponse::trustXSendfileTypeHeader();
$response = (new CustomerExport($this->repository))->download('test.xlsx', \Maatwebsite\Excel\Excel::XLSX);
return $response;

You have marked a part of the screenshot, but have no further description of what you mean with it. So I'm just guessing what the problem could be. Try to add: return $response->deleteFileAfterSend(false);

Thank you for your reply. My English is not very good. I tracked the code and found that the reason for the bug was that the temporary file had been deleted at the time of return response, so I reported the error. My code is as follows.：

The reason for the error is that the download method of Maatwebsite\Excel.php, line 82 executed the deleteFileAfterSend(true) method, I tried to pass in X-sendFile params, and the temporary file was deleted.

Thank you very much for your reply. I try to add it: return $response-> deleteFileAfterSend(false), The error is gone, thank you very much.


Adding ppc64le support in Travis

Adding support for IBM Power arch (ppc64le) in Travis which is supported natively on Power.

@xerial Hello xerial, This PR is to request support for IBM Power arch (ppc64le) in Travis (that is supported natively on Power).
Can you please take a look when you get a chance?

@xerial Can you please take a look when you get a chance?

@xerial
Looks like jobs are not getting trigged on https://travis-ci.com/github/xerial/snappy-java.
Could you please have a look?

@xerial
Jobs are not getting triggered on https://travis-ci.com/github/xerial/snappy-java.
Could you please check?


Request to rename plugin from iTMS JUnit Report Publisher to iTMS for JIRA

Description

Submitter checklist for changing permissions

Always

[ ] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[ ] Add link to resolved HOSTING issue in description above

For a new permissions file only

[ ] Make sure the file is created in permissions/ directory
[ ] artifactId (pom.xml) is used for name (permissions YAML file).
[ ] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[ ] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[ ] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[ ] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[ ] All newly added users have logged in to Artifactory at least once

Merge permission to GitHub repository

[ ] Check this if newly added person also needs to be given merge permission to the GitHub repo. If needed, it can be done using an IRC bot command. Make sure to check that the $pluginId Developers team has Write permissions or above while granting the access.

Have you already done a release of this plugin? If so, then the new name will cause the plugins to be different from each other and could cause issues if both are installed.

ould cause issu

Yes, the plugin name iTMS JUnit Report Publisher has already released. Please give me some step to rename to iTMS for JIRA.
Thank a lot!

Note that changing artifactId might be disrupting to the current plugin users., because artifactId  is directly converted into a pluginId used by the update manager and other components. Basically changing artifactId means that there is a new plugin created, there is no tooling for changing pluginIds at the moment

Note that changing artifactId might be disrupting to the current plugin users., because artifactId is directly converted into a pluginId used by the update manager and other components. Basically changing artifactId means that there is a new plugin created, there is no tooling for changing pluginIds at the moment

I have a solution for my plugin is I will request to remove the old plugin and then release the new one. Is it make sense?
Thank you!

This still doesn't solve the problem if someone already had you plugin installed. Both plugins will be installed at the same time, which could cause stability issues for users

This still doesn't solve the problem if someone already had you plugin installed. Both plugins will be installed at the same time, which could cause stability issues for users

Don't worry. We guarantee that these is no user use this plugin, also iTMS system at this moment. So please help me to progress that. Thank you. :D

If you have any suggestion, please give it to me.
Thank alot! :)

Do you think its imperative that the repo be renamed as well? (You have a different repo name in the updated file).

Also, we would like to clean-up the old permissions file at the same time, so please add a removal of the current file to this PR.

Do you think its imperative that the repo be renamed as well? (You have a different repo name in the updated file).

I'm not sure about it!
So is it rename, if I only change the line name: "itms-for-jira" in permission file and keep another, even the permission's file name. (Still plugin-itms-junit-report-publisher.yml)
If you not sure about it, we can check it together. Thank for your enthusiasm! :D

Yes, our practice is to rename the GitHub repo as well (pluginId-plugin),. It is a safe change

I am ready to merge it if you are confident that changing artifactId is what you want.

Yes, please help us to merge these change. :D
Thank you so much!

confident

Just reminding you :D