DS-173: Add base content files for all components

URL to test: https://deploy-preview-308--wl-hopper.netlify.app/components/installation
All the pages are "Work in progress", except concepts -> Internationalization which is completed. It should be reviewed in this PR
List of changes:

Added Concepts files (with all the headings + a lot of content taken from what we had)
Added Component files (with all the headings)
The aside now list the H3 headers
Fixed a bug that was always showing the mobile menu button in the header.
Fixed the paths of the components to remove the "category" from the url. It's now a lot easier to access the component documentation (  hopper.workleap.com/components/ComponentName ). The users don't have to remember the category to access the doc.
Fixed the sorting that was all nested in the sidebar. The sidebar should not know how to fetch the links and sort them, it should receive the links via props
Renamed the Overview page to "Component List" to better reflect the page's content
Added (WIP) to every page to better reflect the progression of the documentation. We'll remove the WIP once the page is done

Overview page is now broken, the links don't work


Scanner: no support for external DB

We are currently deploying Stackrox using the Helm chart and are trying  to switch to using db.external=true to use a DBaaS PostgreSQL. This works well for the central services pod, but the scanner still deploys it's own database from here.
Expected Outcome
The scanner connects to the configured external database
Observed Outcome
The scanner deploys it's own database Deployment and uses that instead of keeping it's data in the external database.
Further information
We currently can't deploy a production grade Stackrox installation using the provided Helm charts as the database that gets deployed for the scanner is nowhere near production grade.
We believe that our requirements would be met if the chart allowed deploying the scanner with an external DB. If the scanner needs to have an in-cluster database, then it would be nice if there were some additional flags that make it tunable into a production grade deployment (eg. by enforcing TLS connections and running a clustered PostgreSQL).

Hi @hairmare and thanks for the report!
We're currently undergoing bigger changes to the Scanner deployment, so this is subject to change.
I have pinged the Scanner team and asked whether they have plans to support external DBs with the new setup.
We'll update this issue accordingly. Thank you for the patience!

Hey @Maddosaurus
Thanks for the quick update! That is much appreciated.
I ended up realizing that it's an ephemeral database and that the provided Istio rules cover the production requirements i was asking for.
I'm going to go ahead and close this issue since my initial request is moot. Please apologize to the Scanner team if i generated unnecessary noise.
I'll create a new issue down the road once i have a concrete story about any requirements that arise in non Istio cases.


Default curl command returning errors from graphql

Description
The default curl command provided by the explorer is not working for me.
Steps to reproduce

Go to the explorer, make a query (like a query to list all pages).

query {
  allPage {
    path
  }
}

Run it, see that everything works fine
Copy the curl command
Run it from the commandline

curl 'http://<IP_ADDRESS>:8080/___graphql' -H 'Accept-Encoding: gzip, deflate, br' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'DNT: 1' -H 'Origin: http://<IP_ADDRESS>:8080' --data-binary '{"query":"query {\n  allPage {\n    path\n  }\n}"}' --compressed

Expected result
A 200 status and a non-erroring json response
Actual result
Error returned
{"errors":[{"message":"Cannot destructure property `__path` of 'undefined' or 'null'.","stringified":"TypeError: Cannot destructure property `__path` of 'undefined' or 'null'."}]}

Environment
Libs:
- gridsome: 0.6.4

Tools
- curl: 7.58.0

Side note: Is there an easy way to query graphql directly from javascript?  (i.e., some nice function that performs the fetch etc, given a query?)

Have you tried :
allPage { edges { node { path } } }

I'll fix this :)
Gridsome only has a this.$fetch('/page-path') method which will run the query for a specific page because fetching data from the GraphQL server wouldn't work in production. But you can use Axios or just fetch with a query string in the body to retrieve data from other GraphQL servers.

@u12206050 the query shouldn't be an issue, it works in the explorer.
@hjvedvik , right, just given the errors I'm encountering, it's not clear if special headers etc are needed with the fetch, so having a simple wrapper would be nice.  I'll check out axios.


Delete WeakReference to avoid NPE

Because there is a callback and WeakReference objects do not run immediately after creating, WeakReference may lead to throw NPE.

This must be avoided in future☠


fix Issue 14877 - std.net.curl needs PATCH http method

use infilesize for anything but post requests
though apparently curl can use both for non-POST
methods

Issue 14877 – std.net.curl needs PATCH http method

@MartinNowak rebase and it should be good to go

done

Auto-merge toggled on

@MartinNowak rebase and it should be good to go

Again ;)

done


deprecates table.file.max

I would love if instead of deprecating this we actually made it an imperative to compact.

I would love if instead of deprecating this we actually made it an imperative to compact.

I have been thinking about how this could be achieved efficiently.  The way the old code worked for max files was so inefficient.  The compaction ratio efficiently reduces the number of files, but it is hard to reason about the number of files it will produce.
One problem with the compaction ratio is that the total number of files you end up with in a tablet depends on the smallest expected files  For example if really small files are arriving in a tablet, like 1000 bytes. Then you will end up with 3x1K files, 3x3K files, 3x9K files, etc.  So starting at 1K with a compaction ratio of 3, you end up with 20 levels or 60 total files before getting to 1G. So with the current compaction ratio the number of levels and total number files you end up with depends s on the smallest file arriving.
For larger files we want a higher compaction ratio, but maybe we don't want that for smaller files.  This led me to wonder about making the compaction ratio a function of the file size.  Something like the following that more aggressively reduces the number of small files, while still doing logarithmic work.
      // function that given a file size computes a compaction ratio
      Function<Long,Double> ratioFunction = size -> {
       if(size < 1_000) {
            return 1.0;
        } else if(size < 10_000) {
          return 1.25;
        } else if(size < 100_000) {
          return 1.5;
        }else if(size < 1_000_000) {
          return 1.75;
        } else if(size < 10_000_000) {
          return 2.0;
        } else if(size < 100_000_000) {
          return 2.25;
        } else {
          return 3.0;
        }
      };

Tying to figure out if we could generate the above function given a target number of max files and expected max size that accomodates any minimum file size.  So a user does not specify the above function, but one is generated based on desired max files and expected max file size.  If this could be done, it could be implemented as another compaction planner for 2.x.

Math.min(3,1+Math.floor(Math.log(size)/Math.log(10)-2)*.25)

Decided to not deprecate the table.file.max property in favor of #4127.  However not going to close this PR for now, the changes to make all the test stop using the table.file.max prop in this PR still seem like good changes to make.  So plan to make this no longer deprecate the prop, but still remove the unnecessary use of the prop in all of the test.

Decided to not deprecate the table.file.max property in favor of #4127. However not going to close this PR for now, the changes to make all the test stop using the table.file.max prop in this PR still seem like good changes to make. So plan to make this no longer deprecate the prop, but still remove the unnecessary use of the prop in all of the test.

The description update to document how it works with the default strategy would be good to keep from this as well, if that's not already done as part of 4127.


[1.9.x] Allocation profiler improvements [6732]

Backport of #764

Build status:

Linux
Mac
Windows
Performance


doc: readme

update the code style, make it easy to read
update to ES6
change from != to !==

@Hongbo-Miao,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

Readme has been updated since this PR.


Disabling dedicated search causes bad links

With dedicated search disabled, clicking the following elements will give a 404

Will be fixed as part of one of my next PRs.

JIRA issue - https://issues.redhat.com/browse/TC-679


Please merge this PR

Fix crash due to IKTAddSuperImplementationToClass being stripped
This package uses InterposeKit code, after archive packaging it will crash because of the above mentioned problem, please merge this PR manually to fix this problem

Implemented the fix provided by Thomvis. Thanks!


Fix doc building warnings for recent plugin docs

This PR fixed some warnings seen with recent plugins doc update (certifier and traffic dump).
@d2r

Merged to master. Thanks @dyrock.


Include username in Reddit extra_data

Currently, the Reddit username is used to generate a username when creating a new user, but for existing users it doesn't get stored in the database. This fix adds the username to extra_data, aliasing the Reddit attribute name to the extra_data attribute username, thus letting you more reliably know your users' Reddit usernames.

Thanks!


Fix header names in README distributed tracing section

