Change of spec for assertClose: it needs to take eps as an argument

The client has completely changed the spec for testing up to eps (#64; or rather the management didn't ask him in time and now finds excuses). Now assertClose should be called assertEqualUpToEps, takes the eps as the first argument, should work on many types, just as @?~ did previously, which now should differ only in that it uses the default eps from the IORef. The accepted types should include tuples (up to 10 elements, say) of any types accepted previuously.
@sfindeisen: you have dibs on this as the author of the subsystem, but please feel free to skip the privilege and instead take something harder, e.g., the generic library thing from #64 [edit: started in #66].

Then I have a (stupid) question: why do we want to be able to do those approximate comparisons using hardcoded epsilon values, like here:
  assertEqualUpToEps (1e-10 :: Double)
    (grad foo (1.1, 2.2, 3.3))
    (2.4396285219055063, -1.953374825727421, 0.9654825811012627)

rather than relying on the CLI setting? Why do we want to have a multitude of different, hardcoded epsilon values scattered throughout the code, ignoring the CLI setting? What usecase does this serve?

That's a perfectly legit question. @awf explains that the admissible epsilon depends on the code in question. Just as in the example #64, you may have two different epsilons for two different code snippets. I imagine, exponentiation may blow up any numeric error much more than addition. Also, perhaps some code may be less numerically stable than another, but not catastrophically unstable.
I suppose it's also possible you have a requirement from a client that your results should not deviate from a table of known answers to sample problems more than X. Though that can be handled with a commandline option, but not if there are many clients with different epsilons and you keep it all in one CI.

My concern (in addition to code pollution) is that this way we hardwire the rigidity of the test suite into the code, whereas using the existing CLI option this could easily be adjusted, without code changes and without recompiling.
Perhaps we need something else. An ability to express the epsilon for each check in relation to the CLI epsilon, for example.
Or another idea could be to collect all those resulting differences from all checks, printing a summary at the end, highlighting the biggest one, and failing if it is bigger than the CLI epsilon.
What do you think?
Not sure if I understand the last usecase. First of all, our --eq-epsilon is implemented in main in each of the 3 test suites (MinimalTest, ExtremelyLongTest and ShortTestForCI). Any client would have to re-implement that, or rely on the default value (1e-6). Second, if you have multiple different clients with different epsilon requirements, why can't you just run them separately?

My concern (in addition to code pollution) is that this way we hardwire the rigidity of the test suite into the code, whereas using the existing CLI option this could easily be adjusted, without code changes and without recompiling.

Indeed, if we test an engine change, we may want to temporarity increase or decrease the epsilon across all tests.

Perhaps we need something else. An ability to express the epsilon for each check in relation to the CLI epsilon, for example.

I think it's too fiddly for a user to specify "default eps + 0.01". Perhaps instead a new options --eps-override that overrides any individually specified epsilon with the one from commandline (or the default one, if no commandline is given)?

Or another idea could be to collect all those resulting differences from all checks, printing a summary at the end, highlighting the biggest one, and failing if it is bigger than the CLI epsilon.

Such stats would definitely be useful. I think that's yet another bool option "don't fail tests, but collect and list and summarize the differences vs expected results". This looks like a completely new feature to me. I think it at least makes sense to open a ticket about that.

Not sure if I understand the last usecase. First of all, our --eq-epsilon is implemented in main in each of the 3 test suites (MinimalTest, ExtremelyLongTest and ShortTestForCI). Any client would have to re-implement that, or rely on the default value (1e-6). Second, if you have multiple different clients with different epsilon requirements, why can't you just run them separately?

That's a good point. It should be convenient enough to create a new module/new cabal component such as ShortTestForCI.hs/ shortTestForCI for each client I concurrently do ML data analysis for. What's the best way to set a different default epsilon in the main function of such a test file?

From yet another POV, we are so far experimenting with our APIs. So if the result of the experiment is "assertEqualUpToEps is terrible expensive to maintain", that's valuable and if it's "assertEqualUpToEps is cheap, but after half a year of being advertised in the README nobody ever used it", that's also a good outcome. So I wouldn't worry too much about getting this just right.

I think it's too fiddly for a user to specify "default eps + 0.01".

I was rather thinking of things like: $2.5 * \epsilon$ or $\epsilon^2$ . But before we continue, can we verify if this is really of practical concern? I mean, do we have a real-world example of a numerical computation that would be out of bounds with the default $\epsilon$, but within the bounds of, say, $10 * \epsilon$ and hence OK?

Perhaps instead a new options --eps-override that overrides any individually specified epsilon with the one from commandline (or the default one, if no commandline is given)?

I can already see in my mind's eye those huge codebases, all polluted with fancy epsilons like 0.0000002 or 0.00000003 which nobody longer understands where they came from or whether they still make sense (something could have changed 4 levels down from here) or why are some of them failing, so instead we --eps-override everything with 1e-4 and pretend it's all good.
I don't think hardcoding those epsilons in the code is a good idea.

Such stats would definitely be useful. I think that's yet another bool option "don't fail tests, but collect and list and summarize the differences vs expected results". This looks like a completely new feature to me. I think it at least makes sense to open a ticket about that.

Yes this would be a complete redesign. Not sure if supported by Tasty.

That's a good point. It should be convenient enough to create a new module/new cabal component such as ShortTestForCI.hs/ shortTestForCI for each client I concurrently do ML data analysis for. What's the best way to set a different default epsilon in the main function of such a test file?

The default is set in TestCommonEqEpsilon.hs, then overwritten by the CLI option.

Sure. But how do I easily change that per-cabal-component (or even better, per-file)?

In case that it's not clear: I want to keep code written for each of my 10 clients in a different cabal component of my program that depends on our library. Each client has a different epsilon requirement. I tweak my engine (or perhaps also the local checkout of the library) globally, so each client is affected, so I want CI make sure no epsilon is violated.

@sfindeisen: apologies for editing your comment while I tried to answer to it (I chose Edit instead of Quote replay from the menu). I'm afraid some of the text got lost. Could you recover it?

This may be harder than I thought, because AssertClose needs to work for shaped tensors, see assertEqualUpToEpsS. Unless OS.toList solves the issue completely and GHC doesn't complain about missing OS.Shape constraints. Wait, OS.Array is an instance of Traversable, so perhaps the old AssertClose  code already covers this whole case?

Argggh.  Now I did it - editing the comment rather than replying.  I wonder if GitHub have changed some UI, as I don't recall ever having done that before.  Let me see if I can restore.

Then I have a (stupid) question: why do we want to be able to do those approximate comparisons using hardcoded epsilon values, like here:
  assertEqualUpToEps (1e-10 :: Double)
    (grad foo (1.1, 2.2, 3.3))
    (2.4396285219055063, -1.953374825727421, 0.9654825811012627)

rather than relying on the CLI setting? Why do we want to have a multitude of different, hardcoded epsilon values scattered throughout the code, ignoring the CLI setting? What usecase does this serve?

Because the value of the tolerance is a function of the code of foo and the precision of its arguments (known to be IEEE double here).  It's not a question of what the command-line user believes, it's a question of how the computation is expected to propagate imprecision.   To compute the "correct" tolerance requires (in decreasing order of accuracy)

Detailed analysis of the calculations performed by (grad foo), using propagation rules such as those in WECSSKAFPA.  This is of course hard, particularly as the code is machine-generated, and we may wish to allow ourselves the freedom to change the generated sequence of operations.
"Rule of thumb" analyses (e.g. "input x is squared and then subtracted from something - I probably need to think of setting tol to about sqrt(eps).
"Search": increase tol until it the test passes.  This can be fine if you somehow believe the calculation was correct when you did the initial search, and it will then catch regressions.
"Command-line": store the correct tolerance somewhere else in the project, e.g. in a makefile or CI script.  This is not my favourite, as it moves the tolerance far from the code that defines it.

I'm sure you accept that the "golden" target values in the third line need to be hard coded, I argue that tolerance is no different.
A related discussion is at https://www.fitzgibbon.ie/floating-point-equality, although not in the context of unit testing - I should update that.
BTW, I tend to reserve the use of epsilon to mean the actual machine precision e.g. 2e-16 for double, and then tolerance for the specific tolerance value for a given test.

I can already see in my mind's eye those huge codebases, all polluted with fancy epsilons like 0.0000002 or 0.00000003 which nobody longer understands where they came from or whether they still make sense (something could have changed 4 levels down from here)

This is absolutely true, and sadly must be true.  It's not entirely unlike 0x5f3759df.  One could get rid of the constant but the game would run at 28FPS not 30, and that's millions of dollars in lost sales, albeit a saving of thousands of dollars in maintenance costs (all figures 1990s :) ).
But again, the "golden" target values are also magic constants.  Of course, it's easier to understand them - they must have come from some manual computation (e.g. a symbolic algebra package), and we should probably add a link to the script that generated them.  We should similarly add a link to the back of the envelope used to compute tol.

Argggh. Now I did it - editing the comment rather than replying. I wonder if GitHub have changed some UI, as I don't recall ever having done that before. Let me see if I can restore.

I've now restored the comment (the "Then I have" one). I think all comments are corrected now. :)

Thank you very much, Staszek. Let me know if you'd like to attempt #68.

Apologies, I meant #66, which has a lower chance of being impossible. Only then the impossible one, please.


chore(contracts): use custom errors instead of require

Pull request checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been reviewed and added / updated if needed (for bug fixes / features)
[ ] Build (yarn build) was run locally and any changes were pushed
[ ] Lint (yarn lint --check) has passed locally and any fixes were made for failures

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: closes #307
What is the new behavior?

Does this introduce a breaking change?

[ ] Yes
[ ] No

Other information

Closing in favor of #394


Add space between info.message and meta.message

Fix #1739

appveyor fails but it seems normal

Also fixes #1634 and #1742 (this issue has been reported three times).

Also experiencing this issue since migrating our code over from Winston 2 (while it was behaving fine, ie. with a space) to Winston 3. Only experiencing this when passing an Error instance as second argument.

Any info about when this is getting merged?

Anything we can do to help get this merged?

@DABH does this fixes https://github.com/winstonjs/winston/issues/1634?


Warn when perla-esbuild-plugin is not present in the plugins list

Is your feature request related to a problem? Please describe.
We should show a console warning (and a way to disable it) when the esbuild plugin is not part of the configuration's plugin list.
the esbuild plugin is not really necessary as someone can create their own plugin to replace the same functionality however if no replacement is provided then the core-functionality in perla is affected
Describe the solution you'd like
Show a message in the console to warn the user that they took out a core plugin from the list
Describe alternatives you've considered
N/A
Additional context
Taken from #113

I double checked that the schema warns you if you don't provide the default esbuild plugin and we also now show a warning in console when the plugin is missing for any particular reason


set up the deployment

Hello there,
✔ I Add a Splash screen
       A simple page with the name of your app (yes, you need to choose one), and links to the sign up and log in pages.

✔ I Sign up and log in pages
     The user should be able to register in the app with full name, email and password (all mandatory).
     The user can log into the app using email and password.
       If the user is not logged in, they can't access pages that require the user to be logged in (all the pages described below).

✔ I  Add Home page (categories page)
     When the user logs in, they are presented with the categories page.
      For each category, the user can see their name, icon and the total amount of all the transactions that belongs to that category.
     When the user clicks (or taps) on a category item, the application navigates to the transactions page for that category.
     There is a button "add a new category" at the bottom that brings the user to the page to create a new category.

✔ I  Add Transactions page
      For a given category, the list of transactions is presented, ordered by the most recent.
     At the top of the page the user could see the total amount for the category (sum of all of the amounts of the transactions in that category).
    There is a button "add a new transaction" at the bottom that brings the user to the page to create a new transaction.

When the user clicks on the "Back" button (<), the user navigates to the home page.
✔ I  Add "Add a new category" page
   The user fills out a form to create a new category, indicating their name and icon (both mandatory).
   The user clicks (or taps) the "Save" button to create the new category, and is taken to the home page on success.

When the user clicks on the "Back" button (<), the user navigates to the home page.
✔ I  Add "Add a new transaction" page
     The user fills out a form to create a new transaction with:
        name (mandatory)
       amount (mandatory)
       categories (mandatory at least one)
      The user click (or taps) the "Save" button to create the new transaction, and is taken to the transactions page for that category.
     When the user clicks on the "Back" button (<), the user navigates to the transactions page for that category.

✔ I Create unit and integration tests for all the most important components of your RoR application.
✔ I use Postgres as your database.
✔ I use devise for authentication.
✔ I  validate all user input to make sure that anyone with bad intentions cannot compromise your app.
✔ I use a view template engine of your choice (.erb, .slim, .haml).
✔ I deployed and accessible online.
✔ I Create database schema that reflect the following structure:

Hello,
I've recently created a pull request that sets up deployment. Please disregard the deployment on Vercel as it's not functioning correctly. The correct deployment instructions are available in the readme.md file. I'm excited to receive your positive and valuable feedback.

@mukhammadrizooff  Done making all the required changes

@elisha2kyakpo1 Done making the changes


Exit Code Confusion

Hi everyone,
I am currently stuck on version 0.9.17 because I am unable to get ReviewDog to work with the following external linters:

PHPStan
PHPCodeSniffer

They both return exit codes other than 0 when the command returns lint results. When I try to pass the data on to ReviewDog, it spits out the following error:
reviewdog: phpstan failed with zero findings: The command itself failed (exit status 1) or reviewdog cannot parse the results

I'm fairly certain that it's something I'm doing wrong in configuring reviewdog. Here is my config file and reviewdog command I'm running:
.reviewdog.yml
runner:
  phpcs:
    cmd: php phpcs.phar --ignore=vendor --standard=./phpcs.xml --extensions=php --report=checkstyle -q .
    errorformat:
      - checkstyle
    level: warning
  phpmd:
    cmd: php phpmd.phar . text ./phpmd.xml --ignore-violations-on-exit --suffixes=php | sed -r "s/([0-9]+)\s+/\1:/gI"
    errorformat:
      - phpstan
    level: warning
  phpstan:
    cmd: php phpstan.phar analyse --no-interaction --no-progress --level=max --memory-limit 1G --error-format=raw app bootstrap config database resources routes
    errorformat:
      - phpstan
    level: warning

command
reviewdog -diff="git diff develop" -runners=phpstan --fail-on-error=true

The error message is saying phpstan failed with exit status 1 even though it doesn't return anything (zero finding), which is weird and reviewdog treat it as a failure.

Hi @haya14busa, thanks for the quick response. Here's what's happening:

PHPStan is return exit code 1 because it found issues in the code.
I'm assuming ReviewDog is saying zero finding because none of the findings applied to changes in the current PR.

My expectations would be that if PHPStan has an exit code 1 (because it find issues elsewhere in the project) but ReviewDog filters those out, it would then indicate success, instead of failing. Does it make sense how I explained it?

I'm assuming ReviewDog is saying zero findings because none of the findings applied to changes in the current PR.

This is wrong. It sees all findings in this case.
One possible problem is reviewdog failed to parse some results.
You can use -filter-mode=nofilter and/or -tee to debug the issue.

I am running into this issue and was wondering if there has been any update.
Here is my reviewdog.yaml file:
---
runner:
  yamllint:
    cmd: docker run --rm -it -v $(pwd):/data cytopia/yamllint --format "parsable" -c ./config/.yamllint.yaml .
    errorformat:
      - "%f:%l:%c: %m"
    name: yamllint
    level: error
    filter-mode: nofilter

and when I run I get this:
$+ reviewdog -conf="./.reviewdog.yml" -diff="git diff"
2020/12/14 17:16:29 reviewdog: [start]	runner=yamllint
2020/12/14 17:16:29 reviewdog: [finish]	runner=yamllint	error=exit status 1
reviewdog: yamllint failed with zero findings: The command itself failed (exit status 1) or reviewdog cannot parse the results

I think the command itself is failing and I think it has to do with directory scope. For example I think $(pwd) or even . may point to a different directory when being run in reviewdog vs when being run in the base directory in the shell (where it runs fine and gives expected results).

I just checked - non-zero exitcode is not a problem for reviewdog - it does not impact parsing the results. I think the root cause is that output does not match the format expected. @Gregory-Berkman-Imprivata can you provide output the same command but with -tee flag:
reviewdog -conf="./.reviewdog.yml" -diff="git diff" -tee

or just raw output of runner:yamllint:cmd?

I just checked - non-zero exitcode is not a problem for reviewdog - it does not impact parsing the results. I think the root cause is that output does not match the format expected. @Gregory-Berkman-Imprivata can you provide output the same command but with -tee flag:
reviewdog -conf="./.reviewdog.yml" -diff="git diff" -tee

or just raw output of runner:yamllint:cmd?

HI, @mikebronner please check your timeout as well. I had the same problem and fixed it by putting more than the default value, ' 1m0s`.
https://golangci-lint.run/usage/configuration/#run-configuration


az acr login failed

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az acr login
Errors:
This command requires running the docker daemon, which is not supported in Azure Cloud Shell. You may want to use 'az acr login -n jackyharbor --expose-token' to get an access token, which does not require Docker to be installed.

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az acr login --name {}

Expected Behavior
Environment Summary
Linux-4.15.0-1106-azure-x86_64-with-debian-10.2 (Cloud Shell)
Python 3.6.10
Installer: DEB

azure-cli 2.18.0
azure-cli-ml 1.20.0

Extensions:
ai-examples 0.2.5
azure-cli-ml 1.20.0

Additional Context

route to appropriate team

This is by design. if you don't have docker installed, you can use --expose-token to get the credential for other clients to authenticate.
Closing


Include additional information about clean up

Issue description

Role “DW Administrator” has privilege "Activity Log" by default as “Read” = enabled and Permission “Delete” = disabled.
Therefore to delete the activity log with the user that has role "System Owner".
Please include this info in the page.
BR.
Feedback Type (Optional)
content gaps
Page Title on SAP Help Portal (prefilled)
Monitor Object Changes with Activities
Page URL on SAP Help Portal (prefilled)
https://help.sap.com/docs/SAP_DATASPHERE/9f804b8efa8043539289f42f372c4862/08e607c58e5343bd9c0287e7e22c452a.html?locale=en-US&version=cloud

Dear SAP Datasphere User
thank you for your feedback. We are working on it and will provide an answer soon
best regards
Cindy for the UA team

Dear SAP Datasphere User
Thanks for your valuable feedback.
The permission “Delete” for the privilege “Activity Log” is not included in the DW Administrator role. To delete the activity log for a specific time period, you need to be a system owner or you can also be assigned to a custom role that grants the “Delete” permission. To do so, you can create a custom role based on the DW Administrator template, check the “Delete” permission for the privilege “Activity Log”, then assign a user to this custom role.
We’ve amended the documentation accordingly, which will be available in version 2024.06 on the SAP Help Portal.
Best regards,
The UA Team


Changed way to set categories with turbo-carto in the Builder

We decided to use all the power of Turbo-carto :tm:, but we realized there are some exceptions described in #10805. So we have taken the conservative decision of setting the categories manually in the generation of the CartoCSS.

What should we test?
We should style per value over string columns:

Using different geometries (point, line or polygon datasets).
Setting the style over columns with less than 10 categories.
Setting the style over columns with more than 10 categories.
Setting the style over columns with null values.

Not sure if this is a colateral effect, but now when filtering the legend always shows an Other categories, even when there is no other. For example:

I couldn't spot any other issue, other than that it's working fine. Please let me know if I should deploy it.

Ping @rochoa and/or @dgaubert, because I'm not sure about that.

I've just checked it in production, with the same behaviour (applying a ramp using a color for each category), then filtering and the behaviour is happening too, so it is a current problem. Opening a ticket...

Ticket: https://github.com/CartoDB/Windshaft-cartodb/issues/600
@nobuti in my opinion it is ready to go, bug is present right now in production.

👍  I'll deploy it asap.

Frontend tests passing 🚀

Hi Guys, I don't think that having this legends behaving non dynamically is a good behaviour. I do think legends should be only showing the categories selected. If not they will be quite missleading


Removing a vlan results in "Unhandled data error." in the web interface

Removing a vlan from a host by editing the prefix and clearing out the vlan field, then hitting "Save prefix" results in "Error Unhandled data error." dialog box.
version 0.29.5

Confirmed, will look into this.


Gnomad frequencies are missing for some variants while being in gnomad

Describe the bug
Some frequencies are available in gnomad but are not returned by annonars.
To Reproduce
$ curl "localhost:8000/proxy/varfish/annonars/annos/variant?genome_release=grch37&chromosome=17&pos=46019981&reference=G&alternative=C"
{"server_version":"0.24.4","query":{"genome_release":"grch37","chromosome":"17","pos":46019981,"reference":"G","alternative":"C"},"result":{"cadd":null,"dbsnp":null,"dbnsfp":null,"dbscsnv":null,"gnomad_mtdna":null,"gnomad_exomes":null,"gnomad_genomes":null,"helixmtdb":null,"ucsc_conservation":[]}}

https://gnomad.broadinstitute.org/variant/17-46019981-G-C?dataset=gnomad_r2_1
Expected behavior
Frequencies should be consistent between annonars and gnomad.

The variant is not in the reduced-to-exomes dataset currently deployed on our inhouse instance. It is available in the full data as deployed on reev (CC @xiamaz).


Update Composer dependencies (2022-10-01-00-08)

Visual regression test passed!
View the visual regression test report


Any intentions for supporting Language Server Protocol ?

I love brackets and i think it can more awesome if LSP support is added so we can have more languages supported out of the box. is there anyone working on this already or am i missing something ?

is there even anyone here 🌵

@pushqrdx Could you be site some examples as part of LSP support inside Brackets?

@nethip sorry i don't get what you asking for but enabling LSP support in Brackets will open up a plethora of enhancements to the editor, you can look at all the languages that will immediately be supported once Brackets get LSP implementation.

@pushqrdx We usually prioritize our work items based on the community feedback posted on our Trello board. I have created a card for this specific feature here. Please upvote the card and add your comments there about what are the possible ways Brackets can help in authoring LSP files.

@nethip Please read about LSP here:
https://github.com/Microsoft/language-server-protocol
and see an example of LSP in action here:
https://github.com/palantir/python-language-server
It is not another language, so this is NOT about authoring LSP files.

Language Server Protocol is a contract between an editor and a language author making it possible for all editors that support that protocol to be extendable by language authors without minimum to no effort. If LSP is implemented in Brackets brackets will instantly support:

C# via Omnisharp
CPP via Microsoft Language Server
Typescript via Microsoft Language Server
Javascript
PHP
Java

The list goes on and on as nearly all major programming languages have already implemented open source language servers to be consumed in any LSP supported editor. So Brackets will be an equally competing editor to vscode, atom and others (maybe even better).
Other things that will just naturally be supported out of the box is auto completion, code fixes, go to in every single language without any effort from Brackets team.

@pushqrdx We understand the importance of LSP in Brackets context. We are working towards bringing LSP as our Language tools interface. However we can't commit an ETA at this point of time. It would be available eventually once we finish the implementation.


parse constants from lea instruction as both number and offset features

we often see the lea instruction used for arithmetic e.g.
lea     eax, [eax+61C88647h]
where in the above example 0x61C88647 is a magic value used in the tiny encryption algorithm (TEA).
Currently we parse 0x61C88647 as an offset feature but ideally we would also parse the value as a number feature to allow more concise rule writing. Parsing as both offset and number features would only apply to lea instructions.
Pros:

more concise rules for situations where lea is used for arithmetic

Cons:

we potentially generate many additional number features

dup of #320 😄

test rule get process heap flags

also maybe extract offsets from numbers like add ???, <number> when number is reasonable small

e.g.


Support for geostyler-style GeoStylerFunction/Expression

After ther rewrite to fast-xml-parser we have to restore and rewrite the support for GeoStylerFunction and Expression.

I think this is solved with: https://github.com/geostyler/geostyler-sld-parser/pull/703


[Discussion] UI: Displaying debug data

Discussion for http://godotrecipes.com/ui/debug_overlay/

Hello! super nice tutorial!
Here is some feedback.
You wrote:
$Column.add_child(l)

While it should be:
$Column.add_child(label)

Also, I assumed that $Column was the VBoxContainer? but in the tutorial, you don't tell us to rename it this way.
Finally, for some reason, on my side, when I try to reproduce this example, the label is not shown on screen...

Here the label Label was created in the editor, while @@2 is the label created from calling the DebugStats singleton.
In the game window, I can see Label displayed but I can't see @@2 displayed anywhere...
You can find the repository of my game here, if you would like to have a look:
https://github.com/Nodragem/wild-jam-31.git

Thanks, I've fixed the typos.
I tried to look at your project, but it had errors on loading about missing scenes


adding a new target to deploy controller and Metadata server and crea…

This is part of  ORAN - Project infrastructure - Automatically start services
https://issues.redhat.com/browse/MGMT-18997
-using Target deploy to install  operator and enable services

Using clusterID to deploy meta  data server , user can edit it to match their cloudId

/ok-to-test

This is part of ORAN - Project infrastructure - Automatically start services https://issues.redhat.com/browse/MGMT-18997

Adding new target called: deploy-service to deploy  IMS operator controller and metadata server. other services like ressource and deployment server will be added later.

I would like this to be done through the existing "make deploy" - deploying the operator should also start the services. We don't need a target to deploy the operator without starting the services.

Please note that this update impacts the generated manifests, which must also be included in the PR

i had to close this PR since they have changed some logic upstream. i created a target called deploy but  a target called deploy has been pushed to main branch.


Prepare December Release

:notebook_with_decorative_cover: Description

Bump all versions for PyPI releases
Rotate changelogs

:memo: Checklist

[x] All user-facing changes have changelog entries.
[x] The changes are reflected on docs.tenzir.com/threatbus, if necessary.
[x] The PR description contains instructions for the reviewer, if necessary.

:dart: Review Instructions

The VAST guys started the convention to leave it as a comment, so we're doing the same over here.

[ch21173]


Why not checking $$disconnected in reconnectScope() but not disconnectScope()

In Fn reconnectScope:

And in Fn disconnectScope:

Greetings @guday!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Hey @guday, is there an issue or something this is causing? Closing for now, let me know and I'll reopen

As setting cache:true in app-config.js to make view cached. I need to find a Fun that fired after connectScope but not initScope.
There is a event $ionicView.enter which fired after connectScope ,but when initScope,it fired twice.
Then i findout this event '$ionic.reconnectScope'  which fired after coming into a cached view.

But, event '$ionic.disconnectScope' will fired not only leaving cached view but each time leaving another cached view.
To solve this problem, i fired another event to make sure fired once after leaving an cached view.

Here is the code in controller


[SPARK-46724][DOCS] Update tuning.md to use java 17 doc links

What changes were proposed in this pull request?

SPARK-45315 drops JDK8/11 and makes 17 the default, which also makes G1 the default garbage collector; this PR updates tuning.md to use java 17 doc links and fixes some wordings about G1.
Why are the changes needed?

doc improvements
Does this PR introduce any user-facing change?

no
How was this patch tested?

doc build
Was this patch authored or co-authored using generative AI tooling?

no

Thank you, @yaooqinn .
Merged to master.

Thank you @dongjoon-hyun！


[Snyk] Security upgrade python from 3.7-alpine to 3.11.8-alpine

This PR was automatically created by Snyk using the credentials of a real user.Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.
Changes included in this PR

examples/docker/Dockerfile

We recommend upgrading to python:3.11.8-alpine, as this image has only 0 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.
Some of the most important vulnerabilities in your base image include:

Severity
Priority Score / 1000
Issue
Exploit Maturity

161
Resource Exhaustion SNYK-ALPINE318-EXPAT-6241039
No Known Exploit

161
CVE-2023-5363 SNYK-ALPINE318-OPENSSL-6032386
No Known Exploit

161
CVE-2023-5363 SNYK-ALPINE318-OPENSSL-6032386
No Known Exploit

166
Out-of-bounds Write SNYK-ALPINE318-OPENSSL-6152404
No Known Exploit

166
Out-of-bounds Write SNYK-ALPINE318-OPENSSL-6152404
No Known Exploit

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Resource Exhaustion

Outdated


When converting a lead, I may want the opportunity created to be related to a contact's primary affiliation

External Contribution Issue created by @cdcarter
As a user converting leads, I want the option to create the opportunity on the lead's new primary affiliation instead of on their household, so that I can use leads to track corporate gifts/sponsorships.
On the NPSP lead convert override, we have the option to create a primary affiliation for a contact to the Lead's "Company". A checkbox to also associate the opportunity with that Organization account (though maintaining the OCR) would allow organizations that use Leads to track corporate sponsorship to not have to manually update created opportunities.

Instead of a checkbox, I suggest a picklist to select which Account to associate the Opportunity with: HH or Affiliated Organization. If it's just a checkbox to "override" the currently-default behaviour, a non-familiar user would not understand that at all, not knowing what the implied default is. A picklist makes it an explicit, clear choice each time. (HH could be default to preserve current default behaviour.)

There is an existing issue that needs to be resolved before this new feature is added - on the NPSP lead override, when the user opts to create an Opportunity, the new Opportunity is automatically associated with the Affiliated Org, not the household. By default, for individuals with a household and an affiliated account I would think a donation should go on the Household, but that is not the case.

@designbybenjamin -- Current behavior (as of NPSP 3.61 with the npsp__ override in place) an opportunity for a converted lead DOES go to the household. This feature request/pull request gives you the option to choose the affiliated org instead of the household. If you're seeing the opportunity affiliated with the org account instead of the new household, I haven't found that behavior yet. Can you give me clear steps to reproduce?

Included in beta release version 3.62 (Beta 2) and higher

Included in production release version 3.62


Adding properties to UserData

I'm trying to add a 'role' property to my users, however I'm getting typescript compilation errors as role isn't defined on UserData.  As a workaround, I'm using lodash _.get to trick the compiler but this is obviously not an ideal solution :P
Short of forking the repo and changing the UserData definition, is there a better way to do this?
Thanks!

@davidjconnolly Or you could fork the repo, modify it for the use of an extended UserData (which is managed by Devise), and create an PR when your done :smile:.
Its on my ToDo-Liste, but Im quite busy recently.

@davidjconnolly Could you explain further how you solved this issue? I have been at this for hours on end. No luck getting this done at my end!

I was able to temporarily bypass this issue by by using this aot false flag for the production build.
ng build --prod --aot=false
This is only a temporal solution.

I found another solution to this problem, unfortunately it requires a fair bit of coding:

Create a User object class with all the attributes you want in it. For example:

Create a user service that contains a public object of type User, eg:

public current_user: User

In the constructor of this service, inject the Angular2TokenService and subscribe to the validateToken method:

constructor (
   private _authService: Angular2TokenService
) {
  this._authService.validateToken().subscribe(
     result => {
          if (result.status == 200)
              this.current_user = result.json().data;
     }
   )
}

Inject this service into any other service that you need. For example, I have a template service that creates templates, and since I am using the methods exposed by Angular2TokenService to call my API, every request will automatically fire the validateToken.

I found a much easier solution. Just extend the base UserData interface:
import { UserData } from 'angular2-token;

export MyUserData extends UserData {
    role: string;
}

You then use the MyUserData type in your components.

@izambard that should be the correct solution here, and no edit to the repo should be required to allow users to modify the userData type for their scenario.
If this could be added to the readme or be documented in some way, that would be great.

What shoul I do if I'm using tokenService.currentUserData.role?


Receiving error during EPG install

I am trying to install this for the first time, I am not a programmer at all.
I was following the steps here https://github.com/iptv-org/epg
During the install all the necessary dependencies step while running the NPM install command, I am receiving an error about the ELIFECYCLE. I have additional Log files i can attach if needed.
NPM LOG
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'api:load' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'preapi:load', 'api:load', 'postapi:load' ]
5 info lifecycle epg@~preapi:load: epg@
6 info lifecycle epg@~api:load: epg@
7 verbose lifecycle epg@~api:load: unsafe-perm in lifecycle true
8 verbose lifecycle epg@~api:load: PATH: /usr/share/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/sigaming/epg/node_modules/.bin:/usr/share/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/sigaming/epg/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
9 verbose lifecycle epg@~api:load: CWD: /home/sigaming/epg
10 silly lifecycle epg@~api:load: Args: [ '-c', './scripts/commands/api/load.sh' ]
11 info lifecycle epg@~api:load: Failed to exec api:load script
12 verbose stack Error: epg@ api:load: ./scripts/commands/api/load.sh
12 verbose stack spawn ENOENT
12 verbose stack     at ChildProcess. (/usr/share/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18)
12 verbose stack     at ChildProcess.emit (events.js:198:13)
12 verbose stack     at maybeClose (internal/child_process.js:982:16)
12 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
13 verbose pkgid epg@
14 verbose cwd /home/sigaming/epg
15 verbose Linux 5.15.0-84-generic
16 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "api:load"
17 verbose node v10.19.0
18 verbose npm  v6.14.4
19 error code ELIFECYCLE
20 error syscall spawn
21 error file sh
22 error errno ENOENT
23 error epg@ api:load: ./scripts/commands/api/load.sh
23 error spawn ENOENT
24 error Failed at the epg@ api:load script.
24 error This is probably not a problem with npm. There is likely additional logging output above.
25 verbose exit [ 1, true ]

