add tags and descriptions to default runtime images

This PR

adds tags and descriptions to all pre-defined runtime images
updates the Makefile to address a parsing error that was triggered by above changes
closes #1022

Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

Looks like the Makefile doesn't handle the JSON file parsing properly
(https://github.com/ptitzler/elyra/blob/a01cd9b723f96ea020e9d81cb7faaa63a9317748/Makefile#L159), causing image validation to fail:
--> etc/config/metadata/runtime-images/tensorflow_py3.json
--> elyra/tensorflow:1.15.2-py3,
Checking elyra/tensorflow:1.15.2-py3, in etc/config/metadata/runtime-images/tensorflow_py3.json for curl...
Image elyra/tensorflow:1.15.2-py3, is not present, pulling...
ERROR: Image elyra/tensorflow:1.15.2-py3, did not meet criteria for command: curl
Checking elyra/tensorflow:1.15.2-py3, in etc/config/metadata/runtime-images/tensorflow_py3.json for python3...
Image elyra/tensorflow:1.15.2-py3, is not present, pulling...
ERROR: Image elyra/tensorflow:1.15.2-py3, did not meet criteria for command: python3
Removing image elyra/tensorflow:1.15.2-py3,...
Error response from daemon: invalid reference format
make: *** [validate-runtime-images] Error 1

Will take a look

I guess we should hold off on this merge until #985 is merged - correct? Or does the schema validation tolerate the additive properties?

I tested using the master branch, which didn't include the PR. Everything appeared to work as expected. Unless I am missing something this PR should be safe to merge.

Looks like the Makefile doesn't handle the JSON file parsing properly
(https://github.com/ptitzler/elyra/blob/a01cd9b723f96ea020e9d81cb7faaa63a9317748/Makefile#L159), causing image validation to fail:
--> etc/config/metadata/runtime-images/tensorflow_py3.json
--> elyra/tensorflow:1.15.2-py3,
Checking elyra/tensorflow:1.15.2-py3, in etc/config/metadata/runtime-images/tensorflow_py3.json for curl...
Image elyra/tensorflow:1.15.2-py3, is not present, pulling...
ERROR: Image elyra/tensorflow:1.15.2-py3, did not meet criteria for command: curl
Checking elyra/tensorflow:1.15.2-py3, in etc/config/metadata/runtime-images/tensorflow_py3.json for python3...
Image elyra/tensorflow:1.15.2-py3, is not present, pulling...
ERROR: Image elyra/tensorflow:1.15.2-py3, did not meet criteria for command: python3
Removing image elyra/tensorflow:1.15.2-py3,...
Error response from daemon: invalid reference format
make: *** [validate-runtime-images] Error 1

Have you changed the image tags? There are some images that don't have curl and/or python3 and that is a blocker for us.

Also, I noticed we are adding an image description and we already had display_name that was used to display the entry to the user. If we are going to make it duplicated, I would at least put them in sync or even remove display_name if that is not required.

or even remove display_name if that is not required.

It is required.  I think some of the descriptions Patrick chose to make different are fine - like using parenthesized values, etc.
What is the reason for making them the same?

Have you changed the image tags? There are some images that don't have curl and/or python3 and that is a blocker for us.

No. The problem is that the existing parsing logic didn't properly extract the image name from the json file, resulting in a trailing comma: elyra/tensorflow:1.15.2-py3,. As a result the image pull of elyra/tensorflow:1.15.2-py3, failed. Our existing error handling didn't detect the issue and therefore raises "bogus" errors.

Also, I noticed we are adding an image description and we already had display_name that was used to display the entry to the user.

The description was there all along but we never specified any values, henceI created the issue.

{
  "display_name": "Tensorflow 2.3.0 with GPU",
  "metadata": {
    "description": "TensorFlow 2.3 (with GPU support)",
    "image_name": "tensorflow/tensorflow:2.3.0-gpu",
    "tags": ["gpu", "tensorflow"]
  },
  "schema_name": "runtime-image"
}

But you are right in that the description is currently nowhere surfaced to the user outside of the editor. Why it isn't I don't know.

I do think having a description is important to convey information that enables the user to make a well-informed decision which image to pick. Granted there is currently no additional information in the descriptions I've added but that doesn't mean my draft proposals cannot be tweaked to do that, if neccessary.

I do think having a description is important to convey information that enables the user to make a well-informed decision which image to pick. Granted there is currently no additional information in the descriptions I've added but that doesn't mean my draft proposals cannot be tweaked to do that, if neccessary.

Agree, which in this case I would expect that the description would provide more info than what is on the display name, but in some cases, we are providing less info.

I can make the descriptions the same if that addresses your concern.


change CLI test entrypoints to be named test.sh with output test.out

Motivation

A papercut-y aspect of autocorrect tests (really, all CLI tests) is all the ceremony that goes into creating a new one: you need a long-ish-ly named shell script, a similarly-named .out file, and so forth.  For autocorrect tests, at least, the shell scripts are practically identical.
I think the intention here was in the right place.  But with nearly 200 CLI tests, and new ones getting very distinct names, the long filenames become somewhat grating.
This PR proposes that all CLI tests should have a driver named simply test.sh, with their accompanying output test.out.  Creating a new autocorrect test should simply be a matter of copying an existing directory, renaming the ruby file, tweaking the shell script, and you're off to the races.  This is not quite perfect (a further refinement might make the ruby file within be simply named test.rb so that there was no particular dependence between the filenames and the test names), but I think it is slightly better than before.
The original motivation was that we might combine the autocorrect tests to be run via a single driver.  I think that is still a possibility, though I was unsure how to get that to work within the context of the update framework of the CLI tests.  Maybe cli_test.bzl would recognize that tests beginning with "autocorrect" would be handled specially?
Test plan

See included automated tests.  I verified that ./bazel query 'deps(//test/cli:cli, 1)' gave the same output at each working step along the way.
The automated changes are not quite perfectly automated: I had to revert changes to test/cli/compiler, because that directory is really a framework for creating new tests, rather than a test directory itself.

Gerald did not finish running on this PR: Opus::CIBot::Services::GitMirror::NotFoundError: sorbet/sorbet does not exist
.
Please ensure to manually select services and notify relevant teams on this PR.
→ View build status
→ Bypass reviews or integration branch

Gerald did not finish running on this PR: Opus::CIBot::Services::GitMirror::NotFoundError: sorbet/sorbet does not exist
.
Please ensure to manually select services and notify relevant teams on this PR.
→ View build status
→ Bypass reviews or integration branch


2.26 release varmat meta-issue

Summary:
This issue is to track what is yet to be done for varmat to go out in 2.26. Edit at will!
I will try to keep it updated with what I know about:

Stanc3 https://github.com/stan-dev/stanc3/pull/755

[ ] Create a list of function signatures in Math that support varmat arguments. Work in progress here
[x] Figure out a language implementation - A version of the compiler that makes a variable a varmat if the name ends in _varmat is available here

[x] Finish the language parts of the design doc. Finished design doc here
[x] scalar read/writes of varmat variables might be slow (it's come up when we talk implementation). Results here

Math

[x] Finish the varmat parts of the design doc. Finished design doc here
[ ] Document varmat at the C++ level, from the perspective of someone coming to Math to write a function. This is higher level than Doxygen and lower level than Stan user docs.
[ ] Update all distributions to work with varmat

[ ] Non-multivariate distributions. Work in progress here and here
[ ] Multivariate distributions. Work in progress here and here

[ ] Write varmat implementations for every function that had custom matvar autodiff, work in progress here
[ ] Write varmat implementations for all the functions used in the constrain functions.

[x] Matrix constrains here
[ ] Upper/lower boundshere

Current Version:
v2.25.0

Writing this list is making me think that the Math implementation of varmat is done in the sense that varmat is a type and exists, and any deficiencies in the varmat implementation can be worked around at the compiler level.
To some extent, the limitation of varmat math is that it doesn't support all functions, and that will also be true in 6 weeks (it's unrealistic to convert everything).
I suspect it will make the compiler implementation simpler if we can do all the constrain functions with varmats, but for everything else it all goes back to the list of what functions are done?
So maybe the big to-do for varmat is something like is available for expressions? If we had a script that says, for every function signature available to the stanc3 compiler, does varmat compile all the possible signatures, then we'd be done? With that list, then the stanc3 compiler would know how to use everything.

Also would such a thing work for OpenCL? Is the assumption "if it compiles, then we can use it" good? It's not necessarily true, and I guess we could accidentally write functions at the Stan Math level that accidentally work but have bugs, so maybe that's no good.

So maybe the big to-do for varmat is something like is available for expressions?

Yeah, I think something similar should be done. Not sure at this moment if it needs to be run on PRs, but yes, something like that where we shorten the list of signatures that don't support it. In the long term this may not be required if we decide that we will go varmat-only.

Also would such a thing work for OpenCL? Is the assumption "if it compiles, then we can use it" good?

Unfortunately no, for OpenCL we also need to remove any signatures for which we know we will never be faster with Opencl, from the list. That will be done using the benchmark @t4c1 is working on.

something like that where we shorten the list of signatures that don't support it.

Yeah I guess this is the same as expressions. We should do the testing in math and make part of the merging be removing it from the unsupported list.

Unfortunately no, for OpenCL we also need to remove any signatures for which we know we will never be faster with Opencl, from the list.

Oh I see. Oh well.

That will be done using the benchmark @t4c1 is working on.

Oh okay. Is OpenCL compiler implementation similar to the varmat plan where we'd just turn on varmats, use them as much as possible, and convert to and from matvar types automatically as needed?

Is OpenCL compiler implementation similar

Yes, it is somewhat similar.
It's working with distributions only (a distribution is simple to support because the return type is a scalar (and thus in the global memory of the CPU, not OpenCL device). For cases where the return type is not a scalar, we are still working it out. We are being very defensive with the Stanc3 implementation where we rather miss a speedup opportunity or two if it means a simpler and less "dangerous" stanc3 implementation.

For cases where the return type is not a scalar, we are still working it out.

Oh okay, that makes sense.
For varmat, do you know of any blockers in the Math library? Like the existing implementation is sort of a proof of concept that what is there now works with all the tricky parts of Stan (IO and interface and whatnot). If Math library development stopped today, we could have a functioning (if limited) varmat release still, right?
So stanc3 is the critical path there, and then there are quality of life things to do in Math that will make everything better.

If Math library development stopped today, we could have a functioning (if limited) varmat release still, right?

Based on working with the preliminary stanc3 version I would say yes. It's now mostly a matter of which functions we support and how we are going to handle stanc3.

To some extent, the limitation of varmat math is that it doesn't support all functions, and that will also be true in 6 weeks (it's unrealistic to convert everything).

Can you clarify the consequences if there is release with mix of supported and non-supported? For example, the good case is that the supported ones just happen to be faster/better, and the bad case is that there will be extra trouble for users until all are supported.

Can you clarify the consequences if there is release with mix of supported and non-supported?

This will be a function of the language implementation. In the original use case we were doing explicit types, in which case as we add more varmat functions the user would have to look up what is supported and update their code.
Now we're proposing something more automatic, where the compiler somehow decides whether to use varmats and matvars. The updated design doc will be up soon so we can talk through this (draft is here: https://github.com/stan-dev/design-docs/pull/29, info at the end).

fma function might be needed too

The only stanc3 signature for fma is real fma(real, real, real) so I am not sure this is needed. The prim and rev implementations in Stan Math also only support scalars.

fma function might be needed too

The only stanc3 signature for fma is real fma(real, real, real) so I am not sure this is needed. The prim and rev implementations in Stan Math also only support scalars.

No it's not needed.

No it's not needed.

Cool, removed it from the checklist then.

Cool, removed it from the checklist then.

@rok-cesnovar Signature lists in!
I have the signatures broken into three groupings, compatible, incompatible, and impossible.
Compatible signatures are the ones that can compile with at least one varmat argument.
Incompatible signatures are the ones that could conceivably compile with at least one varmat argument, but fail to.
Impossible signatures are ones that do not take varmat inputs.
compatible.txt
incompatible.txt
impossible.txt
These are formatted like the output of the stanc dump command.
To make it easier to skim, I also have lists of only the function names. In this case, it's possible for a function to appear in two lists (real mean(vector) is incompatible and real mean(real[]) is impossible so mean appears in two lists).
compatible_names.txt
incompatible_names.txt
impossible_names.txt
Questions are:

Is this a suitable format for the function signatures?
Do you see any obvious problems with the results?

I'll work on cleaning up the script and opening a pull req. in Math so we can automate this in the future (it's currently a kinda messy thing based off Tadej's benchmarks). I'm not gonna worry about having this automation done for this release tho.

@rok-cesnovar Signature lists in!
I have the signatures broken into three groupings, compatible, incompatible, and impossible.
Compatible signatures are the ones that can compile with at least one varmat argument.
Incompatible signatures are the ones that could conceivably compile with at least one varmat argument, but fail to.
Impossible signatures are ones that do not take varmat inputs.
compatible.txt
incompatible.txt
impossible.txt
These are formatted like the output of the stanc dump command.
To make it easier to skim, I also have lists of only the function names. In this case, it's possible for a function to appear in two lists (real mean(vector) is incompatible and real mean(real[]) is impossible so mean appears in two lists).
compatible_names.txt
incompatible_names.txt
impossible_names.txt
Questions are:

Is this a suitable format for the function signatures?
Do you see any obvious problems with the results?

I'll work on cleaning up the script and opening a pull req. in Math so we can automate this in the future (it's currently a kinda messy thing based off Tadej's benchmarks). I'm not gonna worry about having this automation done for this release tho.

Oh yeah just for a head count, it's about 10k compatible signatures, 11k incompatible ones, and 5k impossible.
There are 205 functions in the compatible names list, and 332 in the incompatible names list and 523 if I put those together and look for uniques (so there's only 14 functions in both lists -- assuming I did my bash commands right).

Oh yeah just for a head count, it's about 10k compatible signatures, 11k incompatible ones, and 5k impossible.
There are 205 functions in the compatible names list, and 332 in the incompatible names list and 523 if I put those together and look for uniques (so there's only 14 functions in both lists -- assuming I did my bash commands right).

There could be functions in this list that compile with varmat but have not been tested. These would be things that are just templated very generically, for instance.

There could be functions in this list that compile with varmat but have not been tested. These would be things that are just templated very generically, for instance.

For future reference here are the functions with both compatible and incompatible signatures:
beta_proportion_log
beta_proportion_lpdf
gp_exp_quad_cov
gp_matern52_cov
head
log_mix
multiply_log
ordered_constrain
positive_ordered_constrain
reverse
segment
simplex_constrain
tail
unit_vector_constrain

For future reference here are the functions with both compatible and incompatible signatures:
beta_proportion_log
beta_proportion_lpdf
gp_exp_quad_cov
gp_matern52_cov
head
log_mix
multiply_log
ordered_constrain
positive_ordered_constrain
reverse
segment
simplex_constrain
tail
unit_vector_constrain

I had a closer look at this.
unit_vector_constrain
ordered_constrain
positive_ordered_constrain

are actually compatible with varmat and this test is failing because it's testing signatures that shouldn't be called. These are weird functions because they increment lp values that optionally get passed in (and these have to match the return type of the rest of the arguments -- can't be double if the rest of the arguments are var)

I had a closer look at this.
unit_vector_constrain
ordered_constrain
positive_ordered_constrain

are actually compatible with varmat and this test is failing because it's testing signatures that shouldn't be called. These are weird functions because they increment lp values that optionally get passed in (and these have to match the return type of the rest of the arguments -- can't be double if the rest of the arguments are var)

@rok-cesnovar Here is the fully compatible list of varmat functions:
compatible_names.txt
All these functions, fully support varmat signatures (all vector/matrix arguments that potentially could be written as varmats, support it).

@rok-cesnovar Here is the fully compatible list of varmat functions:
compatible_names.txt
All these functions, fully support varmat signatures (all vector/matrix arguments that potentially could be written as varmats, support it).

I'm gonna close this since it's not a 2.26 thing. Should be easy to find if we need the info out of it.

I'm gonna close this since it's not a 2.26 thing. Should be easy to find if we need the info out of it.


"include" section with relative file path(s) is silently ignored

When using the following in apps/supervisord.conf, which is used by django-supervisor, the referenced include file is silently ignored:
[include]
files = ../supervisord.conf

I guess that this is caused by the config being passed as a string:
    cfg_file = OnDemandStringIO(get_merged_config, **options)
    #  With no arguments, we launch the processes under supervisord.
    if not args:
        return supervisord.main(("-c",cfg_file))

And supervisor appears to silently ignore any non-existent "files" in the "include" section.
Using an absolute path works around this.

Thanks for reaching out. Unfortunately I am no longer actively maintaining this project, so I'm going to move it into archive mode:
https://rfk.id.au/blog/entry/archiving-open-source-projects/


Type times into datepicker

Sliders are not a super great input for this, although good to have.

Resolved in kylecombes/input-moment@6ac4d6efb3412c6268574e8fe94d0a507cf15154


[SPARK-37451][3.1][SQL] Fix cast string type to decimal type if spark.sql.legacy.allowNegativeScaleOfDecimal is enabled

Backport #34811
What changes were proposed in this pull request?
Fix cast string type to decimal type only if spark.sql.legacy.allowNegativeScaleOfDecimal is enabled. For example:
import org.apache.spark.sql.types._
import org.apache.spark.sql.Row

spark.conf.set("spark.sql.legacy.allowNegativeScaleOfDecimal", true)
val data = Seq(Row("7.836725755512218E38"))
val schema = StructType(Array(StructField("a", StringType, false)))
val df =spark.createDataFrame(spark.sparkContext.parallelize(data), schema)
df.select(col("a").cast(DecimalType(37,-17))).show

The result is null since SPARK-32706.
Why are the changes needed?
Fix regression bug.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Unit test.

Test build #146039 has started for PR 34851 at commit d1ecdf5.

Test build #146039 has finished for PR 34851 at commit d1ecdf5.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146039/

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50514/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50514/

Test build #146040 has started for PR 34851 at commit 894cf15.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50515/

Test build #146040 has finished for PR 34851 at commit 894cf15.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146040/


Release 3.1

Time to refresh the 3.x series!

[x] Bump version number
[x] Update ChangeLog
[x] Update devDependencies
[x] Check for performance regression
[x] Tag the repository
[x] Publish to npm
[x] Update web site

What goes into this release? Just some backported updates from the master branch.

The npm package has been published and the web site has been updated. Enjoy the release!


Pass on setup.py command-line args to make

Currently, python setup.py build just runs make under the hood but ignores command-line arguments. For instance, if the compiler is set in the command-line argument, then that compiler should be used. Should be straightforward as calling make argv, once argv has been parsed

Looks like this is much more difficult! Essentially, people have to do export CC = gcc before calling python setup.py install. In any case, all of the compilation is handled in the Makefile, and users should first make and then make install anyway.
Will make some simple attempts to test before closing this issue.

Fixed with 4b4451130698b5aa0f00755ac6b1b9ec5281a454. Compiler can now be specified like so python setup.py install CC=/usr/bin/gcc


Error : Extra argument 'method' in call for request function when setting the method parameter

[X ] I've read, understood, and done my best to follow the *CONTRIBUTING guidelines.

What did you do?
I was trying to call the Alamofire request function as following
import Foundation
import Alamofire
import ObjectMapper

class UserService

public func updateUser(user: User) {
        let params: Parameters = [
            "name" : user.name
        ]

        Alamofire.request(self.getUser("user"),
                          method: .post,                        //ERROR: Extra argument 'method' in call
                          parameters: params,
                          encoding: JSONEncoding.default,
                          headers: self.baseHeader
            )
            .validate()
            .responseJSON(queue: self.queue){ reponse in
              ....
           }
    }

While the almost similar code with just different content in parameters is working for my AuthenticationService.
I even cleaned the project using command + shift + k and rebuild.
I even closed the editor and restarted the application.
What did you expect to happen?
I expected that there be no build errors when building the above code as the similar code with only different parameters are working for my AuthenticationService.
What happened instead?
I got an build error Extra argument 'method' in call for the Alamofire .request even when its clearly documented and code exists for the parameter method
Alamofire Environment
Alamofire version:4.5
Xcode version: 8.3.2
Swift version: 3
Platform(s) running Alamofire: Current only in simulator
macOS version running Xcode: 10.12 (16A323)
Demo Project
See the github repo

Here is the screen shot of error i am receiving in Xcode

I have solved the issue at my end. I was calling incorrect function to the functions request parameter.
XCode just gives incorrect error message for what was a totally different error.

Yes, the Swift compiler is still pretty bad for error messages.

Could you please post your correction ?


No longer able to download playlists

TIDAL-GUI
v. <IP_ADDRESS>
Win10 x64
Unable to download Playlists (even 1 item from a playlist) "GetStream Suc..."
Clicking the star icon shows "open folder failed!" - it seems the folder is not even created.
Single videos, albums, singles etc work fine (video playlists still cause "Err")
Was hoping to look through the logs but can't find a log file for this app.
otherwise great app - thanks

same issue. Some playlist can't download.

Also seeing this on custom made playlists, if I download a track standalone it works, if I add the same track to a custom playlist and then use the playlist link to download it fails.

Confirmed... There's an issue here.


Use kotlin-logging as slf4j-api wrapper (issue 34)

Use kotlin-logging as a slf4j-api wrapper to replace all println in production code.
Use slf4j-simple binding for tests and examples logging.

Codecov Report

Merging #36 into master will decrease coverage by 0.03%.
The diff coverage is 76.92%.

@@             Coverage Diff              @@
##             master      #36      +/-   ##
============================================
- Coverage     28.66%   28.63%   -0.04%
  Complexity      196      196
============================================
  Files            51       51
  Lines          1772     1774       +2
  Branches        299      299
============================================
  Hits            508      508
- Misses         1146     1147       +1
- Partials        118      119       +1

Impacted Files
Coverage Δ
Complexity Δ

...o-actor/src/main/kotlin/actor/proto/EventStream.kt
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...r/src/main/kotlin/actor/proto/OneForOneStrategy.kt
72.22% <100%> (-1.47%)
9 <0> (ø)

...-actor/src/main/kotlin/actor/proto/ActorContext.kt
60.54% <100%> (+0.27%)
62 <1> (ø)
:arrow_down:

...r/src/main/kotlin/actor/proto/AllForOneStrategy.kt
52.38% <80%> (+2.38%)
6 <0> (ø)
:arrow_down:

...n/kotlin/actor/proto/ExponentialBackoffStrategy.kt
84.61% <0%> (-7.7%)
4% <0%> (ø)

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 cf465ec...f75b16e. Read the comment docs.


Remover asserts

Pre-merge checklist

[X] I am very sure this PR could not affect performance.

bors r+


Is there any method to dump build parameters to JSON or YAML file

If there is an API to dump build parameters to JSON/YAML file, will help a lot for next time build job.
Thanks!

yes, the build object has method get_parameters, see api doc

Thanks for the quik reply, I noticed get_parameters method, looks like it will return a list.
if there's  dump method will be great. e.g.  build.dump("params.json")

OR If get_parameters can return dict that can be directly used by job.build will also be great.

No, you have to construct parameters by yourself for next build.
can you describe your requirement ?

Senario like:
Reuse paramters of a known build which contains large number of parameters, e.g. 30 parameters. And only change serveral parameters of it for next builds
The current return value of buid.get_parameters() are not easy for re-construction for next builds.

I have wrote a function to convert parameters to dict and then save a yaml file.


Svelte stores do not get proper typing when autosubscribing ($store)

Describe the bug
When auto-importing a svelte store, subscribing to it in the template using the $store syntax gives a typescript warning and a vite-plugin-svelte warning when used. In browser, the store works fine

Reproduction
https://github.com/Suyashtnt/auto-import-repro
System Info
auto-import-repro on  master via  v18.12.1 via ❄  impure (node-shell-auto-import-repro-0.0.1) took 1m5s
❯ npx envinfo --system --binaries --browsers

  System:
    OS: Linux 6.0 NixOS 22.11 (Raccoon) 22.11 (Raccoon)
    CPU: (16) x64 Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz
    Memory: 24.86 GB / 31.25 GB
    Container: Yes
    Shell: 5.9 - /run/current-system/sw/bin/zsh
  Binaries:
    Node: 18.12.1 - /nix/store/gl1p4kgknkb2bmcwnpdgppfhscmh0x0f-nodejs-18.12.1/bin/node
    npm: 8.19.2 - /nix/store/gl1p4kgknkb2bmcwnpdgppfhscmh0x0f-nodejs-18.12.1/bin/npm
  Browsers:
    Chromium: 107.0.5304.87
    Firefox: 106.0.5

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

This also seems to happen with components from external libraries, runs fine in browser, console has a ton of warnings

@Suyashtnt I fix the IDE (in my case IntellIJ) adding the auto import dts to the tsconfig.json file:
"include": [
		".svelte-kit/ambient.d.ts",
		"./src/auto-imports.d.ts", // <=== adding this entry
		".svelte-kit/types/**/$types.d.ts",
		"./vite.config.ts",
		"./src/**/*.js",
		"./src/**/*.ts",
		"./src/**/*.svelte",
		"./src/**/*.js",
		"./src/**/*.ts",
		"./src/**/*.svelte",
		"./tests/**/*.js",
		"./tests/**/*.ts",
		"./tests/**/*.svelte"
	]

About the warning in vite-plugin-svelte, it is applying transformations before the auto plugin (auto import has enforce: 'post' while svelte plugin has enforce: 'pre'). I just add vite-plugin-inspect as dev dependency to your repro, there is nothing we can do to fix this (check the transformations):

For now, I've made a few workarounds, mainly using https://github.com/glowsquid-launcher/glowsquid-new/blob/develop/src/custom-auto-imports.d.ts for the stores issue. I've also disabled the undefined warnings in svelte and eslint, as it seems I'll get errors if its not autoimported still, but won't get the storm of warns if it is.


FFT fixes

Resolves #231. All tests pass with array_api_strict, thanks @asmeurer! Skips testing irfftn ouput shapes as I was a bit confused but I'll have another look :thinking:

Are the statistics test failures related to this issue? https://github.com/data-apis/array-api-tests/issues/168


Implement 'Filter Pills' ('Basic', 'iOS', etc.) on main screen

Contributes to #83.
The completion of this issue will open the gateway to resolving issue #148

Closed via #156


How to calculate heating power consumption with Hysen thermostat based on time when heating is on

    Sorry for re-opening it thread it this way. But I would like to ask for advise. I am using this integration for HY08WE-4 and it works really grate. However I would like to calculate power consumption based on time when thermostat is heating, I can see entity thermostat which have three measurement - current temperature, target temperature and heating. Heating is showing when the heating is on. However I don't know how to extract this state. I believe it is field 101, but in DB it look weird.

Ideally would it be possible to implement this? I know W consumption of floor heating so I just need to calculate with the time when the it heating.
Thanks in advance.

Originally posted by @karnas99 in https://github.com/make-all/tuya-local/issues/104#issuecomment-1293201193

The "heating" state is coming from the hvac_action attribute of the climate entity.  You would need to make a template sensor that conditionally sets the value to the power consumption of the heater or 0 depending on whether the value of hvac_action is "heating", or "idle" or "off".
If you have access to iot.tuya.com, you could also help to figure out what unknown_101 and the other unknown dps are by following the instructions from https://www.zigbee2mqtt.io/advanced/support-new-devices/03_find_tuya_data_points.html for finding the datapoints in the debugger (start from step 7 if you already have an iot.tuya.com account, and ignore anything that talks about the Zigbee hub and sub devices).

It is possible that one of the unknown attributes gives a better format of the information you want.

Hi,
thanks for reply. I will check some guide how to create sensor in HA.
I have access to the iot tuya. However I don't know in which DP you are interested in. There are common things like power, mode, lock, heat etc. The last 4 are in chinnese.

OK so,
there are following DP's
Power
Set Temperature
Current temp
Mode
Lock
Fault
°C°F
Heat
Ext temperature
Days of holiday
Settemp of holiday
Hightemp_Protect
LowTemp_Protect
Display Exttemp
Temp Calibration
Int Sensor Deadzone
Ext Sensor Deadzone
HighTemp Protection
LowTemp Protection
Max Temperature Limit
Min Temperature Limit
Temperature Sensor
Device State On Power
ProgramMode Type
Chineese 1
Chineese 2
Chineese 3
Chineese 4
There are also many event types - all logs I can find are for EVENT_TYPE_REPORT.
Here is the combination of heat and EVENT_TYPE_REPORT.
Then there is the output from debbug console. Is the Status Code: 200 what you are looking for?
General
Request URL: https://eu.iot.tuya.com/micro-app/cloud/api/v10/device/log/list
Request Method: POST
Status Code: 200
Remote Address: <IP_ADDRESS>:8080
Referrer Policy: strict-origin-when-cross-origin
Response Headers
cache-control: no-store
content-encoding: gzip
content-type: application/json; charset=utf-8
date: Thu, 27 Oct 2022 12:42:49 GMT
server: Tuya-Sec
set-cookie: csrf-token=jUJxZytH-1zw_KQutzmN9WsxXb_q_Il4eyq0; path=/; secure
set-cookie: csrf-token.sig=YjUXGqLAtfim-NIOlPucAIfT9KE; path=/; secure
set-cookie: s-sid=s:9bce6ff8-f515-4a40-ba33-ee616f1a52fc.4CvCOZ/YTnq8DUJuf/Nw3i3YXBBDfO5W0LBm5P2e0Tg; path=/; expires=Thu, 27 Oct 2022 18:42:49 GMT; httponly
set-cookie: fast-sid=4T6yC9DmXNf4koGByDjhaPpFYd-SqebN; path=/; expires=Mon, 31 Oct 2022 12:42:49 GMT; secure; httponly
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-b3-parentspanid: c9b246aa7e6a1110
x-b3-sampled: 1
x-b3-spanid: df3b48bb45f9f735
x-b3-traceid: a4574be9329cde16
x-content-type-options: nosniff
x-envoy-upstream-service-time: 213
x-fast-id: a4574be9329cde16
x-frame-options: *.tuya-inc.com
x-via: 1.1 fr
x-xss-protection: 1; mode=block
:authority: eu.iot.tuya.com
:method: POST
:path: /micro-app/cloud/api/v10/device/log/list
:scheme: https
accept: application/json, text/plain, /
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cache-control: no-cache
content-length: 286
content-type: application/json; charset=UTF-8
cookie: gTyPlatLang=en; notice_preferences=1:; notice_gdpr_prefs=0,1:; _tpmGuid=TY-42a21ac06f1d7346; tz=2; d41d8cd98f00b204e9800998ecf8427e=%5B%5D; region=EU; locale=en; fast-sid=4T6yC9DmXNf4koGByDjhaPpFYd-SqebN; _tpmSid=a7e08c872b724db48a0871a00376aff9f179a596b44689e554854b471509a088; projectCode=p1665744443160j9d8xx; _tpmSeqId=seq_id_4799a58a3f72ab4a; s-sid=s:9bce6ff8-f515-4a40-ba33-ee616f1a52fc.4CvCOZ/YTnq8DUJuf/Nw3i3YXBBDfO5W0LBm5P2e0Tg; 9e1c07d97bdbc7681a6f4ec2d55a8fb9=%5B%22smart_menu_cloud_develop_api_group%22%2C%22smart_menu_developer_platform_home%22%2C%22smart_menu_cloud_develop_api_explorer%22%5D; csrf-token=j46uOHa6-EMhdulosf_QkzWqAU1mdEs04o0E; csrf-token.sig=wOZ08xRi_dV_GRX7AXyeWceOV24
csrf-token: 42rFGsre-r5rE8Tw31aUq19NaDkZzslpHaOM
origin: https://eu.iot.tuya.com
pragma: no-cache
referer: https://eu.iot.tuya.com/cloud/device/detail/?id=p1665744443160j9d8xx&sourceId=eu1574179453335PL27v&sourceType=4&region=EU&deviceKey=deviceLogs&deviceId=78007030483fda4bf77f
sec-ch-ua: "Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
x-requested-with: XMLHttpRequest

These are the ones that will be interesting:

Fault
°C°F
Display Exttemp
Int Sensor Deadzone
Ext Sensor Deadzone
Chinese 1 (Programming - weekday parameter 1)
Chinese 2
Chinese 3
Chinese 4

If the only difference between the Chinese language labels is the number on the end, then the translation is complete, but if they differ in other characters, see if you can copy the text, or if not send a screenshot of the dropdown showing all 4.
These are likely to be write-only, as there are only 5 slots for unknowns based on the data we have from the device.
For each of these, after selecting them in the dropdown, press the Search button.  A new "list" request should show up, the value of interest is in the Request payload, and labelled "code", as per the screenshot at https://www.zigbee2mqtt.io/assets/img/10_dev_tools.5d449195.png

Here you go. There are two types of Chinese with numbering 1 and 2.
Fault
{startRowId: "", pageNo: 1, pageSize: 10, code: "12", type: "EVENT_TYPE_REPORT",…}
code
:
"12"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

°C°F
{startRowId: "", pageNo: 1, pageSize: 10, code: "101", type: "EVENT_TYPE_REPORT",…}
code
:
"101"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

Display Exttemp
code
:
"108"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

Int Sensor Deadzone
code
:
"110"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

Ext Sensor Deadzone
code
:
"111"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

Chineese 1
code
:
"119"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

Chineese 2
code
:
"120"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

Chineese1
code
:
"121"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

Chineese2
code
:
"122"
deviceId
:
"78007030483fda4bf77f"
endTime
:
1666873548302
pageNo
:
1
pageSize
:
10
pageStartRow
:
""
projectCode
:
"p1665744443160j9d8xx"
region
:
"EU"
sourceId
:
"eu1574179453335PL27v"
sourceType
:
"4"
startRowId
:
""
startTime
:
1666355148301
type
:
"EVENT_TYPE_REPORT"

I may have misinterpreted the meaning of this.  I thought it could be used for configuring the temperature that is displayed on the control panel, but maybe it is just reporting which temperature is displayed, and there is internal logic in the device that determines which to display.

There is now such setting in the tuya app.
Btw do you think it would be possible to integrate power consumption directly into integration? I would of course pay a coffee :-D

Sorry, but there is no information returned by the device that could directly be used for power consumption, and doing complex calculations is beyond the scope of this integration.
I suggest using a template sensor to get an instantaneous power reading (I think these still need to be defined in configuration.yaml, and an integration helper (available from the UI) to integrate over time into a kWh reading.
From https://www.home-assistant.io/integrations/template/, I would use something like the below (assuming 2000W when the heater is on - adjust as needed).
template:
  - sensor:
      - name: Hysen Power
        unit_of_measurement: W
        state: >
          {% if state_attr('climate.hysen_thermostat', 'hvac_action') == 'heating' %}
          2000
          {% else %}
          0
          {% endif %}

Thanks for the idea, it is showing something. I will play with it

sorry for offtopic but can you please advise me with the calculation template you send is working well but I am struggling to get kWh.
I am using following:
Power consumption
template:
  - sensor:
      - name: Big Bathroom heating consumption
        unit_of_measurement: W
        state: >
          {% if is_state_attr('climate.big_bathroom_thermostat', 'hvac_action', 'heating') %}
          750
          {% else %}
          0
          {% endif %}

sensor:
  - platform: integration
    source: sensor.big_bathroom_heating_consumption
    name: big_bathroom_energy_spend
    unit_prefix: k

utility_meter:
  big_bathroom_consumption_daily:
    source: sensor.big_bathroom_energy_spend
    cycle: daily

however the consumption is wrong
You can see on the screen that consumption should be around 1kWh while big_bathroom_energy_spend is saying 8kWh.
Could you advise how to correct?

It looks to be off by a factor of 10.  Maybe a bug in the Riemann sum integral integration, as the data coming out of this integration appears correct.


Listen tls on a different port with unique certs

Open a different port in rancher for tls so that fleet can talk to this
internal tls port with ca

https://github.com/rancher/rancher/issues/29327


Need help/suggestion: "bottom-up direction"

Hi,
The component seems to work just fine in normal situations where a list is displayed from top to bottom; However, in my use case, I need to flip the whole thing; Think of a chat, where the first message is at the top, and last is at the bottom (which means the scrollbar needs to stay at the bottom too)
I iterate over my collection normally and planned to use Flexbox to reorder the messages on the screen. Obviously, the VS component isn't aware of that and all sort of weird things happens
One "crazy" solution I though about was to use CSS transform to rotate the whole container 180deg, then each repeated item 180deg as well; That probably would work but then the mouse scroll direction would also be upside down...
I'm still trying to figure out a simple solution but haven't got around anything yet. Maybe someone will have an idea about this?
Thanks

@OClement, I don't see a problem implementing a chat like behaviour: display the chats in the same order as they arrive and keep the scroll position to the bottom. The component's scrollInto(item) api can be used for focusing on the last message. One more thing: make sure the items array is immutable. Any operation you do on this array must produce a new array.

@OClement , please feel free to reopen this issue if my suggestion hasn't worked for you.

Thanks for the suggestion
I'll look into it this week
The array is indeed immutable
O.

Le 14 mai 2017 à 12:37, Rinto Jose<EMAIL_ADDRESS>a écrit :
@OClement , please feel free to reopen this issue if my suggestion hasn't worked for you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Add readme

this is for new readme file . #10
if u want to add some new content in this  , and if u want any type of images in this please let me know
I am beginner in this .
and also ignore previous commits in this , it was my mistake , just see new one (add redme.md).

Hi @Amitkumarkoli , I found your contribution really helpful the documentation is really informative. Keep it up buddy and thank you for your contribution.


Data transfer

I want to make a flight controller with arduino. I'm using arduino mega. I use this library to connect to Qgroundcontrol via usb serial and i can see heart beat and gps position.
But if i want to send more datas like AHRS datas, how do i do it?

It's a long time since I wrote this, but you should also be receiving values for throttle, pitch, yaw and roll!
Did you do the steps described in "Setting up QGroundControl" ?

Thank you for your response! Yes, I have followed the steps described in 'Setting up QGroundControl.' I can successfully receive heartbeat and GPS position data. However, my goal is to send additional data such as AHRS datas and more.
In addition to sending data from Arduino to QGroundControl, I'm interested in receiving data back from QGroundControl to Arduino.
Could you please provide more guidance on how to achieve this or point me to relevant documentation? I appreciate your assistance


Add a guide to build an upgradeable ERC20

One of the basic examples we can add to the documentation site is one to show how to build an upgradeable ERC20 token. It may be interesting to add a section of how you can do it using openzeppelin-eth to avoid writing it from scratch.
We can show further examples of minting some tokens on the initialization, upgrading it to anothe version, transferring tokens, transferring control of it, etc

Isn't this solved already?
See: https://docs.zeppelinos.org/docs/erc20_onboarding.html

@ajsantander no, that guide is on migrating an existing ERC20 token into an upgradeable one. This issue is about creating a new one from scratch, so should be much more simple. Still, we can defer it for later, no need to tackle this issue now.

Is this still something we want to do?

Certainly! Not high prio, but definitely a nice addition to our guides. We could also replace the linking EVM packages guide by this one, to better promote the link between OZ and zOS. Anyway, just a blogpost or forum article is also fine.


Fixed writing to memory fs if webpack-dev-server

Writing to the filesystem is a feature. Currently, we write it to the memory fs as well. What's the reason you don't want to write to the filesystem?
If it's necessary, we can include an option to disable it

@kevlened I don't see any reason to want to write to the fs in the dev mode when all other files are in the memory fs.

I'm no longer writing to the filesystem directly in v3.0.0. If anyone needs to write to the filesystem while the devServer is running, they should include the write-file-webpack-plugin.


Add files via upload

@wung-ms modified based on your comments. Couldn't do anything about the databricks exported file line break issue


_PureOrMixtureData._smiles_to_molecular_weight gives incorrect MW

Describe the bug

Unfortunately this method does not return the MW for a single molecule but instead divides the MW by unit.mole, resulting in a per-mol weight that's scaled by Avogadro's number.
https://github.com/openforcefield/openff-evaluator/blob/c8c476ab6ec1e379049384ce23982e547d699f4b/openff/evaluator/datasets/thermoml/thermoml.py#L857-L859
This is the root cause of #553 -- while _convert_mass_fractions had units changed presumably to accomodate this, _convert_molality did not.

Wow, so it's https://github.com/openforcefield/openff-units/issues/10 again?

Yup, looks like it:
import openmm.unit
from openff.units import unit

offkilo = 1 * unit.kilogram
ommkilo = 1 * openmm.unit.kilogram

offmass = 18 * unit.dalton
ommmass = 18 * openmm.unit.dalton

(offkilo / offmass).m_as(unit.dimensionless)
# [Out]: 3.345633756711735e+25

(ommkilo / ommmass).value_in_unit(openmm.unit.moles)
# [Out]: 55.55555555555555

Working great


Draft for feedback: Introduce displayName field on a property

This is the start of implementing @ekoleda-codaio 's proposal here: https://staging.coda.io/d/Packs-Platform-IA-go-packs_d36WK4zgrYx/7-6-Property-names-keys-and-IDs_sud1e
Open questions:

I know of is how this displayName field should work outside of a sync table's columns. If a canvas formula returns an object whose schema has displayNames, can a formula be written with them, or will CFL continue to need to use the raw key if there is no column?

What input validation do we need? We can't allow anyone to hack CFL with these. See this slack thread.

Any other questions that need discussing?

Looks reasonable to me. Should be nice and simple on the SDK side, I think the more interesting questions will come out of the prototyping on the coda side.
As for validation, you can already name a column like $$[...] and it gets escaped when used in formulas, so shouldn't the same apply to names that arrive via a pack schema?

You might need to bump the semantic version to 1.7.5-prerelease.2 to avoid the mysterious bug that makes the lint job super slow when you bump to this commit hash on the coda side.


Streamline HTTP header/trailer validation and conversion

Motivation:

Related #2096

Modifications:

Move and merge response header conversion process
from HttpResponseSubscriber
to ArmeriaHttpUtil.toNettyHttp1()/ArmeriaHttpUtil.toNettyHttp2()
Move and merge request header conversion process
from HttpRequestSubscriber
to ArmeriaHttpUtil.toNettyHttp1()/ArmeriaHttpUtil.toNettyHttp2()
Add parameters to HttpObjectEncoder.writeHeaders()
HttpHeaders additionalHeaders,HttpHeaders additionalTrailers

Result:

Better HTTP header validation/conversion performance

Hello, here is my draft PR 😄
Once I'm ready for review, I will remove WIP tag. Thank you.

master branch result

Benchmark                                                              Mode  Cnt      Score     Error  Units
HttpResponseHeaderConversionBenchmark.http1HeaderConversionBenchmark  thrpt    5  13332.762 ± 116.813  ops/s
HttpResponseHeaderConversionBenchmark.http2HeaderConversionBenchmark  thrpt    5  14736.343 ± 270.169  ops/s
HttpRequestHeaderConversionBenchmark.http1HeaderConversionBenchmark   thrpt    5  15287.277 ± 436.491  ops/s
HttpRequestHeaderConversionBenchmark.http2HeaderConversionBenchmark   thrpt    5  14750.212 ± 172.706  ops/s

c70af23 branch result

Benchmark                                                              Mode  Cnt      Score     Error  Units
HttpResponseHeaderConversionBenchmark.http1HeaderConversionBenchmark  thrpt    5  15087.681 ± 192.233  ops/s
HttpResponseHeaderConversionBenchmark.http2HeaderConversionBenchmark  thrpt    5  14797.992 ± 156.278  ops/s
HttpRequestHeaderConversionBenchmark.http1HeaderConversionBenchmark   thrpt    5  16260.746 ± 265.471  ops/s
HttpRequestHeaderConversionBenchmark.http2HeaderConversionBenchmark   thrpt    5  14973.532 ± 317.015  ops/s

Are we going to separate the classes in this PR? 😄

Are we going to separate the classes in this PR?

It would be nice we handle this another PR to avoid more conflicts with master branch.
I will update PR this weekends :grinning:
Thank you for your patience, reviewers :bowing_man:

It would be nice we handle this another PR to avoid more conflicts with master branch.

Really sorry about the conflicts. 😆
However, as I left the comment before, I'm afraid of having so many branches in the encoder classes and it's really hard to review.
Those classes are critical components in Armeria because every request and response has to go through them so I think we should fix it before we merge.
We cannot release a new version until we fix that if we merge it. 😄
So could you refactor the classes in this PR, please?
Sorry for the conflicts again, and I will solve the conflicts if it happens again at this time. 😆

It would be nice we handle this another PR to avoid more conflicts with master branch.

Really sorry about the conflicts.
However, as I left the comment before, I'm afraid of having so many branches in the encoder classes and it's really hard to review.
Those classes are critical components in Armeria because every request and response has to go through them so I think we should fix it before we merge.
We cannot release a new version until we fix that if we merge it.
So could you refactor the classes in this PR, please?
Sorry for the conflicts again, and I will solve the conflicts if it happens again at this time.

Thank you for review, and also sorry for misunderstanding your comment.
I understand these classes are core components of Armeria.
So I was worry about too much delays of this PR.
I will refactor these classes as soon as possible :grinning: :grinning: :grinning:

also sorry for misunderstanding your comment.

Sorry for making you get confused. 😆

So I was worry about too much delays of this PR.

You don't have to worry about it. This will improve performance a lot in certain circumstances, but it's not a critical feature we need right now. So we can take our time. 😄 No hurry please. 😆

This is in-progress commit.
I will also split ArmeriaHttpUtil and do more clean up soon :grinning:

Hello, here is update.
'Http1ObjectEncoder', 'Http2ObjectEncoder' , 'ArmeriaHttpUtil.toNettyHttp1()', 'ArmeriaHttpUtil.toNettyHttp2()' are now split.
Please take a look 😄
Thank you in advance.

I'm really sorry about another conflict. :pray:

This has been open for too long and getting more and more conflicts. We obviously do not want @jyblue to have poor experience contributing, so I'd like to merge this after fixing the merge conflict this time. writeHeaders could be split in a follow-up PR.

Yeah, that's a good idea! Thank you @jyblue!

Thank you all reviewers :bowing_man: :pray: :bowing_man:


Possible merge with PlayerRatings package?

I tried your code and it worked well for me. Thank you for sharing!
There is one thing I rather miss and that is a ratings update of all opponents in one go, giving a data frame wit a match history. A bit like the way the PlayerRatings package deals with it.
In fact, as you almost certain know, that paclage has a function for the Glicko algorithm, but it lacks a Glicko-2's. Just a thought, but could there be a possibility of addingyour code to that package?
Best rehards

Glad that you like my code and thanks for your suggestion. I would love to see an implementation of the Glicko-2 algorithm in the PlayerRatings package, but not with this code.
Explanation: My code was written in "one go" and for a single purpose. It is a direct implementation of Glickman's example (see here) and lacks testing, generality (at least partly, e.g. the mentioned data frame with history) and also performance (all rating systems in the PlayerRatings package are implemented in C for instance).
Of course anyone can feel free to use (parts of) my code and start working on an implementation for the Player Ratings package. I feel i am too busy at the moment to consider doing that.
KR
Sebastian

Dear Sebastian,
Thank you very much for your response.  Ofcourse I completely understand your explanation. I think my main concern is the possibility to update the players rating and the ratings of the opponents in one go. Maybe I'll give it a try myself using your code as a start. Thanks again for sharing.
Kind regards,
Jelle

@Schw4rz Is the PlayerRatings source online somewhere? I couldn't find a repository link in its DESCRIPTION file.

Do you mean this? https://github.com/cran/PlayerRatings/tree/master/R
Kind regards,
Jelle

As @rdatasculptor pointed out there is a copy of the source files on GitHub. Also you can always download the Package Source directly from CRAN (which should be the same in this case). You can also find the contact addresses for the authors and maintainers in the DESCRIPTION file.
But it seems like there is no other repository online where you could directly propose changes or make commits. So i guess you would have to contact them directly.
KR
Sebastian


S3 Upload: Only upload files which are differing in payload checksum

Before uploading files to the S3, check whether the payload checksum has actually changed. Right now, the check is done based on the md5 checksum of the whole file - but due to the nature of the ECDSA signing algo, the file checksum always changes with each new file generation.
Therefore, we should only be checking the checksum of the payload part of the generated file. Ideally, we incorporate also the used key (keyname+version) into the checksum, so we would also detect when a key has changed & re-upload based on the key change.
One option is to use a custom header (e.g. cwa-hash) to track the uploaded files checksum, as it was done before switching over to e-tag.

Fixed by https://github.com/corona-warn-app/cwa-server/pull/460


Severe performance problem

Describe the bug
The implementation works 500x slower than Myers algorithm implementation from jgit
To Reproduce
Consider the old file is 1-line, and the new file is 90k different lines. Here is sample program in Kotlin which demonstrates the difference:
import com.github.difflib.DiffUtils
import com.github.difflib.algorithm.myers.MyersDiff
import org.eclipse.jgit.diff.DiffAlgorithm
import java.util.function.BiPredicate

fun main() {
    val old = ArrayList<String>().apply {
        add("abcd")
    }
    val new = ArrayList<String>().apply {
        repeat(90_000) { i ->
            add(i.toString())
        }
    }

    run {
        println("Start difflib Myers")
        val start = System.currentTimeMillis()
        val diff = DiffUtils.diff(old, new, MyersDiff(BiPredicate { ai, bi ->
            ai == bi
        }))
        val end = System.currentTimeMillis()
        println("Finished in ${end - start}ms and resulted ${diff.deltas.size} deltas")
    }

    run {
        class Seq(val data: List<String>) : org.eclipse.jgit.diff.Sequence() {
            override fun size(): Int = data.size
        }

        class SeqCmp : org.eclipse.jgit.diff.SequenceComparator<Seq>() {
            override fun equals(a: Seq, ai: Int, b: Seq, bi: Int): Boolean = a.data[ai] == b.data[bi]
            override fun hash(seq: Seq, ptr: Int): Int = seq.data[ptr].hashCode()
        }

        println("Start jgit Myers")
        val start = System.currentTimeMillis()
        val diff = DiffAlgorithm.getAlgorithm(DiffAlgorithm.SupportedAlgorithm.MYERS)
            .diff(SeqCmp(), Seq(old), Seq(new))
        val end = System.currentTimeMillis()
        println("Finished in ${end - start}ms and resulted ${diff.size} deltas")
    }

}

this program prints (for sure exact numbers will differ on exact computer)
Start difflib Myers
Finished in 46187ms and resulted 1 deltas
Start jgit Myers
Finished in 115ms and resulted 1 deltas

Interesting. Since I maintain this project I introduced no changes to the underlying algorithm itself
except some interface things. I will look into this.

After some digging: java-diff-utils use the original algorithm of Meyers paper while jgit uses an optimized version with linear time and searching from both sides (forward, backward). I think the proper way is to reimplement this algorithm.

Looking into branch introduce-optimized-meayers-al ... you will find an optimized version of meyers which gives at least a 400 percent performance boost.
The thing of the massive performance gain using JGit is that is not using a Meyers type of algorithm but some histogramm version of a diff algorithm.


compiler/emitter: optimize '{{ render .. }}'

Close #903.

@gazerro do you have any benchmark on this? I think we should merge this change only if it improves performances and/or register allocation usage.

@gazerro do you have any benchmark on this?

There are no benchmarks.

I think we should merge this change only if it improves performances and/or register allocation usage.

I agree.


channels: server persisted pending messages

This PR fixes LAND-1670 by persisting messages to the backend and alerting when pending messages are received. This should help issues where people double post because they "lost" their message because they navigated away. This also means your pending messages will appear cross device.
To test, I created a group on a moon with all the channel types joined that from a separate moon and then shut the host down. Then from the second moon I sent messages in all the channel types. In each case you should see the message appear with an indicator that it is pending confirmation from host. Then once you've sent the messages, turn on the host and watch them change to their final state.
PR Checklist

[X] Includes changes to desk files
[X] Describes how you tested the PR locally (test ship vs livenet)
[ ] If a new feature, includes automated tests
[X] Comments added anywhere logic may be confusing without context

putting some more cleanup on this, but I think it's mostly ready to review

@latter-bolden @Fang- @patosullivan I think this is finally ready for review.

Fix resolves the dupes, nice work.


Add parameter that allows to add image to the Rate us pop up

Adding image allows more creative custom pop-ups, which may attract more attention:

Hey,
Thanks for the PR. The contentBuilder should be what is passed to the dialog main widget, as is. It's because it allows developers to be master of their dialog 🙂
Also, I think that contentBuilder is a sufficient feature for advanced customization of the dialog.


Release 1.0.5

1.0.5 (2018-07-27)
Enhancements

[ #101 ] Add more informations to connection contexts shared with Kuzzle   (scottinet)

Codecov Report

Merging #103 into master will increase coverage by 0.12%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #103      +/-   ##
==========================================
+ Coverage   97.78%   97.91%   +0.12%
==========================================
  Files          17       17
  Lines         723      767      +44
==========================================
+ Hits          707      751      +44
  Misses         16       16

Impacted Files
Coverage Δ

var/app/lib/service/Broker.js
100% <0%> (ø)
:arrow_up:

var/app/lib/service/Router.js
94.73% <0%> (ø)
:arrow_up:

var/app/lib/service/ProxyBackendHandler.js
100% <0%> (ø)
:arrow_up:

var/app/lib/core/clientConnection.js
100% <0%> (ø)
:arrow_up:

var/app/lib/store/PendingRequest.js
100% <0%> (ø)
:arrow_up:

var/app/lib/core/Context.js
100% <0%> (ø)
:arrow_up:

var/app/lib/core/KuzzleProxy.js
100% <0%> (ø)
:arrow_up:

var/app/lib/service/HttpFormDataStream.js
100% <0%> (ø)
:arrow_up:

var/app/lib/core/config.js
100% <0%> (ø)
:arrow_up:

var/app/lib/service/protocol/Websocket.js
99.01% <0%> (+0.01%)
:arrow_up:

... and 3 more

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 082d887...fc6e6e3. Read the comment docs.


[@unocss/transformer-variant-group] cannot be with vitepress

UnoCSS version
0.59.0-beta.1
Describe the bug
in .md file
```ts
const unocss = 'vitepress:(unocss)'
```

with @unocss/transformer-variant-group generate 👇
const unocss = 'vitepress:unocss'

should generate 👇
const unocss = 'vitepress:(unocss)'

Reproduction
https://stackblitz.com/edit/vite-rggqvj?file=docs%2F.vitepress%2Fvite.config.ts,docs%2F.vitepress%2Funo.config.ts,docs%2Fexample.md
System Info
System: os: window-11
Binaries: pnpm: 8.15.3
npmPackages: vitepress: 1.0.2 | unocss: 0.59.0-beta.1
Validations

[X] Read the Contributing Guidelines.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Skip local area transformation rules can be used


Failed to load dynamic library 'libopencv_dart.so'

https://github.com/rainyl/opencv_dart/blob/b16eb1bab15cdbee39282431da71d81313d1a431/lib/src/core/base.dart#L46
On Linux error: ArgumentError (Invalid argument(s): Failed to load dynamic library 'libopencv_dart.so'
Unbuntu Ubuntu 24.04 LTS
i have check the libPath here:
final libPath =
Platform.environment["OPENCV_DART_LIB_PATH"] ?? defaultLibPath;
print(File(libPath).absolute.existsSync());

got:
flutter: true
i just put libopencv_dart.so in example folder, and check its existence, the code above

No need to manually copy libopencv_dart.so, add -v to see whether the libs were downloaded correctly, if correct, there should be a linux/flutter/ephemeral/.plugin_symlinks/opencv_dart/linux/libopencv_dart-linux-x64.tar.gz in your project dir and the extracted .so file is there, if not you can delete the libopencv_dart-linux-x64.tar.gz and try again, if your network is unstable, the libopencv_dart-linux-x64.tar.gz may be broken.
I have tested it on WSL 2 with Ubuntu 22.04 and it worked as expected.

Another way is to setup it manually or copy the .so to /linux/flutter/ephemeral/.plugin_symlinks/opencv_dart/linux/
And, if you really can't make work, just set the OPENCV_DART_LIB_PATH env variable to the ABSOLUTE path of libopencv_dart.so (you can download it from releases) and it should work.

the way you said above I tried, and .so exists as the libPath def line, as print out 'true', so i dont know why.
Maybe wsl and real linux is different in building .so?
I will try to build .so in my ubuntu system later

Allright, then please add -v to see whether some errors exists, and .so was built by github action with Ubuntu 22.04 too, maybe some dependencies were not satisfied, I suggest you to use v2.x version if you use Flutter with Native Assets supported, or try to build it yourself.

ArgumentError (Invalid argument(s): Failed to load dynamic library 'libopencv_dart.so': libavcodec.so.58: 无法打开共享对象文件: 没有那个文件或目录)
Maybe libavcodec.so.58 cause it?
I use as README said:
sudo apt-get install build-essential libgtk-3-dev ffmpeg libavcodec-dev cmake \
    ninja-build libavformat-dev libavutil-dev libswscale-dev \
    libgflags-dev python3 libjpeg-dev libpng-dev libtiff-dev python3-pip

and
ldconfig -p
only find libavcodec.so.60, libavcodec.so.0 ,libavcodec.so , is it the reason?

Yes, opencv used by this project was linked with ffmpeg 5.8 on ubuntu 22.04, but it seems newer ubuntu installs ffmpeg 6.0 (libavcodec.so.60), so either downgrade ffmpeg or use opencv_dart 2.x version, or you can build it by yourself.

ok, i will try

I try to build opencv.full by myself, but failed to get .so.
Then I tried directly in opencv source code root folder:
bash.sh:
rm -rf build_dart
mkdir build_dart && cd build_dart
cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_opencv_dart=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j$(nproc)
make install

it success, and I use the .so, it's only 37mb, yours are 60mb, I dont know why.
Then I use the 37mb one to try, still fail.

Funny and finally, I tried this:
add lines in ~/.profile:
export LD_LIBRARY_PATH=/opt/kingsoft/wps-office/office6
export PATH=$LD_LIBRARY_PATH:$PATH

because WPS has this libavcodec.so.58, not like ubuntu is self
then the example runs!!!
success!!!

I try to build opencv.full by myself, but failed to get .so.

I do not use Ubuntu 24.04 so not tested, but theoretically it should works, just install conan and other deps and follow the commands in workflow. But remember to firstly compile opencv.full and then compile opencv_dart, you need to pass -o opencv_dir=<compiled opencv dir includes cmake files> and then use conan to compile opencv_dart

because WPS has this libavcodec.so.58, not like ubuntu is self

Well, it looks like to be the problem of ffmpeg version as I said above, so you can find those .so.58 from ubuntu pkg website and extract them, then it should work.
But the best solution should be compile it with 6.0, I will add a new workflow when having some free time.

I try to build opencv.full by myself, but failed to get .so.

I do not use Ubuntu 24.04 so not tested, but theoretically it should works, just install conan and other deps and follow the commands in workflow. But remember to firstly compile opencv.full and then compile opencv_dart, you need to pass -o opencv_dir=<compiled opencv dir includes cmake files> and then use conan to compile opencv_dart

because WPS has this libavcodec.so.58, not like ubuntu is self

Well, it looks like to be the problem of ffmpeg version as I said above, so you can find those .so.58 from ubuntu pkg website and extract them, then it should work.
But the best solution should be compile it with 6.0, I will add a new workflow when having some free time.

Just as you said, I tried -o opencv_dir, then it compiled successfully, andr everything is ok.
I can not remember what I did before, maybe the network was bad then.

To summarize, fixed as author said, build by yourself, use this command:
https://github.com/rainyl/opencv_dart/blob/b16eb1bab15cdbee39282431da71d81313d1a431/.github/workflows/build_test_release.yaml#L102
use the .so in /home/yancy/Projects/opencv_dart/example/linux/flutter/ephemeral/.plugin_symlinks/opencv_dart

Oh! I find it, if complie failed, write this in ~/.profile:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
export PATH=$LD_LIBRARY_PATH:$PATH

Then conan can compile libavcodec.so.58 and other .so in x86_64-linux-gnu

Great! Thanks for sharing your solutions, which will help others a lot.


[e2e]: go push main config-noldflags slsa3

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/11098721064
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.push.main.config-noldflags.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.push.main.config-noldflags.slsa3.yml
Trigger: push
Branch: main
Date: Mon Sep 30 03:19:36 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/11117983950
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.push.main.config-noldflags.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.push.main.config-noldflags.slsa3.yml
Trigger: push
Branch: main
Date: Tue Oct  1 03:22:26 UTC 2024
Tests are passing now. Closing this issue.


Update README.md

I want to change the Support the page heading in the docs since it was not aligned properly but I am unable to.
Kindly help🙏

Sorry but this PR will be closed, no typo fix accepted...


Inline Loading Component

Inline Loading
A new pattern for loading Create, Read, and Update actions
Detailed description
Throughout the IBM Cloud Platform the existing Loading spinner is being used for small update interactions.
A primary example of this is within the Invite Users flow:

What started as feedback about performance from user's turned into a month long project looking at perceived performance within the platform. One of the major insights that we found was that the loading overlay for small actions seemed unnecessary.
"[It] was really fast, but didn't know why it needed to disable the whole page just to add a user."
However, user's also weren't sure how long the loading would take. In this case it's usually pretty fast, but many of the user's we talked to have been stuck on a loading overlay for over 30 seconds before.
With this new component our goal is to address some of the pain points uncovered.

Remove the overlay so the user can navigate and interact with the page while the action is occurring
Provide feedback so that the user knows when the action succeeds
Adding text to provide context of the action taking place

This is the design that met our requirements and tested best with users.
Individually:

In Context:

Similar to https://github.com/carbon-design-system/carbon-addons-cloud-react/pull/11 this could also live in the carbon-addons-cloud repo, however since this one is a bit more generic, we feel it could be valuable to Carbon as a whole.
Furthermore we are not 100% tied to this design, if you think change could be made please share.
Use
The Inline Loading component has multiple uses! However, we feel it works best when doing any Create, Update, or Delete actions. This could be in a table, after a primary or secondary button click, or even in a modal.
If using React, this is one way you can implement this component.
import React from 'react'
import InlineLoading from 'carbon-components-react' // Import InlineLoading from carbon

class example extends React.Component {
  constructor(props) {
    super(props);

     // Have two states, loading and success. By default both are false
     this.state = {
        loading: false,
        success: false
      }
  }

  submit() {
    // On submit button press set the loading state to true
    this.setState({
      loading: true
     });

    // Send of whichever requests needs to be done
    fetch("/get/data/please").then(() => {
      // On success set loading state to false, and set success state to true
      this.setState({
        loading: false,
        success: true
      });
    }).catch(() => {
      // On error reshow button
      this.setState({
        loading: false,
      });
    });
  }

  render () {
    const { loading, success } = this.state;

    return (
      {loading || success ? // If loading or success show the InlineLoading component
        <InlineLoading state={success ? 'SUCCESS' : 'LOADING'} /> // Check to see if success should be shown or not
      :
        <button onClick={() => this.submit()}>Example</button> // Trigger for to show the InlineLoading
      }
    );
  }
}

*Note The above code is untested written in Github. Use as a guideline more than anything.
The SUCCESS state of the Inline Loading component is active for 1.5 seconds before calling a optional function onSuccess. Use the onSuccess function to refetch new data, close a modal, or reset a form. If no function is specified the SUCCESS state will last indefinitely.
If an error occurs, the Inline Loading component should be hidden and a error notification should be added or error handling within a form should appear.
Text is optional, but encouraged. If you have limited room or find adding text to be unnecessary you can just run through the animations.
If the Inline Loading is being used to submit a form, the form fields should get disabled.
Furthermore the Inline Loading component should never be used to load a page or data.

@loganmccaul we should sync up about adding in design guidelines for this.

The component has been merged. I'm going to close this, and we can start a new issue on the design system website repo for design guidelines


Access Log Parsing - Latency not recorded.

I was patiently hoping that Ops Agent would catch up to the capabilities of the legacy agent, but it has been a couple years now and it is still lagging in basic capabilities.  One of which I find very important: the ability to pass latency into the logs.
One would expect this feature to exist and already be available based on existing documentation, but it does not.  Nor is the documentation clear on why it does not work.
For example:
The current Tomcat documentation states "What is logged" in which it says "The tomcat_access logs contain the following fields in the LogEntry:" and specifies that httpRequest is one of those fields, but looking at the documentation for httpRequest indicates that latency is part of what is recorded and that is simply not the case.
Digging into the source, I see that tomcat_access uses genericAccessLogParser, but the common_logging_processors.go genericAccessLogParser method has no reference to latency:
Regex: `^(?<http_request_remoteIp>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<http_request_requestMethod>\S+)(?: +(?<http_request_requestUrl>[^\"]*?)(?: +(?<http_request_protocol>\S+))?)?" (?<http_request_status>[^ ]*) (?<http_request_responseSize>[^ ]*)(?: "(?<http_request_referer>[^\"]*)" "(?<http_request_userAgent>[^\"]*)")?(?: "(?<gzip_ratio>[^\"]*)"

Previously in the legacy agent, you were able to override the regex.  This is what I had done to get the legacy parser to work:
<source>
  @type tail
  format /^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>(?:[^\"]|\\.)*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>(?:[^\"]|\\.)*)" "(?<agent>(?:[^\"]|\\.)*)" (?<latency>[^ ]*))?$/
  time_format %d/%b/%Y:%H:%M:%S %z
  types code:integer,size:integer
  null_value_pattern '^-$'
  path /var/log/myapp/access_log.%Y-%m-%d.log
  pos_file /var/lib/google-fluentd/pos/myapp.pos
  read_from_head true
  tag apache-access-myapp
</source>

A simple solution would be to allow overriding the regex in the yaml configuration or just optionally append it in a non-breaking way to the url so that the format can be re-written to include latency.   Then tomcat can be configured directly or via Spring Boot to add %Ts latency to the request.

Even the NGINX documentation referenced in the source code documents how latency should be appended to the logs.
Another example of the log format enables tracking different time values between NGINX and an upstream server that may help to diagnose a problem if your website experience slowdowns. You can use the following variables to log the indicated time values:

[$upstream_connect_time](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#var_upstream_connect_time) – The time spent on establishing a connection with an upstream server
[$upstream_header_time](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#var_upstream_header_time) – The time between establishing a connection and receiving the first byte of the response header from the upstream server
[$upstream_response_time](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#var_upstream_response_time) – The time between establishing a connection and receiving the last byte of the response body from the upstream server
[$request_time](https://nginx.org/en/docs/http/ngx_http_log_module.html#var_request_time) – The total time spent processing a request
All time values are measured in seconds with millisecond resolution.

However the nginx.go ops agent implementation does not support this either.

Hi @codeconsole,
Thank you for your feedback. To clarify, this is working as intended, and the documentation doesn't require any particular sub-fields of HttpRequest to be populated. Please let us know what we can do to make the documentation more clear.
In general, third-party integrations in the Ops Agent, such as the Tomcat receivers, are designed to work out-of-the-box with default application configurations. Since latency is not logged by default, it is not included in the regex.
You can still define custom behavior, including custom regexes, by defining a files receiver for the log file followed by parse_regex and modify_fields processors to shape the logs as needed. The code inside genericAccessLogParser can be used as a starting point for this.

Hi @jefferbrecht,
Thanks, I wasn't aware of the parse_regex + modify_fields existence.  I am not sure if that existed when I originally switched from the legacy agent a couple years ago. I was able to get it to work, however, having to use modify_fields seems a bit overkill.  Previously the legacy agent used convention over configuration.   Why not provide something similar?
This is a bit ugly:
    set_http_request:
      type: modify_fields
      fields:
        httpRequest.remoteIp:
          move_from: jsonPayload.http_request_remoteIp
        httpRequest.requestMethod:
          move_from: jsonPayload.http_request_requestMethod
        httpRequest.requestUrl:
          move_from: jsonPayload.http_request_requestUrl
        httpRequest.protocol:
          move_from: jsonPayload.http_request_protocol
        httpRequest.status:
          move_from: jsonPayload.http_request_status
          type: integer
        httpRequest.responseSize:
          move_from: jsonPayload.http_request_responseSize
        httpRequest.referer:
          move_from: jsonPayload.http_request_referer
          omit_if: jsonPayload.http_request_referer = "-"
        httpRequest.userAgent:
          move_from: jsonPayload.http_request_userAgent
        httpRequest.latency:
          move_from: jsonPayload.latency

I suggest at least providing an option that does automatic jsonPayload mapping if any of these httpRequest fields are present.


Error when upload large file

This error appear when I tried to upload large file
local.ERROR: Call to undefined method Illuminate\Support\Facades\Http::put() {"userId":1,"exception":"[object] (Error(code: 0): Call to undefined method Illuminate\\Support\\Facades\\Http::put() at C:\\xampp\\htdocs\\system\\vendor\\justus\\flysystem-onedrive\\src\\OneDriveAdapter.php:206)

Fixed in v2.0.5


My first branch added a new profile

TJ added a new profile

this is new to me

this is a comment from tj


Travis-CI Testing

I've managed to cobble together a working test environment on travis-ci for go-oci8.  It appears that you typically add travis-ci to your go projects; I imagine that the reason it is not included in this one is because it is very irritating to do.  I hope it helps.  If you are interested I can submit a pull request.
You should be able to see the changes at my fork at https://github.com/jonlawlor/go-oci8 & an example build at https://travis-ci.org/jonlawlor/go-oci8/builds/63115619
It seems to fail on TestFooRowid currently, but all other tests pass.  There were some inconsistent results when using go 1.3 as well.  It takes a long time to run, because every build has to download Oracle XE and the instant client.

Cool! Could you please send me your PR?

@mattn Close this?

Now we are using docker.


Selected property in inspector shows blurry text when collapsed then expanded

Tested versions
4.3
System information
Godot v4.1.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1070 (NVIDIA; <IP_ADDRESS>23) - Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (8 Threads)
Issue description
Selecting a property's text field, collapsing the group and then expanding it causes the text to become blurry.

Steps to reproduce
This happens on every node for me. Using the transform is best.

Select a node and expand the transform group.

Select the Size property.

Collapse the transform group while the Size property is selected

Expand the transform group again and the text of the property value is blurry/has a drop shadow artifact.

Minimal reproduction project (MRP)
N/A

possibly the same as https://github.com/godotengine/godot/issues/94986
maybe fixed by https://github.com/godotengine/godot/pull/95028

It looks a bit different, so I'm not sure.


'Run With PowerShell 7' Right-Click Context Menu is Not Available if Default Program Is Not Notepad

Steps to reproduce
When installing PowerShell 7 (MSI Version), the installer allows the following option:
Add 'Run with PowerShell 7' context menu for PowerShell files
Screenshot A:

However, this option is only available if .ps1 files are set to open in Notepad (the default).  If .ps1 files are set to open in Visual Studio Code by default, then this option disappears from the context menu.
Screenshot B ('Run with PowerShell 7' available):

Screenshot C ('Run with PowerShell 7' not available):

Most of the time I want .ps1 files to open in Visual Studio Code and therefore want to keep that as the default program for opening .ps1 files.  However, doing so means I loose the right-click context menu for when I want to run certain .ps1 files directly in PowerShell 7 from their location.  It would be better if it was always possible to right-click a .ps1 file and select 'Run with PowerShell 7', even when another application – such as Visual Studio Code – is the default program for that file type.
For PowerShell 7 (MSI Version), it's possible to work around this to an extent by using the [Right-click > Open with] menu item, selecting the PowerShell 7 pwsh.exe and then use that in conjunction with using $PSScriptRoot as the path in the script.  However, for PowerShell 7 (Microsoft Store Version) it's a bit more complicated.  Not only does the store version not have the 'Run with PowerShell 7' context menu option at all, but using the 'Open with' menu work-a-round is more burdensome as the file path contains the version number in it.  I.E.
C:\Program Files\WindowsApps\Microsoft.PowerShell_<IP_ADDRESS>_x64__8wekyb3d8bbwe\pwsh.exe
This means the file path will keep changing every time PowerShell is updated and will therefore need to be manually set again every time PowerShell is updated.
Expected behavior
As long as PowerShell 7 is installed on the machine, the 'Run with PowerShell 7' context menu should always be available in the right-click menu for PowerShell .ps1 files, regardless of whether another application – such as Visual Studio Code – is the default program for that file type.
The 'Run with PowerShell 7' context menu should also be available to people who are using the Microsoft Store version of PowerShell 7.
Environment data

Name                           Value
----                           -----
PSVersion                      7.1.0
PSEdition                      Core
GitCommitId                    7.1.0
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

I have the same problem.

I have the same problem.

Had the same issue, except that my .ps1 association was already set to Notepad.
Ended up modifying the reg key and now I got it working again. This is tested on the latest Win11 build as of this writing.
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1]

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell]

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\Edit]
"NoSmartScreen"=""

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\Edit\Command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell_ise.exe\" \"%1\""

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\RunPowershell5AsAdmin]
@="Run with Powershell 5 as Admin"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\RunPowershell5AsAdmin\command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" \"-Command\" \"\"& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy RemoteSigned -File \\\"%1\\\"' -Verb RunAs}\""

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\RunPowershell7]
@="Run with Powershell 7 - non admin"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\RunPowershell7\Command]
@="C:\\Program Files\\PowerShell\\7\\pwsh.exe -Command \"$host.UI.RawUI.WindowTitle = 'PowerShell 7 (x64)'; if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'\""

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\RunPowershell7AsAdmin]
@="Run with Powershell 7 as Admin"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\RunPowershell7AsAdmin\Command]
@="\"C:\\Program Files\\PowerShell\\7\\pwsh.exe\" \"-Command\" \"\"& {Start-Process pwsh.exe -ArgumentList '-ExecutionPolicy RemoteSigned -File \\\"%1\\\"' -Verb RunAs}\""

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\Windows.PowerShell.Run]
"MUIVerb"=hex(2):40,00,22,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,\
  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  00,5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,00,70,00,6f,00,77,00,65,00,\
  72,00,73,00,68,00,65,00,6c,00,6c,00,5c,00,76,00,31,00,2e,00,30,00,5c,00,70,\
  00,6f,00,77,00,65,00,72,00,73,00,68,00,65,00,6c,00,6c,00,2e,00,65,00,78,00,\
  65,00,20,00,22,00,2c,00,2d,00,31,00,30,00,38,00,00,00
@="Run with Powershell 5"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\Windows.PowerShell.Run\Command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" \"-Command\" \"if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'\""

Just had this on 7.2.2

@chaoscreater thanks for posting your reg entry! Added it to my system and it works great.
I'll probably write an article about this and reference this post. 😀

Invoke-WebRequest -Uri "https://gist.githubusercontent.com/soredake/9e7b6fc7f04d9d96a2fc798b25d5186f/raw/powershell_context_shell_fix.reg" -OutFile "$env:TEMP/powershell_context_shell_fix.reg"
reg import "$env:TEMP/powershell_context_shell_fix.reg"

Still wanted.

I also encountered this problem and decided to fix it. Beautifully fix it.
First, here's a link to the registry file.
Second, here's a PowerShell script:
# author: eterna1_0blivion

# Get a link to the Registration Entries file
$link = "https://gist.github.com/eterna1-0blivion/a820387cabac44fc6c99a14e12d57609/raw"

# Install them into Registry using PowerShell
Invoke-WebRequest -Uri "$link" -OutFile "$env:TEMP/context_pwsh_fix.reg"
reg import "$env:TEMP/context_pwsh_fix.reg"

# -NoExit
Read-Host -Prompt "Press Enter to exit"
Break

Oh that's just beautiful. Thank you @eterna1-0blivion!!!!!

Solution posted by eterna1_0blivion & soredake works, but in Windows 11 it removes the "Run with Powershell" (5) command entirely from the 1st level of context menu, and you must use "Show More Options" to get to the real context menu and then the new Powershell menu is visible.


Made --after and --before have required arguments

Still works without args
Fixes #778

Sorry, but I'd much rather have --after and --before with with optional args.

I guess i didnt make this clear at all in the pull request. It still works with optional args, the equals sign is just no longer required. It seems that required argument doesn't actually mean that the argument is required
I'm not really sure why it is that way. My guess is that it has something to do with the way the the function looks for arguments to flags. That is, if the argument is optional it looks for something after an equals sign, but if the argument is required it looks for it as the next value in argv unless the next value is another flag.

Ohhhh. Whoops.

i think the gnu standard is to have long options require a = to be set and short options to be whitespace delimited. Why would we want to have whitespace delimited long options?

More convenient to type, easier to read and most important users will expect it to work!

i think the gnu standard is to have long options require a = to be set and short options to be whitespace delimited. Why would we want to have whitespace delimited long options?

No: grep PATTERN --context 3 FILE works. ls --sort time works.
If this PR isn't merged, can the manual at least be updated to not be misleading?
(the zsh completion provided by https://github.com/zsh-users/zsh-completions is also wrong regarding --context, etc.)


Resources and information on TDDFT implementation for solids (PBC)

I was wondering if there are any papers or related resources on how PySCF performs gamma point TDDFT for solids.
It would also be useful if you could let me know about the known limitations/pitfalls/caveats that I should be aware of.
In particular, I am interested in studying the excitation energy shifts of molecules adsorbed on a surface.
Also, how reliable are the optical spectra obtained from a PBC TDDFT calculation compared to using a sizeable molecular representation of a solid after capping the broken bonds?
Also, if I use this feature in a publication then which papers should I be citing regarding the development of this method?

@hebrewsnabla Since you fixed the LR-TDDFT code for solids  (#1320 ) , could you please help me with this? I would really appreciate any guidance or help.

I'm neither the author nor an expert of this module so I cannot give any reliable comment.
But anyone can find that, the references in the beginning of pbc/tdscf/rks.py has no difference from tdscf/rks.py -- that's reasonable, because PBC TD-RKS is almost inherited from molecular TD-RKS. So the reliability of PBS TDDFT depends on the reliability of TDDFT itself and some infrastructure of PBC-DFT (including density fitting, treatment of pbc, etc.). Basically all of them are reliable (this method is also implemented in other LCAO programs, like CP2K, pyNAO, and you can verify PySCF's results with them).
I think PBC gamma-point TDDFT is better than TDDFT for sizeable molecular model with capped bonds, given the same size. But a larger size will be affordable when using sizeable model.
The references mentioned in pbc/tdscf/rks.py, and also J. Chem. Phys. 147, 164119 (2017) for GDF, should be cited.


Details text field does not keep line break when out of focus. Is this wanted behaviour?

Felix added Markdown support to this field - for simple richtext-formatting.
Markdown needs one extra&empty line to insert a line break.
Maybe we should clarify somewhere - at least in the docs. Or with placeholder-hint?

Ah, I see :) I will check how the placeholder-hint looks like.

Added placeholder with commit cc22515ba0ae7a4f495371721cf4c97aebff5eec