Fixes the header names used in the distributed tracing in README.md.
(Aside from these ones being used in the code, they were also taken from https://github.com/DataDog/dd-trace-rb/blob/master/docs/GettingStarted.md#distributed-tracing)

Coverage remained the same at 69.231% when pulling bfdee1b1edd54e111a68a95fd8ec4e476ea08021 on aspett:fix-readme into caec714af3d6962e6ffed6f8d561fa6e6f28c598 on zachdaniel:master.


GeoData Listener Tests

Right now I get the following test failure:
GeoQueryTest.dataChanged:145
  expected:<[
    DATA_MOVED(1,37.000100,-122.000000),
    DATA_CHANGED(1,37.000100,-122.000000),
    DATA_MOVED(4,37.000200,-122.000000),
    DATA_CHANGED(4,37.000200,-122.000000),
    DATA_CHANGED(2,37.000100,-122.000100)]>

  but was:<[
    DATA_MOVED(1,37.000100,-122.000000),
    DATA_CHANGED(1,37.000100,-122.000000),
    DATA_MOVED(4,37.000200,-122.000000),
    DATA_CHANGED(4,37.000200,-122.000000),
    DATA_CHANGED(1,37.000100,-122.000000), <-- ???
    DATA_CHANGED(4,37.000200,-122.000000), <-- ???
    DATA_CHANGED(2,37.000100,-122.000100)]>

I am getting an extra changed event for each of the moved locations.  TBD why.

Note: the earlier test failures a result of this bug in the Java SDK
https://github.com/firebase/firebase-admin-java/issues/116
Since it is fixed on Android and is not that harmful of a bug anyway, going to move forward here.


"Standard Load Balancer" VS "Load Balancer Standard"

Might be a silly request here, but the two different terms as titled may bring confusion to customers, especially being translated to other languages like Simplified Chinese. Can we use "Standard Load Balancer" in all places? Thanks a lot!

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

ID: 09325ff2-5a0a-0aff-e3cb-d1c0585a6842
Version Independent ID: f370d680-5d1d-99a9-e350-7d9551d24ce6
Content: Azure Standard Load Balancer overview
Content Source: articles/load-balancer/load-balancer-standard-overview.md
Service: load-balancer
GitHub Login: @KumudD
Microsoft Alias: kumud

@forester123 Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.


Add Migration to Increase uploader_information_batch_signature Column Size

Closes: https://github.com/eu-federation-gateway-service/efgs-federation-gateway/issues/276
We increase the column size to 8000 characters, to circumvent the issues of longer RSA keys in the certificates used for signing the uploaded batches. See the linked issue for further details.

@ubamrein , can you please update your branch so that we can merge this PR?


#20 Create GitHub Actions automation

This PR adds GitHub actions automation to address issue #20. The stages all pass excluding rubocop, but the complaints it lists are legitimate. I did not address them as I am not a ruby expert, but I would accept guidance and add a revision, or we can consider this working and publish a follow-up PR to address the rubocop concerns.

I'll try taking a look at this tomorrow. For the balance of complaints rubocop has do you want to run:
rubocop --auto-gen-config

and commit the result?
This should create a todo config file and allow CI to pass.

Thanks, I added the todo file in the latest commit.


SSL/Auth Termination for Kafka

Title: Enable separating Auth from Application logic.
Description:
When writing application code, it should not matter, how to connect to Kafka. Everything SASL/SSL should be shifted to be injected/terminated via Envoy.
Question is whether to do this in a separate Filter or extend the Mesh Filter.

cc @adamkotwasinski

From looking into the source, it seems like using SSL + librdkafka is not compositional/layerable. Thus I would expect the Filter then to have no way of passing API Message along to other Filters.
graph TD;
  filter(KafkaSSLTerminatorFilter);
  terminator(Terminator);
  sslconfig(SSLConfig);
  lib(librdkafka)
  filter --> terminator;
  sslconfig -.-> terminator;
  terminator --rd_kafka_transport_connected--> lib;
  terminator --rd_kafka_send--> lib;
  lib --rd_kafka_recv--> terminator;

Re SSL:
I guess we already have SSL-termination out of the box due to transport socket configured with DownstreamTlsContext?
As of TLS origination, yeah, librdkafka would need to be compiled with SSL and so on, or the Envoy UpstreamTlsContext would need to be made to work with lib "somehow" (ouch) or replace librdkafka with Envoy's connectivity model (ouch as well, that's why I picked librd due to limited time).
Re SASL:
Main point would be hooking into https://kafka.apache.org/31/protocol.html#sasl_handshake
Given it's a simple request-response at the startup of connection (after metadata), we could handle that even in a broker-filter and then just re-sequence (minus 1) all the following traffic (as per If authentication succeeds, subsequent packets are handled as Kafka API requests.).

I guess we already have TLS-termination out of the box due to transport socket configured with DownstreamTlsContext?
As of TLS-origination, yeah, librdkafka would need to be compiled with SSL and so on (we still go the non-Envoy way), or the Envoy UpstreamTlsContext would need to be made to work with lib "somehow" (ouch) or replace librdkafka with Envoy's connectivity model (ouch as well, that's why I picked librd due to limited time).

Not sure I get the point you are making.
Would it be possible to do a TLS handshake as soon as a TCP connection to a Broker gets opened? When we terminate TLS in Envoy then shouldn't the TLS handling be of no consequence for the Kafka client?

I am not familiar with Kafka protocol, but if it starts with cleartext and TLS handshake follows within the same TCP session, you need StartTLS transport socket and code in Kafka filter to control the StartTLS.


Question: why doesn't my spec work?

See https://build.opensuse.org/package/show/hardware:razer/nodejs-less. The spec works on openSUSE_Leap_42.3 (which apparently doesn't have this project included) and doesn't work on openSUSE_Tumbleweed (which apparently includes this project). Any idea how I can fix this error because I need the lessc compiler for another package.

You can try my packaged version from https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/lessc

@illuusio I have tried branching your package but without changes the package doesn't build either. See https://build.opensuse.org/package/show/hardware:razer/lessc

You still need newer nodejs-packaging and rubygem-node2rpm, rubygem-node_semver to make it build also aggregate some packages from marguerite-repos.
Not very easy task but just but mine repo to meta-data  and also devel:languages:ruby. It should do the trick.
If you not famirial with that plese see: https://build.opensuse.org/project/meta/home:illuusio:nodejs-bundle for example.

Isn't there an easier way to just get lessc on Tumbleweed? :/ I just need that package as a build requirement for another one so I don't care at all about how badly it is done as long as it works.

Aggregate rpm from my repo

If you just want less in Factory, you can manually copy the files needed in specfile to make a package and submit.
But if you want an elegant way to package nodejs, try my tool. It may be the only way to properly handle node dependencies.
The one in Factory was the old one (the one didn’t split to node_semver/rpmspec/node2rpm), it wasn’t working sometimes and is unmaintained.
I didn’t update that package because someone in SUSE don’t like the bundle way and want to invent another way to separately package node modules. So in short, mine is the working way but people don’t like my theory, so I am still waiting for my competitors:-)

see nodejs-emojione in Factory to find the manual way without nodejs-packaging.

I don't care when it's easy 💃 after that.. I don't know.. Would they like to have some mega packager with all node packages separated? Npm does same as this tool.

They think a bot can do the maintenance (update/review) jobs, and they want another bot to do the separate packaging. I think they dont want the mega packager with thousands of packages either.
We are intelligent human beings, and we met so many troubles even packaging bundlely. Personally I think it is a mission impossible.
So when I think I am ready, I will update nodejs-packaging in Factory anyway

I've used this now: https://build.opensuse.org/package/rdiff/hardware:razer/polychromatic?linkrev=base&rev=17 . Thanks :) It's really the opposite of beautiful but it's working.

I see.. not very beatifull version. I think you would be more happy with aggregating because every time I update less it would be blowing up to you..

as you had found a way out, I close this now


docs(server): add a warning to Listening::close() in order to reflect #338

Hello @seanmonstar
I'd like to update the documentation, while #338 gets fixed. What do you think?


skillCheck() is too procedural, move formatting to a function on the skill object

Switch statements can be an anti-pattern, and are annoying to read.
Swapping to a bunch of if else if etc. is just as bad...
Consider how skillCheck() is currently implemented, and in the context of issue #25, consider how an (eventual) change in tooltip generation could be paired with an enhancement to the new skill objects to remove a significant amount of code (formatting-functions, skill-check, etc.)

In the current context of my other work, this is low priority, and I'd rather get skillCheck() and passiveCheck() covered with tests and then sit on these ideas for awhile once #28 is complete


Attachments icon - Support chat in TFConnect App.

Android version: 13.
TFConnect App version: 3.9.0 - 176
When clicking on the attachments icon in TFConnect App, the app closes entirely.

https://github.com/threefoldtech/threefold_connect/assets/105203696/13cfb54b-05b3-4a92-ada9-1ff50522675f

Tested by a 2nd user: Android version 14

TFConnect App version: 3.9.0 - 176

Closing this; since https://github.com/threefoldtech/threefold_connect/issues/583 has already been created.


update releases on github ?

Hey thank you for making great software !
don't forget to update the releases on github when you have a moment (it still says the latest is 0.8.0).

Done!


Switch no new vendor directory layout

Fixes #113

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "vendor_layout" git@github.com:marcosnils/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "vendor_layout" git@github.com:marcosnils/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "vendor_layout" git@github.com:marcosnils/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "vendor_layout" git@github.com:marcosnils/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

I've signed my commit but seems like Gordon didn't like it.

There we go...

Please add a warning if the installed go version is < 1.5.
Users will just get a generic cannot find package ... otherwise.

Sure,
Where should I add the warning?. In the Makefile or just mention it in the
Readme.
sent from mobile
On Mar 16, 2016 11:59 AM, "Kenfe-Mickaël Laventure" <
<EMAIL_ADDRESS>wrote:

Please add a warning if the installed go version is < 1.5.
Users will just get a generic cannot find package ... otherwise.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/docker/containerd/pull/132#issuecomment-197369676

Both? :innocent:

@mlaventure @crosbymichael  PTAL.

LGTM


Fix sphinx mro warnings

Root cause: clustering_fit() and check_isMRIparam() are methods not classes.
closes #252

Noticed a few other warnings so might as well fix them also. Converting to draft in the meantime.

All warnings gone.


[ID] User needs a way to hide Rejected Grants on the Browse Grants and My Grants tabs.