Not an expert but I believe all npm api:load is doing is running this shell script located in /scripts/commands/api/load.sh.
I was getting the same error but that is because I m running on Windows which I am guessing might not be supported.
All the script is doing is creating a directory and downloading 4 files
mkdir -p scripts/tmp/data curl -L -o scripts/tmp/data/channels.json https://iptv-org.github.io/api/channels.json curl -L -o scripts/tmp/data/countries.json https://iptv-org.github.io/api/countries.json curl -L -o scripts/tmp/data/regions.json https://iptv-org.github.io/api/regions.json curl -L -o scripts/tmp/data/subdivisions.json https://iptv-org.github.io/api/subdivisions.json
So I manually created the directory and then converted the curl command to powershell commands to download the files into the scripts/tmp/data/ folder.
That seems to do the trick . I am able to properly fetch tv guides.
I hope that helps.

I can try giving that a try. I am running this on Ubuntu so for me it will be a little different

Hello, I have the same issue and the problem is the "shebang" operator #!/bin/bash. In environments where /bin/bash is not installed such as docker alpine images, an error is returned when running the script ./scripts/commands/api/load.sh. Installing bash in the image/environment solves the issue.

Fixed in https://github.com/iptv-org/epg/pull/2177
Please try to update or reinstall the grabber.