From Alaska (originally tracked in #17):

if I finished using reviewing a grant, I need a way to close it out and mark it as "done."

If we automatically hide all rejected grants, then there will be no way for the user to undo that action.
So, instead, let's piggyback off of #53 , and add a fourth filter that allows users to filter by review status. This way, they can choose for themselves what they wish to view.

The depicted state should be the default state (DO show interesting, DON'T show rejected).
Just like all the other filters, this filter should be visible both on the "My Grants" and "Browse Grants" tabs.

@mhuang-usdr Let me know what you think!

Sg! Is the idea that the same filters will be available in both Grants and
My Grants?
On Tue, Apr 12, 2022 at 2:04 PM Raphael Lee @.***>
wrote:

@mhuang-usdr https://github.com/mhuang-usdr Let me know what you think!
—
Reply to this email directly, view it on GitHub
https://github.com/usdigitalresponse/usdr-gost/issues/50#issuecomment-1097214950,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVX62EIWRNJXH7BJ7EX4CV3VEXQMFANCNFSM5SWZKQAQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

This should be completed after #53

For now, just implement "Marked as Interested"

@CGowan44 I had a thought. The Interested and Rejected filters make sense under the Grants tab. But as you pointed out, it makes less sense under the My Grants tab.
So what if instead of doing the drop down filter for the My Grants tab, we add a sub-tab for Rejected alongside Interested and Assigned?


Fix name generation scoping

There are a number of small oddities in the emitter regarding name generation for temp variables and private names. Despite using reservedNames/reservedPrivateNames to reserve names permanently within a scope, we weren't checking all reservations in the respective stacks. We also weren't consistent about name generation in a few places, so I've combined the private and temp variable name scopes so that we enter and exit both consistently.
I also removed a place where we exited and then reentered a private name generation scope when visiting a computed property name since both temp variables and private names should be generated immediately as we enter a declaration, not on-demand as we descend into and out of computed property names.
Fixes #57897

@typescript-bot perf test this faster

@rbuckton @andrewbranch this seems to be a regression in 5.4.x, and I've unfortunately hit this after upgrading a large codebase to 5.4.x. Is there any chance we can backport this fix, so that I don't have to revert the upgrade? I see the fix is on 5.5.x but that's not released yet.

TS 5.5 is coming out this week, so I wouldn't think we'd be patching 5.4 anymore.

We have 5.5+ million lines of typescript code so it will probably take us a couple of weeks to get to 5.5 - if there is any chance this can be backported it would be a huge help.
No worries if not though!


Progress bar on Apply-SPOProvisioningTemplate command

When running the Apply-SPOProvisioningTemplate command the progress bar doesn't disappear. This is a nice feature when things fail half way through during one of the steps. However when all steps completed successfully the progress bar should disappear ( like Write-Progress -Completed ).
This becomes mainly an issue when multiple sites are created using the Apply-SPOProvisioningTemplate command.

I'm unable to reproduce this. If you still experience this issue, please do not hesitate to reopen this issue.


"hudson.remoting.ChannelClosedException: channel is already closed" when starting a test on Jenkins

Seen in several tests in this PR test run:
java.io.IOException: remote file operation failed: /home/jenkins/workspace/gRPC_pull_requests@3/config/dbg/language/c/platform/linux at hudson.remoting.Channel@28b5d426:grpc-jenkins-worker7: hudson.remoting.ChannelClosedException: channel is already closed
	at hudson.FilePath.act(FilePath.java:987)
	at hudson.FilePath.act(FilePath.java:969)
	at hudson.FilePath.mkdirs(FilePath.java:1152)
	at hudson.plugins.git.GitSCM.createClient(GitSCM.java:695)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1037)
	at hudson.scm.SCM.checkout(SCM.java:485)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1277)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
	at hudson.model.Run.execute(Run.java:1741)
	at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
	at hudson.model.ResourceController.execute(ResourceController.java:98)
	at hudson.model.Executor.run(Executor.java:408)
Caused by: hudson.remoting.ChannelClosedException: channel is already closed
	at hudson.remoting.Channel.send(Channel.java:575)
	at hudson.remoting.Request.call(Request.java:130)
	at hudson.remoting.Channel.call(Channel.java:777)
	at hudson.FilePath.act(FilePath.java:980)
	... 13 more
Caused by: java.io.IOException
	at hudson.remoting.Channel.close(Channel.java:1160)
	at hudson.slaves.ChannelPinger$1.onDead(ChannelPinger.java:118)
	at hudson.remoting.PingThread.ping(PingThread.java:126)
	at hudson.remoting.PingThread.run(PingThread.java:85)
Caused by: java.util.concurrent.TimeoutException: Ping started at<PHONE_NUMBER>400 hasn't completed by<PHONE_NUMBER>401
	... 2 more

@nicolasnoble @murgatroid99 is this still relevant?

I don't remember seeing it recently.

Alright, let's close that one.

Still very much alive: https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5642906408845312

Same with PR: https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5759180434571264.

@adelez is this issue still relevant?

Just saw this again: https://grpc-testing.appspot.com/job/gRPC_master_linux/2168/console


[Nitpick/Suggestion] Corpse text

1: For the regular corpse, the death type is properly capitalized as "Unknown", while all other bodies are all lowercase. ("head burst", "coil", "webbed")
2: The name is lowercase "unknown". I'd prefer it be capitalized. (I also think it'd be cool if name was "Employee 13-4496" (random #s) instead of "Unknown")
3: The death types are inconsistent with actual death types. According to the wiki, "webbed" and "coil" are "Mauling" and "head burst" is "Unknown". Maybe the default body's unknown death could be "Inconclusive"?
No pressure to "fix" any of this. I'm just being nitpicky.

These are some nice ideas, for some reason I keep typing something wrong with the word unknown.
Ill be sure to put the renaming bodies to there proper name in my backlog.
For the random name instead of "Unknown", is there a reason why you said "Employee 13-4496"?
I understand the employee part and the random numbers seems to be cool.
Yet I don't understand the specific reason for the numbering like that in the scope of Lethal Company.
Because I have not seen any employee numbered like that, unless I have missed some lore or gameplay.
Thank you for the feedback.

I'm not aware of any official employee naming/numbering convention so I just made one up.
If there is one, I'd use that.

I have added the feedback for naming the deaths correctly using the Lethal Company wiki as reference.
Sadly I won't be changing the id names of the bodies.
This is because there is already a lot happening when spawning a body and adding this specific feature would make it very difficult to save, since the body already saves the suit.


No faces found

face_recognition version: latest
Python version: 3.4
Operating System: macos sierra

Description
The picture was taken with iphone8,
Library says 'no face found' on this image.
Dimensions: 2320 × 3088px

But when I capture a screenshot on mac, this works well.
Dimensions: 908x1218px

What I Did
face_recognition ./known/ ./unknown/group.jpg
WARNING: No faces found in ./known/yigit3.jpg. Ignoring file.

Is it possible to consider ExifTags and rotate the picture if required in the library?

You have to implement EXIF rotation yourself. If you Google, there are some python examples on stack overflow that work fine. I'd like to create a simple EXIF rotation python library sometime and add that feature here, but I haven't had time yet.

@yigitbacakoglu Hey I'm developing an iOS App and a Backend server that use Django and face_recognition. So yesterday I realized about this problem with iOS cameras in general and I came with a solution about processing the Image in my iOS App before send it to server. More info here: https://stackoverflow.com/questions/10600613/ios-image-orientation-has-strange-behavior. So yes, it's an issue about iOS Cameras and you have to pre-process the image before pass it to face_recognition, but that's not an issue of face_recognition itself.
In swift I applied this method over the UIImage before send it to my backend and now It works as expected.
`extension UIImage {
func correctlyOrientedImage() -> UIImage {
if self.imageOrientation == .up {
return self
}
    UIGraphicsBeginImageContextWithOptions(size, false, scale)
    draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
    let normalizedImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return normalizedImage ?? self
}

}`

I just had this problem too. I took a few images from my google photos without thinking about this because google photos (and a lot of image displaying tools) auto rotate the images based on the exif, so you don't see the rotation.
I understand it takes a bit of time to add this to the library, but could you just add a notice in the README for now ?
So people don't get confused about getting poor results because of this problem.

@rom1504 Thanks, that's a good idea. I'll do that.

I added it here: https://github.com/ageitgey/face_recognition/wiki/Common-Errors

for information, here is a way to rotate your images in python before using face_recognition https://github.com/hooram/ownphotos/blob/master/api/models.py#L245

I also notice that the package is bad at detecting rotated faces, while can be very common in real life. Is this because no rotation augmentation added during training?


Application does not start with wavefront.properties token set

When I follow the instructions, I get following error:
Description:
apiToken must be set whenever publishing directly to the Wavefront API.
Steps:
Create a new project on start.spring.io. (version 2.2.6, Java 8, Maven build)
Select actuator and web as dependencies.
clone, build and add wavefront starter to the pom.xml:

com.wavefront
wavefront-spring-boot-starter
2.0.0-SNAPSHOT

Add wavefront.properties into src/main/resources folder:
url=https://longboard.wavefront.com
token=SOME KEY
application.name=MetricsDemo
When I remove actuator from the dependencies, the application starts. However, I do not see the metrics in my dashboard. I assume, I should find them under MetricsDemo as prefix?
2020-03-30 21:24:59.321  WARN 78624 --- [           main] c.w.s.WavefrontConfigConditional         : Cannot auto-negotiate Wavefront credentials, cannot configure Wavefront Observability for Spring Boot
2020-03-30 21:24:59.526  INFO 78624 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.opentracing.contrib.spring.cloud.async.DefaultAsyncAutoConfiguration$DefaultTracedAsyncConfigurerSupport' of type [io.opentracing.contrib.spring.cloud.async.DefaultAsyncAutoConfiguration$DefaultTracedAsyncConfigurerSupport$$EnhancerBySpringCGLIB$$8f74a0f9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2020-03-30 21:24:59.594  INFO 78624 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'io.opentracing.contrib.spring.cloud.async.DefaultAsyncAutoConfiguration' of type [io.opentracing.contrib.spring.cloud.async.DefaultAsyncAutoConfiguration$$EnhancerBySpringCGLIB$$90927196] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

We are still in a preview mode right now pending major changes to spring boot and micrometer, it won't even have a wavefront.properties since everything would be in application.properties (with additional fields). Stay tuned!

@jpasquali thanks for trying the starter Joachim. We've reviewed the starter and this work landed on master today. Feel free to give it a spin again and let us know if you find any issues.
As @panghy indicated, if you already have an account, you can just configure it the same way you do with Spring Boot (i.e. with the regular properties in application.properties). Application identity can be specified with configuration keys of wavefront.application.* namespace.
Thanks again!


Search potentially not working properly

Context: There are two records with "HadEX" in the title.
Problem: When I search "HadEX" though only one record ("HadEX2...") shows up.
Expected behaviour: When searching "HadEX", both the "HadEX2..." and "HadEX3..." records should show up. Oddly, if you search "HadEX3" then the "HadEX3" record does show, indicating it is in the database.

Not much I can do with that I think it's because it searches for the full word by default you can use the "?" wildcard: "HadEX?" will include both. It is covered in the search guide page:
https://oneclimate.acdguide.cloud.edu.au/help/search


Update quay.io/argoprojlabs/argocd-operator Docker tag to v0.8.0

This PR contains the following updates:

Package
Update
Change

quay.io/argoprojlabs/argocd-operator
minor
v0.7.0 -> v0.8.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Note: we currently can't upgrade to v0.8.0, since there's no matching GitHub tag/release for the container image tag to download manifests.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


Convert back to thin

Pl0x merge meow

Changes Unknown when pulling fd89f3687ff21d5bd5c792fb2df867936340330f on convert-back-to-thin into ** on development**.


[IMPROVEMENT] Add option to shift vertices rather than node when anchoring.

THIS PROJECT IS IN DEVELOPMENT MODE. Any pull requests should merge to branch dev, otherwise will be rejected immediately.
Describe your changes
Refer to discussion #998
This change adds an extra parameter to the setAnchorPoint method in the sprite class, useVertexAnchor parameter which allows anchor points to apply at vertex level, not node level when set to true.
when useVertexAnchor is set to false i.e:

then the anchor will move the node itself making the sprite in the center of the scene (previously how it worked)

when useVertexAnchor is set to true i.e:

then the anchor will shift the sprite's vertices which allows us to add a child in the center of that sprite

you can also scale/rotate sprites without parenting them to another node because they're not being shifted at the node but rather at the vertex level, This change also makes it flexible to build UI elements while maintaining backward compatibility.
Checklist before requesting a review

[x] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[x] I have checked readme and add important infos to this PR (if it needed).
[ ] An improved cpp-test/lua-test is not needed (explain why not, thanks).

As I mentioned in the discussion regarding this issue, what happens when with things like getWorldPosition() and touch related code when setting the last parameter to true? Do the coordinates that are calculated match up with the visual position of the sprite?
Thorough test cases should be added for this feature.

That's why I haven't marked the thorough tests check box

That's why I haven't marked the thorough tests check box

In that case, it is best not to create a PR until the code is entire code is ready in a separate branch, otherwise each commit will keep triggering the CI build and any other notifications related to changes to the PR.

things like getWorldPosition() and touch related code when setting the last parameter to true? Do the coordinates that are calculated match up with the visual position of the sprite?

this only applies to Sprite objects and not any other object like MenuItemImage so the touch-related stuff is good also I checked that UI objects use custom rendering and do not inherit the Sprite class directly.
also the getWorldPosition() is good too because if you set that value to true you should expect the world position to be the position of the node even when the vertices are shifted.

this only applies to Sprite objects and not any other object like MenuItemImage so the touch-related stuff is good also I checked that UI objects use custom rendering and do not inherit the Sprite class directly.

I don't understand what you mean by that, or what relevance menu items have to it.  Any kind of node, Sprite or not, can have a touch event handler connected to it, so when that is done, does it still work as intended?

Sprites as far as I know do not have touch handlers is there an example for it? or do you mean anything that inherits Widget

Sorry, I'm not being clear.  UI elements have nothing to do with this at all, and not relevant to this in any way.  A Sprite, or any other sub-class of Node, can have a touch event handler connected to it so it can receive touch input.  Touch input is not only for UI elements.
For example:
auto* listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [this](Touch* touch, Event* event) {
    const auto location = touch->getLocation();
    // handle it here
    return true;
};

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, targetNode);