ubuntu@jay:~/epg$ npm run grab -- --site=tvguide.com

> grab
> ts-node scripts/commands/epg/grab.ts --site=tvguide.com

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /home/ubuntu/epg/scripts/commands/epg/grab.ts
    at new NodeError (node:internal/errors:406:5)
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:99:9)
    at defaultGetFormat (node:internal/modules/esm/get_format:142:36)
    at defaultLoad (node:internal/modules/esm/load:120:20)
    at nextLoad (node:internal/modules/esm/hooks:833:28)
    at load (/home/ubuntu/epg/node_modules/ts-node/dist/child/child-loader.js:19:122)
    at nextLoad (node:internal/modules/esm/hooks:833:28)
    at Hooks.load (node:internal/modules/esm/hooks:416:26)
    at MessagePort.handleMessage (node:internal/modules/esm/worker:168:24)
    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:807:20) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

it is NOT fixed


New package: Microsoft.MediaCreationTool version 10.0.22621.2714

[X] Resolve: #141315

For moderators
This account is automated by Github Actions and the source code was created by CoolPlayLin. If you have any questions about any pull request, don't hesitate to ping Exorcism0666.

[!warning]
With the new version of Komac, numerous Pull Requests may contain bugs or unwanted elements. If such issues arise, please tag russellbanks so that these bugs can be addressed in future updates.

[!important]
Please carefully review these Pull Request before merging. If it is a Pull Request for removing incorrect content and the URLs are issue, free upon manual checking, please close this Pull Request directly. (It is best to inform Exorcism0666 of the closure.)

良い一日をお過ごしください！

Manual Validation ended with:

.

https://github.com/microsoft/winget-pkgs/pull/141318#event-11974080189

@stephengille and @Trenly, where does this install do? There's no obvious way to invoke this after installing it.

Forgot https://github.com/microsoft/winget-pkgs/discussions/184459#discussioncomment-10996601. Apologies.


Crash when requesting infer parameter types from usage codefix

The crash happens when a parameter is followed by a C-style comment in a JS file:
function call(callback /*oh no*/) {
  return callback(this)
}

Expected behavior:
Provide a codefix "Infer parameter types from usage".
Actual behavior:
Crash:
     Error: Debug Failure. False expression: Node must have a real position for this operation
      at NodeObject.assertHasRealPosition (src/services/services.ts:37:19)
      at NodeObject.getStart (src/services/services.ts:45:18)
      at processChildNode (src/services/formatting/formatting.ts:645:45)
      at processChildNodes (src/services/formatting/formatting.ts:757:44)
      at /home/nathansa/ts/src/services/formatting/formatting.ts:623:21
      at visitNodes (src/compiler/parser.ts:40:24)
      at Object.forEachChild (src/compiler/parser.ts:462:24)
      at processNode (src/services/formatting/formatting.ts:617:13)
      at formatSpanWorker (src/services/formatting/formatting.ts:415:13)
      at /home/nathansa/ts/src/services/formatting/formatting.ts:340:108
      at Object.getFormattingScanner (src/services/formatting/formattingScanner.ts:38:21)
      at Object.formatNodeGivenIndentation (src/services/formatting/formatting.ts:340:16)
      at getFormattedTextOfNode (src/services/textChanges.ts:819:40)
      at format (src/services/textChanges.ts:796:41)
      at computeNewText (src/services/textChanges.ts:799:19)
      at /home/nathansa/ts/src/services/textChanges.ts:769:72
      at Array.map (<anonymous>)
      at /home/nathansa/ts/src/services/textChanges.ts:768:48
      at Array.map (<anonymous>)
      at Object.getTextChangesFromChanges (src/services/textChanges.ts:758:59)
      at ChangeTracker.getChanges (src/services/textChanges.ts:726:43)
      at Function.ChangeTracker.with (src/services/textChanges.ts:225:28)
      at Object.getCodeActions (src/services/codefixes/inferFromUsage.ts:32:59)

Fourslash repro
/// <reference path='fourslash.ts' />

// @allowJs: true
// @checkJs: true
// @noEmit: true
// @noImplicitAny: true
// @Filename: important.js

////function coll(callback /*, name1, name2, ... */) {
////     return callback(this);
////};

verify.codeFix({
    description: "Infer parameter types from usage",
    index: 2,
    newFileContent:
`
/**
 * @param {(arg0: any) => void} callback
 */
function coll(callback /*, name1, name2, ... */) {
    return callback(this);
}
`,
});

The emitter emits trailing comments of identifiers, meaning that the emitted comment was unintentionally:
/**
 * @param {(arg0: any) => void} callback /*, name1, name2, ... */
 */

github's syntax colouring should be good enough to show that the last line is a syntax error.


Changed DeviceResource to return a JSON object instead of returning a list.

Please consider this change to the REST API.  I expect to work through the rest of the resource calls if this change is adopted.
Many REST ingest schemes (e.g. Graylog "JSON path from HTTP") expect servers to return well-formed JSON objects.  Floodlight is sometimes returning values that lack root objects.  This can make ingestion engines ignore "non-JSON header fields" until they encounter the start of an object (that is, a "{" character).  In the case of a '/wm/device/' query from Graylog, this means only the first device in the list is recognized.
Was:
[ <list-of-device-objects> ]
Now:
{ 'devices' : [ <list-of-device-objects> ] }

@rsharo thank you for pointing this out. @cbarrin might want to take this update into consideration for the web UI.

@rsharo want to give me your name to add to the contributors list? Otherwise I'll just add your GitHub handle.

Thanks! But I think you already added me as part of PR #644
My info is:
Randall Sharo (rsharo)
Regards,
Randy


Add support for bundles that have more than one "top-level" package

At the moment, no ponylang organizations have any libraries that include multiple top-level packages.
There's no support for them in any of our makefiles, documentation building scripts etc.

Closing as we arent doing any new features for this action.


System76 Launch keyboard use QMK by default

Information

[X] None of the other issue templates apply

Description
The System76 Launch Keyboard https://system76.com/accessories/launch uses QMK by default and it says on the website to file an issue if a keyboard uses QMK by default to get listed.

This has not been upstreamed into QMK. I'm not sure what the status is, in that respect.
@qmk/directors what's the status in this scenario?

Yeah its a fork https://github.com/system76/qmk_firmware

Once it's been submitted to qmk_firmware it will be listed on the keyboards page. We don't list boards that haven't been contributed to us.


docs: en/docs/hertz/tutorials/toolkit/toolkit.md

What type of PR is this?
docs: en/docs/hertz/tutorials/toolkit/toolkit.md
What this PR does / why we need it (en: English/zh: Chinese):

en: hertz/tutorials/toolkit/toolkit.md
zh: hertz/tutorials/toolkit/toolkit.md
Which issue(s) this PR fixes:
https://github.com/cloudwego/hertz/issues/77

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.rogers seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

all fixed.


fix deprecated numpy thruth value expression

Since the numpy version 1.14 expressions like: if not self.data: for checking both if the object is None and if the array is empty is deprecated and since later versions it throws a ValueError. I updated the line in represent_pixel_location() to handle later numpy versions.

@TEXflip Thanks for your contribution, PR is merged into main branch and part of the upcoming release