targetNode can be anything; a Node, a Sprite etc etc.

are you sure the touch handler works for nodes? because wherever I click it registers a press is there a way to check if it hit the sprite?
https://user-images.githubusercontent.com/45469625/210002350-250d2f26-fa85-4123-afa4-18477f6ec87b.mp4

are you sure the touch handler works for nodes? because wherever I click it registers a press is there a way to check if it hit the sprite?

This is used extensively in my released games using Cocos2d-x, and by extension, this engine, so yes, it does work.
By default all touch is passed through to the parent node, and you need to ensure you return true in the onTouchBegan() if the touch coordinate falls within the coordinates of the node it's connected to.
Call this on it to avoid passing input to anything behind that node:
listener->setSwallowTouches(true);

Thanks! I really didn't know this existed in the engine I was just using hitTest rather than touch handlers, Also the touch handling worked but the hit area was shifted by half its size I had to modify the code like this to fix it:
    auto* listener = EventListenerTouchOneByOne::create();
    listener->onTouchBegan = [this](Touch* touch, Event* event) {
        auto target = static_cast<Sprite*>(event->getCurrentTarget());

        Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());
        Size s = target->getContentSize();
        Rect rect = Rect(s.x * -0.5, s.y * -0.5, s.width, s.height);

        if (rect.containsPoint(locationInNode))
        {
            log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);

            return true;
        }
        return false;
    };

    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, sprite);

Also the touch handling worked but the hit area was shifted by half its size I had to modify the code like this to fix it:

Do you mean you needed to do that when setting the last parameter of setAnchorPoint to true, so the visual position of the sprite is not at its true coordinates?

I came to the conclusion that a function like getContentSize() should return a rect for content size rather than vec2 to specify the position of the anchor and its size.

Also the touch handling worked but the hit area was shifted by half its size I had to modify the code like this to fix it:

Do you mean you needed to do that when setting the last parameter of setAnchorPoint to true, so the visual position of the sprite is not at its true coordinates?

yes absolutely

I came to the conclusion that a function like getContentSize() should return a rect for content size rather than vec2 to specify the position of the anchor and its size.

The getContentSize method has a very specific meaning, and changing it would not make any sense at all.  Size of a 2D object is width and height, and nothing else; position and anchor point has nothing to do with it.
If anything you should be using getBoundingBox(), which does return a Rect.  If you need to read the anchor point of an object, then use getAnchorPoint, as it's there for that reason.

nice! this can work out for this change:
auto* listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [this](Touch* touch, Event* event) {
    auto target = static_cast<Sprite*>(event->getCurrentTarget());

    Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());
    Size s = target->getContentSize();
    Size a = target->getAnchorPoint() * s;
    Rect rect = Rect(-a.x, -a.y, s.width, s.height);

    if (rect.containsPoint(locationInNode))
    {
        log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);

        return true;
    }
    return false;
};

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, sprite);

I understand what you're trying to do here, but I genuinely feel that this is not the correct way to go about it.
If you have a specific need for sprites that are centered in their parent at position 0,0, then the most appropriate way is to sub-class it and add all functionality in there via overrides of the relevant methods.  This would avoid messing with the Sprite class.  You would no longer require changing the signature of setAnchorPoint() or modify the calculations in Sprite::setVertexCoords(), since all of that would be in the overrides within the sub-class.
For instance, create a new class named CenteredSprite, which inherits from Sprite, and override the required methods.  This way, a developer can explicitly use a node of this type when it is required.  The added benefit to this is that it would automatically return correct values for positioning, which, for example, would avoid mucking about with the touch coordinates, as you've shown in the post above.

good idea! and I can create a bounding box function specific to that class right?

good idea! and I can create a bounding box function specific to that class right?

Nothing is stopping you from changing functionality in the sub-class, since it does not affect anything but itself.  It's the same way with the Widget and other sub-classes; they were created for specific reasons.  Do not be afraid of creating new sub-classes for things that work differently.

is this how you create a create method inside a class that inherits sprite?
AnchoredSprite* AnchoredSprite::create(std::string_view filename)
{
    return (AnchoredSprite*)Sprite::create(filename);
}

is this how you create a create method inside a class that inherits sprite?
AnchoredSprite* AnchoredSprite::create(std::string_view filename)
{
    return (AnchoredSprite*)Sprite::create(filename);
}

No, that is absolutely not the way.   In your sample above you're creating a base class into a subclass, which is not correct C++, and is going to result in an error.  You cannot typecast a base class into a subclass, and it doesn't even make sense to do so, but you can you can however cast a sub-class to a base class, although it's not relevant for what you're trying to do here.
All you need to do is look at Sprite::create to see what you need. They are static methods that you need to copy into your new class, and change all the types to your new AnchoredSprite.
Also, commits like f4f2287 should not be done.  Do not change formatting, since it's been explicitly done that way by the formatting settings included with the source in the .editorconfig file.  Do not override these settings and force them to your own.  You should set your Visual Studio to read the correct settings from .editorconfig for that source tree.

As an example of a create method for your new class:
AnchoredSprite* AnchoredSprite::createWithTexture(Texture2D* texture)
{
    AnchoredSprite* sprite = new AnchoredSprite();
    if (sprite->initWithTexture(texture))
    {
        sprite->autorelease();
        return sprite;
    }
    AX_SAFE_DELETE(sprite);
    return nullptr;
}

Once again, copy all the createXXXXXX methods and re-implement them, and do not call the Sprite::createXXXXX from AnchoredSprite, because they're creating instances of the wrong type of class.

Also, commits like f4f2287 should not be done. Do not change formatting, since it's been explicitly done that way by the formatting settings included with the source in the .editorconfig file. Do not override these settings and force them to your own. You should set your Visual Studio to read the correct settings from .editorconfig for that source tree.

oh sorry, I thought it was my editor that made these changes 😅

@DelinWorks should this PR not better chancel and an own sub class written?

yeah true this pr should close.


Added html file to friends

Added my own HTML file to the Friends folder.

Your pull request seems good, but must be checked by a human maintainer for the following reason(s):

This contains potentially hazardous tags that need manual review.

Please be patient until a maintainer has time to look over your contribution.
This is an automated response, beep boop.
if you think there is a mistake, contact a maintainer

deddad0c97d6d76c4da89615a4da7957819cac75


Player stuck on loading after quality switch - HLS protocol

Description
First of all thank you for the work done guys !
Here, the video player is blocked after the quality change (either with 360p or 480p) on the 1st segment of the video.
Nothing comes up in the logs or as errors in the VHS representations part: the player is just stucked.
Have you had this problem before ? How to work around the problem ? (reset buffer ? ...)
Reduced test case
https://perso.mediatech.fr/aa/
Steps to reproduce

Click on the button play
In the first eight second switch to the 360p quality. It is normally enough to stuck the player. Otherwise you can play with the 360p and 480p quality during the first eight second and the player will be stuck too.
The debug mode is enabled with the provided test case: https://perso.mediatech.fr/aa/.

Errors
No errors.
What version of Video.js are you using?
8.0.4 (but reproductibled with the version 7)
Video.js plugins used.
http-source-selector, contrib-quality-levels
What browser(s) including version(s) does this occur with?
Chrome 108
What OS(es) and version(s) does this occur with?
Linux, Windows

when play a lot time change quality is ok,you could update 8.3.0,immediately change quality work ok


Feature: Income Breakdown Report