CRITICAL : Serialization / Deserialization of Game

Complexity : mid
Task consists of next steps:

Choose the data format ( consider FEN format and JSON for online )
Implement routine/trait to serialize game state.
Implement routine/trait to deserialize saved data.

TAKEN

Done in : https://github.com/Wandalen/game_chess/commit/0be09ad57f88cfe1a309d4f3a6897b395b548999


Revisit focus stack auto parameters

After adding a 1.22/2 correction factor instead of using the 1/2 rule of thumb for resolution calculations the stack parameters are slightly off from the previously well tested value for 20x. Additionally the step size for 50x was way too big

Also need to consider how this fits into value line systems that might have different system level optical properties than the objective can theoretically do


Hentai20: Switch back to Madara

Checklist:

[ ] Updated extVersionCode value in build.gradle for individual extensions
[x] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[ ] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[ ] Added the isNsfw = true flag in build.gradle when appropriate
[x] Have not changed source names
[ ] Have explicitly kept the id if a source's name or language were changed
[x] Have tested the modifications by compiling and running the extension through Android Studio
[ ] Have removed web_hi_res_512.png when adding a new extension

hentai20.io is still on MangaThemesia?


Difference between Select and Find

I don't understand the inner workings of Select and Find.
Take the following example:
var dom = CQ.Create("

hoi

");

// Selection1
var div = dom.Select("div");
div.Count().Dump();

// Selection 2
var div2 = dom.Find("div");
div2.Count().Dump();

// Selection 3
var p = div.Select("> p");
p.Count().Dump();

// Selection 4
var p2 = div.Find("> p");
p2.Count().Dump();

I would expect all selections to return one element. But that is not the case.
Why do selection 2 and selection 3 return 0 elements?
Thanks,
Marc

Select operates against the whole dom. x.Select("div') is like $('div') it will find any div elements in the entire dom regardless of the current selection. (In CsQuery unlike jQuery there are any number of possible "doms" - you can create a new CQ object that's a selection from an existing dom, and it will inherit the dom of its source, or you can create a new one from HTML which is a new dom unrelated to any other)
Find is the same as jquery find, it operates only against the children of the selection. When you create a new dom, by default, the selection is only the top-level element(s) in your case it is just
. So Find will only find children of the root div. In "selection 2" you are looking for "div" children of the root div and there are no such children.
In selection 3, the first child combinator will look for things that are the first children of the root of the dom, e.g. the single "div" element. So that doesn't match anything.
In selection 4, it is looking for things that are the first child of the current selection (the root div) so it matches.

Hi Jamietre,
Thank you for your explanation.
In jQuery you can't do something (weird) like: $('div').find('> p').$('a')
But in CsQuery you can do this: dom.Select("div").Find("> p").Select("a")
That's what threw me off. I guess I should just use Select only for the initial select and Find for all subsequent child searches.
One more question though:
Like you said in jQuery $('> html') returns the root HTML element but why does dom.Select("> div") on my dom not return the root div element?

Because in your example there is no root HTML element. In jQuery there's not really a way to run a selector against a fragment, only against a context, which means you specify the root, as in find, or $('div', context) and it operates against the children of the context.

Thanks Jamietre!


Block folding does not work as expected

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it
For below block of JSON keymap, the Editor bindings do not fold as expected.
[
    {
        "context": "Editor",
        "bindings": {
            "ctrl-f12": "editor::FindAllReferences",
            "cmd-k left": "workspace::ActivatePreviousPane",
            "cmd-k right": "workspace::ActivateNextPane"
        }
    },
    {
        "context": "Workspace",
        "bindings": {
            "alt-cmd-1": [
                "workspace::ActivatePane",
                0
            ],
            "alt-cmd-2": [
                "workspace::ActivatePane",
                1
            ],
            "alt-cmd-3": [
                "workspace::ActivatePane",
                2
            ],
            "alt-cmd-4": [
                "workspace::ActivatePane",
                3
            ],
            "alt-cmd-5": [
                "workspace::ActivatePane",
                4
            ],
            "alt-cmd-6": [
                "workspace::ActivatePane",
                5
            ],
            "alt-cmd-7": [
                "workspace::ActivatePane",
                6
            ],
            "alt-cmd-8": [
                "workspace::ActivatePane",
                7
            ],
            "alt-cmd-9": [
                "workspace::ActivatePane",
                8
            ]
        }
    },
    {
        "context": "Pane",
        "bindings": {
            "cmd-k cmd-up": "pane::SplitUp",
            "cmd-k cmd-down": "pane::SplitDown",
            "cmd-k cmd-left": "pane::SplitLeft",
            "cmd-k cmd-right": "pane::SplitRight"
        }
    }
]

Environment
Zed: v0.80.5 (stable)
OS: macOS 13.2.1
Memory: 32 GiB
Architecture: x86_64
If applicable, add mockups / screenshots to help explain present your vision of the feature

If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.
If you only need the most recent lines, you can run the zed: open log command palette action to see the last 1000.
No response

Solved. Appears some odd symbols got copied from the website docs at front of bindings fixed as:
[
    {
        "context": "Editor",
        "bindings": {
            "ctrl-f12": "editor::FindAllReferences",
            "cmd-k left": "workspace::ActivatePreviousPane",
            "cmd-k right": "workspace::ActivateNextPane"
        }
    },
    {
        "context": "Workspace",
        "bindings": {
            "alt-cmd-1": [
                "workspace::ActivatePane",
                0
            ],
            "alt-cmd-2": [
                "workspace::ActivatePane",
                1
            ],
            "alt-cmd-3": [
                "workspace::ActivatePane",
                2
            ],
            "alt-cmd-4": [
                "workspace::ActivatePane",
                3
            ],
            "alt-cmd-5": [
                "workspace::ActivatePane",
                4
            ],
            "alt-cmd-6": [
                "workspace::ActivatePane",
                5
            ],
            "alt-cmd-7": [
                "workspace::ActivatePane",
                6
            ],
            "alt-cmd-8": [
                "workspace::ActivatePane",
                7
            ],
            "alt-cmd-9": [
                "workspace::ActivatePane",
                8
            ]
        }
    },
    {
        "context": "Pane",
        "bindings": {
            "cmd-k cmd-up": "pane::SplitUp",
            "cmd-k cmd-down": "pane::SplitDown",
            "cmd-k cmd-left": "pane::SplitLeft",
            "cmd-k cmd-right": "pane::SplitRight"
        }
    }
]


Accessory need two additional static method .

Accessory provides wechaty and puppet interface. The current design of the Python Accessory only supports get puppet/wechaty from instance. But there are some method that need to access global puppet from Accessory not from Accessory instance .
So ,I add two added method to Accessory.

    @classmethod
    def get_wechaty(cls) -> Wechaty:
        """doc"""
        if cls._wechaty is None:
            raise AttributeError('wechaty not found')
        return cls._wechaty

    @property
    def puppet(self) -> Puppet:
        """doc"""
        if self._puppet is None:
            raise AttributeError('puppet not set')
        return self._puppet

I also add accessory test func to accessory_test.py file.

Cloud you please create a separate branch to only contain the related files in the PR? Because it's not readable for this HUGE pull request, and we can not merge part of it, too.
For this Accessory related topic, I believe it's enough to only contain those two files: accessory.py and accessory_test.py.

I noticed that you have resolved the cycle import problem.
It seems that I'm facing this issue too, could you explain some details and provide some links to this problem for my better understanding?

You can keep this PR (and always keep it) when we are updating it together.
If you have any questions, please leave comments so that I could help you to get used to using Git.

Merge to #18


SimpleSchema validation succeeds but on insert fails with keyNotInSchema fro SubSchema

I have a schema which references a sub schema.
When I validate the schema manually with SimpleSchema.validate it succeeds. However, when I try and insert the item it fails saying the keys of the sub schema are not valid.
The exact same code works in another project. The only difference is this is based off a package based architecture so the attachSchema code is inside a package that is imported into the project.
Any suggestions of where to look for the cause?
I've checked that the sub schema is part of the schema when it is attached to the collection.

You would need to post a link to a simple app that reproduces this. Hard to say without seeing the whole setup.

I'm facing the same issue. In my case, it seems like a field (which itself is a nested SimpleSchema object) is wiped out during cleaning, and then the insert validation fails with Error: <field> is required in <collection> insert. Though, if I validate the object manually, the validation succeeds.


Upgrade truffle to newer version

Description
Seems like truffle new release 5.1.15 might solve the previous unstable migration issue:
In this PR: https://github.com/trufflesuite/truffle/pull/2808 of the change log, it claims to solve: https://github.com/trufflesuite/truffle/issues/2257
Should give it a try and make our DevOps happy 😛

This would make contract deployments less expensive!

Currently we have many failures due to the issue and it's costing us many ETH for re-trying the deployments. Is there any way we can try the new version?


improve defaults API constructor, fixes #810

Before this PR all defaults were done in configureAPI, right before calling serve, this made that function pretty useless without modifying. With this PR that function because optional and is only to be used if that's how you want to customize a server. I would however advice against it, as it mixes generated code and manal code. I think it's a much better idea to do the customization similar to how it's done in the go-openapi/kvstore example.
With the modifications in the PR, creating a server cmd can be as simple as following:
package main

// imports...

func main() {
	swaggerSpec, err := loads.Analyzed(restapi.SwaggerJSON, "")
	if err != nil {
		log.Fatalln(err)
	}

	api := foo.NewFooAPI(swaggerSpec)

	server := restapi.NewServer(api)
	defer server.Shutdown()

	api.FooHandler = myNewFooHandler()

	if err := server.Serve(); err != nil {
		log.Fatalln(err)
	}
}

And this will actually work as expected. In this example the producers, consumers and server handler are all set by default, and can run as it is. This doesn't prevent any of the customization as was possible before, but it does make things a lot easier for when the defaults (based on the given swagger spec) are good as they are.

The changes made in this PR are based on the suggestions made in the enhancement issue #810.

Current coverage is 69.26% (diff: 96.55%)

Merging #816 into master will not change coverage

@@             master       #816   diff @@
==========================================
  Files            21         21
  Lines          5737       5737
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           3974       3974
  Misses         1366       1366
  Partials        397        397

Powered by Codecov. Last update 654b7e8...ebfba9d


Symlink requirements folder cleanup on sls package

Hi,
The requirements folder that is created in the deploy directory is presumably no longer required once the package has been created i.e. after a run to sls package as the contents are added to the zip. Is it possible to clear it up as at present my build server is bundling it into artefact and its quite large.
I read  hear (https://serverless.com/blog/serverless-python-packaging/) that sls deploy clears up the symlink folder but doesnt appear that sls package does. Thoughts?
Many thanks, Ed

I'll take a look and add this behaviour


⚠ Bofrost.lu has degraded performance

In 7e6671f, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 862 ms

Resolved: Bofrost.lu performance has improved in 3b02d66 after 14 minutes.


-Werror=free-nonheap-object warnings with GCC LTO

Noticed when playing with introducing LTO to CI: https://github.com/thesamesam/openssl/runs/7066044196?check_suite_focus=true#step:6:1995:
In function 'CRYPTO_free',
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:221:9,
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:213:6,
    inlined from 'BN_MONT_CTX_free' at crypto/bn/bn_mont.c:257:5,
    inlined from 'dsa_finish' at crypto/dsa/dsa_ossl.c:436:5:
crypto/mem.c:258:5: error: 'free' called on pointer 'dsa_3(D)->method_mont_p' with nonzero offset 32 [-Werror=free-nonheap-object]
  258 |     free(str);
      |     ^
In function 'CRYPTO_free',
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:221:9,
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:213:6,
    inlined from 'BN_MONT_CTX_free' at crypto/bn/bn_mont.c:257:5:
crypto/mem.c:258:5: error: 'free' called on pointer 'mont_6(D)' with nonzero offset 32 [-Werror=free-nonheap-object]
  258 |     free(str);
      |     ^
lto1: all warnings being treated as errors
make[2]: *** [/tmp/ccIBgVDh.mk:2: /tmp/ccHPGKGP.ltrans0.ltrans.o] Error 1
make[2]: *** Waiting for unfinished jobs....
lto1: all warnings being treated as errors
make[2]: *** [/tmp/ccK1SSJM.mk:86: /tmp/cco66iVl.ltrans28.ltrans.o] Error 1
make[2]: *** Waiting for unfinished jobs....
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:16104: fuzz/bignum-test] Error 1
make[1]: *** Waiting for unfinished jobs....
In function 'CRYPTO_free',
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:221:9,
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:213:6,
    inlined from 'BN_MONT_CTX_free' at crypto/bn/bn_mont.c:257:5,
    inlined from 'dh_finish' at crypto/dh/dh_key.c:200:5:
crypto/mem.c:258:5: error: 'free' called on pointer 'dh_3(D)->method_mont_p' with nonzero offset 32 [-Werror=free-nonheap-object]
  258 |     free(str);
      |     ^
In function 'CRYPTO_free',
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:221:9,
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:213:6,
    inlined from 'BN_MONT_CTX_free' at crypto/bn/bn_mont.c:256:5,
    inlined from 'dsa_finish' at crypto/dsa/dsa_ossl.c:436:5:
crypto/mem.c:258:5: error: 'free' called on pointer 'dsa_3(D)->method_mont_p' with nonzero offset 8 [-Werror=free-nonheap-object]
  258 |     free(str);
      |     ^
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:16128: fuzz/bndiv-test] Error 1
lto1: all warnings being treated as errors
make[2]: *** [/tmp/ccLg5VuQ.mk:83: /tmp/ccMRxPe5.ltrans27.ltrans.o] Error 1
make[2]: *** Waiting for unfinished jobs....
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:16080: fuzz/asn1parse-test] Error 1
In function 'CRYPTO_free',
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:221:9,
    inlined from 'BN_clear_free' at crypto/bn/bn_lib.c:213:6,
    inlined from 'BN_MONT_CTX_free' at crypto/bn/bn_mont.c:256:5:
crypto/mem.c:258:5: error: 'free' called on pointer 'mont_6(D)' with nonzero offset 8 [-Werror=free-nonheap-object]
  258 |     free(str);
      |     ^
lto1: all warnings being treated as errors

This was discussed in https://github.com/openssl/openssl/issues/558 and https://github.com/openssl/openssl/issues/14591 where similar cases were determined to be false positives.
This looks like exactly the same situation, so I don't think the warnings are right (but please check!), but I'm wondering if we can silence these with a hint to the compiler.
Thoughts?
This is a blocker for adding LTO to CI. There are two benefits to testing LTO:

The compiler generally gives better diagnostics because it has
a more complete view of the codebase;

Our users are going to use LTO anyway (several distributions use it by default,
and Debian is considering it), so we may as well test it.
(Fedora and openSUSE already transitioned and Debian is planning it for the n or n+1 release)

LTO creates (or exposes) strict aliasing violations when no-asm code is used.
For instance here:
void AES_encrypt(const unsigned char *in, unsigned char *out,
                 const AES_KEY *key) {

    const u32 *rk;
    u32 s0, s1, s2, s3, t0, t1, t2, t3;
#ifndef FULL_UNROLL
    int r;
#endif /* ?FULL_UNROLL */

    assert(in && out && key);
    rk = key->rd_key;

    /*
     * map byte array block to cipher state
     * and add initial round key:
     */
    s0 = GETU32(in     ) ^ rk[0];
    s1 = GETU32(in +  4) ^ rk[1];
    s2 = GETU32(in +  8) ^ rk[2];
    s3 = GETU32(in + 12) ^ rk[3];

where GETU32 is defined as:
# define GETU32(p) SWAP(*((u32 *)(p)))

when in points to something other than char or u32, maybe
   u16 in[8];

So IMHO OpenSSL code base is in general incompatible to LTO.

Thanks, that's useful. There's nothing stopping the compiler from making these optimisations without LTO though, so we have a problem.
There's a few options:

Force -fno-strict-aliasing until we know all of these cases are sorted out (suggested in #18315)
Work around things by forcing -fno-lto for now, until the violations are fixed, which minimises the impact at least
Continue to ignore it and pray (which will lead to more cases like #18225).

I think a good compromise is to do 2. and then file bugs for strict aliasing violations as we come across them.

Unfortunately, I don't see fixing strict aliasing problems as being made a high priority for the project's contractors.  I agree with @bernd-edlinger that the code base will be rife with such problems: nobody considered (or even cared about) strict aliasing when the code was first written.

@openssl/otc question: how should we handle this?

IMO we just should build the specific files that are known broken with strict aliasing with -fno-strict-aliasing.

IMO we just should build the specific files that are known broken with strict aliasing with -fno-strict-aliasing.

We should do a lot more than that.  Most of OpenSSL doesn't need -O3: -O2 (or even -Os which is almost -O2) would be enough.  We'd (greatly?) reduce the size of the library without impacting performance.
Per file build options is something we simply don't do currently.

otc: currently we're not going to fix all the strict aliasing and other LTO problems.
Fixes raised in pull requests will be considered.

I think developers should avoid code patterns like free(&stack_var) and free(&heap_pointer->member) even for custom free functions.
Please consider the following reworked patch. bn_free_non_heap is renamed as bn_reset paring with bn_init. They can be used for stack variables and struct members. It is the same for BN_RECP_CTX_init and BN_RECP_CTX_reset.
My project is a static-PIE binary with LTO enabled. There are too many errors if building the entire openssl with LTO enabled. So only libcrypt.a is built. Just a few openssl functions are used, no strict-aliasing problems are populated during linking for now. I could provide patches if more LTO related problems with openssl are encounted later.
diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c
index 31043c8bc2..b0dc7a062b 100644
--- a/crypto/bn/bn_exp.c
+++ b/crypto/bn/bn_exp.c
@@ -298,7 +298,7 @@ int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
     ret = 1;
  err:
     BN_CTX_end(ctx);
-    BN_RECP_CTX_free(&recp);
+    BN_RECP_CTX_reset(&recp);
     bn_check_top(r);
     return ret;
 }
diff --git a/crypto/bn/bn_lib.c b/crypto/bn/bn_lib.c
index eb4a31849b..f311ef5a73 100644
--- a/crypto/bn/bn_lib.c
+++ b/crypto/bn/bn_lib.c
@@ -221,6 +221,12 @@ void BN_clear_free(BIGNUM *a)
     }
 }

+void bn_reset(BIGNUM *a)
+{
+    if (a->d != NULL && !BN_get_flags(a, BN_FLG_STATIC_DATA))
+        bn_free_d(a, 1);
+}
+
 void BN_free(BIGNUM *a)
 {
     if (a == NULL)
diff --git a/crypto/bn/bn_local.h b/crypto/bn/bn_local.h
index 62a969b134..fde22c8b70 100644
--- a/crypto/bn/bn_local.h
+++ b/crypto/bn/bn_local.h
@@ -646,9 +646,11 @@ unsigned __int64 _umul128(unsigned __int64 a, unsigned __int64 b,
 # endif                         /* !BN_LLONG */

 void BN_RECP_CTX_init(BN_RECP_CTX *recp);
+void BN_RECP_CTX_reset(BN_RECP_CTX *recp);
 void BN_MONT_CTX_init(BN_MONT_CTX *ctx);

 void bn_init(BIGNUM *a);
+void bn_reset(BIGNUM *a);
 void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb);
 void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b);
 void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b);
diff --git a/crypto/bn/bn_mont.c b/crypto/bn/bn_mont.c
index 3d4a1bda45..2a28fc2dd9 100644
--- a/crypto/bn/bn_mont.c
+++ b/crypto/bn/bn_mont.c
@@ -253,9 +253,9 @@ void BN_MONT_CTX_free(BN_MONT_CTX *mont)
 {
     if (mont == NULL)
         return;
-    BN_clear_free(&mont->RR);
-    BN_clear_free(&mont->N);
-    BN_clear_free(&mont->Ni);
+    bn_reset(&mont->RR);
+    bn_reset(&mont->N);
+    bn_reset(&mont->Ni);
     if (mont->flags & BN_FLG_MALLOCED)
         OPENSSL_free(mont);
 }
diff --git a/crypto/bn/bn_recp.c b/crypto/bn/bn_recp.c
index e822313341..c0ce5e5dca 100644
--- a/crypto/bn/bn_recp.c
+++ b/crypto/bn/bn_recp.c
@@ -36,12 +36,18 @@ void BN_RECP_CTX_free(BN_RECP_CTX *recp)
 {
     if (recp == NULL)
         return;
-    BN_free(&recp->N);
-    BN_free(&recp->Nr);
+    bn_reset(&recp->N);
+    bn_reset(&recp->Nr);
     if (recp->flags & BN_FLG_MALLOCED)
         OPENSSL_free(recp);
 }