Added a Sankey Report (see #1578) that shows how your income is broken down per category
Example (Categories and payees blanked out since it is my real budget):

All your incoming transactions get linked to "Income", then "Income" get's linked to "Expense" just so you get an immediate view on the difference.
The "Expense" is then broken down to your master categories which are then broken down per sub category.

Hey @Sonaryr this is awesome! It's a pretty requested feature so I'm excited to see it coming to life. I checked out this branch on my machine and with my budget (many payees, many categories). The graph ends up scaled down quite a bit if I look at all dates. I'm wondering if there's anything we can do to get rid of the massive blue section between "Income" and "Expense?
I'm willing to merge this in as-is and try to get some feedback on it but either way. The graph is just really hard to reason about right now in a large budget.
Another option is to see if Highcharts supports any sort of zooming in on a graph, that would help too. When I get home from work, I'll try to remember to take a screenshot so you can see what exactly I'm talking about.

@joshmadewell yeah I get you I have it as well, I added the Income to Expense section to make the difference clear, because otherwise if the expense is bigger than the income it looks off, but does take a massive amount of space indeed.
I'll see what I can improve on it.

@joshmadewell I've changed the sorting on the categories, which makes for a cleaner graph.
I have also added some options to it so can choose to only see the income or expense or both, that way it will be a easier on the eye as well.
I've looked in to zooming, but highchart does not allow it in a sankey diagram.

Just wanted to say thank you, this is an awesome feature! 😁👌

Thank you - I hadn't thought of this report but when I tried it wondered where it had been all my life! It would be great if the mouseover of a node showed the % of the previous node the total figure it shows already represents:
eg. Budget -> Category: $1000 | 50%

Awesome feature I had actually been thinking about attempting to implement this myself this week!
I would agree with @CygnusArtratus it would be great if there was a percentage of the preceding category as well.
One thing isn't clear to me. I have a extra category called "NET GAIN", it is unclear to me where this comes from, so I think could require some clarification.
@Sonaryr can you explain what this is? It appears to arise when totalExpense <= totalIncome, but all of my budget is allocated to a category so I figured this would be zero?
My only thinking is that if you haven't yet 'spent' the money in a budgeted category, it would show up under the "NET GAIN" category. I may be mistaken but it looks like my long-term budgeted savings, which have not yet become an expense, show up under the appropriate budgeted category, not NET GAIN?

@Sonaryr I think my confusion arises from the way categories expenses are calculated when the income has come directly into the category rather than income -> to-be-budgeted -> category.
I sometimes log income from other sources that were specifically for a single purpose as:
person_A -> savings
rather than
person_A -> to_be_budgeted
assign to category savings
Perhaps this is my mistake, but the expenses in this PR are calculated as abs(expense) which means that
person_A -> savings
is listed as an expense (-money), even if it was an income (+money); which seems somewhat odd.
I can change my process of how I receive income to:
person_A -> to_be_budgeted
assign to category savings
but I kind of feel like it is a bug showing the absolute values?
In addition, if this is indeed the issue, it would be great is NET GAIN was split to show the categories in which the NET GAIN has been budgeted towards!

@alansaul
I think in order to let YNAB know that a particular inflow of money should be considered an increase in net worth (as opposed to simply coming back to you) it must first go into TBB to let YNAB know this.
That reflects what really happens, i.e. new money you get increases your net worth and now has to be budgeted (TBB).
Any money you put it into a category (no matter where it's coming from) is considered a future expense.
If there is a direct backflow into a category (skipping TBB) then it just means that the future expense has been reduced.
You can see this in the "Income vs Expense" page as well.
Money flowing into categories (as opposed to TBB first) will not show up in the "Income" table. It still increases your "Net Income" (because expenses were reduced) but it'll show up in the "Expense" table instead.

I've just modified my past expenses to reflect this and it looks much more sensible now (though I'm still confused why the abs(expense) would be used? Maybe it makes no difference though).
I guess its more of a feature request but it would be nice is "NET GAIN" was divided into the categories they are currently budgeted for. Though I guess Sankeys are primarily looking at expenses, I think this would be a nice feature since its ultimately a budgeting app!
Great feature.

Hi all,
Thanks for the awesome feedback on the feature!
The way income and expense are calculated is derived from the "income vs expense" report, so it follow the same logic. So it does not reflect budgetted money, but income and expenses.
NET GAIN and OVERDRAFT are 2 entries I added to make sure the graph makes more sense because otherwise you could see a wrong picture in some cases (e.g if you have more expenses then income it wouldn't show on first sight on the graph).
So if you expenses are higher then the income you will see en extra income entry OVERDRAFT. If your income is higher then your expenses you will see an extra high level expense category NET GAIN this means you made more money than you spend so kudos!
I have added a checkbox to show or hide these extra entries, so you can play around with them and see how they react.

This is great!  Unfortunately I have so many categories that they don't all fit on the screen.  An option to scroll up and down would be great!

I'd love to see a revisit of what constitutes income vs expense.
For example, I have a category which tracks "House expenses via [my partner]". In some months, this will be an expense (I send my partner a contribution), and in some it will be negative (I receive a contribution).
This workflow really works for me - and for my purposes it's generally quite cleanly represented across YNAB. There's a few other categories I have where this approach makes sense to me also - a category which typically has insurance payments, but occasionally incoming funds resulting from a claim, a category tracking tax with an occasional refund, etc...
With this model, the income breakdown is totally broken - regardless of whether money was received or sent it's shown as 'spending'. It would be great to adjust the logic to work better in the circumstances I've described, rather than me marking such received funds as 'income', which un-links them from a category which I believe gives a fuller picture.

Hi @ZoneMR in the upcoming release of the toolkit positive categories will no longer be shown as an expense (this was a bug, see #1622 ). However right now all positive categories will be added as 1 single income source as discussed in that topic. So it might not quite be how you like it at the moment. But do create an issue with how you would like to see it and I will try to incorporate it in the report.


Verific unconditionally prints license information to stdout

This currently breaks nMigen, as described here. It really should use stderr instead to keep Yosys usable in *nix pipelines.

This only seems to occur when linked with evaluation Verific, a Symbiotic EDA build with proper Verific seems fine.

cc @hofstee
@daveshah1 Still, can it be fixed for evaluation Verific too? I can't think of any reason it should use stdout and not stderr.

can it be fixed for evaluation Verific too?

Suppressing that message would be a violation of the Verific evaluation license afaiu.

@cliffordwolf Not suppressing. Getting it to stderr and not to stdout, where it would be more visible if anything.

Still a violation of the eval license. Afair this could only be done by patching the verific eval binary, as they are printing this in a global constructor or something. It's not something that is under the control of the application using the library.

You are entirely correct about the global constructor but I didn't realize there is no way around except to patch it. That's quite obnoxious.


Add inverse trigonometric functions

The Suggestion
Add the following functions:

sin⁻¹(x)
cos⁻¹(x)
tan⁻¹(x)
atan2(y, x)

Implementation description

All implementations except for gm:arctan2 use the sqrt function from #4
gm:arcsin, gm:arccos and gm:arctan fail when $(x) is not present

gm:arcsin and gm:arccos both fail when $(x) is not with the bounds -1 ≤ x ≤ 1

gm:arctan2(y, x) fails when either $(x) or $(y) are not present

Thanks to certain quirks of how minecraft works, gm:arctan2(y, x) is actually more efficient than gm:arctan

Ensured same formatting and error checking to the original codebase
Updated README to add gm:arcsin, gm:arccos, gm:arctan and gm:arctan2 to list of functions

I just realised that I accidentally left a debugging tellraw in my code, but I fixed that now :P

epic


Added hackathons, upstreams, and final infomation to jal5313.yaml

Your upstream<n> keys appear to be labeled uprstream<n> :grey_exclamation:
You also have 2 blank lines at the end of your file :page_with_curl:

Good catch. Should be fixed. Thanks!

lgtm :+1:

:checkered_flag:


Using orca I can't browse by word in a commit message

Issue Type: Bug

Launch orca.
Launch vscode using a folder inside a git repository.
Press ctrl+shift+g.
Type a message in the commit message editor.
Press ctrl+home.
Explore the message using ctrl+left and ctrl+wright.

Orca reads something like blank or the intire message.
CC @isidorn
VS Code version: Code - Insiders 1.45.0-insider (1c36d747fbf113144d3bf82b0aa3cbd290714e38, 2020-04-15T05:37:14.972Z)
OS version: Linux x64 5.6.4-arch1-1

@jvesouza thanks for filling this issue. However I could not reproduce it. When I follow your steps and navigate by word Orca reads the first letter of a word. Do I need to have Orca somehow configured?
The commit message editor is just like the regular editor for files, so first of all does this ctrl+left, ctrl+right navigation work for you in the regular editor?
fyi @joanmarie

@isidorn  Did you press the enter key after typing the commit message? It seems that the problem only happens when the message has only one line and we don't press the enter key when we finish typing it. I just found out that this problem doesn't just happen when we're typing a commit message, it happens when we create a new file too.
steps to reproduce:

Launch orca.

Create a new file in vscode.

type the following text without press the enter key in the end.
this is a test.

Press ctrl+home and use ctrl+left and ctrl+right.
Orca do not read the words this is a test

Thanks but works for me also when I have everything in one line. Can you repro if you also do not press ctrl+home? Since I do not press that keybinding since I do not have it on my keyboard.

@isidorn  After press this is a 'test' without the quotations, the following happens if I try browse using ctrl+left:

orca reads 'test' when I press ctrl+left for the first time.
orca reads 'a test' when I press ctrl+left for the second time.
orca reads 'is a test' when I press ctrl+left for the third time.
orca reads 'this is a test' when I press ctrl+left for the fourth time.

@jvesouza I cannot reproduce this problem either. Mind emailing me a full debug.out so I can see what might be going on?

@joanmarie  I sent a debug file, please let me know if you haven't received it.
Thanks.

@jvesouza Just took a look at the new one you sent me. Thanks!
I see all sorts of brokenness coming from Orca's call to pyatspi's
 getTextAtOffset(offset, pyatspi.TEXT_BOUNDARY_WORD_START)

Here's a not-broken example from your output:

Word at offset 10 is 'test' (10-14)

But then look at the ones which follow:

Word at offset 5 is 'is a test' (5-0)
Word at offset 8 is 'a test' (8-0)
Word at offset 0 is 'this is a test' (0-14)

Compare that with mine (not broken):

Word at offset 10 is 'test' (10-14)
Word at offset 8 is 'a ' (8-10)
Word at offset 5 is 'is ' (5-8)
Word at offset 0 is 'This ' (0-5)

So this is definitely not an Orca bug. It's likely not a VSCode bug either. The AtkText implementation is in Chromium. But it's hard to file the Chromium bug without being able to reproduce it. :frowning:
Do you see this problem with textarea elements in Chrome/Chromium?

@joanmarie @isidorn Could this problem be related to the electron version?
The electron used in my build is 7.2.1 and the chrome version is 78.0.3904.130

Ohhhh man. 78.0.x. My guess would be yeah. Chromium wasn't even remotely usable until like 80.0.x.
@isidorn The docs related to VSCode + Orca should probably address this.

I am running code-insiders downloaded from microsoft.
Overall it has worked quite well.
I am not sure if I can build using a different chrome version.
To be honest I don't know how to build VSCode!

@jvesouza I don't see the problem with code-insiders either. And now that I look at the version, it's the same thing you have. So.... I'm honestly pretty perplexed as to why you're having this problem but I'm not. Maybe @isidorn or one of his colleagues has some insight?

Thanks for looking into this.
Yes this sounds like some Chrome fishiness.
It is not so trivial to build VS Code out of source with a later Electron version. However luckily thanks to @deepak1556 we have VS Code exploration builds that run on Chrome 80.
@jvesouza can you maybe give those a spin just so we know if this one gets fixed once we update to latest Electron version.
@deepak1556 speaking of that do we plan to update to Electron 8 this milestone or next one?
Here are the download links for the exploration build

https://az764295.vo.msecnd.net/exploration/d45720441c97c3cca64c2868e2399c07a207f7e4/code-exploration-1586930354.tar.gz
https://az764295.vo.msecnd.net/exploration/d45720441c97c3cca64c2868e2399c07a207f7e4/code-exploration_1.45.0-1586929972_amd64.deb
https://az764295.vo.msecnd.net/exploration/2766badcb6c29445f5289033f1343f373802315c/code-exploration-1.44.0-1585360385.el7.x86_64.rpm
https://az764295.vo.msecnd.net/exploration/2766badcb6c29445f5289033f1343f373802315c/code-exploration-1585360850.snap

@isidorn we won't go for Electron 8 in this milestone, its hard to say about next milestone as the priority lies with the node-free renderer work which would allow us skip versions and jump directly to Electron 10.
But we will be setting up nightly exploration builds in this milestone, to keep Electron 8 alive.

@isidorn I did a quick test using a suggested version and the problem seems to be gone.
The version uses electron 8.2.2 and I only got accessibility when I used the --force-renderer-accessibility flag explicitly.
Without this flag no accessibility.
I believe that this issue can be closed.
Thank you all and forgive me for the noise!

@jvesouza it is not noise, but an issue with Chrome. However since we do not have steps and seems to be fixed in latest I prefer to close this one. As a workaround you can use the exploration build.
@deepak1556 sounds great, thanks for letting me know!


Add ability to use Postgresql database

To open the door for multi-user functionality

Reading has been implemented but the inserts and updates will need some work to handle identity columns in Postgresql.

Going to postgresql works but need to create the ability to go back to Sqlite as well.

Done


Fix decorrelated batch normalization when groups ≠ 1

Fix #7706.

Should I keep the model format compatibility?  To keep using an old model on inference, Chainer could broadcast the projection matrix when such a model is loaded.

That'd be good I think although this is a bug. Should we also notify the user with a warning in that case?

I tried fixing statistics in forward, but I found it cannot be warned (if CPU) because NpzDeserializer uses numpy.copyto.
https://github.com/chainer/chainer/blob/6eb84e353ace70a8a528d099bf2b405f20b98e5d/chainer/serializers/npz.py#L183-L184
    copyto(dst, src, casting='same_kind', where=True)

    Copies values from one array to another, broadcasting as necessary.

I see (so the behavior differs depending on the module behing xp). One way would be to actually check the values in order to determine whether a broadcasting took place...

Jenkins, test this please.

Jenkins CI test (for commit c073427d09cfa6f8b60a1f32a9727093762e70ab, target branch master) failed with status FAILURE.

I'll fix the failures with numpy 1.9.

Jenkins, test this please.

Jenkins CI test (for commit 4bce43e90e010648326f5c945b1cb0a031934722, target branch master) failed with status FAILURE.

Could you check the CI failures?

The Jenkins failure looks a random failure.
It seems pfnCI has to wait for a new build of cupy.
2019-07-19 14:51:47.624343 STDOUT 2293] | CuPy (cupy) version 7.0.0b1 may not be compatible with this version of Chainer.
-- | --
2019-07-19 14:51:47.624362 STDOUT 2293] | Please consider installing the supported version by running:
2019-07-19 14:51:47.624377 STDOUT 2293] | $ pip install 'cupy==7.0.0b2'
2019-07-19 14:51:47.624393 STDOUT 2293] |
2019-07-19 14:51:47.624395 STDOUT 2293] | See the following page for more details:
2019-07-19 14:51:47.624409 STDOUT 2293] | https://docs-cupy.chainer.org/en/latest/install.html
 ```

The failure looks relevant.  I'll investigate it.
  | _ TestDecorrelatedBatchNormalization_use_chainerx_true__chainerx_device_cuda:0__use_cuda_false__cuda_device_None__use_cudnn_neve
-- | --
2019-07-19 14:56:14.051346 STDOUT 2359] | r__cudnn_deterministic_false__autotune_false__cudnn_fast_batch_normalization_false__use_ideep_never_param_2_{ndim=0, contiguous=
2019-07-19 14:56:14.051357 STDOUT 2359] | 'C', n_channels=8, groups=2, eps=2e-05, dtype=float32}.test_forward _

Jenkins, test this please.

I retriggered the CI but maybe you were still looking into it.

Jenkins CI test (for commit 5b5910cc118a934f5db162b47996d9adbc6c19d5, target branch master) failed with status FAILURE.

DBN seems unstable still 🤔

Jenkins, test this please.

Jenkins CI test (for commit 7dbfab0d84942653b88b86a3306ba1417bdf5609, target branch master) failed with status FAILURE.

Jenkins, test this please.

Jenkins CI test (for commit 7dbfab0d84942653b88b86a3306ba1417bdf5609, target branch master) succeeded!

Changed LGTM.
For the record, the DBN link now overrides the serialize method in order to detect and raise a warning at deserialization-time, the parameters are then broadcasted for backward compatibility.


ReferenceError: MouseEvent is not defined (10.0.0)

I'm submitting a ...  (check one with "x")
[X] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

Current behavior

When I make a build for NodeJS with version 10.0.0 I get the following error when I try to run the bundle.
webpack-internal:///758:1919
        __metadata("design:paramtypes", [MouseEvent]),
                                         ^

ReferenceError: MouseEvent is not defined

This only happens on JiT builds and not on AoT builds.
Expected behavior

The same behavior as with version 9.3.1 where this issue wasn't present.
Reproduction of the problem

Angular universal build with ngx-datatable version 10.0.0 (JiT build for the server).
What is the motivation / use case for changing the behavior?

Please tell us about your environment:

Table version: 10.0.0

Angular version: 4.3.3

Can you see which file its in thats causing this?
I temp made it in any in 10.0.1

The only thing that fully worked for me was the same solution as in https://github.com/valor-software/ngx-bootstrap.
Changing all the MouseEvent types and KeyboardEvent types to any and removing the https://github.com/swimlane/ngx-datatable/blob/master/src/events.ts file.

This is how i fixed this issue
{ test: /.(ts|js)$/, loader: 'regexp-replace-loader', query: { match: { pattern: '\[(Mouse|Keyboard)Event\]', flags: 'g' }, replaceWith: '[]', } }

@sebichondo
how did you add this to your webpack.config.js exactly? how are you compiling the ts-files? use @ngtools/webpack or ts-loader?

@crebuh here is my webpack.config.js file
`const path = require('path');
const webpack = require('webpack');
const merge = require('webpack-merge');
const AotPlugin = require('@ngtools/webpack').AotPlugin;
const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
module.exports = (env) => {
// Configuration in common to both client-side and server-side bundles
const isDevBuild = !(env && env.prod);
const sharedConfig = {
stats: { modules: false },
context: __dirname,
resolve: { extensions: [ '.js', '.ts' ] },
output: {
filename: '[name].js',
publicPath: 'dist/' // Webpack dev middleware, if enabled, handles requests for this URL prefix
},
module: {
rules: [
{ test: /.ts$/, include: /ClientApp/, use: ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] },
{ test: /.html$/, use: 'html-loader?minimize=false' },
{ test: /.css$/, use: [ 'to-string-loader', isDevBuild ? 'css-loader' : 'css-loader?minimize' ] },
{
test: /.scss$/, use:
[{
loader: 'to-string-loader' // creates style nodes from JS strings
}, {
loader: 'css-loader' // translates CSS into CommonJS
}, {
loader: 'sass-loader' // compiles Sass to CSS
}]
},
{ test: /.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' },
{ test: /.(ts|js)$/, loader: 'regexp-replace-loader', query: { match: { pattern: '\[(Mouse|Keyboard)Event\]', flags: 'g' }, replaceWith: '[]' } },
{ test: /.(ts|js)$/, loader: 'regexp-replace-loader', query: { match: { pattern: '\[Event\]', flags: 'g' }, replaceWith: '[]' } }
]
},
plugins: [new CheckerPlugin()]
};
// Configuration for client-side bundle suitable for running in browsers
const clientBundleOutputDir = './wwwroot/dist';
const clientBundleConfig = merge(sharedConfig, {
    entry: { 'main-client': './ClientApp/boot.browser.ts' },
    output: { path: path.join(__dirname, clientBundleOutputDir) },
    plugins: [
        new webpack.DllReferencePlugin({
            context: __dirname,
            manifest: require('./wwwroot/dist/vendor-manifest.json')
        })
    ].concat(isDevBuild ? [
        // Plugins that apply in development builds only
        new webpack.SourceMapDevToolPlugin({
            filename: '[file].map', // Remove this line if you prefer inline source maps
            moduleFilenameTemplate: path.relative(clientBundleOutputDir, '[resourcePath]') // Point sourcemap entries to the original file locations on disk
        })
    ] : [
        // Plugins that apply in production builds only
        new webpack.optimize.UglifyJsPlugin(),
        new AotPlugin({
            tsConfigPath: './tsconfig.json',
            entryModule: path.join(__dirname, 'ClientApp/app/app.module.browser#AppModule'),
            exclude: ['./**/*.server.ts']
        })
    ])
});

// Configuration for server-side (prerendering) bundle suitable for running in Node
const serverBundleConfig = merge(sharedConfig, {
    resolve: { mainFields: ['main'] },
    entry: { 'main-server': './ClientApp/boot.server.ts' },
    plugins: [
        new webpack.DllReferencePlugin({
            context: __dirname,
            manifest: require('./ClientApp/dist/vendor-manifest.json'),
            sourceType: 'commonjs2',
            name: './vendor'
        })
    ].concat(isDevBuild ? [] : [
        // Plugins that apply in production builds only
        new AotPlugin({
            tsConfigPath: './tsconfig.json',
            entryModule: path.join(__dirname, 'ClientApp/app/app.module.server#AppModule'),
            exclude: ['./**/*.browser.ts']
        })
    ]),
    output: {
        libraryTarget: 'commonjs',
        path: path.join(__dirname, './ClientApp/dist')
    },
    target: 'node',
    devtool: 'inline-source-map'
});

return [clientBundleConfig, serverBundleConfig];

};
`


Sharing Transformations?

Is it possible to manipulate objects in a shared scene? Maybe use HandDraggable to transform different objects and update the anchors?

You normally use a network layer for synchronizing objects in a shared experience: HoloToolkit.Sharing, UNET. I've been using UNET with custom NetworkBehaviours or NetworkTransform / NetworkTransformChild for syncing local position / rotation relative to shared world anchor(s). I would recommend looking at SharingWithUNET under HoloToolkit-Examples.

Allright, thanks! I will look at the UNet samples asap. I figured that the HandDraggable would sync the positions between users by it self..

If you're using the sharing system, take a look at the SharingSpawnTest scene.

Add the InputManager.prefab to the scene
Add the DefaultCursor.prefab to the scene
Add HandDraggable to either/both of the spawn object prefabs located in Sharing/Tests/Prefabs
???
Profit

The Sharing libraries have been updated to include sync transform components.


explain how to point HEIR to local llvm

Thank you!
The only small feedback I have is mentioning some examples of when this might be necessary (particularly because we use an in-progress / developing implementation of the polynomial dialect upstream).

Done


WIP: Don't smoosh domainname into hostname

TestRunFullHostnameSet() is broken by this.  I don't want to go too far down a rabbit hole without some discussion.  The commandline only has a --hostname and not a --domainname, so it tries to be clever and parse it into host and domain parts for the purpose of /etc/hosts (which is arguably wrong - the user said hostname).
Fixes #20180

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "20180-hostname-domainname" git@github.com:thockin/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.


carbon offset LNG

Description of the issue
"carbon offset LNG"  is an important term in the LNG domain, that should be added.
Ideas of solution
Propose definition: A process that involves a reduction in, removal of, greenhouse gas emissions or in carbon storage in order to compensate for emissions made by the liquefied natural gas process - addapted for LNG as proposed by ERRA (ET_glossary_final.pdf).
Update oeo-physical. Parent LNG - OEO: 00010237.
Workflow checklist

[x] I discussed the issue with someone else than me before working on a solution - The issue was discussed internaly in the OTCnLNG team (https://ontochain.ngi.eu/content/otcnlng-single-origin-truth-provide-lng-buyers-and-sellers-decentralized-interoperable-view). Presentation of the project and proposal of OEO extension was made on https://etherpad.wikimedia.org/p/2022-12-07_OEO-LNG.
[x] I already read the latest version of the workflow for this repository
[x] The goal of this ontology is clear to me

I am aware that

[x] every entry in the ontology should have a definition
[x] classes should arise from concepts rather than from words

We have to distinguish here two concepts:

The process of producing LNG by carbon offsetting.
The material entity LNG that is output of such a process.

Hi, I-emele,
Can you please elaborate the two concepts?

Propose definition: A process that involves a reduction in, removal of, greenhouse gas emissions or in carbon storage in order to compensate for emissions made by the liquefied natural gas process - addapted for LNG as proposed by ERRA (ET_glossary_final.pdf).

The process of producing LNG by carbon offsetting.

Let's call the process carbon offset LNG production for now.
The proposed definition from @Iulia101 suggests, that carbon offset LNG production is a specification of an LNG production process, which should be defined as a first step.

We need production for that which is being discussed in #1526.
LNG production is a production process which has LNG as physical output. (alternative term: liquified natural gas production)?
Carbon offset LNG production is an LNG production process which involves a removal of greenhouse gas emissions, e.g. by carbon storage, in order to compensate for emissions made by the liquefied natural gas process.

What exactly do we mean here with LNG production? The whole process chain from extraction of natural gas from the soil to liquefaction?

Please note the slice difference between carbon offset & carbon neutral LNG: Carbon offset LNG refers to liquefied natural gas that has undergone a process to offset or compensate for its carbon emissions. This involves investing in projects or activities that reduce or remove an equivalent amount of CO2 from the atmosphere to offset the emissions generated throughout the LNG lifecycle.
On the other hand, carbon-neutral LNG refers to liquefied natural gas that has been produced and consumed in a way that results in net-zero carbon emissions. This means that the entire carbon footprint associated with LNG production, transportation, and use has been effectively balanced or offset through various measures, such as reducing emissions, utilizing carbon capture and storage (CCS) technologies, or purchasing verified carbon offsets.
While both concepts aim to reduce the environmental impact of LNG, carbon-neutral LNG goes a step further by ensuring that no net carbon emissions are released into the atmosphere. It requires a comprehensive approach that minimizes emissions throughout the entire value chain and includes offsetting or neutralizing any remaining emissions.

Probably we have to discuss and solve issue #1538 first which has all the stages of the LNG process chain before adding the additional difficulty of defining LNG production combined with carbon offsetting.


black and flake8 trajectory_aggregator.py

Related to https://github.com/anitagraser/movingpandas/pull/171
trajectory_aggregator.py now passes black and flake8.
All lines lengths are < 79. Where possible it's good to do this rather than make an exception for flake8. It's true they are in conflict black will default 88 and flake8 79. I know it's a pain as there isn't a quick solution but  I got everything to be < 79 by:

Moving stuff to a new line in the doc string
Renaming a variable e.g. significant_points to sig_points
Added a trailing comma to a list e.g. [my, long, list] to [my, long, list,]
Create new variables e.g.

        a = turn_angle >= self.min_angle
        b = turn_angle <= (360 - self.min_angle)
        return a and b

You can test locally and see pre-commit now failing at the next file.
I have pc as an alias for 'pre-commit run --all-files`

tests aren't passing so I definitely edited by hand

moved to https://github.com/anitagraser/movingpandas/pull/173


feat: cache repo?

basically: can we either use (perhaps via a proxy?) the host clusters container runtime for storing/pulling images or can/should we implement/add an (optional) image cache. the reason/driver for this is that we are stupidly pulling the images every time because each time we spin up a launcher container (dind container) that docker daemon is brand new and has no images and no access to host cluster!

this would be cool. I tapped into it for a quick sec but nothing jumped out immediately

gunna close this and use #24 to track it as I think we're basically leaning toward having an optional docker push/pull (docker.io/registry:2) and clab/clabverter/some cli tool to load images to that (like kind load-docker-image or w/e that command is).
in any case, I think there is more thought in #24 and its all related since this would basically obviate the need for us to directly support private registries (and thus not have to deal w/ crews!) by just letting users use skopeo to copy images from their reg to ours or just pull/re-tag/push etc.


deeppavlov 0.8.0 not supported

ERROR: dragonfire 1.1.1 has requirement deeppavlov==0.7.1, but you'll have deeppavlov 0.8.0 which is incompatible.
How to downgrade to deeppavlov==0.7.1 ?

@iguanen you can try to change the version from here. Probably you should set that line to deeppavlov>=0.7.1 or deeppavlov==0.8.0