+void BN_RECP_CTX_reset(BN_RECP_CTX *recp)
+{
+    bn_reset(&recp->N);
+    bn_reset(&recp->Nr);
+}
+
 int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
 {
     if (!BN_copy(&(recp->N), d))

I'm not sure why that patch is fixing something. Is BN_FLG_MALLOCED not set correctly, because it's not initialised?
In any case, I think it would be a good idea to create pull request for this.

It's avoiding compiler warning -- the compiler doesn't know when the BN_FLG_MALLOCED flag is clear and think BN_free is freeing non-allocated memory.  It's a false positive but probably worthwhile addressing.
I agree a PR would be good.

otc: currently we're not going to fix all the strict aliasing and other LTO problems.
Fixes raised in pull requests will be considered.

I think given this, we should really be enforcing -fno-strict-aliasing and -fno-lto on compilers which support those arguments then. Would such a PR be worth me making, until we're confident openssl is alias clean?
(See also e.g. https://github.com/openssl/openssl/issues/22854 which mentions LTO.)


can't use pipe in serviceLogs and viewServiceLogs commands

Describe the bug
Trying to use pipe in in config file for serviceLogs and viewServiceLogs but get an error:
No such service: |
To Reproduce
Steps to reproduce the behavior:

Run lazydocker in a docker-compose directory
Go to config file
Set viewServiceLogs to:
{{ .DockerCompose }} logs --no-color {{ .Service.Name }} | sed -u 's/^[^|]*[^ ]* //' | jq -RM '. as $raw | try fromjson catch $raw'
Save and exit (restart lazydocker in case config doesn't update)
Press m on a service
See error

Expected behaviour
For it to pipe through the first part to the next part like in bash. viewContainerLogs works with pipe but for serviceLogs it doesn't
Screenshots

Desktop (please complete the following information):

OS: Linux
Lazydocker Version v0.12

You could run the command in a shell like sh -c "my command". Thoughts?


Lowercase class funcs

As discussed here, class funcs mimicking enum cases have now been lowercased.
Please check if I missed any?
I also cleaned up the changelog a bit.

We could also consider changing .neverStub and friends to exclude the Stub part, making it .never.

Nah, I like neverStub since it's not a member of a Stub type, but rather a provider.

That's what I was wondering. In context .never makes sense, but out of context it doesn't.

We could make a new Stub type within the provider, might be overkill. What do you think?

Yeah, I think that's overkill. Let's just leave it like this for now.


Example app improvements

Improvements to the example app.

Updated demo server
Better best practices

Looks nice :+1:


Fix Lint/RedundantWithObject error on missing argument to *with_object

When a user has missing argument to each_with_object in their code - rubocop fails with
An error occurred while Lint/RedundantWithObject cop was inspecting (filename)
Errors are usually caused by RuboCop bugs.
Please, report your problems to RuboCop's issue tracker.

and undefined method 'children' for nil:NilClass in backtrace.
This PR makes matcher in corresponding cop more permissive thus fixing the error.

Before submitting the PR make sure the following are checked:

[v] Wrote good commit messages.
[n/a] Commit message starts with [Fix #issue-number] (if the related issue exists).
[v] Feature branch is up-to-date with master (if not - rebase it).
[v] Squashed related commits together.
[v] Added tests.
[n/a] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[b] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[v] Run rake default or rake parallel. It executes all tests and RuboCop for itself, and generates the documentation.

Thanks for opening the first time PR.
However Enumerable#each_with_object can not omit one argument.
https://ruby-doc.org/core-2.5.1/Enumerable.html#method-i-each_with_object
The following is an example.
% ruby -e '[1, 2, 3].each_with_object(0) {|i, r| puts "#{i}, #{r}" }'
1, 0
2, 0
3, 0

% ruby -e '[1, 2, 3].each_with_object {|i, r| puts "#{i}, #{r}" }'
Traceback (most recent call last):
        1: from -e:1:in `<main>'
-e:1:in `each_with_object': wrong number of arguments (given 0, expected 1) (ArgumentError)

I knew that this error would potentially occur, but I did not support it because Enumerable#each_with_object usage is incorrect.
It is difficult for me to decide whether RuboCop should support cases where API usage is incorrect.

@koic yes, but this code also produces the error, but is valid ruby:
class Foo
  def each_with_object
    puts 'This is valid code'
  end
end

Foo.new.each_with_object{|a| nil }

Ah, I see! It was a problem to match each_with_object with no arguments, there was a bug in def_node_matcher of this cop.
For example, how about changing your commit c719952 with the following patch?
diff --git a/lib/rubocop/cop/lint/redundant_with_object.rb b/lib/rubocop/cop/lint/redundant_with_object.rb
index 104dd364d..97697e62e 100644
--- a/lib/rubocop/cop/lint/redundant_with_object.rb
+++ b/lib/rubocop/cop/lint/redundant_with_object.rb
@@ -36,7 +36,7 @@ module RuboCop
         def_node_matcher :redundant_with_object?, <<-PATTERN
           (block
             $(send _ {:each_with_object :with_object}
-              ...)
+              _)
             (args
               (arg _))
             ...)
diff --git a/spec/rubocop/cop/lint/redundant_with_object_spec.rb b/spec/rubocop/cop/lint/redundant_with_object_spec.rb
index 0bcd55de0..c6fe3404e 100644
--- a/spec/rubocop/cop/lint/redundant_with_object_spec.rb
+++ b/spec/rubocop/cop/lint/redundant_with_object_spec.rb
@@ -75,16 +75,13 @@ RSpec.describe RuboCop::Cop::Lint::RedundantWithObject do
     expect_no_offenses('ary.each_with_object([]) { |v, o| v; o }')
   end

-  context 'when missing argument to each_with_object' do
-    it 'does not choke' do
+  context 'when missing argument to `each_with_object`' do
+    it 'does not register an offense when block has 2 arguments' do
       expect_no_offenses('ary.each_with_object { |v, o| v; o }')
     end

-    it 'still detects' do
-      expect_offense(<<-RUBY.strip_indent)
-        ary.each_with_object { |v| v }
-            ^^^^^^^^^^^^^^^^ Use `each` instead of `each_with_object`.
-      RUBY
+    it 'does not register an offense when block has 1 argument' do
+      expect_no_offenses('ary.each_with_object { |v| v }')
     end
   end
 end

Also please write this in the Bug fixes section of CHANGELOG.md.
https://github.com/rubocop-hq/rubocop/blob/v0.57.2/CONTRIBUTING.md#changelog-entry-format

This discussion gave me at least two ideas for cops, btw:

discouraging people from using certain names for their own methods (as this would yield in confusing code) - built-ins, etc
checking the invocations of certain "well-known" methods to make sure they weren't passed some incorrect params. Obviously you'd see this problem at runtime (hopefully), but still - an earlier warning would be better.

@koic please see new commit with all proposed changes

@koic done


Add ccache to github actions

This is a first pass. It might be possible to get better performance by saving with a key for the branch name and restoring based on that as a higher priority, with master as a backup.

It's certainly worth a try.
Improving the container pull time might be another area with room for improvement. Keeping the containers minimal (or at least base and nuttx) and possibly moving to the github container registry (or a mirror).

So, that's a big improvement. Everything down to 2 mins, except for the SITL tests, where the build is ~45s, and the slowest part was actually the CodeCov upload (4 mins out of 11 mins)


Allow for (or require) named tuples as children

Functors.jl now returns named tuples as children. It would be nice if we could have the same behavior also here for the default walk style and supported or required for custom walkstyles

We can subtype walk style for a named walk style that always return named tuple with children.


Missing colors in legend when printing the page

Codepen
https://codepen.io/apexcharts/pen/bxzgZJ
Explanation

What is the behavior you expect?

We should see colors in legend when we print the page

What is happening instead?

Colors in legend are not shown

What error message are you getting?

Ok, it's a simple issue caused by printers not printing background colors by default. I "fixed" by adding this CSS rule:
@media print {   .apexcharts-legend-marker:before {     content: "\25A0";     position: absolute;     top: 0;     left: 0;     display: block;     line-height: 12px;     font-size: 24px;   } }
I think it would be correct to use another way to show colors in legend. I'll try to find time to send a pull request.

The legend is drawn with HTML elements. And the div is applied a background color.
I don't have an alternative to draw the legend points using any other method. If you have any suggestions, a PR is welcome :)

The only workaround is currently the one I posted:
@media print {
  .apexcharts-legend-marker:before {
    content: "\25A0";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    line-height: 12px;
    font-size: 24px;
  }
}

I don't know if it's the best solution but it works perfectly and no doubt it's much better than nothing.

The issue is with using "background: [color],"
Instead, use "background-colour: [color]" and it'll fix it (See below).

Apologies, it's actually the "!important" that's making it work for print.
In Legend.js, I replaced
mStyle.background = fillcolor[i];      ---->
elMarker.style.setProperty('background', fillcolor[i], 'important');
Although, this only works in Google Chrome.

@RollingStone85 did work in Firefox 80, thank you! I think this solution shall be elected for implementation in the code maybe.

For anyone else who gets here because it still disappears in some cases, Chrome has background colors disabled by default these days.
Adding this seems to fix it.
@media print {
  .apexcharts-legend-marker {
    -webkit-print-color-adjust: exact;
  }
}

It might be worth setting that in the library though @pierre-alain-b

The only workaround is currently the one I posted:
@media print {
  .apexcharts-legend-marker:before {
    content: "\25A0";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    line-height: 12px;
    font-size: 24px;
  }
}

I don't know if it's the best solution but it works perfectly and no doubt it's much better than nothing.

Cool! I just edited this idea to get closer to the original bullet point.
// inside @media print
.apexcharts-legend-marker:before {
  content: "\25CF";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
}
 .apexcharts-legend-marker {
  padding-right: 1rem;
  border-radius: 0.55rem;
}


Fix typos

I ended up fixing this in the 3.0.x branch knowing that the merge might be difficult due to the new docs in main.  Thanks for the PR!


Migrate the api to use FastAPI instead

We have been discussing in the meeting the migration of the code in physrisk api so that it uses fastapi instead of flask.
@NickKellett has been working on this

I got stuck, but luckily this will be addressed by Joe's PR https://github.com/os-climate/physrisk-api/pull/64

Oops, should have used this issue!


v 1.19.0 freeze editor when  refreshing files

this file tree no  'node_modules' dir
how to fixed this problem,  it  freeze editor every few secends.....

You most likely have a ~/.git folder (%USERPROFILE%\.git on Windows).  Delete it and your issue should be resolved.


Feature : Load data from file

As of now we can only load from https:// urls , I tried http, reading the json file and passing to the method and none of them worked.
It would be great to add reading from file or http urls too.

So looks like the issue is with using source as a file name either relative or absolute. I couldn't make it work.
dfd.read_json("mini.json")
.then(df => {
    console.log(df);
})

df comes as undefined.

read_json didn't support local files before, but this has been fixed in the latest push. If you are using this in a node environment, you can Install the latest push and test it out.


torch version

Hi, there,
Is there a torch version of the code?
Regards

Hi, there is no torch version of the code. However, there exists a torch version of MINERVA (on which our code is based): https://github.com/ty4b112/pytorch_MINERVA

Thank you very much. The rule processor offered is very helpful to me, and I would like to ask if there are other rule learners besides AnyBURL?

Here is a list of rule-based methods for KGs along with the papers and code (if available):
https://github.com/xinguoxia/KGE#rules

Yeah, I know that, thank your response.


Faster remove pending tx once it's confirmed

When tx is confirmed it takes several seconds to remove it in the meantime wallet shows an incorrect balance and shows the same tx twice for some time - as confirmed and pending.

Fixed in 39c0444


Provide a linear backoff option for retry

Fixes #8670

Does not address the updated requirements in #8670.


Clarify CF Registrar account domain transfers

Added a note in /fundamentals/setup/manage-domains/move-domain/#Transfer-domains-using-Cloudflare-registrar
under the main heading pointing users to Requirements and transfer domains out of Cloudflare as this point has created a lot of confusion for users in the community
Fixes #15091

Howdy @flpydsk, thanks for the contribution + flagging that pain point.
Moved it down a touch b/c we don't want a warning obscuring the main purpose of the page (and what's rendered in our SEO meta description).


Hide/Disable widgets or buttons from state

Hey, I have a widget for a song, which is:

On clicking on the 'x' I want some stuff to happen, and a function to set a field of the song 'x_pressed' to be set to true, and the x-button to disappear or get deactivated. Is there a widget with this functionality available? It would surprise me if I was the first one wanting to use this.
Code now:
    let skip = Button::new("✘")
        .on_click(|_: &mut EventCtx, song: &mut SongData, _: &Env| song.skip = true);

I want:
    let skip = Button::new("✘")
        .on_click(|_: &mut EventCtx, song: &mut SongData, _: &Env| {song.skip = true; song.x_pressed = true;})
        .enabled(|_: &mut EventCtx, song: &mut SongData, _: &Env| !song.x_pressed);

Hello, disable widgets are in progress see #1632, if you want to hide a button it should be possible with a ViewSwitcher on the Button and an SizedBox (cf. example view_switcher).

@HoNile thanks alot, using the viewswitcher works nicely for the time being!
    let skip_panel = ViewSwitcher::new(
        |data: &SongData, _env| data.is_last,
        |selector, _data, _env| match selector {
            false => Box::new(
                Button::new("✘")
                    .on_click(|_: &mut EventCtx, song: &mut SongData, _: &Env| song.skip = true),
            ),
            true => Box::new(Flex::column()),
        },
    );

Closing as a duplicate of #746.

@chrisheib the disabled state is merged, a disabled_if WidgetExt method is on the way (#1702).


How are non-contiguous registers managed if read with FC03?

I have a map of non-contiguous registers, I took a superficial look at the code, but I did not found if and how it's managed if the client requests a range that include some of my available registers, but also some of those that are unavailable.
Let say that I choose to provide holding registers 1-10 and 21-30 for a total of 20 holding registers.
What happens if the client sends a FC03 starting at register 5 for 10 consecutive registers?

It is left up to the individual port to implement address validation. nanoMODBUS handles the address validation in the sense that it checks to make sure the request is at least sane in regards to the specification (starting address, quantity).
The standard says that FC03 is for reading contiguous blocks.
If you choose to only provide those registers in a non-contiguous block as described it would be on you to return NMBS_EXCEPTION_ILLEGAL_DATA_ADDRESS when this situation occurs, that is if you intend to meet the MODBUS standard.

The description for error code 02 actually provides a great example that mirrors what you asking exactly.

Yes, I was aware of the error code 02, that was exactly the point.
It just didn't occur to me that I could verify the range in the callback and since I saw the code already did some checks I was wondering.
Thanks.


Default interpreter path for Python isn't working

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.62.3 (user setup)
OS Version: Windows NT x64 10.0.22000

I want to use interpreter, which I chose as Default by myself, but in every .py project VS Code uses Recommended interpreter. I need to choose correct interpreter path every tme, which is very annoying. Default option isn't working.

Steps to Reproduce:

Set Default interpreter path in settings;
Select "Python: choose interpreter" in command pallete;
Check choosed interpreter. It should be Default, but choosed is Recommended.

/extPython


Passing props through Link element

Will enable styles, classNames, and other props to be included on the resulting element.
Currently, I'm unable to pass a class onto Link elements and therefore can't customize the styling of a link.

Please use <Link> as follows:
<Link><a className>hi</a></Link>

I want to deprecate the behavior of <Link> creating an <a> on the fly. It creates too many problems with styling and it just does too much. It should only decorate with the purpose of adding event listeners.

cc @nkzawa

@rauchg
Using the <Link> element as such still leaves the element with a gap in functionality that I was attempting to mend.
My component takes a list of elements and applies a className to them using React.cloneElement.
If my component receives a <Link> component, then there is effectively no way to apply the class to it if I can't pass it down from the highest-order component.
Please reconsider this PR, it's not a huge deviation and has no effect on the current quality of the component's implementation.


Traefik doesn't pick up Marathon pods configuration

Do you want to request a feature or report a bug?
Feature request
What did you do?
I am feeding Traefik conf using the Marathon provider. It works as intended when dealing with single containers but it doesn't seem to understand/pickup the conf when dealing with pods in marathon.
Here is my pod configuration in DCOS/Marathon:
{
  "labels": {
    "traefik.frontend.entryPoints": "http,https",
    "traefik.enable": "true"
  },
  "id": "/test/pod-app-test",
  "version": "2020-06-02T12:34:59.257Z",
  "containers": [
    {
      "name": "some-webapp-test",
      "resources": {
        "cpus": 0.1,
        "mem": 128,
        "disk": 0
      },
      "image": {
        "kind": "DOCKER",
        "id": "nginxdemos/hello"
      }
    },
    {
      "name": "sidecar-container",
      "resources": {
        "cpus": 0.1,
        "mem": 128,
        "disk": 0
      },
      "image": {
        "kind": "DOCKER",
        "id": "alpine"
      },
      "exec": {
        "command": {
          "shell": "sleep 600000000"
        }
      }
    }
  ],
  "networks": [
    {
      "mode": "host"
    }
  ],
  "scaling": {
    "instances": 1,
    "kind": "fixed"
  },
  "scheduling": {
    "placement": {
      "constraints": []
    }
  },
  "executorResources": {
    "cpus": 0.1,
    "mem": 32,
    "disk": 10
  },
  "volumes": [],
  "fetch": []
}

What did you expect to see?
I expected Traefik to create an entrypoint to access those containers from outside the cluster.
In the Traefik source code I see there are some mocks setup for pods testing, but as far as i can see there are no tests of functions to implement that behaviour, also i don't see any trace in the documentation about Marathon pods.
Am I right or am I missing something?
What did you see instead?
Nothing shows up in the traefik dashboard
Output of traefik version: (What version of Traefik are you using?)

I am running Traefik in a docker container on DCOS. The scheduler we use is Marathon, which is also the conf provider for traefik
If applicable, please paste the log output in DEBUG level (--log.level=DEBUG switch)
Don't think it is relevant but i can do it if needed

Thanks for prioritizing this issue, may i ask what P2 means? I ask just because we have a dependancy on it to implement a container security tool that runs as sidecar container.

P2 means, that we will implement it eventually but not with the next release.

Thanks for the explanation :)

Hello,
In the upcoming major version of Traefik (v3), support for the Marathon provider is being dropped.
Due to this change, we won't be able to accept or work on new features related to the Marathon provider.
For this reason, we are closing this issue.


adding icestorm package variant results in assertion failure

Hi, I just tried to add bonding information for the vq100 package of the 1k chip in the icestorm project (see https://github.com/alibabashack/icestorm/tree/1k-vq100). When I try to build arachne-pnr with the resulting chip-db I get the following assertion failure. I'm unsure if my modifications in icestorm are wrong or this is a problem in arachne:
mkdir -p share/arachne-pnr
bin/arachne-pnr -d 1k -c /usr/local/share/icebox/chipdb-1k.txt --write-binary-chipdb share/arachne-pnr/chipdb-1k.bin
seed: 1
device: 1k
read_chipdb /usr/local/share/icebox/chipdb-1k.txt...
arachne-pnr: src/chipdb.cc:852: void ChipDB::finalize(): Assertion `tile_pos_cell[t][pos] == 0' failed.
make: *** [share/arachne-pnr/chipdb-1k.bin] Aborted (core dumped)

I can confirm this is a problem in arachne.  I should have time in the next day or two to fix it.

Thanks for your feedback!
The arachne, icestorm and yosis projects are absolutely amazing. I'm a huge fan. The academic world will at least produce a ton of interesting papers based on it, now that FPGAs can finally unfold their true potential. Thank you very much for your great work.

Thanks for your patience!  Should be fixed:
$ arachne-pnr
seed: 1
device: 1k
read_chipdb +/share/arachne-pnr/chipdb-1k.bin...
  supported packages: tq144, vq100
read_blif <stdin>...
^C

I tried a small example, but it crashed because there is a pin (91) at 6 17 0, but there is no ieren entry for 6 17 0.

Great, thanks. I'm going to investigate and test as soon as my hardware arrives.


[KNOWN BUG] wg-quick will reformat comma separated value

wg-quick save wgX will reformat the configuration file in a weird way.
demo.conf
[Interface]
PrivateKey = abcdE
Address = <IP_ADDRESS>/24,2001:db8::/64
SaveConfig = true  <== I need this to edit configuration on the fly

...

once I run wg-quick save demo, then the configuration will get reformatted into
[Interface]
Address = <IP_ADDRESS>/24
Address = 2001:db8::/64

...

and currently WGDashboard is not handling multiple same key configuration. Fixing it in fix-wg-quick-duplicate-keys

I think one of the amneziawg patches i did over on wiregate resloved this, will have to retrace my steps to find it, will post later.


pull request for e2e test at 12/22/2016 10:56:19

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Problems adding extension with not-implemented-hide

When adding a new WIP/alpha extension that has not-implemented-hide set for the proto CI fails as it is trying to associate the extension with the extension category

cc @nezdolik