Did not help, I get this output when trying to start dragonfire
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 574, in _build_master
ws.require(requires)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 892, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 783, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (deeppavlov 0.8.0 (/usr/local/lib/python3.6/dist-packages), Requirement.parse('deeppavlov==0.7.1'), {'dragonfire'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/dragonfire", line 6, in
from pkg_resources import load_entry_point
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 3088, in
@_call_aside
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 3072, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 3101, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 576, in _build_master
return cls._build_from_requirements(requires)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 589, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 778, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'deeppavlov==0.7.1' distribution was not found and is required by dragonfire
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 145, in apport_excepthook
os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/var/crash/_usr_bin_dragonfire.1000.crash'
Original exception was:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 574, in _build_master
ws.require(requires)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 892, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 783, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (deeppavlov 0.8.0 (/usr/local/lib/python3.6/dist-packages), Requirement.parse('deeppavlov==0.7.1'), {'dragonfire'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/dragonfire", line 6, in
from pkg_resources import load_entry_point
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 3088, in
@_call_aside
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 3072, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 3101, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 576, in _build_master
return cls._build_from_requirements(requires)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 589, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 778, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'deeppavlov==0.7.1' distribution was not found and is required by dragonfire

@iguanen it's because Dragonfire is already installed with deeppavlov==0.7.1 dependency. So first run make pip-uninstall or make dev-pip-uninstall to remove Dragonfire and then run make install to reinstall it.


Signalr .net core central exception handling

I want to handle exception from any method of Hub onto one single location as we can do that via app.UseExceptionHandler in webapi. Is there any way to do this in signalr .net core?
I tried with GlobalHost.HubPipeline.AddModule(new ErrorHandlingPipelineModule()); but via this also exception is not getting handled.

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

ID: c9bc1072-be2c-94f6-49bf-daa9e97dff2d
Version Independent ID: 36052173-7061-6d01-8aed-915685cd7cf6
Content: ASP.NET Core SignalR .NET Client
Content Source: aspnetcore/signalr/dotnet-client.md
Product: aspnet-core
Technology: aspnetcore-signalr
GitHub Login: @bradygaster
Microsoft Alias: bradyg

Same question

There is no way to do this today outside of putting try catch inside all your hub methods.
This support will be added as part of https://github.com/dotnet/aspnetcore/issues/5353

Hub filters are in 5.0, you can add an exception handler filter. More details on hub filters in the docs: https://docs.microsoft.com/aspnet/core/signalr/hub-filters?view=aspnetcore-5.0


Update actions/checkout

Due to the f... bot automerging changes to Github workflows, the deploy repo starts failing as the change from v3 to v4 doesn't fetch the history (only latest commit).
...and since we diff versus last on main branch to find which functions to deploy, this fails.
I hate that bot.

thanks to @janne123456789 for discovering this!


Adjusting WCF performance counters descritpion (Calls Duration)

Summary
While working on Prometheus integration for WCF services monitoring, I have noticed that https://github.com/dotnet/docs/blob/ee33cc88df5e22a9a8ff6d99b511a642089d38a1/docs/framework/wcf/diagnostics/performance-counters/toc.md has wrong performance counters names for "Calls Duration". Raw output of TypePerf.exe -qx reveals that naming is as following:
\ServiceModelEndpoint <IP_ADDRESS>(xxx@xxx)\Calls Duration
\ServiceModelOperation <IP_ADDRESS>(xxx@xxx)\Calls Duration
\ServiceModelService <IP_ADDRESS>(xxx@xxx)\Calls Duration

Whereas the docs state that it is "Call Duration" (note the missing "s") for all categories.
Note: I am not able to verify if this is specific for a given version of .NET framework, or docs had wrong naming since the beginnig.

 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.:x: ptylenda sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@rpetrusha Thanks!


Refactor assertFalse(equals()) with assertNotEquals

I am working on research investigating test smell refactoring in which we identify alternative implementations of test cases, study how commonly used these refactorings are, and assess how acceptable they are in practice.
This smell occurs when inappropriate assertions are used, while there exist better alternatives. For example, in GStringTest.java, I refactored assertFalse("a != c", a.equals(c)); with assertNotEquals("a != c", a, c);.
I would like to get your feedback on this particular test smell and its refactoring. Thanks in advance for your input.

First of all thanks for the contribution. I was wondering if the change in the GString.groovy is ok, but since it does really test the equals method on GString, that is as that also accessible in Java it should be fine. I do have some remarks:

"This smell occurs when inappropriate assertions are used". Actually in this case you should probably say that they became inappropriate. When this test infrastructure was build assertNotEquals did not even exist. Just look at the base class and what package that comes from. So why is it no test smell to use an long outdated Junit?
Obviously the reason of why assertNotEquals is better than assertFalse when dealing with two operands is because then the error message from assertNotEquals can use the operand values. In this case the error message is given. Is there still an advantage to the change then?

Thanks, @blackdrag, for your input.

Actually in this case you should probably say that they became inappropriate. When this test infrastructure was build assertNotEquals did not even exist. Just look at the base class and what package that comes from.

I see your point. Perhaps we could look at such refactoring as a way of keeping unit tests up to date with the latest advancements.

Obviously the reason of why assertNotEquals is better than assertFalse when dealing with two operands is because then the error message from assertNotEquals can use the operand values. In this case the error message is given. Is there still an advantage to the change then?

Right. assertNotEquals improves the readability of a test case and makes equality checks more explicit and intuitive, unlike assertFalse combined with equals, which indirectly checks if two objects are not equal. Also, as you have indicated, assertNotEquals typically provides more informative failure messages, as it can include details about the expected and actual values if the assertion fails, making it easier to diagnose and fix the issue. The implementation of assertNotEquals is also designed to handle a variety of data types, as its implementation typically includes type checks and appropriate comparison logic to determine if the values or objects are unequal, regardless of their types, unlike assertFalse, which typically relies on the equals() method of the objects being compared.

Merged, thanks!

@Taher-Ghaleb
assertNotEquals may improve readability a bit. I think that does not apply to me so much, but I can imagine others think differently. So I agree in that point.
As for the failure message... the assertFalse may have a failure message only because it is otherwise quite a bad message in the reporting that something was true and should have been false. But then it would be consequent to check if the failure message can be remove when transforming from assertFalse to assertNotEquals. Just a suggestion. I don't know if you guys use a tool for this, or do that by hand. If it would be a tool only, like a simple refactoring, it can of course not tell if the error message in the assertFalse is still required. I did not look in detail for the PR, But I think in all cases it could have been removed. Just as a point to think about.
Then there is one point I do not agree with you and that is what you wrote about the implementation of assertNotEquals. It has a signature that takes Object for the object to check. That means there is no static type information and compiler failure that prevents me using a String and an Integer. And if you look in the PR, there are equal checks on String and GString, which are not closely related in the java world. There is a equal check on ArrayList and Range. Which might be closer, but still Rang is not a ArrayList. assertNotEquals as used here does only 2 things, checking for null and maybe  null==null, otherwise it will only call equals. So yes, there is the null check that could help, but I am usually very picky when it comes to null. I prefer testing that state explicitly if expected or not expected. That kind of negates the usefulness of that one additional step in assertNotEquals for me. Others may see it different.
Anyway... I wrote this only to give you thoughts for your research... actually one more thought. In case of Groovy power asserts are almost always a good choice: "assert string == gstring". It will trace string and gstring values as well as the expression string. In the specific case here we wanted to make very sure the equals method is checked only, which is why it was done different. See http://groovy-lang.org/semantics.html#_power_assertion

Thanks for your detailed response, @blackdrag. I really appreciated it.


Matrix contains builtin

I'd like a "is contiguous sublist/submatrix" builtin. Maybe Þc?

You mean like *a in b or *a in transpose(b)? (That wouldn't actually work as python code, but basically that)

I'd suggest generalizing it to n dimensions but that would be very difficult

So this is like Jelly's ẇ, but supporting multiple dimensions?

Pretty much what user said with the n-dimension generalization.

Don't think it's hard at all... let me give it a try

def matrix_contains(lhs, rhs):
    for i in range(len(lhs)):
        for j in range(len(lhs[0])):
            flag = True
            try:
                for k in range(len(rhs)):
                    for l in range(len(rhs[0])):
                        flag = flag and (lhs[i+k][j+l] == rhs[k][l])
            except:
                continue
            if flag == True:
                return flag
    return False

matrix_contains([[1,2,3],[3,4,6]], [[1,2],[3,4]]) -> True

def matrix_contains(lhs, rhs):
    for i in range(len(lhs)):
        for j in range(len(lhs[0])):
            flag = True
            try:
                for k in range(len(rhs)):
                    for l in range(len(rhs[0])):
                        flag = flag and (lhs[i+k][j+l] == rhs[k][l])
            except:
                continue
            if flag == True:
                return flag
    return False

matrix_contains([[1,2,3],[3,4,6]], [[1,2],[3,4]]) -> True

Makes things simple. Now I just need a bit of dynamic code generation with exec, to generalize to n dimensions.

def matrix_contains(lhs, rhs):
    for i in range(len(lhs)):
        for j in range(len(lhs[0])):
            flag = True
            try:
                for k in range(len(rhs)):
                    for l in range(len(rhs[0])):
                        flag = flag and (lhs[i+k][j+l] == rhs[k][l])
            except:
                continue
            if flag == True:
                return flag
    return False

matrix_contains([[1,2,3],[3,4,6]], [[1,2],[3,4]]) -> True

Compromising a little bit of speed, you can just return flag at the end with no need for the if statement.

I made a mistake there

Can be reopened and implemented if there's enough interest and resources


remove -y flag from Arch Linux installation

per https://wiki.archlinux.org/index.php/Partial_upgrades#Partial_upgrades_are_unsupported you should never pacman -Sy <pkg>, Arch users are expected to keep their system already up-to-date before installing anything.

Thanks, according to the documentation:

Always upgrade (with pacman -Syu) before installing a package.

should we prepend pacman -Syu to the instruction?


Field-Specific Search

Implement the ability to search within specific fields like title, description, tags, source, resolution, etc. This would enable users to narrow down their searches to specific metadata fields, resulting in more relevant and accurate results.
Related

Advanced Search Options
Scope Search to Title, Content or Both
Numeric Range Filters
Exact Phrase Search
Boolean Operators
Hash Search
Saved Searches
Regular Expression Search
Wildcard Matching

Tags and resolution are filterable. This is separate from the search query string. I don't know that it needs additional support within the query string (or that it doesn't).
I'm not opposed to field specific search, but there are a few trade-offs here, a) a more complex implementation vs the current search which uses a single weighted tsvector and simple-to-implement query string rank, b) larger index sizes that would be required and c) (probably) reduced performance, d) likely more complex search string syntax needed to support this: field-specific queries may be best done using the filters element of the API, where the filter value is an enumeration (e.g. resolution and tag).
I'll leave this open for now, it's worth further consideration but will probably be prioritised after some other "missing" features are implemented as the current search is fairly complete relative to other features.

Just wondering if it's not better to use an Elasticsearch or similar, instead implement the whole search in the Postgres.
When found a new torrent insert to Postgres with his hash and insert on ElasticSeartch with metadata (tags, quality, etc).
What do you think?

Just wondering if it's not better to use an Elasticsearch or similar, instead implement the whole search in the Postgres

It's a trade-off. Yes, something like Elasticsearch could offer more performant and feature-rich search, but it's also a massive piece of infra, it would exclude a lot of people from using the software (if it was a hard dependency), and would also be a lot of work to integrate.